Kiểm thử thông minh

Làm thế nào để kiểm thử thông minh hơn?

Vẫn đề nhức nhối hiện nay của đội kiểm thử đó là khi mà công việc quá nhiều mà deadline lại ngắn hạn, họ luôn phải nghĩ cách sắp xếp công việc sao cho thật khoa học nhất và vẫn đảm bảo chất lượng nhất.

Ở bài viết này chúng tôi sẽ giúp bạn có cách làm việc thông minh đơn giản hơn rất nhiều. Không còn dựa trên tài liệu test nữa, thay vào đó là sử dụng thời gian để thực hiện exploratory và ad-hoc testing.

Vấn đề

Một trong những vấn đề lớn nhất hiện nay mà các công ty IT phải đối mặt là chu trình phát triển ngắn hạn. Không có kế hoạch nào có chu kỳ dài hơn hai tháng, ngoại trừ các doanh nghiệp khổng lồ. Người quản lý phải đối mặt với vấn đề là phải đưa ra được phần mềm chất lượng trong 1 chu kỳ ngắn. Người lập trình phải viết phần mềm một cách nhanh chóng và người kiểm thử phải thích ứng với chức năng mới một cách nhanh chóng tránh để những lỗi trượt qua mà không bị phát hiện.

Giải pháp

  • Việc chúng ta cần phải làm đó là nâng cao hiệu quả của tester. Và hơn cả SDLC, các công cụ chắc chắn có thể giúp cải thiện năng suất của cả người lập trình và tester được tốt hơn. Các công cụ kiểm thử tự động rất có ích trong việc tăng năng suất kiểm thử.

  • Với các công cụ phát triển tuyệt vời, quy trình agile, tích hợp liên tục và các hệ thống kiểm thử tự động thì việc đảm bảo chất lượng đã trở thành một nút thắt khó trôi vì nhu cầu của doanh nghiệp tăng lên và kèm theo đó là deadlines bị cắt ngắn dần.

  • Điều đó có nghĩa là việc kiểm tra phải thông minh hơn. Phân bổ lại các nguồn lực vào việc tạo tài liệu và chủ yếu tập trung vào việc tăng thêm giá trị bằng exploratory testing.

  • Giảm thiểu tài liệu không có nghĩa là bạn ném luôn chất lượng ra ngoài cửa sổ. Đó không phải tất cả. Các mã kiểm thử vẫn được tạo và được phép chạy. Kiểm thử một cách thông minh đòi hỏi người phát triển và tester lập kế hoạch rõ ràng, xây dựng và chạy các bài unit tests, functional tests, acceptance tests và security tests.

  • Hãy xem xét, nếu một agile team được giao nhiệm vụ: thêm một chức năng mới vào một trang web hoặc ứng dụng di động. Đầu sprint, nhóm sẽ tạo ra một kế hoạch kiểm tra và tạo ra các test case mới hoặc sửa đổi lại test case cũ. Và một khi việc code được hoàn tất, nhóm sẽ test dựa trên tài liệu test case tìm lỗi. Nếu có lỗi, code sẽ được sửa, và các test case sẽ kiểm thử lại.

  • Việc tạo và cập nhật test case cũng mất thời gian và nguồn lực. Vì vậy, hãy ghi lại quá trình của các trường hợp thử nghiệm và từng lần kiểm thử.

  • Hầu hết test case đều không có giá trị nào đối với các doanh nghiệp. Nếu ở 1 nhóm kiểm thử thông minh thì thay vì tập trung nguồn lực viết tất cả các test case thì chúng chỉ viết test case khi có trường hợp lỗi xảy ra. Nhưng để làm được điều này thì vẫn cần là một Tester thật sự có kinh nghiệm.

Ví dụ:

Hãy tưởng tượng có 100 test cases mới cho một sprint cụ thể. Tất cả 100 test case phải được kiểm tra, được cập nhật và tài liệu đầy đủ. Làm thế nào để kiểm tra thông minh hơn?

  • Xác định 10 trong số 100 test case trên là những trường hợp sẽ được kiểm thử hồi quy trong tương lai. Có thể có 15 case khác đã failed khi tạo ra kết quả bất ngờ hoặc không mong muốn. Sau đó nhóm chỉ cần kiểm thử 25 case quan trọng trong số 100 case trên. Bạn đã có thể tiết kiệm được khá nhiều thời gian rồi.

  • Sử dụng thời gian còn lại để nâng cao chất lượng bằng cách khuyến khích các nhà phát triển, tester và các bên liên quan khác cùng tham gia vào việc kiểm thử, kiểm thử ngẫu nhiên. Nếu bạn có thể biến các kiểm thử ngẫu nhiên này thành các bài kiểm thử tự động để có thể dùng lại khi kiểm thử hồi quy thì thật tuyệt vời.

  • Trước khi đội phát triển quyết định kiểm thử thông minh thì cần đảm bảo rằng tester thực sự hiểu mục tiêu của dự án và các giai đoạn cụ thể, hiểu được các case nào không bắt buộc đối với các giai đoạn hiện tại, tương lai.

  • Hiểu được mục tiêu của mỗi sprint, hiểu được những gì thay đổi mới trong 1 sprint và trong backlog, hiểu rõ user story. Biết được bài kiểm thử nào là cần thiết ở hiện tại, cần thiết thực hiện kiểm thử hồi quy và acceptance testing

  • Hãy tự đặt ra câu hỏi : “ Khi người dùng nhận được sản phẩm này, họ quan tâm tới điều gì nhất?”, hay như câu hỏi:” Người dùng sẽ sử dụng như thế nào?”, “ Trong trường hợp nào lỗi sẽ dễ xảy ra nhất?”... Những câu hỏi này sẽ giúp ích rất nhiều trong việc thực hiện exploratory and ad-hoc testing.

  • Team Leader cần đưa ra cách tiếp cận cấp cao cho những gì cần được kiểm thử. Đưa ra các kịch bản kiểm thử chính và quan trọng, dễ bị ảnh hưởng và gây ra lỗi để kiểm thử trong hiện tại và cả hồi quy trong tương lai. Những vùng khác không bị ảnh hưởng thì tạm thời sẽ không cần được kiểm tra trong giai đoạn nước rút này

Phần kết luận

Tất cả chúng ta đều chịu một áp lực để công việc được hoàn thiện nhanh nhất có thể. Vì vậy để đẩy nhanh quá trình phát triển phần mềm mà không làm mất chất lượng, hãy thử nghiệm thông minh hơn! Kiểm thử tự động bất cứ khi nào có thể, thực hiện unit test trước khi chuyển qua bên kiểm thử. Tạo kịch bản kiểm thử dùng cho kiểm thử hồi quy và chỉ nên tạo những kịch bản kiểm thử quan trọng, còn lại hãy sử dụng kinh nghiệm của một tester đẳng cấp trong việc thực hiện exploratory testing.

Nguồn: http://www.softwaretestinghelp.com/how-to-test-smarter/