劉志成
(公安部第三研究所,上海,201204)
日常的Web測(cè)試工作中,首先需要做測(cè)試用例設(shè)計(jì),如果輸出的用例,需要驗(yàn)證的組合太多,甚至是海量組合時(shí),就需要投入較大的人力成本,來(lái)一一驗(yàn)證,必然是事倍功半的。因此如果運(yùn)用正交實(shí)驗(yàn)法,科學(xué)有效的選擇一部分有代表性的組合進(jìn)行測(cè)試驗(yàn)證,就可以達(dá)到事半功倍的效果,提高工作效率,降低成本投入。
正交實(shí)驗(yàn)法是研究多因素多水平的一種設(shè)計(jì)方案,主要是根據(jù)Galois的理論,從所有可能的實(shí)驗(yàn)中篩選出具有代表性的部分組合,來(lái)完成實(shí)驗(yàn)。簡(jiǎn)而言之,就是應(yīng)用正交表,挑選部分具有有代表性的組合進(jìn)行實(shí)驗(yàn),并對(duì)其結(jié)果進(jìn)行分析,從而找出最優(yōu)的組合。它可以在毫無(wú)規(guī)律的情況下,通過(guò)數(shù)據(jù)均勻分布的特性,完成日常測(cè)試工作中的用例設(shè)計(jì),可以非常直觀地減少測(cè)試用例,降低測(cè)試人力成本。
日常工作中,具體應(yīng)用正交實(shí)驗(yàn)法的時(shí)候,其實(shí)就是使用正交表來(lái)設(shè)計(jì)具體的組合,并實(shí)施實(shí)驗(yàn)和數(shù)據(jù)分析[1]。正交表具有下兩個(gè)特性:任兩列中,同一橫行所組成的數(shù)字對(duì)出現(xiàn)的次數(shù)相等[2];任一列中,不同數(shù)字出現(xiàn)的次數(shù)相等。
常見(jiàn)的正交表有L4(23),L9(34),L8(27),具體如下:
針對(duì)具體項(xiàng)目中的測(cè)試需要,采用方差或極差的分析方法,來(lái)對(duì)相關(guān)的測(cè)試對(duì)象進(jìn)行分析,找出對(duì)測(cè)試目標(biāo)影響最大的因素和水平組合[3]。
正交表其實(shí)是通過(guò)概率學(xué)和組合數(shù)學(xué)共同計(jì)算得出一種表格,一般用Ln(mk)表示,L代表是正交表,n代表正交表的行數(shù),k代表因子個(gè)數(shù),m表示每個(gè)因子的水平數(shù)。
在針對(duì)某項(xiàng)具體的實(shí)驗(yàn)時(shí),可以把影響實(shí)驗(yàn)結(jié)果的項(xiàng)稱為因素,簡(jiǎn)稱因子。因子其實(shí)就是實(shí)驗(yàn)過(guò)程中的一個(gè)變量,實(shí)驗(yàn)結(jié)果就是這個(gè)變量所屬函數(shù)運(yùn)行后的結(jié)果。在實(shí)驗(yàn)整個(gè)過(guò)程中,每個(gè)因子都可能處于不同的狀態(tài)或取不同的值,把因子所處的狀態(tài)或取值,稱為因子的水平,簡(jiǎn)稱水平[4]。
日常工作中,負(fù)責(zé)某個(gè)業(yè)務(wù)的測(cè)試工作時(shí),首先需要設(shè)計(jì)測(cè)試用例,就需要先確定因子數(shù)和水平數(shù),因子之間需要分析關(guān)系后才能確定,水平則需要應(yīng)用等價(jià)類分析法來(lái)確定。
例如,Web系統(tǒng)中常見(jiàn)的數(shù)據(jù)多條件查詢功能,現(xiàn)針對(duì)該功能進(jìn)行測(cè)試用例設(shè)計(jì),功能描述如下:
數(shù)據(jù)查詢功能,支持”創(chuàng)建時(shí)間”,”創(chuàng)建者”,”類型”,”內(nèi)容”等條件類型,且多條件之間互為”且1”的關(guān)系。
分析:很明顯是4個(gè)因子,即”創(chuàng)建時(shí)間”,”創(chuàng)建者”,”類型”,”內(nèi)容”;確定水平需要運(yùn)用等價(jià)類分析法,分析后可確定水平數(shù)是3,即1-已存在,2-不存在,3-空。
結(jié)果:可以認(rèn)為被測(cè)功能的4種類型都對(duì)應(yīng)有3種輸入取值,分別是:系統(tǒng)中已存在的值,系統(tǒng)中不存在的值和空值。
參考2.2小節(jié),被測(cè)功能一共有4個(gè)因子,每個(gè)因子的水平數(shù)都為3。選取正交表時(shí)要考慮因素(變量)的個(gè)數(shù),考慮因素水平的個(gè)數(shù),考慮正交表的行數(shù),取行數(shù)最少的一個(gè),因此經(jīng)過(guò)分析,可以選定正交表L9(34),詳見(jiàn)表4。
針對(duì)被測(cè)功能,采用正交表L9(34)設(shè)計(jì)測(cè)試用例,現(xiàn)在只需要將2.2章節(jié)中確定的因子和水平,套用進(jìn)表1中,完成替換即可,結(jié)果見(jiàn)表5。
表1 L4(23)正交表
得到的表2,對(duì)應(yīng)的每一行就可以當(dāng)做測(cè)試用例,但需要補(bǔ)充完善下,因?yàn)楸?中存在缺陷,就是缺少全為2和全為3的場(chǎng)景,接下來(lái)補(bǔ)充進(jìn)表2中,完成最終用例,詳見(jiàn)表6。
表2 L9(34)正交表
表3 L8(27)正交表
表4 正交表L9(34)
表5 結(jié)果
表6 結(jié)果
本文的核心其實(shí)就是正交表,即一個(gè)具有普遍共性的表格,適用于各個(gè)領(lǐng)域,可以規(guī)劃多個(gè)因素和水平進(jìn)行實(shí)驗(yàn),以找出最優(yōu)水平組合的正交組合設(shè)計(jì)、正交設(shè)計(jì)和正交旋轉(zhuǎn)設(shè)計(jì)等。正交表本質(zhì)上是選擇了所有實(shí)驗(yàn)組合中的具有科學(xué)代表性的那一部分。因此,在測(cè)試設(shè)計(jì)用例階段,應(yīng)用正交表,就可以在過(guò)濾掉大部分非代表性的用例的情況下,來(lái)相對(duì)快速地完成測(cè)試工作,從而大大節(jié)省工作量,降低人力成本。當(dāng)前,大數(shù)據(jù)相關(guān)的Web系統(tǒng)在各個(gè)領(lǐng)域的中,都承擔(dān)著至關(guān)重要的作用,作為此類系統(tǒng)的心腹之地,把數(shù)據(jù)查詢功能做好,就顯著尤為重要,而正交實(shí)驗(yàn)法的使用,正是針對(duì)此類功能進(jìn)行測(cè)試的一種有效手段。依據(jù)正交實(shí)驗(yàn)靈活、科學(xué)、有效的特點(diǎn),測(cè)試工程師能在條件不好或者看似不可能完成的情況下對(duì)大數(shù)據(jù)Web系統(tǒng)進(jìn)行充分且高效的測(cè)試。
當(dāng)然,正交實(shí)驗(yàn)法也不可能是完美的,在測(cè)試工作中,工程師應(yīng)該根據(jù)被測(cè)系統(tǒng)的實(shí)際業(yè)務(wù)情況,正確運(yùn)用該方法并結(jié)合其他測(cè)試方法,共同完成測(cè)試設(shè)計(jì),對(duì)被測(cè)系統(tǒng)完成更全面的測(cè)試。