PHƯƠNG PHÁP HOẶC CHIẾN LƯỢC KIỂM THỬ
Việc lựa chọn các phương pháp (test approaches) hoặc chiến lược kiểm thử (strategies) là một yếu tố mạnh mẽ cho sự thành công của nỗ lực kiểm thử và độ chính xác của các kế hoạch và ước lượng kiểm thử. Yếu tố này nằm dưới sự kiểm soát của người kiểm thử (tester) và trưởng nhóm kiểm thử (test leader). Tất nhiên, có các lựa chọn cũng có nghĩa là bạn có thể sẽ phạm sai lầm, vì vậy chúng ta sẽ nói về cách chọn các chiến lược kiểm thử phù hợp một cách nhanh chóng. Tuy nhiên, trước tiên, hãy khảo sát các loại chiến lược kiểm thử chính thường thấy.
- Phân tích: Ví dụ chiến lược dựa trên rủi ro liên quan đến việc thực hiện phân tích rủi ro bằng cách sử dụng tài liệu dự án và đầu vào của các bên liên quan, sau đó lập kế hoạch, ước lượng, thiết kế và ưu tiên các kiểm thử dựa trên rủi ro. (Chúng ta sẽ nói nhiều hơn về phân tích rủi ro ở phần sau của chương này.) Một chiến lược kiểm thử phân tích khác là chiến lược dựa trên yêu cầu, trong đó phân tích đặc tả yêu cầu tạo cơ sở cho việc lập kế hoạch, ước lượng và thiết kếkiểm thử. Các chiến lược kiểm thử phân tích có điểm chung là sử dụng một số kỹ thuật phân tích chính thức hoặc không chính thức, thường là trong giai đoạn yêu cầu và thiết kế của dự án.
- Dựa trên mô hình: Ví dụ bạn có thể xây dựng các mô hình toán học để tải và phản hồi cho các máy chủ thương mại điện tử và kiểm thử dựa trên mô hình đó. Nếu hành vi của hệ thống được kiểm thử phù hợp với dự đoán của mô hình, thì hệ thống được coi là đang hoạt động. Các chiến lược kiểm thử dựa trên mô hình có điểm chung là tạo ra hoặc lựa chọn một số mô hình chính thức hoặc không chính thức cho các hành vi quan trọng của hệ thống, thường là trong các giai đoạn yêu cầu và thiết kế của dự án.
- Có phương pháp: Ví dụ bạn có thể có một danh sách kiểm thử mà bạn đã tập hợp lại trong nhiều năm mà khuyến nghị lĩnh vực kiểm thử chính cần chạy hoặc bạn có thể tuân theo tiêu chuẩn ngành về chất lượng phần mềm, chẳng hạn như ISO 9126, cho phác thảo về các lĩnh vực kiểm thử chính. Sau đó, bạn thiết kế, triển khai và thực hiện các bài kiểm thử theo phác thảo này một cách có phương pháp. Các chiến lược kiểm thử có phương pháp có điểm chung là tuân thủ cách tiếp cận có hệ thống, được lên kế hoạch trước đã được phát triển nội bộ, được tập hợp từ các khái niệm khác nhau được phát triển nội bộ và thu thập từ bên ngoài hoặc được điều chỉnh đáng kể từ các ý tưởng bên ngoài và có thể có điểm tham gia sớm hoặc muộn để kiểm thử.
- Tuân thủ quy trình hoặc tiêu chuẩn: Ví dụ bạn có thể áp dụng tiêu chuẩn IEEE 829 cho việc kiểm thử của mình, sử dụng các cuốn sách như [Craig, 2002] hoặc [Drabick, 2004] để lấp đầy khoảng trống về phương pháp luận. Ngoài ra, bạn có thể áp dụng một trong các phương pháp linh hoạt như Lập trình cực đỉnh (Extreme Programming). Các chiến lược tuân thủ quy trình hoặc tiêu chuẩn có điểm chung phụ thuộc vào cách tiếp cận kiểm thử được phát triển bên ngoài, thường có rất ít (hoặc nếu có) tùy chỉnh và có thể có điểm tham gia sớm hoặc muộn để kiểm thử.
- Năng động: Ví dụ bạn có thể tạo một tập hợp nhẹ các dòng hướng dẫn kiểm thử tập trung vào khả năng thích ứng nhanh hoặc các điểm yếu đã biết trong phần mềm.
- Các chiến lược động: chẳng hạn như kiểm thử thăm dò, có điểm chung là tập trung vào việc tìm ra càng nhiều lỗi càng tốt trong quá trình thực hiện kiểm thử và thích ứng với thực tế của hệ thống đang kiểm thử khi nó được chuyển giao và chúng thường nhấn mạnh vào các giai đoạn kiểm thử sau. Ví dụ, xem cách tiếp cận dựa trên tấn công của [Whittaker, 2002] và [Whittaker, 2003] và cách tiếp cận thăm dò của [Kaner và cộng sự, 2002].
- Tư vấn hoặc hướng dẫn: Ví dụ bạn có thể yêu cầu người dùng hoặc nhà phát triển hệ thống cho bạn biết cần kiểm thử cái gì hoặc thậm chí dựa vào họ để thực hiện kiểm thử. Các chiến lược tư vấn hoặc chỉ dẫn có điểm chung là dựa vào một nhóm người không phải là người kiểm thử để hướng dẫn hoặc thực hiện nỗ lực kiểm thử và thường nhấn mạnh vào các giai đoạn kiểm thử sau này đơn giản là do thiếu nhận thức về giá trị của kiểm thử ban đầu.
- Chống lại hồi quy (Regression-averse): Ví dụ bạn có thể thử tự động hóa tất cả các bài kiểm thử chức năng hệ thống để bất cứ khi nào có bất kỳ thay đổi nào, bạn có thể chạy lại mọi bài kiểm thử để đảm bảo không có gì bị lỗi. Các chiến lược chống lại hồi quy có điểm chung là một bộ quy trình (thường là tự động) cho phép chúng phát hiện các lỗi hồi quy. Chiến lược chống lại hồi quy có thể liên quan đến việc tự động kiểm thử chức năng trước khi phát hành chức năng, trong trường hợp đó, nó yêu cầu kiểm thử sớm, nhưng đôi khi việc kiểm thử gần như hoàn toàn tập trung vào kiểm thử các chức năng đã được phát hành, theo một nghĩa nào đó, đây là một hình thức về sự tham gia kiểm thử sau khi phát hành.
Một số trong những chiến lược này mang tính phòng ngừa nhiều hơn, những chiến lược khác phản ứng mạnh hơn. Ví dụ các chiến lược kiểm thử phân tích liên quan đến phân tích trước cơ sở kiểm thử và có xu hướng xác định các vấn đề trong cơ sở kiểm thử trước khi thực hiện kiểm thử. Điều này cho phép loại bỏ sớm (và rẻ) các khiếm khuyết. Đó là một điểm mạnh của các phương pháp phòng ngừa.
Các chiến lược kiểm thử động tập trung vào giai đoạn thực hiện kiểm thử. Những chiến lược như vậy cho phép xác định vị trí của các lỗi và cụm lỗi mà có thể khó dự đoán trước cho đến khi bạn có hệ thống thực tế trước mặt. Đó là một sức mạnh của phương pháp tiếp cận phản ứng.
Thay vì xem việc lựa chọn các chiến lược, đặc biệt là các chiến lược phòng ngừa hoặc phản ứng, chúng tôi sẽ cho bạn biết bí mật tồi tệ nhất của kiểm thử (và nhiều nguyên tắc khác): Không có cách nào là tốt nhất. Chúng tôi khuyên bạn nên áp dụng bất kỳ phương pháp kiểm thử nào có ý nghĩa nhất trong tình huống cụ thể và bạn có thể thoải mái pha trộn các phương pháp.
Làm thế nào để bạn biết nên chọn hoặc kết hợp những chiến lược nào để có cơ hội thành công cao nhất? Có nhiều yếu tố để xem xét, nhưng có một số yếu tố quan trọng nhất cần được nhấn mạnh:
- Rủi ro: Kiểm thử liên quan đến quản lý rủi ro, vì vậy hãy xem xét các rủi ro và mức độ rủi ro. Đối với một ứng dụng được thiết lập tốt đang phát triển chậm, hồi quy là một rủi ro quan trọng, vì vậy các chiến lược chống lại hồi quy có ý nghĩa. Đối với một ứng dụng mới, phân tích rủi ro có thể tiết lộ các rủi ro khác nhau nếu bạn chọn chiến lược phân tích dựa trên rủi ro.
- Kỹ năng: Các chiến lược không chỉ được lựa chọn mà còn phải được thực hiện. Vì vậy, bạn phải xem xét những kỹ năng mà người kiểm thử sở hữu và thiếu. Một chiến lược tuân thủ tiêu chuẩn là một lựa chọn thông minh khi thiếu thời gian và kỹ năng trong nhóm để tạo ra cách tiếp cận của riêng mình.
- Mục tiêu: Kiểm thử nghiệm phải đáp ứng nhu cầu của các bên liên quan để hướng tới sự thành công. Nếu mục tiêu là tìm ra càng nhiều lỗi càng tốt với lượng thời gian và công sức đầu tư ban đầu tối thiểu (ví dụ: tại một phòng kiểm thử độc lập điển hình) thì một chiến lược động sẽ có ý nghĩa.
- Quy định: Đôi khi bạn phải đáp ứng không chỉ các bên liên quan, mà cả các cơ quan quản lý. Trong trường hợp này, bạn có thể cần phải đưa ra một chiến lược kiểm thử có phương pháp thỏa mãn các cơ quan quản lý này rằng bạn đã đáp ứng tất cả các yêu cầu của họ.
- Sản phẩm: Một số sản phẩm như hệ thống vũ khí và phần mềm hợp đồng phát triển có xu hướng có các yêu cầu rõ ràng. Điều này dẫn đến sức mạnh tổng hợp với một chiến lược phân tích dựa trên yêu cầu.
- Kinh doanh: Những cân nhắc về nghiệp vụ và tính liên tục trong nghiệp vụ thường rất quan trọng. Nếu bạn có thể sử dụng một hệ thống cũ làm mô hình cho một hệ thống mới, thì bạn có thể sử dụng chiến lược dựa trên mô hình.
Một nhóm giỏi đôi khi có thể chiến thắng trong một tình huống mà các yếu tố về tài liệu, quy trình và sự trì hoãn ảnh hưởng đến thành công của nó. Tuy nhiên, việc thực hiện một chiến lược thiếu khôn ngoan một cách tài tình cũng tương đương với việc đi rất nhanh trên đường cao tốc và đi sai hướng. Do đó, bạn phải đưa ra lựa chọn thông minh về chiến lược kiểm thử. Hơn nữa, bạn phải chọn các chiến lược kiểm thử có tính đến các yếu tố đã đề cập trước đó, lịch trình, ngân sách và các hạn chế về tính năng của dự án cũng như thực tế của tổ chức và chính trị.
Bản gốc Tiếng Anh các bạn có thể Tải về Tại đây