正交測試方法的探索與實踐

  • 2019 年 12 月 11 日
  • 筆記

來源:大商所行業測試中心

作/譯者: 大連飛創

摘 要:對於多變數組合類的測試,可選擇的一種測試方法就是測試所有變數的笛卡兒積,這種方法是所有變數、所有取值的完全組合,是最全面的測試。但是,在變數多的情況下這是最不可能實現的方法,所以我們要選擇一種方法,既可以測試出大部分的缺陷,又能夠極大的縮短測試時間。本文對正交測試方法進行研究,以覆蓋所有變數的組合得到最小的測試集,達到提高測試效率的目的。

一、正交測試方法概述 正交測試方法是研究多因子多水平的一種測試方法,它是根據正交性從全面測試中挑選出部分有代表性的點進行測試,這些有代表性的點具備了「均勻分散,齊整可比」的特點。正交測試方法是使用正交表進行測試設計。 1、什麼是正交表 正交表是將正交測試選擇的水平組合列成的表格針對某一因子的任意一個水平(因子的取值), 其他因子的全部水平(任意的兩兩因子之間)各出現相同次數的表。因子是指每一個變數;水平是指每一個變數的取值。 正交表是基於兩兩組合,依據的前提是「缺陷大部分發生在因子兩兩組合的情況下,三個因子組合導致的缺陷並不多見」。 以L8(27)為例,A、B、C、D、E、F、G是7個因子,因子對應的列顯示的{1,2}叫做水平,針對A因子的水平「1」,B、C、D、E、F、G因子的水平「1」、「2」各出現兩次。

2、正交表生成測試用例的流程 使用正交表進行用例設計時,要依據查詢條件的個數來確定因子、水平數,從而選擇合適的正交表來生成測試用例,具體的流程如下圖所示:

圖一:正交表生成測試用例的流程

二、正交表測試方法分析 進行正交表測試方法分析之前,先對比一下正交表與常用的組合測試方法的優劣性;目前常用的組合測試方法有笛卡兒積(全組合)和Pairwise(成對測試法),對比的情況如下:

表二:測試方法的優缺點對比說明 為了更好的說明以上三種方法的優劣性,以前文的27(有A、B、C、D、E、F、G 7個因子,每個因子有2水平)為例來對比三種測試方法生成的用例數量。 按照笛卡兒積全組合的方法,則需要2×2×2×2×2×2×2=128個測試CASE; 按照Pairwise測試方法則有84個測試CASE:AB、AC、AD、AE、AF、AG、BC、BD、BE、BF、BG、CD、CE、CF、CG、DE、DF、DG、EF、EG、FG,21種兩兩因子組合,每個因子有2水平,因此每種組合有2×2=4個CASE,21×4=84個; 按照L8的正交表,總共128個全組合的測試CASE、Pairwise的84個測試CASE減少為8個。 綜上所述,當因子水平數很多時,使用正交表測試方法可以實現以最少的測試用例數達到與大量全面測試等效的結果,是一種高效率的測試方法。

三、正交表在組合測試方法中的實踐 正交表測試方法特別適用於因子、水平數較多的功能,可以使設計的測試用例不是很多但又能全面覆蓋到需求。場下業務諸如數據整合平台、監察系統等,通常功能頁面的查詢條件很多很複雜,這種情況下就可以考慮使用正交表法。下文以數據整合平台的個體做市商成交量情況為例,具體說明標準與非標準正交表的使用方法。

(一)標準正交表的測試設計方法 業務需求:查詢個體做市商成交量情況分析。 根據<品種>=「全部、具體品種」進行查詢; <日期區間>=「當前交易日、歷史交易日、當前到歷史交易日」進行查詢; <統計條件>=「市場、品種、合約」進行查詢; <客戶區域>=「境內、境外、港澳台」進行查詢; <合約類型>=「做市合約、近月合約、全部合約」進行查詢; <交易時段>=「交易日、日盤、夜盤」進行查詢; <頻率>=「日、月、全部時間段」進行查詢; <格式>=「HTML、EXCEL、PDF」進行查詢; 分析上述業務需求,有混合正交表,於是用正交表測試法得出8個被測因子,除第一個因子有兩個水平之外,其餘的因子都是三個水平,對於此1因子2水平與7因子3水平的剛好可以使用L18(2137)的18個測試用例如下:

表三:各因子水平說明(標準)

表四:標準正交表生成的測試用例集 (二)非標準正交表的分配 很多情況下,查詢條件的因子數和水平數無法找到標準的正交表進行套用,則找到與因子數與水平最接近的正交表。 1、按照因子所持有的水平數確定分配因子的欄數。 因子數少於表格欄數的情況,針對空因子的水平,全部輸入「e」。但是,因為實驗次數相同,使用e是有損失的。 2、在各個因子的水平欄內,分配各個水平。 水平數少於表格中的水平欄數的情況,將分配過的水平再次分配。使用更希望驗證的水平等,作相應調整。如下的例子中,表中的因子數≥7,有兩個因素的水平數為2,其餘4個的因子數為3。因此可選用的最接近的正交表是L18(2137)

表五:各因子水平說明(非標準) e3使用更希望驗證的「統計條件」的水平替換,如「近月合約」;缺少的因子以empty替代,同樣生成18條測試用例。

表六:非標準正交表生成的測試用例集

四、後續研究方向 如果功能頁面的因子水平數可以完全匹配現有的正交表模板,那麼測試用例的設計就相對簡單很多;但是,在沒有現成的正交表模板可以參照的情況下,由於正交表的複雜多樣性,不同的人在選取正交表和調整用例的過程中,會生成不同的測試用例,怎樣形成統一的用例規範以及如何將正交表適用於我們正在使用的測試設計方法中,是現在還未攻克的難題,因此需要進一步的研究,尋求合適的解決方法,研究成果以後會繼續向大家展示。

參考文獻 [1] 鐵軍.全因子分析[J].試驗設計與數據處理,2009,10(1). [2] 趙丹.正交試驗設計. https://wenku.baidu.com/view/0bc2128cfab069dc51220127.html [3] 肖馳.正交設計法在軟體測試中的應用https://wenku.baidu.com/view/18d6daab700abb68a882fb29.html

歡迎參加眾測:

https://wap.ztestin.com/site/register?usercode=FAAAQwMQGAAXAwQBA3QhExcDHAQDPjVaABMIQg%3D%3D

Tags: