Rapid testing – một phương pháp mới để tối ưu hóa được quá trình kiểm thử phần mềm
Là một tester, bạn có thể đã thực hiện kiểm thử mà không cần thông số kỹ thuật kiểm tra chi tiết và toàn diện. Có bất kỳ phương pháp nào để nhận biết một cách kiểm thử? Khi ai đó đưa cho bạn một chương trình và nói rằng "bạn có một giờ để kiểm tra điều này" bạn có thể làm điều đó? Bạn có tự tin ...
Là một tester, bạn có thể đã thực hiện kiểm thử mà không cần thông số kỹ thuật kiểm tra chi tiết và toàn diện. Có bất kỳ phương pháp nào để nhận biết một cách kiểm thử?
Khi ai đó đưa cho bạn một chương trình và nói rằng "bạn có một giờ để kiểm tra điều này" bạn có thể làm điều đó? Bạn có tự tin trong công việc của bạn? bạn có thể giải thích những gì bạn đã làm và tại sao?
Trong bài viết này, mình sẽ tóm tắt những ý chính của phương pháp trên được đúc kết từ blog cá nhân của James Bach (ông là một trong những chuyên gia đầu tiên nghiên cứu và mang phương pháp này ứng dụng ra thực tiễn).
1. Rapid Testing
-
Rapid Testing (Kiểm thử nhanh chóng) là một phương pháp kiểm thử được tạo ra dựa trên phương pháp Waterfall, kiểm thử đầy đủ thiết kế một phần mềm không đủ nguồn lực, thông tin, thời gian được các Tester chọn để có thể hoàn thành những dự án phần mềm mang tính đặc thù.
-
Rapid Testing dựa trên các kỹ thuật kiểm thử thăm dò và được sử dụng khi có quá ít thời gian có sẵn để đảm bảo kiểm thử đầy đủ bằng các phương pháp thông thường. Kiểm thử nhanh chóng tìm ra các lỗi lớn nhất trong thời gian ngắn nhất và cung cấp giá trị cao nhất của bất kỳ phương pháp thử nghiệm.
2. Những lợi ích của rapid testing
Những lợi ích dễ thấy được của phương pháp Rapid Testing là
- Các Tester có thể phát triển được kỹ năng tư duy và khám phá trong suốt quá trình kiểm thử thay vì chỉ theo những tiến trình đã được định sẵn.
- Tester chính là người sẽ đưa ra quyết định về việc phân bổ thời gian, cách thức và chi tiết nào trong phần mềm cần được kiểm thử tùy theo lượng thông tin, nguồn lực, và thời gian có hạn trong dự án. Đây cũng chính là một kỹ năng thiết yếu để các Tester có thể thực hiện tốt công việc của mình hơn.
- Rapid testing là một tool tuyệt vời thúc đẩy nhanh chóng việc kiểm thử của bạn. Thường thì tester không nhận được nhiều sự tôn trọng của các thành viên trong team vì nghĩ rằng không xứng đáng. Một trong những cách để tester có được sự tôn trọng và mang lại giá trị của mình trong dự án xuất phát từ cách họ nghĩ và nói lên ý kiến của mình về làm thế nào để kiểm tra.
3. Tại sao sử dụng rapid testing là cần thiết?
Trong một phần mềm lý tưởng thì rapid testing sẽ không cần thiết, nhưng trong hầu hết các dự án phát triển có một số thời điểm quan trọng thì cần thiết để đánh giá tức thời của chất lượng của sản phẩm tại thời điểm đó. Ví dụ như:
-
'Bằng chứng của khái niệm' thử nghiệm sớm trong chu kỳ phát triển
-
Trước hoặc sau khi di chuyển từ phát triển đến môi trường sản xuất
-
Sign-off của các mốc phát triển để kích hoạt tài trợ hoặc đầu tư
-
Trước khi phát hành công cộng hoặc giao cho khách hàng
-
Các dự án thường kiểm thử liên tục, điều này không tạo ra thông tin cần thiết để đối phó với các tình huống được liệt kê ở trên. Trong các trường hợp này, các tester sẽ không dự kiến được kỹ thuật hoàn thành cho đến khi khởi động, và thông thường kiểm thử thường không thể được áp dụng cho phần mềm đó là không đầy đủ hoặc bị thay đổi liên tục.
-
Tester cần kiểm tra kỹ lưỡng, thường thì phải đọc các thuật ngữ và các tên và mô tả về kỹ thuật, mà không xây dựng kỹ năng, không giúp bạn phá vỡ và giải quyết một vấn đề kiểm thử phức tạp.
-
Bên cạnh đó, ở dự án tester thường ít thời gian và nguồn lực để thực hiện một "triệt để" quá trình kiểm tra từ đầu đến cuối.
-
Rapid testing là một cách để mở rộng các phương pháp kiểm thử chi tiết. Rapid testing không có nghĩa là "không triệt để", nó có nghĩa là "triệt để như là hợp lý và cần thiết, do hạn chế về thời gian của bạn." Một rapid tester tốt là tester tay nghề cao có thể kiểm tra đa dạng hơn các điều kiện so với các tester khác.
-
Các lý do khác để nghiên cứu rapid testing là sự nghiệp của bạn. Tester chiếm được lòng tin của các dev và những người khác trên một dự án phần mềm. Các giá trị của tester xuất phát từ cách suy nghĩ, tester giỏi thường đấu tranh để làm rõ hoặc biện minh cho ý tưởng của họ về làm thế nào để kiểm tra.
- Rapid testing là một công cụ tốt cho mỗi Tester, có thể học tập, nắm bắt, cho phép bạn suy nghĩ và nói về việc kiểm tra với sự tự tin.
- Ngược lại, một tester ít kinh nghiệm thường bị phàn nàn về cách yêu cầu không được đầy đủ tài liệu, hoặc về một số điều kiện cần thiết khác để kiểm tra chi tiết tùy tiện đã không được đáp ứng như thế nào, do đó thường không được đánh giá cao.
-
Rapid testing là không thể thiếu khi bạn được yêu cầu để kiểm tra cái gì đó trong khoảng thời gian ngắn, sớm trong quá trình phát triển, hoặc khi bạn đang trong quá trình phát triển các trường hợp kiểm thử và thủ tục để sử dụng trong tương lai. Cách tiếp cận này cũng rất hữu ích ngay cả khi bạn cần để kiểm tra kỹ lưỡng hơn, và đưa ra thời gian và nguồn lực để làm như vậy.
4. Làm thế nào để kiểm tra nhanh chóng?
-
Rapid testing nhấn mạnh phát triển kỹ năng và phương pháp heuristic.
-
Một kỹ năng cốt lõi là khả năng tư duy phê phán. Do đó, hoài nghi và tách các quan sát từ suy luận.
-
Thiết kế Rapid testing là một quá trình tổ chức, điều khiển bởi một tập hợp các công nghệ tự súc tích (suy nghĩ của họ như những hướng dẫn) được thiết kế để đảm bảo rằng bạn không quên kiểm tra bất cứ điều gì quan trọng.
- Đối với tester mới, công nghệ tự động cung cấp các hướng dẫn cơ bản.
- Đối với tester có kinh nghiệm, các chẩn đoán dựa vào kinh nghiệm, do đó ngay cả khi áp lực, bạn thực hiện như một chuyên gia, sẽ kiểm thử tốt hơn và vẫn hoàn toàn trách nhiệm đối với công việc của bạn.
-
Một công cụ quan trọng để có thể áp dụng Rapid Testing trong quá trình kiểm thử một cách hiệu quả đó là Exploratory Testing. Thay vì dành thời gian chỉ để thiết kế Test Case, và sau đó chỉ áp dụng các Test Case đó một cách độc lập và riêng biệt, Exploratory Testing phân chia quá trình kiểm thử ra từng giai đoạn ngắn hơn tương ứng với quy trình phát triển phần mềm Agile. Trong từng giai đoạn đó, các Tester vẫn sẽ thiết kế Test Case, sau đó áp dụng chúng vào phần mềm. Quá trình này cứ thế được lặp đi lặp lại nhiều lần dựa trên những thông tin mà họ có, và làm cho phần mềm ngày càng hoàn thiện hơn.
-
Tester có kinh nghiệm sẽ tìm hiểu làm thế nào để nói lên những quy trình kiểm thử mà bạn đã thực hành trực quan. Tester mới vào nghề, bài tập thực hành kiểm thử giúp bạn có được kinh nghiệm quan trọng.
Kết Luận
Qua bài viết này, mình hy vọng sẽ giúp được các bạn biết thêm về một phương pháp mới trong ngành KTPM, đồng thời có thể phần nào giúp các bạn cải thiện và phát triển được chất lượng công việc.