Pairwise Testing Là Gì?
Pairwise testing là một kỹ thuật kiểm thử phần mềm được sử dụng để tạo ra một tập hợp các bộ kiểm thử tối ưu bằng cách chọn các giá trị đầu vào sao cho mọi cặp giá trị có thể xảy ra đều được kiểm tra ít nhất một lần. Mục tiêu của pairwise testing là giảm số lượng bộ kiểm thử cần thực hiện mà vẫn đảm bảo độ phủ đầy đủ cho các cặp giá trị đầu vào quan trọng.
Trong nhiều trường hợp, việc kiểm thử tất cả các cặp giá trị đầu vào có thể dẫn đến một số lượng bộ kiểm thử lớn và không hiệu quả. Pairwise testing giúp giảm số lượng này bằng cách chỉ chọn một cặp giá trị cho mỗi cặp điều kiện đầu vào. Cách này vẫn đảm bảo rằng tất cả các cặp giá trị quan trọng được kiểm tra ít nhất một lần.
Xây Dựng Các Bài Kiểm Thử Bằng Kỹ Thuật Pairwise Testing
Hãy cùng xem xét một ví dụ sau đây.
Test | Factor 1 | Factor 2 |
---|---|---|
1 | 0 | 0 |
2 | 0 | 1 |
3 | 1 | 0 |
4 | 1 | 1 |
Bảng trên cho thấy mảng trực giao đơn giản nhất có thể. Có hai yếu tố, yếu tố 1 và yếu tố 2. Mỗi yếu tố có hai lựa chọn, 0 và 1. Như bạn có thể thấy, mỗi tùy chọn cho từng yếu tố được biểu diễn trong mảng trực giao. Hơn nữa, mỗi cặp tùy chọn trên hai yếu tố được trình bày trong một (và chỉ một) hàng.
Được rồi, đây không phải là một bất ngờ. Có hai tùy chọn và có bốn hàng, hai lần hai là bốn. Cho đến nay, không có gì thú vị xảy ra với các mảng trực giao.
Test | Factor 1 | Factor 2 | Factor 3 |
---|---|---|---|
1 | 0 | 0 | 0 |
2 | 0 | 1 | 1 |
3 | 1 | 0 | 1 |
4 | 1 | 1 | 0 |
Bảng thứ hai là nơi những điều thú vị bắt đầu xảy ra. Chúng ta có một mảng trực giao lớn hơn một chút. Có ba yếu tố. Có hai lựa chọn cho mỗi yếu tố. Nhưng vẫn chỉ có bốn hàng. Làm thế nào điều đó xảy ra? Có phải chúng ta thiếu cặp? Không, chúng ta không. Lưu ý rằng có bốn cặp cho mỗi cặp yếu tố, như trước đây. Vì vậy, hãy liệt kê chúng:
- Đối với cặp thừa số đầu tiên, yếu tố 1 và yếu tố 2, chúng ta có 00, 01, 10, 11, ở các hàng 1, 2, 3 và 4.
- Đối với cặp thừa số thứ hai, yếu tố 1 và yếu tố 3, chúng ta có 00, 01, 11 và 10, ở các hàng 1, 2, 3 và 4. Cả bốn cặp, chỉ xảy ra ở một hàng khác.
- Đối với cặp thừa số thứ ba, yếu tố 2 và yếu tố 3, chúng ta có 00, 11, 01 và 10, ở các hàng 1, 2, 3 và 4.
Tất cả bốn cặp, một lần nữa, chỉ xảy ra ở một hàng khác với hàng trước các cặp yếu tố.
Bây giờ, nếu chúng ta muốn tất cả các bộ ba, chúng ta sẽ phải có tám hàng. Tuy nhiên, trong thử nghiệm theo cặp, chúng ta đã từ bỏ rõ ràng mọi ý định đạt được mức độ phù hợp đó. Chúng ta sẽ giả định rằng thử nghiệm mọi phương án cho mọi nhân tố và mọi cặp phương án cho mọi cặp nhân tố là đủ.
Ba quy tắc để chọn một mảng trực giao:
- Đầu tiên, số cột ít nhất phải có là số yếu tố (factors). Bây giờ, bạn thường thấy một mảng có quá nhiều cột. Không có gì. Nếu có quá nhiều cột, bạn có thể bỏ các cột phụ.
- Thứ hai, ít nhất phải có đủ số trong các cột để chứa các tùy chọn cho mỗi yếu tố. Trong các ví dụ trước, chỉ có hai số, 0 và 1. Nếu bạn có ba tùy chọn cho một thừa số, bạn sẽ phải có ít nhất ba số 0, 1 và 2. Một lần nữa, bạn sẽ thường thấy một mảng có quá nhiều số. Không thành vấn đề. Các số dự phòng không ánh xạ tới bất kỳ tùy chọn nào có thể được thay thế bằng bất kỳ tùy chọn hợp lệ nào cho yếu tố đó, điều này được gọi là “lựa chọn của người kiểm tra – tester’s choice” và thường được hiển thị bằng dấu ngã (~).
- Thứ ba, số hàng ít nhất phải có bằng tích của hai số tùy chọn lớn nhất. Ví dụ: nếu một yếu tố có 4 tùy chọn và yếu tố khác có 3 và yếu tố khác có 2, thì bạn cần có ít nhất 4 nhân 3 hoặc 12 hàng. Một lần nữa, bạn sẽ thường thấy một mảng có quá nhiều hàng. Ở đây chúng ta có một cái gì đó của một vấn đề. Nếu có quá nhiều hàng, bạn không thể bỏ chúng nếu tồn tại các cặp thú vị trong hàng. Vì vậy, bạn sẽ phải xem xét kỹ lưỡng các hàng, hai hàng một lúc, để xem liệu bạn có thể kết hợp chúng bằng các tùy chọn tester’s choice hay không.
Bài Tập Sử Dụng Kỹ Thuật Pairwise Testing
Giả sử rằng bạn đang lập kế hoạch thử nghiệm khả năng tương thích của hệ thống HELLOCARMS để sử dụng Internet trong tương lai. Globobank dự định hỗ trợ các PC chạy như sau: Hệ điều hành: Windows XP, Windows Vista hoặc Mac Trình duyệt: Internet Explorer (nhưng chỉ trên PC Windows), Firefox hoặc Opera Globobank dự định hỗ trợ tốc độ kết nối của cả quay số (dial-up) và băng thông rộng (broadband)
Đầu tiên, chúng ta cần chọn một mảng trực giao thích hợp. Có ba yếu tố và tối đa ba tùy chọn cho mỗi yếu tố. Vì vậy, chúng ta cần một mảng có ba cột, ba số trên mỗi cột và chín hàng; đó là mảng như hình dưới đây.
Test | OS | Browser | Speed |
---|---|---|---|
1 | XP | IE | Dialup |
2 | XP | Firefox | Broadband |
3 | XP | Opera | ~ |
4 | Vista | IE | Broadband |
5 | Vista | Firefox | ~ |
6 | Vista | Opera | Dialup |
7 | Mac | IE | ~ |
8 | Mac | Firefox | Dialup |
9 | Mac | Opera | Broadband |
Còn một yếu tố cần xem xét. Theo như yêu cầu đặc tả “Chỉ hỗ trợ Internet Explorer trên các hệ thống Windows”. Vì vậy, trong trường hợp này, chúng ta có thể xoá hàng 7.
Xây Dựng Bảng Pairwise Sử Dụng Tool
Việc xây dựng bảng không quá khó nếu các yêu cầu đầu vào không quá nhiều. Tuy nhiên, nếu các yếu tố này được mở rộng, có lẽ sẽ hữu hiệu hơn nếu bạn sử dụng công cụ hỗ trợ. Thật may hiện nay có rất nhiều công cụ hỗ trợ việc tạo bảng Pairwise cả có phí và miễn phí. Bạn có thể tìm kiếm trong https://www.pairwise.org/.
Với ví dụ trên, mình sẽ demo trường hợp sử dụng Pairwise Online Tool để tạo bảng kết hợp.
Bước 1: Định nghĩa các yếu tố đầu vào.

