Thiết kế trường hợp kiểm thử
Khi đã xác định các điều kiện muốn kiểm thử, trong trường hợp này bằng cách sử dụng phân vùng tương đương và phân tích giá trị biên, bước tiếp theo là thiết kế trường hợp kiểm thử. Càng nhiều điều kiện kiểm thử có thể được bao phủ trong một kịch bản kiểm thử, thì càng cần ít trường hợp kiểm thử hơn để bao quát tất cả các điều kiện. Đây thường là cách tiếp cận tốt nhất để thực hiện các bài kiểm thử tích cực và cho các bài kiểm thử mà bạn tự tin là sẽ vượt qua. Tuy nhiên, nếu một bài kiểm thử không thành công, thì cần tìm hiểu lý do tại sao nó không thành công – điều kiện kiểm thử nào đã được xử lý không chính xác? chúng ta cần phải có được một cân bằng tốt giữa việc bao phủ quá nhiều và quá ít điều kiện kiểm thử.
Hãy xem làm thế nào một trường hợp kiểm thử có thể bao gồm một hoặc nhiều điều kiện kiểm thử. Sử dụng ví dụ về số dư ngân hàng, bài kiểm thử đầu tiên có thể là của một khách hàng mới với số dư là $500. Điều này sẽ bao gồm số dư trong phân vùng từ $100.01 đến $999.99 và phân vùng đầu ra có lãi suất 5%. Các phân vùng khác mà chưa được thảo luận cũng sẽ được đề cập. ví dụ: khách hàng hợp lệ, khách hàng mới, khách hàng chỉ có một tài khoản…. Tất cả các phân vùng được đề cập trong bài kiểm thử này đều là phân vùng hợp lệ.
Khi tiến hành kiểm thử các phân vùng không hợp lệ, tùy chọn an toàn nhất có lẽ là cố gắng chỉ bao phủ một điều kiện kiểm thử không hợp lệ cho mỗi trường hợp kiểm thử. Điều này là do các chương trình có thể ngừng xử lý đầu vào ngay khi gặp sự cố đầu tiên. Vì vậy, nếu có tên khách hàng không hợp lệ, địa chỉ không hợp lệ và số dư không hợp lệ, bạn có thể nhận được thông báo lỗi cho biết “đầu vào không hợp lệ” và bạn không biết liệu việc kiểm thử chỉ phát hiện một đầu vào không hợp lệ hay tất cả chúng không hợp lệ. (Đây là cũng là lý do tại sao các thông báo lỗi cụ thể tốt hơn nhiều so với thông báo chung!)
Tuy nhiên, nếu biết rằng phần mềm được kiểm thử được yêu cầu xử lý tất cả đầu vào bất kể tính hợp lệ của nó, thì có thể tiếp tục như trước đây và thiết kế các trường hợp kiểm thử bao gồm càng nhiều điều kiện không hợp lệ trong một lần càng tốt. Ví dụ: nếu mọi trường không hợp lệ trong biểu mẫu đều có một số dòng chữ màu đỏ ở trên hoặc bên dưới trường cho biết rằng trường này không hợp lệ và lý do tại sao, thì bạn biết rằng từng trường đã được kiểm thử, vì vậy bạn đã kiểm thử tất cả quá trình xử lý lỗi trong một lần kiểm thử. Trong cả hai trường hợp, nên có các trường hợp kiểm thử riêng bao gồm các điều kiện hợp lệ và không hợp lệ.
Để bao phủ các trường hợp kiểm thử giá trị biên, có thể kết hợp tất cả các giá trị biên hợp lệ tối thiểu cho một nhóm trường vào một trường hợp kiểm thử và cả các giá trị biên tối đa. Các giá trị biên không hợp lệ có thể được kiểm thử cùng nhau nếu việc xác thực được thực hiện trên mọi trường; mặt khác, chúng nên được kiểm thử riêng biệt, như với các phân vùng không hợp lệ.
Tại sao cả phân vùng tương đương và phân tích giá trị biên?
Về mặt kỹ thuật, bởi vì mọi giá trị biên nằm trong một số phân vùng, nếu chỉ thực hiện phân tích giá trị biên, bạn cũng sẽ kiểm thử mọi phân vùng tương đương.
Tuy nhiên, cách tiếp cận này có thể gây ra sự cố nếu giá trị đó không thành công (giá trị biên bị lỗi hay toàn bộ phân vùng bị lỗi?). Cũng chỉ bằng cách kiểm thử giá trị biên, có thể sẽ không mang lại cho người dùng nhiều sự tin tưởng vì chúng ta đang sử dụng các giá trị cực trị thay vì giá trị bình thường. Các giá trị biên cũng có thể khó thiết lập hơn (và do đó tốn kém hơn).
Ví dụ: trong ví dụ về bản sao của máy in được mô tả trước đó, chúng ta đã xác định các giá trị biên sau:
Giả sử chỉ kiểm tra các giá trị biên hợp lệ 1 và 99 và không có giá trị nào ở giữa. Nếu cả hai bài kiểm thử đều vượt qua, điều này dường như chỉ ra rằng tất cả các giá trị ở giữa cũng sẽ hoạt động. Tuy nhiên, giả sử rằng một trang được in chính xác, nhưng 99 trang thì không. Bây giờ chúng ta không biết liệu có bất kỳ tập hợp nhiều hơn một trang nào hoạt động hay không, vì vậy điều đầu tiên sẽ làm là kiểm tra 10 trang nói trên, tức là một giá trị từ phân vùng tương đương.
Chúng tôi khuyên bạn nên kiểm thử các phân vùng riêng biệt với các giá trị biên (điều này có nghĩa là chọn các giá trị phân vùng KHÔNG phải là các giá trị hiên).
Tuy nhiên, nếu sử dụng cách tiếp cận giá trị biên ba giá trị, thì bạn sẽ có các giá trị biên hợp lệ là 1, 2, 98 và 99, vì vậy việc có một giá trị tương đương riêng biệt ngoài hai giá trị biên bổ sung sẽ không mang lại nhiều lợi ích hơn. Nhưng lưu ý rằng một giá trị tương đương, ví dụ: 10, thay thế cả hai giá trị biên bổ sung (2 và 98). Đây là lý do tại sao phân vùng tương đương với phân tích giá trị biên hai giá trị hiệu quả hơn so với phân tích giá trị biên ba giá trị.
Những phân vùng và giá trị biên nào bạn quyết định thực hiện (bạn không cần để kiểm thử tất cả chúng), và cái nào bạn quyết định kiểm thử trước, tùy thuộc vào mục tiêu kiểm thử của bạn. Nếu mục tiêu của bạn là cách tiếp cận kỹ lưỡng nhất, thì hãy làm theo quy trình kiểm thử phân vùng hợp lệ trước, sau đó là phân vùng không hợp lệ, sau đó là giá trị biên hợp lệ và cuối cùng là giá trị biên không hợp lệ. Tuy nhiên, nếu bạn đang chịu áp lực về thời gian và không thể kiểm thử mọi thứ, thì mục tiêu kiểm thử của bạn sẽ giúp bạn quyết định kiểm thử cái gì. Nếu bạn theo đuổi sự tự tin của người dùng đối với các giao dịch điển hình với số lần kiểm thử tối thiểu, thì bạn chỉ có thể thực hiện các phân vùng hợp lệ. Nếu bạn muốn tìm càng nhiều lỗi càng nhanh càng tốt, bạn có thể bắt đầu với các giá trị biên, cả hợp lệ và không hợp lệ. Nếu bạn muốn tự tin rằng hệ thống sẽ xử lý các đầu vào xấu một cách chính xác, bạn có thể thực hiện chủ yếu các phân vùng và ranh giới không hợp lệ. Kinh nghiệm trước đây của bạn về các loại lỗi được tìm thấy có thể giúp bạn tìm ra các lỗi tương tự; ví dụ: nếu thường có một số lỗi về giá trị biên, thì bạn sẽ bắt đầu bằng cách kiểm tra các giá trị biên.
Phân vùng tương đương và phân tích giá trị biên được mô tả trong hầu hết các sách về kiểm thử, bao gồm [Myers, 1979] và [Copeland, 2003]. Ví dụ về các loại lớp tương đương cần chú ý được đưa ra trong [Kaner et al., 1993]
Phân vùng tương đương và phân tích giá trị biên được mô tả trong BS7925-2, bao gồm thiết kế kiểm thử và đo phạm vi bao phủ.
Bản gốc Tiếng Anh các bạn có thể Tải về Tại đây