對應三個參數的所有組合情況就是12個測試用例。但是我們需要的是在一組測試用例中能夠保證至少一個用例中的每個其他變量的每個取值都配對過。這種情況就可以得到較少的測試用例,我們就可以得到6個測試用例。
用例 |
操作系統 |
打印機 |
是否雙面打印 |
1 |
Win 98 |
HP 4050 |
是 |
2 |
Win 98 |
HP 4100 |
否 |
3 |
Win XP |
HP 4050 |
否 |
4 |
Win XP |
HP 4100 |
是 |
5 |
Win 7 |
HP 4050 |
是 |
6 |
Win 7 |
HP 4100 |
否 |
事實上,如果這三個參數中的某兩個參數的值的任意不同的組合會觸發一個bug的話,那表格上的那組測試用例也可以發現該bug。當三個特殊的值組合在一起觸發的某個bug,那表格上的那組測試用例不一定能發現該bug,但是至少我們覆蓋了所有的全對偶(all pairs)。
相對于所有組合情況來說,全對偶的測試覆蓋率要容易很多。例如,如果你想測試10個參數且都有26個值的功能,所有組合情況將導致存在141,167,095,653,376個測試用例。而全對偶測試法就只要測試1094個測試用例就可以。
為了能較好的使用allpairs工具,測試人員需要在表格上列出所有的參數和參數值,一般可以使用Excel工具來表達:
操作系統 |
打印機 |
是否雙面打印 |
Win 98 |
HP 4050 |
是 |
Win XP |
HP 4100 |
否 |
Win 7 |
然后將這個Excel表格拷貝到一個text文件(暫時命名為vars.txt),在Dos平臺上運行Allpairs程序,使用如下的命令:
ALLPAIRS VARS.TXT > TESTCASES.TXT
如果測試人員也安裝了Perl,也可以使用如下的命令:
PERL ALLPAIRS.PL VARS.TXT > TESTCASES.TXT
TESTCASES.TXT文件里面的數據也適合拷貝到Excel文件中,類似于如下:
上圖的第一部分是測試用例的集合,那個”pairrings”列說明的是全對偶方法找到的唯一pairrings的數量。
上圖的第二部分是幫助測試人員了解全對偶方法的是怎么完成的。它列出了每個pair,且顯示了這個pair在測試用例列表中出現的次數,且列表出了每個pair出現的時候所對應的測試用例的用例號。
James Bach 也在《軟件測試經驗與教訓》中詳細的說明任何使用全對偶的測試方法進行組合測試。主要分三大步驟,第一個步驟是 從域劃分開始,確定和壓縮每個參數所取的值和個數;第二個步驟是 獲得全單值,保證覆蓋到每個變量的每個重要取值;第三個步驟是 獲得全對偶,保證每個變量的每個取值都要與至少一個測試用例中的每個其他變量的每個取值配對。同時他還表示僅僅使用全對偶測試是有風險的,與全單值一樣,測試人員可能知道被廣泛應用的特定組合,或可能有麻煩的組合。
原文轉自:http://www.anti-gravitydesign.com