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