劉志成
(公安部第三研究所,上海,201204)
日常的Web測試工作中,首先需要做測試用例設計,如果輸出的用例,需要驗證的組合太多,甚至是海量組合時,就需要投入較大的人力成本,來一一驗證,必然是事倍功半的。因此如果運用正交實驗法,科學有效的選擇一部分有代表性的組合進行測試驗證,就可以達到事半功倍的效果,提高工作效率,降低成本投入。
正交實驗法是研究多因素多水平的一種設計方案,主要是根據Galois的理論,從所有可能的實驗中篩選出具有代表性的部分組合,來完成實驗。簡而言之,就是應用正交表,挑選部分具有有代表性的組合進行實驗,并對其結果進行分析,從而找出最優的組合。它可以在毫無規律的情況下,通過數據均勻分布的特性,完成日常測試工作中的用例設計,可以非常直觀地減少測試用例,降低測試人力成本。
日常工作中,具體應用正交實驗法的時候,其實就是使用正交表來設計具體的組合,并實施實驗和數據分析[1]。正交表具有下兩個特性:任兩列中,同一橫行所組成的數字對出現的次數相等[2];任一列中,不同數字出現的次數相等。
常見的正交表有L4(23),L9(34),L8(27),具體如下:
針對具體項目中的測試需要,采用方差或極差的分析方法,來對相關的測試對象進行分析,找出對測試目標影響最大的因素和水平組合[3]。
正交表其實是通過概率學和組合數學共同計算得出一種表格,一般用Ln(mk)表示,L代表是正交表,n代表正交表的行數,k代表因子個數,m表示每個因子的水平數。
在針對某項具體的實驗時,可以把影響實驗結果的項稱為因素,簡稱因子。因子其實就是實驗過程中的一個變量,實驗結果就是這個變量所屬函數運行后的結果。在實驗整個過程中,每個因子都可能處于不同的狀態或取不同的值,把因子所處的狀態或取值,稱為因子的水平,簡稱水平[4]。
日常工作中,負責某個業務的測試工作時,首先需要設計測試用例,就需要先確定因子數和水平數,因子之間需要分析關系后才能確定,水平則需要應用等價類分析法來確定。
例如,Web系統中常見的數據多條件查詢功能,現針對該功能進行測試用例設計,功能描述如下:
數據查詢功能,支持”創建時間”,”創建者”,”類型”,”內容”等條件類型,且多條件之間互為”且1”的關系。
分析:很明顯是4個因子,即”創建時間”,”創建者”,”類型”,”內容”;確定水平需要運用等價類分析法,分析后可確定水平數是3,即1-已存在,2-不存在,3-空。
結果:可以認為被測功能的4種類型都對應有3種輸入取值,分別是:系統中已存在的值,系統中不存在的值和空值。
參考2.2小節,被測功能一共有4個因子,每個因子的水平數都為3。選取正交表時要考慮因素(變量)的個數,考慮因素水平的個數,考慮正交表的行數,取行數最少的一個,因此經過分析,可以選定正交表L9(34),詳見表4。
針對被測功能,采用正交表L9(34)設計測試用例,現在只需要將2.2章節中確定的因子和水平,套用進表1中,完成替換即可,結果見表5。

表1 L4(23)正交表
得到的表2,對應的每一行就可以當做測試用例,但需要補充完善下,因為表1中存在缺陷,就是缺少全為2和全為3的場景,接下來補充進表2中,完成最終用例,詳見表6。

表2 L9(34)正交表

表3 L8(27)正交表


表4 正交表L9(34)

表5 結果

表6 結果
本文的核心其實就是正交表,即一個具有普遍共性的表格,適用于各個領域,可以規劃多個因素和水平進行實驗,以找出最優水平組合的正交組合設計、正交設計和正交旋轉設計等。正交表本質上是選擇了所有實驗組合中的具有科學代表性的那一部分。因此,在測試設計用例階段,應用正交表,就可以在過濾掉大部分非代表性的用例的情況下,來相對快速地完成測試工作,從而大大節省工作量,降低人力成本。當前,大數據相關的Web系統在各個領域的中,都承擔著至關重要的作用,作為此類系統的心腹之地,把數據查詢功能做好,就顯著尤為重要,而正交實驗法的使用,正是針對此類功能進行測試的一種有效手段。依據正交實驗靈活、科學、有效的特點,測試工程師能在條件不好或者看似不可能完成的情況下對大數據Web系統進行充分且高效的測試。
當然,正交實驗法也不可能是完美的,在測試工作中,工程師應該根據被測系統的實際業務情況,正確運用該方法并結合其他測試方法,共同完成測試設計,對被測系統完成更全面的測試。