KỸ THUẬT KIỂM THỬ CẶP ĐÔI - PAIRWISE TESTING
Bài đăng này đã không được cập nhật trong 3 năm
1 Định nghĩa
Định nghĩa
Pairwise Testing hay còn gọi là kiểm thử đôi một là một trường hợp đặc biệt của kiểm thử tất cả các tổ hợp. Kiểm thử đôi một chỉ yêu cầu mỗi cặp giá trị của ( xi , xj), 1≤ I ≠ j ≤ n xuất hiện trong một ca kiểm thử nào đó. Một ca kiểm thử thường có nhiều cặp giá trị này với các i,j khác nhau nên dễ thấy số lượng ca kiểm thử sẽ giảm đáng kể so với tổ hợp tất cả các ca kiểm thử.
2 Các bước thực hiện
• Bước 1: Xác định tất cả các biến đầu vào
• Bước 2: Xác định số lượng giá trị của mỗi biến có thể nhận để xác định được số lượng lớn nhất
• Bước 3: Tìm ma trận trực giao thích hợp với số lượng hàng nhỏ nhất với hai số cột và giá trị của các phần tử ma trận đã xác định ở bước 1 và bước 2
• Bước 4: Ánh xạ các biến với các cột của ma trận và giá trị của biến với các phần tử của ma trận
• Bước 5: Kiểm tra còn phần tử nào trong ma trận chưa được ánh xạ không? Chọn các giá trị hợp lệ tùy ý cho những phần tử ngày
• Bước 6: Chuyển các hàng của ma trận thành các ca kiểm thử.
3 Ví dụ
Kiểm thử cặp dữ liệu (Pairwise Testing)
Đầu tiên chúng ta hãy xem xét khái niệm kiểm thử kết hợp tất cả (All Combination Testing) hay có thể gọi theo 1 cụm từ khác là allwise. Nó được hiểu đơn giản là kiểm thử tất cả các kết hợp có thể có của các giá trị của 1 tập các biến. Chúng ta xét ví dụ sau:
Một ứng dụng gồm có:
-
Checkbox
-
Radio Button
-
Textbox có thể nhận những giá trị từ 1 đến 100
Dưới đây là các giá trị mà mỗi một trong các đối tượng trên có thể nhận:
-
Checkbox: Checked/ Unchecked
-
Radio: ON/ OFF
-
Textbox: từ 1 đến 100
Kết hợp các trường hợp có thể tính toán như dưới đây:
-
Checkbox = 2
-
Radio Button = 2
-
Textbox = 100
Theo như All Combination Testing, tổng số trường hợp kiểm thử là = 2 * 2 * 100 = 400. Thay vì như vậy chúng ta có thể xem xét và áp dụng kiểm thử cặp dữ liệu Pairwise Testing. Pairwise được hiểu là tất cả các kết hợp đôi một (cặp) có thể có của các giá trị của tập biến đầu vào. Mỗi cặp giá trị đó sẽ được xuất hiện ít nhất 1 lần trong 1 trường hợp kiểm thử. Nó là 1 trường hợp đặt biệt của All Combination Testing
Vậy ta xét ví dụ trên:
- Check Box và Radio Button không thể giảm, vì vậy mỗi kiểu sẽ có 2 kết hợp (ON hoặc OFF)
- Các giá trị của Text Box có thể được giảm thành ba đầu vào (Valid Int, Invalid Int, AlphaSpecialCharacter)
Như vậy, chúng ta sẽ tính toán số trường hợp sử dụng kỹ thuật kiểm thử phần mềm là 2 * 2 * 3 = 12 (bao gồm cả các trường hợp không hợp lệ)
Textbox | Checkbox | Radio Button |
---|---|---|
Valid Int | Cheked | ON |
Valid Int | Cheked | OFF |
Valid Int | Uncheked | ON |
Valid Int | Uncheked | OFF |
Invalid Int | Cheked | ON |
Invalid Int | Cheked | OFF |
Invalid Int | Uncheked | ON |
Invalid Int | Uncheked | OFF |
AlphaSpecialCharacter | Cheked | ON |
AlphaSpecialCharacter | Cheked | OFF |
AlphaSpecialCharacter | Uncheked | ON |
AlphaSpecialCharacter | Uncheked | OFF |
Bảng 1: Bảng sinh trường hợp test
Tích kiệm các trường hợp kiểm thử như vậy nhưng việc chúng có hiệu quả trong việc cover lỗi hay không?
Kiểm thử được tất cả các trường hợp có thể có của giá trị của tập biến đương nhiên sẽ tốt hơn còn Pairwise thì chỉ có thể phát hiên được 70% lỗi. Nhưng Pairwise Testing giúp giảm được số lượng test case và hiệu năng công việc cũng cao hơn.
4 Ưu và nhược điểm của Pairwise Testing khi làm việc
Ưu điểm
• Làm giảm số lượng test case giúp cho tester giảm được khối lượng công việc mà vẫn có thể bao quát các lỗi
• Tốn ít thời gian test toàn bộ các test case từ đó giảm chi phí cho quá trình test
• Dễ automatic vì có nhiều tool support
• Xét được hết các trường hợp đầu vào kể cả trường hợp ngẫu nhiên của người dùng
• Năng suất cao
Nhược điểm
• Số lượng giá trị của mỗi đầu vào tăng, tạo ra sự tăng nhanh các ca kiểm thử
• Không áp dụng cho tất cả các bài toán được: 1 số bài toán không có điều kiện rõ ràng thì khó có thể áp dụng được
• Khi các giá trị được chọn cho các biến không phù hợp nó sẽ gây bất lợi cho việc viết testcase và thực hiện test.
• Sự kết hợp giữa các input đầu vào có xác suất lỗi xảy ra cao có thể bị bỏ lỡ trong khi chọn data test. Điều này có thể dẫn đến việc giảm tỷ lệ tìm ra bug / defect.
• Nếu các biến kết hợp cũng như data test không được hiểu một cách chính xác, thì case đó không sử dụng được.
Tài liệu tham khảo
[1] Phạm Ngọc Hùng, Trương Anh Hoàng và Đặng Văn Hưng (01-2014)- Giáo trình kiểm thử phần mềm.
[2] Giáo trình tài liệu ISTQB-2010
All rights reserved