在測試設計過程中,大家都會遇到很多變量進行組合的情況,對相互組合的兩個或更多變量進行的測試活動就是組合測試,一般情況下都是使用組合測試法,但這種情況很多測試人員研究得不夠深入。測試人員需要開發或了解組合測試法中使用到的工具,通過程序得到用例組合才更加合理和全面,如果不在測試中一起改變某些變量,就會遺漏由不同的變量組合而觸發的錯誤。
首先介紹下組合測試法的定義,組合測試是一種測試用例生成方法。它將被測系統抽象出來的變量的取值進行組合并生成一組測試用例的過程,一般情況下,組合測試能夠在保證錯誤遺漏率的前提下采用較少的測試用例測試系統。但是對于如何從全集合的變量組合中抽取出有效的測試用例,會有不同的方法,兩因素(Pairwise)組合測試就是一種比較好的方法去挖掘出有效的測試用例組合。接下來介紹另外一種方法去自動生成較好的測試用例集,那就是全對偶測試法(All Pairs)。這些組合測試方法也是高級測試工程師必須掌握的。
現在我們假設存在3個變量:V1、V2、V3,V1變量存在3個值:A、B、C;V2變量存在2個值:D、E;V3變量存在2個值:F、G。按照組合測試法,可以組合出3*2*2 = 12種情況,也就是可以設計出12個測試用例。如果3個變量都存在5個不同的值的話,那就可以組合出5*5*5 = 125種情況,也就是需要設計出125個測試用例。測試專家James Bach使用全對偶測試法(All Pairs)將這125個測試用例壓縮成25個測試用例,從理論上來覆蓋變量組合的測試覆蓋率,全對偶測試法有個基本的原則是每個變量的每個取值都要與至少一個用例中的每個其他變量的每個取值配對。
為了讓業界測試人員更能方便的使用全對偶測試法產生的組合測試的測試用例,James Bach使用Perl語言開發了一個allpairs工具,接下來通過講解allpairs工具的使用方法來了解全對偶測試法(All Pairs)的實現原理和組合策略。本工具的下載地址:http://www.satisfice.com/tools/pairs.zip。
假設我們有兩個參數需要測試,比如操作系統,打印機,先列出每個參數的值:
操作系統:
Win 98
Win XP
Win 7
打印機:
HP 4050
HP 4100
為了測試所有的組合對(pairings),測試用例包括如下情況:
用例 |
操作系統 |
打印機 |
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 |
在兩個參數的情況下,所有的組合對(pairings)就是參數之間的所有組合情況。但是如果我們新增一個參數將會發生什么呢?
是否雙面打?。?/p>
是
否
下面是3個參數進行組合的所有測試用例:
用例 |
操作系統 |
打印機 |
是否雙面打印 |
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 |
是 |
7 |
Win 98 |
HP 4050 |
否 |
8 |
Win 98 |
HP 4100 |
否 |
9 |
Win XP |
HP 4050 |
否 |
10 |
Win XP |
HP 4100 |
否 |
11 |
Win 7 |
HP 4050 |
否 |
12 |
Win 7 |
HP 4100 |
否 |
原文轉自:http://www.anti-gravitydesign.com