開篇:
測(cè)試過(guò)程中,對(duì)于多參數(shù)參數(shù)多值的情況進(jìn)行測(cè)試用例組織,之前一直使用【正交分析法】進(jìn)行用例組織,說(shuō)白了就是把每個(gè)參數(shù)的所有值分別和其他參數(shù)的值做一個(gè)全量組合,用Python腳本實(shí)現(xiàn),就是itertools模塊中product方法(又稱笛卡爾積法)。
正交分析法的優(yōu)點(diǎn)是測(cè)試用例覆蓋率100%,缺點(diǎn)測(cè)試用例數(shù)量龐大,執(zhí)行用例消耗的人工巨大。
Pairwise (結(jié)對(duì))算法源于對(duì)傳統(tǒng)的正交分析方法優(yōu)化后得到的產(chǎn)物,它的理論來(lái)自于數(shù)學(xué)統(tǒng)計(jì)。毫不避諱的說(shuō),本人看不懂?dāng)?shù)學(xué)統(tǒng)計(jì)中的學(xué)術(shù)論文,只能從網(wǎng)上找一些通俗簡(jiǎn)單的說(shuō)法來(lái)理解其基本含義。
網(wǎng)上很多人都實(shí)例都是用 【操作系統(tǒng),瀏覽器,語(yǔ)言環(huán)境】來(lái)舉例的,本人也做同樣示例:
操作系統(tǒng): W(Windows),L(Linux),Mac (Mac) ;瀏覽器:M(Firefox),O(Opera),IE;語(yǔ)言環(huán)境:C(中文),E(英文)
按照正交分析法:會(huì)產(chǎn)生3x3x2=18種組合方式 ,測(cè)試用例覆蓋率100%。
Pairwise結(jié)對(duì)測(cè)試用例組織法,可壓縮到9種組合方式。因此有點(diǎn)是 測(cè)試用例數(shù)量少,缺點(diǎn)是一定會(huì)有漏測(cè)。
引論:
Pairwise算法的核心理念
1、一組測(cè)試用例(每個(gè)用例有3個(gè)參數(shù)的值組成,如[W,M,C])中每一個(gè)2個(gè)元素組合起來(lái),兩兩組合,就有3種組合方式(有位置的[W,M][W,C][M,C]);
2、如果這第一組測(cè)試用兩兩組合出的3種組合方式,對(duì)比原則:[W,M]只會(huì)和其他組的第一個(gè)元素對(duì)比,[W,C]只會(huì)和其他組中第二個(gè)元素對(duì)比。。。。;
[W,M][W,C][M,C]這三個(gè)元素分別出現(xiàn)在其余有效組位置相同的元素中,就可以認(rèn)為這一組Case為多余Case,并進(jìn)行刪除。
名詞解釋:【有效組】表示未被刪除的組和未被對(duì)比過(guò)的組。舉例:第1,3組被刪除,則第4組要對(duì)比的有效組為第2,5,6,7...18組。有效組這里踩過(guò)坑%>_