KỸ THUẬT VIẾT TEST CASE 1: Phân tích giá trị biên
Trong phát triển phần mềm, viết test case (trường hợp kiểm thử) là một công việc quan trọng đối với một tester. Bởi nếu thiết kế test case không hiệu quả sẽ tiêu tốn rất nhiều thời gian và tiền bạc, dẫn đến việc chất lượng sản phẩm không được đảm bảo. Hiện nay có nhiều kỹ thuật thiết kế test case khác nhau. Trong bài blog này, chúng ta sẽ cùng đi tìm hiểu kỹ thuật thiết kế test case đầu tiên: “Phân tích giá trị biên”
Giả sử trong một phần mềm có trường yêu cầu người dùng nhập độ tuổi từ 18-60 tuổi. Vậy tester sẽ phải ngồi test hết lần lượt từng giá trị trong phân vùng này hay sao? Tất nhiên, nếu làm như vậy sẽ tốn rất nhiều thời gian và công sức. Vậy nên, kỹ thuật “Phân tích giá trị biên” sẽ hỗ trợ cho người tester khi thực hiện những test case như thế này. Vậy “Phân tích giá trị biên” là gì?
Định nghĩa:
- Phân tích giá trị biên (Boundary value analysis) thuộc nhóm kỹ thuật thiết kế test case dựa trên specification-based (Đặc điểm kỹ thuật).
- Phân tích giá trị biên là quá trình kiểm tra các điểm ranh giới giữa các phân vùng (điểm cao nhất – điểm thấp nhất; điểm tối đa – điểm tối thiểu…) của giá trị đầu vào (input).
- Kiểm thử giá trị biên được dùng để tìm ra lỗi ở các giá trị biên.
- Có 2 trường hợp có thể xảy ra khi thực hiện test case giá trị biên:
+ Nếu input nằm trong boundary value thì test case là positive testing (kiểm thử tích cực).
+ Nếu input nằm ngoài boundary value thì test case là negative testing (kiểm thử tiêu cực).
Các loại giá trị biên đặc biệt:
Kiểm thử biên mạnh:
- Kiểm thử biên mạnh (robustness testing) là một mở rộng đơn giản của phân tích giá trị biên.
- Ngoài những giá trị biên bổ sung thêm hai giá trị ngoài biên: Giá trị ngay trên giá trị cực đại (max+) và giá trị ngay dưới giá trị cực tiểu (min-).
- Mục đích chính là xem chương trình có kiểm tra giá trị hợp lệ đầu vào không.
Kiểm thử trường hợp xấu nhất:
- Khi các biến có tương tác với nhau (khi nhiều hơn 1 biến nhận các giá trị gần biên) thì cần kiểm tra các bộ giá trị kết hợp các cực trị này.
- Có thể kết hợp với kiểm thử mạnh.
Kiểm thử giá trị đặc biệt:
- Kiểm thử giá trị đặc biệt là phương pháp được thực hiện nhiều nhất trên thực tế, nó cũng trực quan nhất và không có dạng cố định.
- Sử dụng kỹ nghệ và kiến thức miền ứng dụng để phán đoán và đưa ra ca kiểm thử. Mặc dù mang tính chủ quan cao nhưng đây vẫn là một phương pháp hiệu quả để phát hiện khuyết điểm của phần mềm.
Ưu và nhược điểm:
Ưu điểm:
- Kỹ thuật phân tích giá trị biên tập trung vào việc kiểm thử các giá trị biên của miền inputs để thiết kế test case do “lỗi thường tiềm ẩn tại các ngõ ngách và tập hợp tại biên”.
- Tiết kiệm thời gian thiết kế test case và thực hiện test.
Nhược điểm:
Phương pháp này chỉ hiệu quả trong trường hợp các đối số đầu vào (input variables) độc lập với nhau và mỗi đối số đều có một miền giá trị hữu hạn.
Nguyên tắc xác định giá trị biên:
- Giá trị biên nhỏ nhất – 1
- Giá trị biên nhỏ nhất
- Giá trị biên nhỏ nhất + 1
- Giá trị biên lớn nhất – 1
- Giá trị biên lớn nhất
- Giá trị biên lớn nhất + 1
Quay trở lại với ví dụ đầu tiên ta có ở phần mở bài: “ Nhập độ tuổi từ 18 đến 60 tuổi”, khi sử dụng kỹ thuật phân tích giá trị biên, ta sẽ có những test case như sau:
- Test case 1: Enter value 17 (18-1) = Invalid
- Test case 2: Enter value 18 = Valid
- Test case 3: Enter value 19 (18+1) = Valid
- Test case 4: Enter value 59 (60-1) = Valid
- Test case 5: Enter value 60 = Valid
- Test case 6: Enter value 61 (60+1) = Invalid