使用allpairs自動(dòng)設(shè)計(jì)組合測(cè)試用例
配對(duì)測(cè)試的基本理念是,雖然程序的某個(gè)組件,或者程序自己會(huì)接受很多的輸入,但大部分情況下,程序的bug不是因?yàn)檫@些輸入同時(shí)作用而產(chǎn)生的,而是由一 到兩個(gè)輸入條件同時(shí)作用導(dǎo)致的。因此配對(duì)測(cè)試在生成測(cè)試組合的時(shí)候,主要關(guān)注將每個(gè)條件與其它條件至少配對(duì)一次,而不是試圖生成全組合,這樣就可以大大減 少需要測(cè)試的組合數(shù),盡而節(jié)省測(cè)試工作量,同時(shí)又能達(dá)到滿意的測(cè)試覆蓋率。
當(dāng)然不能期望配對(duì)測(cè)試是萬能的,即我們僅依賴于配對(duì)測(cè)試自動(dòng)生成的測(cè)試用例就可以了,使用配對(duì)測(cè)試的目的是為了減少測(cè)試人員浪費(fèi)在執(zhí)行太多的等價(jià)組合的時(shí)間,將寶貴的時(shí)間盡可能地放在設(shè)計(jì)符合用戶使用場(chǎng)景的測(cè)試用例上。
具體示例(手工步驟)
廢話少說,先看一個(gè)具體的示例,假設(shè)我們有下面一個(gè)產(chǎn)品,界面如下:
對(duì)于上面這個(gè)產(chǎn)品(假設(shè)文本框接受1到100之間的整數(shù)),可以將測(cè)試條件劃分為下面這樣子:
當(dāng)然,文本框的條件我們還可以再細(xì)分一下,但是為了描述簡(jiǎn)單,我把條件設(shè)置的比較粗糙,如果按照全組合的用例設(shè)置方式,需要 6 (下拉框控件可能的條件) * 2 (復(fù)選框可能的條件) * 2 (單選框可能的條件) * 6 (文本框可能的條件) = 144個(gè)組合。
我們來看使用配對(duì)方式設(shè)計(jì)組合的方式:
1、先將上面的條件輸入到Excel里,并在列頭標(biāo)明可能出現(xiàn)的條件的個(gè)數(shù),并按條件的個(gè)數(shù)將各個(gè)輸入?yún)?shù)排序,如下圖所示:
2、先將第二個(gè)和第三個(gè)參數(shù)的各個(gè)條件組合一次,這里為了省事起見,我先去掉第一個(gè)參數(shù),只介紹第二、三、四個(gè)參數(shù)的配對(duì)組合方法:
4、為了確保第四個(gè)參數(shù)跟第三個(gè)參數(shù)的各個(gè)條件都有一次組合,可以使用Excel提供的過濾功能來判斷,例如下圖中,很明顯,兩個(gè)參數(shù)沒有一個(gè)完全組合:
5、解決方案很簡(jiǎn)單,只需要再添加兩行,將兩個(gè)參數(shù)中沒有組合的條件各自組合一次好了(當(dāng)然,你也可以將第四個(gè)參數(shù)的條件稍微調(diào)整一下達(dá)到相同的目的):
自動(dòng)化步驟
上面的工作還是有點(diǎn)繁瑣,實(shí)際上早已有人將這個(gè)過程自動(dòng)化了,這里介紹一個(gè)免費(fèi)開源的工具allpairs.exe,請(qǐng)于下面這個(gè)鏈接里下載:http://www.satisfice.com/tools/pairs.zip
1、先將上面的條件輸入到Excel里,如下圖所示(因?yàn)檫@個(gè)工具是老外寫得,沒有考慮支持中文的問題,所以最好全部用英文表示):
2、將Excel文件保存為以Tab鍵作為分隔符的文本文件:
3、然后使用allpairs.exe處理這個(gè)文件:
allpairs.exe test.txt > output.txt
4、在output.txt里,PAIRING DETAILS下面的東西都是沒有用的,可以直接刪掉,刪掉以后,結(jié)果如下:
你可以在設(shè)計(jì)測(cè)試環(huán)境矩陣還有組合測(cè)試用例的時(shí)候使用allpairs這個(gè)技術(shù),當(dāng)然,你不能完全依賴這個(gè)技術(shù),除了allpairs組合的測(cè)試用例以外,你最好再根據(jù)測(cè)試覆蓋率和用戶場(chǎng)景覆蓋率入手,補(bǔ)充更有價(jià)值的測(cè)試用例。
另外,使用配對(duì)測(cè)試的算法,我們有可能結(jié)合Behavior Driven Design技術(shù),直接從需求自動(dòng)生成測(cè)試用例,加之如果我們將基本的測(cè)試用例自動(dòng)化以后,完全可以使用這個(gè)技術(shù)將自動(dòng)化過的測(cè)試用例配對(duì)組合(當(dāng)然需要 加上一些限制條件),在節(jié)省測(cè)試時(shí)間的同時(shí),達(dá)到滿意的測(cè)試覆蓋率,當(dāng)然,這樣做要求我們自己寫一個(gè)測(cè)試工具來實(shí)現(xiàn)這個(gè)技術(shù)—至少到現(xiàn)在我還沒有看到現(xiàn)成 的工具,而且這個(gè)技術(shù)應(yīng)該要比模型驅(qū)動(dòng)測(cè)試更容易使用,因?yàn)槟P万?qū)動(dòng)測(cè)試的問題是建模太困難。
posted on 2013-03-28 10:46 順其自然EVO 閱讀(276) 評(píng)論(0) 編輯 收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