Bước 2: Thêm điều kiện ràng buộc
Trình duyệt IE chỉ hỗ trợ trên PC Windows
Click vào nút “Edit Conditions” để thêm điều kiện ràng buộc

Bước 3: Tạo Pairwise.
Click vào nút “Generate Pairwise” và công cụ sẽ tạo ra bảng pairwise dưới dạng excel.

Khả Năng Áp Dụng
Vấn đề có quá nhiều sự kết hợp của các giá trị tham số thể hiện ở ít nhất hai tình huống khác nhau liên quan đến thử nghiệm. Một số mục kiểm tra bao gồm một số tham số, mỗi mục có một số giá trị có thể có, ví dụ: một màn hình có một số trường đầu vào. Trong trường hợp này, sự kết hợp của các giá trị tham số tạo nên dữ liệu đầu vào cho các test case. Hơn nữa, một số hệ thống có thể được cấu hình theo một số kích thước, dẫn đến không gian cấu hình có thể lớn. Trong cả hai tình huống này, thử nghiệm theo cặp có thể được sử dụng để xác định một tập hợp con các kết hợp có thể quản lý được và khả thi. Đối với các tham số có nhiều giá trị, phân vùng tương đương hoặc một số cơ chế lựa chọn khác trước tiên có thể được áp dụng cho từng tham số riêng lẻ để giảm số lượng giá trị cho từng tham số, trước khi áp dụng thử nghiệm theo cặp để giảm tập hợp các kết hợp kết quả. Việc nắm bắt các tham số và giá trị của chúng trong cây phân loại (classification tree) sẽ hỗ trợ hoạt động này. Những kỹ thuật này thường được áp dụng cho các cấp độ tích hợp thành phần, hệ thống và tích hợp hệ thống.
Hạn Chế/ Khó Khăn
Hạn chế chính của các kỹ thuật này là giả định rằng kết quả của một vài thử nghiệm là đại diện cho tất cả các thử nghiệm và số ít thử nghiệm đó thể hiện mức sử dụng dự kiến. Nếu có sự tương tác không mong muốn giữa các biến nhất định, kỹ thuật kiểm tra này có thể không phát hiện được nếu sự kết hợp cụ thể đó không được kiểm tra. Những kỹ thuật này có thể khó giải thích cho những người đọc không rành về kỹ thuật vì họ có thể không hiểu được cách giảm thiểu các bài kiểm tra một cách hợp lý. Bất kỳ lời giải thích nào như vậy cần được cân bằng bằng cách đề cập đến kết quả từ các nghiên cứu thực nghiệm, cho thấy rằng trong lĩnh vực thiết bị y tế đang được nghiên cứu, 66% lỗi xảy ra do một biến duy nhất và 97% do một hoặc hai biến tương tác với nhau. Có một rủi ro còn tồn tại là việc kiểm tra theo cặp có thể không phát hiện được lỗi hệ thống khi ba hoặc nhiều biến số tương tác với nhau.
Việc xác định các tham số và giá trị tương ứng của chúng đôi khi khó đạt được. Vì vậy, nhiệm vụ này cần được thực hiện với sự hỗ trợ của cây phân loại (tree classification) nếu có thể. Việc tìm kiếm một tập hợp kết hợp tối thiểu để đáp ứng một mức độ bao phủ nhất định rất khó thực hiện thủ công. Các công cụ có thể được sử dụng để tìm tập hợp kết hợp nhỏ nhất có thể. Một số công cụ hỗ trợ khả năng buộc một số kết hợp được đưa vào hoặc loại trừ khỏi lựa chọn kết hợp cuối cùng. Nhà phân tích kiểm thử có thể sử dụng khả năng này để nhấn mạnh hoặc không nhấn mạnh các yếu tố dựa trên kiến thức về miền hoặc thông tin sử dụng sản phẩm.
Mức Độ Bao Phủ
Phạm vi bao phủ theo cặp 100% yêu cầu mọi cặp giá trị của bất kỳ cặp tham số nào đều phải được đưa vào ít nhất một kết hợp.
Loại Lỗi Phát Hiện
Loại lỗi phổ biến nhất được tìm thấy với kỹ thuật kiểm tra này là các lỗi liên quan đến giá trị kết hợp của hai tham số.