組合測試
組合測試(Combinatorial Test)是一種黑盒測試用例生成方法椅贱,主要針對多輸入?yún)?shù)組合場景懂算。
目前業(yè)界較流行的兩種組合測試方法,一種是Pairwise/All-Pairs
庇麦,即配對組合计技。OATS(Orthogonal Array Testing Strategy)
,即正交表法山橄。
Pairwise/All-Pairs
In computer science, all-pairs testing or pairwise testing is a combinatorial method of software testing that, for each pair of input parameters to a system (typically, a software algorithm), tests all possible discrete combinations of those parameters. Using carefully chosen test vectors, this can be done much faster than an exhaustive search of all combinations of all parameters, by "parallelizing" the tests of parameter pairs. --- 維基百科
Pairwise/All-Pairs
垮媒,也叫配對測試 或 結對測試,是一種軟件測試的組合方法航棱,核心在于用最少的測試用例來覆蓋多個因素取值的兩兩組合睡雇。
配對測試示例
# 影響因素及可取值
操作系統(tǒng): macOS, Windows, Linux
瀏覽器: Chrome, Safari, Firefox
分辨率: 1366x768, 1600×900, 2880x1800
# 配對測試結果集
操作系統(tǒng) 瀏覽器 分辨率
Linux Safari 1600×900
Windows Safari 1366x768
Linux Firefox 2880x1800
Windows Chrome 2880x1800
Windows Firefox 1600×900
macOS Safari 2880x1800
Linux Chrome 1366x768
macOS Chrome 1600×900
macOS Firefox 1366x768
Pairwise 算法
Pairwise
是 L. L. Thurstone 在 1927 年首先提出來的。他是美國的一位心理統(tǒng)計學家饮醇。Pairwise
是基于數(shù)學統(tǒng)計和對傳統(tǒng)的正交分析法進行優(yōu)化后得到的產(chǎn)物它抱。
Pairwise
基于如下 2 個假設:
- 每一個維度都是正交的,即每一個維度互相都沒有交集朴艰;
- 根據(jù)數(shù)學統(tǒng)計分析观蓄,73% 的缺陷(單因素是 35%,雙因素是 38%)是由單因素或兩個因素相互作用產(chǎn)生的祠墅。19% 的缺陷是由三個因素相互作用產(chǎn)生的侮穿。
因此,Pairwise
基于覆蓋所有兩因素的交互作用產(chǎn)生的用例集合性價比最高而產(chǎn)生的毁嗦。
N-wise
N-wise
是對 N 個因素的所有取值進行全排列組合(笛卡爾積)而生成的一組測試用例集撮珠。理論上,該測試用例集可以發(fā)現(xiàn)所有 N 個因素共同作用引發(fā)的缺陷。
Pairwise/All-Pairs
是 N-wise
的一個具體化實例芯急,Pairwise/All-Pairs
實際上就是 2-wise
勺届。
《微軟軟件測試之道》中,建議從 Pairwise/All-Pairs
開始測試娶耍,逐漸提高組合維度免姿,直至6-wise
組合測試。因為據(jù)研究表明榕酒,6-wise
可以發(fā)現(xiàn)絕大多數(shù)的程序缺陷胚膊。但是,實際上隨著組合維度的提升想鹰,測試用例呈指數(shù)爆炸增長紊婉,所以 Pairwise/All-Pairs
或 3-wise
比較適合實際項目。
組合數(shù)量對比
組合 | 全排列組合數(shù)量 | All-Pairs 組合數(shù)量 | 3-wise 組合數(shù)量 |
---|---|---|---|
2*2 | 4 | 4 | - |
3*3*3 | 27 | 9 | 27 |
4*4*4*4 | 256 | 20 | 78 |
4*4*4*4*3*3*3*2*2*2 | 55296 | 25 | 100 |
N-wise 與 OATS 的區(qū)別
相同點
- 都屬于組合測試方法
- 都可減少測試成本
- 使用頻率較高的均是兩兩組合
不同點
-
N-wise:適用于多因素組合情況下的測試用例生成辑舷。
- 僅考慮兩兩組合喻犁,故測試用例數(shù)量固定,但內(nèi)容不一定一致(引入隨機種子何缓,可生成不同的測試用例肢础,如 PICT 中的參數(shù)“/r[:N]”)
- 相比正交表法,測試成本較低
- 生成用例較方便碌廓,有相關工具支持传轰,如 PICT、Allpair等
-
正交表法:是為正交試驗服務的谷婆,強調(diào)試驗數(shù)據(jù)的均衡搭配慨蛙。
- 強調(diào)因素間取值組合的“等概率覆蓋”
- 受到“等概率覆蓋”的約束,通常比配對測試生成的用例要多纪挎,測試成本較高
- 生成用例較復雜期贫,需要通過正交表進行裁剪、替換參數(shù)后才可生成用例
組合測試相關工具
Pairwise 工具集:http://www.pairwise.org/tools.asp
正交表查詢:https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
Pairwise
工具推薦微軟的 PICT(Pairwise Independent Combinatorial Testing)廷区。
參考文檔
- https://www.developsense.com/pairwiseTesting.html
- https://en.wikipedia.org/wiki/All-pairs_testing
- http://www.pairwise.org/
微信公眾號:daodaotest