用正交表設計測試用例


正交試驗設計(Orthogonal experimental design)是研究多因素多水平的一種設計方法,它是根據正交性從全面試驗中挑選出部分有代表性的點進行試驗,這些有代表性的點具備了“均勻分散,齊整可比”的特點,正交試驗設計是一種基於正交表的、高效率、快速、經濟的試驗。

什么是因素(Factor):在一項試驗中,凡欲考察的變量稱為因素(變量)

什么是水平(位級)(Level):在試驗范圍內,因素被考察的值稱為水平(變量的取值)

正交表的構成:

行數(Runs):正交表中的行的個數,即試驗的次數。

因素數(Factors):正交表中列的個數。

水平數(Levels):任何單個因素能夠取得的值的最大個數。正交表中的包含的值為從0到數“水平數-1”或從1到“水平數”

正交表的表示形式: L行數(水平數因素數)

正交表:

各列中出現的最大數字相同的正交表稱為相同水平正交表。如L4(23)、L8(27)、L12(211)等各列中最大數字為2,稱為兩水平正交表;L9(34)、L27(313)等各列中最大數字為3,稱為3水平正交表。凡是標准表,水平數都相等,且水平數只能取素數或素數冪。因此有7水平、9水平的標准表,沒有6水平,8水平的標准表。

例如L9(34),它表示需做9次實驗,最多可觀察4個因素,每個因素均為3水平。

混合正交表:

一個正交表中也可以各列的水平數不相等,我們稱它為混合型正交表,如L8(4×24),即:L8(41×24)此表的5列中,有1列為4水平,4列為2水平。再如L16(44×23),L16(4×212)等都混合水平正交表。

正交表的兩個特點

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

1)每列中不同數字出現的次數相等。例如,在兩水平正交表中,任何一列都有數碼“1”與“2”,且任何一列中它們出現的次數是相等的;在三水平正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出現數均相等。這一特點表明每個因素的每個水平與其它因素的每個水平參與試驗的幾率是完全相同的,從而保證了在各個水平中最大限度地排除了其它因素水平的干擾,能有效地比較試驗結果並找出最優的試驗條件。

2)在任意兩列其橫向組成的數字對中,每種數字對出現的次數相等。例如,在兩水平正交表中,任何兩列(同一橫行內)有序對子共有4種:(1,1)、(1,2)、(2,1)、(2,2)。每種對數出現次數相等。在三水平情況下,任何兩列(同一橫行內)有序對共有9種,1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每對出現數也均相等。這個特點保證了試驗點均勻地分散在因素與水平的完全組合之中,因此具有很強的代表性。

以上兩點充分的體現了正交表的兩大優越性,即“均勻分散性,整齊可比”。通俗的說,每個因素的每個水平與另一個因素各水平各碰一次,這就是正交性。

混合正交表選擇正交表的時候需滿足:水平數>=max(水平1,水平2...),因素數>=(因素1+因素2+因素3+…)

 

混合正交表選擇正交表的示例:

image

我們分析一下:

1、被測項目中一共有四個被測對象(4個因素),每個被測對象的狀態(水平數)都不一樣。其中,A、C水平數均為3,B的水平數為4,D的水平數為2。

2、選擇正交表:

本題,水平數>=max(3,4,2)=4,因素數>=4,查詢附錄中的正交表,只有L16(45)的行數最少,行數取最少的一個,比較適合。

