黑盒測試《正交實驗法》-有這篇就夠了


目錄:

  • 定義(What)
  • 為什么使用正交實驗法?(Why)
  • 基本概念
  • 正交實驗法設計用例的步驟(How)
  • 使用場景
  • 優缺點
  • 正交表生成工具(PICT)
  • 實戰演練

---------------------------------------------------------------

 

1.定義(What)

正交實驗法是研究多因素、多水平組合的一種實驗法,它是利用正交表來對實驗進行設計,通過少數的實驗替代全面實驗,根據正交表的正交性從全面實驗中挑選適量的、有代表性的點進行實驗,這些有代表性的點具備了“均勻分散,整齊可比”的特點。“均勻分散”性使實驗點均衡地分布在實驗范圍內,讓每個實驗點有充分的代表性;“整齊可比”性使實驗結果的分析十分方便,可以估計各因素對指標的影響,找出影響事物變化的主要因素。實踐證明,正交實驗法是一種解決多因素問題卓有成效的方法。

 

2.為什么使用正交實驗法?(Why)

  • 對於單因素或兩因素實驗,因其因素少,實驗的設計、實施與分析都比較簡單。但在實際工作中,常常需要同時考察3個或3個以上的實驗因素,若進行全面實驗,實驗的規模很大,由於時間和成本的限制我們不可能進行全面實驗,但是具體挑其中的哪些測試用例進行測試我們心里拿不准,總擔心遺漏了未挑選的測試用例從而造成一些嚴重缺陷;
  • 為了有效的、合理地減少測試的工作量與和成本,我們利用正交實驗法來設計測試用例。正交實驗法就是為多因素實驗、尋求最優水平組合的一種高效率的實驗設計方法。

 

3.基本概念

正交表是一種特制的表格,一般用表示,L代表正交表,n代表實驗次數或正交表的行數,k代表最多可安排影響指標因素的個數或正交表的列數,m表示每個因素的水平數,且有n=k*(m-1)+1。

  • 因素(Factors)。表示在一項實驗中,需要觀察的變量稱為因素;
  • 水平(Levels)。表示在實驗范圍內,因素被考察的值稱為水平(變量的取值);
  • 正交表的組成。由行數(正交表的行的個數,即實驗的次數)、因素數(正交表列的個數)、水平數(任何單個因素能夠取得的值的最大個數)。

正交表必須滿足這兩個特點,有一條不滿足,就不是正交表

  •  每列中不同數字出現的次數相等。這一特點表明每個因素的每個水平與其它因素的每個水平參與實驗的幾率是完全相同的,從而保證了在各個水平中最大限度地排除了其它因素水平的干擾,能有效地比較實驗結果並找出最優的實驗條件;
  •  在任意兩列橫向組成的數字對中,每種數字對出現的次數相等。這個特點保證了實驗點均勻地分散在因素與水平的完全組合之中,因此具有很強的代表性。

 

4.正交實驗法設計用例的步驟(How)

Step1.分析規格描述,確定規格中有哪些因素(變量)和每個因素都有哪些水平(變量取值)。因素數表示規格描述中相互獨立的變量的個數,水平數表示所有因素在實驗中能夠取得的數量最多的個數;

Step2.根據因素數和水平數確定n值。這里區分2種情況:

  • 單一水平正交表。就是各因素的水平數相同的正交表稱為等水平正交表。如  等各列中的水平為2,稱為2水平正交表;等各列水平為3,稱為3水平正交表。表示為:n=k*(m-1)+1。
  • 混合水平正交表。就是各因素的水平數不完全相同的正交表稱為混合水平正交表。如表中有一因素的水平為4,有4個因素的水平數為2。也就是說該表可以安排一個4水平因素和4個2水平因素。再如等都是混合水平正交表。表示為: n=k1*(m1-1)+k2*(m2-1)+…kx*(mx-1)+1。

Step3.選擇合適的正交表;

1)查Dr. Genichi Taguchi 設計的正交表

http://www.york.ac.uk/depts/maths/tables/orthogonal.htm

2)Technical Support (support.sas.com)com

http://support.sas.com/techsup/technote/ts723_Designs.txt

  查找時需要關注不同類型的正交表,區分以下2種情況:

  單一水平正交表:

  • 存在實驗次數等於n,並且水平數大於等於m、因素數大於等於k的正交表,我們把這個正交表拿過來套用。
  • 不存在實驗次數等於n的正交表,我們就得找出滿足實驗次數大於n並且水平數大於等於m、因素數大於等於k的正交表。

  混合水平正交表:

  • 存在實驗次數等於n,並且水平數大於等於max(m1,m2,m3,…)、因素數大於等於(k1+k2+k3+…)的正交表,我們把這個正交表拿過來套用。
  • 不存在實驗次數等於n的正交表,我們就得找出滿足實驗次數大於n並且水平數大於等於max(m1,m2,m3,…)、因素數大於等於(k1+k2+k3+…)的正交表。當有2個或2個以上正交表可以被選擇時,選取原則是選實驗次數最少的那個正交表。

Step4.根據正交表把變量的值映射到表中,設計測試用例。把變量的值映射到正交表中,每一行的各因素的取值組合作為一個測試用例;

