Tối ưu hoá quá trình kiểm thử phần mềm với phương pháp Rapid Testing

Chào moi người, hôm này mình xin giới thiệu sơ lược về Rapid Testing, một phương pháp kiểm thử được tạo ra dựa trên phương pháp Waterfall, và hiện thường đượ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ù. 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 (trích từ nguồn: http://www.hcmc-stc.org/blog/rapid-testing-and-james-bach-talk-on-rapid-testing-at-stc-conference-vietnam-july-2016), được đúc kết từ blog cá nhân của James Bach (mình xin bổ sung thêm rằng, ông cũ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).

Mô hình kiểm James Bachthử Waterfall và quá trình lập một bản kế hoạch chi tiết trước khi bắt tay vào thao tác kiểm thử dường như rất phổ biến trong ngành kiểm thử phần mềm (KTPM) vào những năm 70 tới 80, khác hẳn với phương pháp kiểm thử Agile hiện nay. Trong quá khứ, các Tester phải chuẩn bị những bản kế hoạch thật chi tiết và tỉ mỉ trước khi bắt tay vào quá trình kiểm thử một phần mềm nào đó. Hiện nay, các Tester đã áp dụng phương pháp Rapid và Agile Testing, tối ưu hóa cho việc KTPM và đảm bảo được chất lượng tốt nhất cho sản phẩm.

Trong phương pháp kiểm thử truyền thống, đội ngũ KTPM ngoài việc chịu trách nhiệm về việc việc lập kế hoạch kiểm thử một cách cực kì chi tiết, họ  còn phải thiết kế những Test Case và băt đầu việc KTPM ngay sau đó.

Theo James Bach, một vấn đề nảy sinh trong phương pháp kiểm thử truyền thống là những suy nghĩ, và lập luận của các Tester dường như bị bỏ qua trong khi lại quá chú trọng về việc soạn thảo kế hoạch kiểm thử.

Không giống như phương pháp truyền thống, Rapid Testing nhấn mạnh vào cách chia nhỏ quá trình kiểm thử ra làm nhiều giai đoạn nhỏ, sau đó các Tester sẽ thực hiện quá trình kiểm thử trên từng giai đoạn (bao gồm cả việc lên kế hoạch, thiết kế Test Case và áp dụng các Test Case lên phần mềm), và quá trình này được lặp đi lặp lại nhiều lần để có thể đáp ứng, thõa mãn được nhu cầu của khách hàng một cách nhanh chóng hơn. Phương pháp này chú trọng vào việc loại một số bước dư thừa trong quá trình KTPM và tận dụng được nguồn lực và thời gian tối đa trong suốt dự á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.

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.

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.