3、最后選中正交表公式:L16(45

另外,當水平數和因素數的具體值確定時,正確的行數(試驗次數)的計算方法是:

試驗次數(行數)=∑(每列水平數-1)+1

如:L18(36 *61)=(3-1)*6+(6-1)*1+1=18;L8(27)=(2-1)*7+1=8

如何查找正交表:

1、Technical Support (support.sas.com)

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

2、查Dr. Genichi Taguchi設計的正交表

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

3、數理統計、試驗設計等方面的書及附錄中

用正交表設計測試用例

設計測試用例的步驟:

1、有哪些因素(變量)

2、每個因素有哪幾個水平(變量的取值)

3、選擇一個合適的正交表

4、把變量的值映射到表中

5、把每一行的各因素水平的組合作為一個測試用例

6、加上你認為可疑且沒有在表中出現的用例組合

如何選擇正交表

1、考慮因素(變量)的個數

2、考慮因素水平(變量的取值)的個數

3、考慮正交表的行數

4、取行數最少的一個

設計測試用例時的三種情況:

1、因素數(變量)、水平數(變量值)相符

水平數(變量的取值)相同、因素數(變量)剛好符合某一正交表,則直接套用正交表,得到用例。

例子:

對某人進行查詢,假設查詢某個人時有三個查詢條件:

根據“姓名”進行查詢

根據“身份證號碼”查詢

根據“手機號碼”查詢

考慮查詢條件要么不填寫,要么填寫,此時可用正交表進行設計

① 因素數和水平數

有三個因素:姓名、身份證號、手機號碼。每個因素有兩個水平:

姓名:填、不填

身份證號:填、不填

手機號碼:填、不填

② 選擇正交表

表中的因素數>=3

表中至少有三個因素的水平數>=2

行數取最少的一個

結果:L4(2^3)

clip_image001

③ 變量映射

姓名:1→填寫,2→不填寫;

身份證號:1→填寫,2→不填寫;

手機號碼:1→填寫,2→不填寫;

④ 用L4(2^3)設計的測試用例

測試用例如下:

1:填寫姓名、填寫身份證號、填寫手機號

2:填寫姓名、不填身份證號、不填手機號

3:不填姓名、填寫身份證號、不填手機號

4:不填姓名、不填身份證號、填寫手機號

⑤增補測試用例

5:不填姓名、不填身份證號、不填手機號

測試用例減少數:8→5

2、因素數不相同

水平數(變量的取值)與某正交表相同,但因素數(變量)卻不相同,則取因素數最接近但略大於實際值的正交表表,套用之后,最后一列因素去掉即可。

例子:

兼容性測試:

操作系統:2000、XP、2003

瀏覽器:IE6.0、IE7.0、TT

殺毒軟件:卡巴、金山、諾頓

如果全部進行測試的話,3^3=27個組合,需要進行27次測試。

① 因素數和水平數

有三個因素:

操作系統、瀏覽器、殺毒軟件

每個因素有三個水平。

② 選擇正交表

表中的因素數>=3

表中至少有三個因素的水平數>=3

行數取最少的一個

結果:L9(3^4),如下圖:

clip_image003

③ 變量映射

操作系統:1→2000,2→XP,3→2003

瀏覽器:1→IE6.0,2→IE7.0,3→TT

殺毒軟件:1→卡巴,2→金山,3→諾頓

clip_image004

④用L9(3^4)設計的測試用例

測試用例如下:

2000、IE6.0、卡巴

2000、IE7.0、諾頓

2000、TT、金山

XP、IE6.0、諾頓

XP、IE7.0、金山

XP、TT、卡巴

2003、IE6.0、金山

2003、IE7.0、卡巴

2003、TT、諾頓

⑤增補測試用例

由於目前IE6.0、XP、卡巴的使用量很高,故增添以下測試用例:

XP、IE6.0、金山

XP、IE6.0、卡巴

2003、IE6.0、卡巴

測試用例減少數:27→12

3、水平數不相同

因素(變量)與某正交表相同,但水平數(變量的取值)不相同。

例子:

假設有一個系統有5個獨立的變量(A,B,C,D,E)。變量A和B都有兩個取值(A1 、A2和B1、B2)。變量C和D都有三個可能的取值(C1、C2、C3和D1、D2、D3)。變量E有六個可能的取值(E1、E2、E3、E4、E5、E6)。

① 因素數和水平數

有五個因素(變量):

A、B、C、D和E

兩個因素有兩個水平(變量的取值)、兩個因素有三個水平,一個因素有六個水平:

A:A1、A2

B:B1、B2

C:C1、C2、C3

D:D1、D2、D3

E:E1、E2、E3、E4、E5、E6

② 選擇正交表

表中的因素數(變量)>=5

表中至少有二個因素的水平數(變量的取值)>=2

至少有另外二個因素的水平數>=3

還至少有另外一個因素的水平數>=6

行數取最少的一個:L49(7^8)或者L18(3^6 6^1))

結果:L18(3^6 6^1)(如下圖)

clip_image006

③ 變量映射

A:1→A1、2→A2

B:1→B1、2→B2

C:1→C1、2→C2、3→C3

D:1→D1、2→D2、3→D3

E1、2→E2、3→E3、4→E4、5→E5、6→E6

clip_image008

④ 用L18(3^6 6^1)設計的測試用例

測試用例減少數:216→18

加上一些可疑的情況(設為n個)為18+n,它比原來也少多了。

 

--------以上內容均收集和整理自互聯網,由於具體出處不詳,在此對原作者表示感謝-----------


免責聲明!

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



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