Step5.補充其他可疑場景用例

 

5.使用場景

輸入的參數之間是獨立的,不存在相互依賴的關系;

功能測試,配置測試。

 

6.優缺點

  • 優點:直接套用,經濟高效。根據正交性,從全面實驗中挑選出部分有代表性的點進行實驗,這些有代表性的點具備了“均勻分散,整齊可比”的特點。通過使用正交實驗法減少了測試用例,合理地減少測試的工時與費用,提高測試用例的有效性。是一種高效率、快速、經濟的實驗設計方法;
  • 缺點:對每個狀態點同等對待,重點不突出,容易造成在用戶不常用的功能或場景中,花費不少時間進行測試設計與執行,而在重要路徑上反而沒有重點測試。

 

7.正交表生成工具(PICT)

了解了正交實驗法原理並知道如何按步驟生成用例之后,就可以直接使用PICT工具生成滿足正交的測試用例。PICT工具是在微軟公司內部使用的一款承兌組合的命令行生成工具,現在已經對外提供。PICT可以有效地按照兩兩測試的原理,進行測試用例設計。在使用PICT時,需要輸入與測試用例相關的參數,以達到全面覆蓋的效果。

 

8.實戰演練

例1.某所大學通信系共2個班級,剛考完某一門課程,想通過“性別”、“班級”和“成績”這三個查詢條件對通信系這門課程的成績分布,男女比例或班級比例進行人員查詢:
根據“性別”=“男,女”進行查詢
根據“班級”=“1班,2班”查詢
根據“成績”=“及格,不及格”查詢

Step1.分析上述測試需求,有3個被測元素,被測元素我們稱為因素,每個因素有兩個取值,我們稱之為水平值。因此,規格描述中有3個獨立變量且每個變量2個取值:性別(男, 女),班級(1班, 2班),成績(及格, 不及格);

Step2.根據因素數和水平數確定n值。水平數m=2,因素數k=3。n=k*(m-1)+1=3*(2-1)+1=4,

Step3.選擇正交表。正交表獲取路徑:http://www.york.ac.uk/depts/maths/tables/orthogonal.htm。並把變量的值映射到表中。

Step4.把每一行轉換成一個測試用例,得到4個測試用例如下:

  • TestCase1:選擇性別="男"、班級="1班"、成績="及格",查詢
  • TestCase2:選擇性別="男"、班級="2班"、成績="不及格",查詢
  • TestCase3:選擇性別="女"、班級="1班"、成績="不及格",查詢
  • TestCase4:選擇性別="女"、班級="2班"、成績="及格",查詢

Step5.根據實際情況可以在用正交實驗法設計用例的基礎上補充一些測試用例(非常重要),比如選擇性別="男"、班級="1班"、成績="不及格"是實際最常用的查詢場景,則需要添加補充查詢。用例如下:

  • TestCase5:選擇性別="男"、班級="1班"、成績="不及格",查詢

5個測試用例與8個測試用例相比測試用例個數是減少了。因素數和水平數越大越能體現用正交表的好處。例如:對於一個四因素且每個因素均為三水平的實驗,如果按照全面實驗需要進行3*3*3*3=81次。但是如果用正交實驗法選擇正交表,n=4*(3-1)+1=9次實驗就可以覆蓋。從這點可以說明用正交實驗法能有效地、合理地減少測試用例和工時,節約測試成本。

 

例2.手機照相機的拍攝模式是普通模式,針對對比度(正常,極低,低,高,極高)、色彩效果(無,黑白,棕褐色,負片,水綠色)、感光度(自動,100,200,300,400,800)、白平衡(自動,白熾光,日光,熒光,陰光)、照片大小(5M, 3M, 2M, 1M, VGA)、閃光模式(關,開)各個值用正交實驗法設計測試用例。該需求類型為不存在實驗次數等於n(n=k*(m-1)+1)的正交表。

Step1.確定因素數和水平數。因素數:對比度、色彩效果、感光度、白平衡、照片大小、閃光模式。水平數:對比度(正常、極低、低、高、極高),色彩效果(無、黑白、棕褐色、負片、水綠色),感光度(自動、100、200、400、800),白平衡(自動、白熾光、日光、熒光、陰光),照片大小(5M、3M、2M、1M、VGA),閃光模式(開、關);

Step2.根據因素數和水平數確定n值。m1=5, k1=5,m2=2, k2=1,n=k1*(m1-1)+k2* (m2-1)+1=5*(5-1)+1*(2-1)+1=20+1+1=22,

Step3.選擇合適的正交表。根據計算得出n=22,在http://www.york.ac.uk/depts/maths/tables/orthogonal.htm查找發現不存在n=22的正交表。這個時候我們就需要根據如下原則確定使用的正交表:

  • 查找同時滿足 n>22 && m>=max(m1=5,m2=2) && k>=k1+k2=5+1=6的正交表。發現,同時滿足;
  • 當有2個或2個以上正交表可以被選擇時,選取原則是選實驗次數最少的那個正交表。所以我們選正交表;
  • 查找正交表。

Step4.將各因素水平值填入映射表,每一行轉換成一個測試用例。

 

--------------------end----------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM