正交實驗法的由來
一、正交表的由來
拉丁方名稱的由來
古希臘是一個多民族的國家,國王在檢閱臣民時要求每個方隊中每行有一個民族代表,每列也要有一個民族的代表。
數學家在設計方陣時,以每一個拉丁字母表示一個民族,所以設計的方陣稱為拉丁方。
什么是n階拉丁方?
用n個不同的拉丁字母排成一個n階方陣(n<26 ),如果每行的n個字母均不相同,每列的n個字母均不相同,則稱這種方陣為n*n拉丁方或n階拉丁方。每個字母在任一行、任一列中只出現一次。
什么是正交拉丁方?
設有兩個n階的拉丁方,如果將它們疊合在一起,恰好出現n2個不同的有序數對,則稱為這兩個拉丁方為互相正交的拉丁方,簡稱正交拉丁方。
例如:3階拉丁方
用數字替代拉丁字母:
二、正交實驗法
正交試驗設計(Orthogonal experimental design)是研究多因素多水平的又一種設計方法,它是根據正交性從全面試驗中挑選出部分有代表性的點進行試驗,這些有代表性的點具備了“均勻分散,齊整可比”的特點,正交試驗設計是分式析因設計的主要方法。是一種高效率、快速、經濟的實驗設計方法。
日本著名的統計學家田口玄一將正交試驗選擇的水平組合列成表格,稱為正交表。例如作一個三因素三水平的實驗,按全面實驗要求,須進行33=27種組合的實驗,且尚未考慮每一組合的重復數。若按L9(33) 正交表按排實驗,只需作9次,按L18(37) 正交表進行18次實驗,顯然大大減少了工作量。因而正交實驗設計在很多領域的研究中已經得到廣泛應用。
利用因果圖來設計測試用例時, 作為輸入條件的原因與輸出結果之間的因果關系,有時很難從軟件需求規格說明中得到。往往因果關系非常龐大,以至於據此因果圖而得到的測試用例數目多的驚人,給軟件測試帶來沉重的負擔,為了有效地,合理地減少測試的工時與費用,可利用正交實驗設計方法進行測試用例的設計。
正交實驗設計方法:依據Galois理論,從大量的(實驗)數據(測試例)中挑選適量的、有代表性的點(例),從而合理地安排實驗(測試)的一種科學實驗設計方法。類似的方法有:聚類分析方法、因子方法方法等。
三、利用正交實驗設計測試用例的步驟:
(1)提取功能說明,構造因子--狀態表
把影響實驗指標的條件稱為因子,而影響實驗因子的條件叫因子的狀態。
利用正交實驗設計方法來設計測試用例時,首先要根據被測試軟件的規格說明書找出影響其功能實現的操作對象和外部因素,把他們當作因子;而把各個因子的取值當作狀態。對軟件需求規格說明中的功能要求進行划分,把整體的、概要性的功能要求進行層層分解與展開,分解成具體的有相對獨立性的、基本的功能要求。這樣就可以把被測試軟件中所有的因子都確定下來,並為確定每個因子的權值提供參考的依據。確定因子與狀態是設計測試用例的關鍵。因此要求盡可能全面的、正確的確定取值,以確保測試用例的設計作到完整與有效。
(2)加權篩選,生成因素分析表
對因子與狀態的選擇可按其重要程度分別加權。可根據各個因子及狀態的作用大小、出現頻率的大小以及測試的需要,確定權值的大小。
(3)利用正交表構造測試數據集
利用正交實驗設計方法設計測試用例,比使用等價類划分、邊界值分析、因果圖等方法有以下優點:節省測試工作工時;可控制生成的測試用例數量;測試用例具有一定的覆蓋率。
在使用正交實驗法時,要考慮到被測系統中要准備測試的功能點,而這些功能點就是要獲取的因子或因素,但每個功能點要輸入的數據按等價類划分有多個,也就是每個因素的輸入條件,即狀態或水平值。
四、正交表的構成
行數(Runs):正交表中的行的個數,即試驗的次數,也是我們通過正交實驗法設計的測試用例的個數。
因素數(Factors) :正交表中列的個數,即我們要測試的功能點。
水平數(Levels):任何單個因素能夠取得的值的最大個數。正交表中的包含的值為從0到數“水平數-1”或從1到“水平數” 。即要測試功能點的輸入條件。
正交表的形式:
L行數(水平數因素數)
如:L8(27)
五、正交表的正交性
整齊可比性
在同一張正交表中,每個因素的每個水平出現的次數是完全相同的。由於在試驗中每個因素的每個水平與其它因素的每個水平參與試驗的機率是完全相同的,這就保證在各個水平中最大程度的排除了其它因素水平的干擾。因而,能最有效地進行比較和作出展望,容易找到好的試驗條件。
均衡分散性
在同一張正交表中,任意兩列(兩個因素)的水平搭配(橫向形成的數字對)是完全相同的。這樣就保證了試驗條件均衡地分散在因素水平的完全組合之中,,因而具有很強的代表性,容易得到好的試驗條件。
以上介紹了正交實驗法的由來。怎么用正交實驗法進行用例的設計呢?
一、用正交表設計測試用例的步驟
(1) 有哪些因素(變量)
(2) 每個因素有哪幾個水平(變量的取值)
(3) 選擇一個合適的正交表
(4) 把變量的值映射到表中
(5) 把每一行的各因素水平的組合做為一個測試用例
(6) 加上你認為可疑且沒有在表中出現的組合
二、如何選擇正交表
- 考慮因素(變量)的個數
- 考慮因素水平(變量的取值)的個數
- 考慮正交表的行數
- 取行數最少的一個
三、設計測試用例時的三種情況
(1)因素數(變量)、水平數(變量值)相符
(2)因素數不相同
(3)水平數不相同
四、我們來看看第一種情況:
(1)因素數與水平數剛好符合正交表
我們舉個例子:
這是個人信息查詢系統中的一個窗口。我們可以看到要測試的控件有3個:姓名、身份證號碼、手機號碼,也就是要考慮的因素有三個;而每個因素里的狀態有兩個:填與不填。
選擇正交表時分析一下:
1、表中的因素數>=3;
2、表中至少有3個因素數的水平數>=2;
3、行數取最少的一個。
從正交表公式中開始查找,結果為:
L4(23)
變量映射:
測試用例如下:
1:填寫姓名、填寫身份證號、填寫手機號
2:填寫姓名、不填身份證號、不填手機號
3:不填姓名、填寫身份證號、不填手機號
4:不填姓名、不填身份證號、填寫手機號
增補測試用例
5:不填姓名、不填身份證號、不填手機號
從測試用例可以看出:如果按每個因素兩個水平數來考慮的話,需要8個測試用例,而通過正交實驗法進行的測試用例只有5個,大大減少了測試用例數。用最小的測試用例集合去獲取最大的測試覆蓋率。
(2)因素數不相同
如果因素數不同的話,可以采用包含的方法,在正交表公式中找到包含該情況的公式,如果有N個符合條件的公式,那么選取行數最少的公式。
(3)水平數不相同
采用包含和組合的方法選取合適的正交表公式。
上面就正交實驗法進行了講解,現在再拿PowerPoint軟件打印功能作為例子,希望能為大家更好地理解給方法的具體應用
假設功能描述如下:
- 打印范圍分:全部、當前幻燈片、給定范圍 共三種情況;
- 打印內容分:幻燈片、講義、備注頁、大綱視圖 共四種方式;
- 打印顏色/灰度分: 顏色、灰度、黑白 共三種設置;
- 打印效果分:幻燈片加框和幻燈片不加框兩種方式。
因素狀態表:
狀態/因素 |
A打印范圍 |
B打印內容 |
C打印顏色/灰度 |
D打印效果 |
0 |
全部 |
幻燈片 |
顏色 |
幻燈片加框 |
1 |
當前幻燈片 |
講義 |
灰度 |
幻燈片不加框 |
2 |
給定范圍 |
備注頁 |
黑白 |
|
3 |
大綱視圖 |
我們先將中文字轉換成字母,便於設計。得到:
因素狀態表:
狀態/因素 |
A |
B |
C |
D |
0 |
A1 |
B1 |
C1 |
D1 |
1 |
A2 |
B2 |
C2 |
D2 |
2 |
A3 |
B3 |
C3 |
|
3 |
B4 |
我們分析一下:
被測項目中一共有四個被測對象,每個被測對象的狀態都不一樣。
選擇正交表:
1、表中的因素數>=4
2、表中至少有4個因素的水平數>=2
3、行數取最少的一個
最后選中正交表公式:
L16(45)
正交矩陣為:
1 |
2 |
3 |
4 |
5 |
|
1 |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
1 |
1 |
1 |
1 |
3 |
0 |
2 |
2 |
2 |
2 |
4 |
0 |
3 |
3 |
3 |
3 |
5 |
1 |
0 |
1 |
2 |
3 |
6 |
1 |
1 |
0 |
3 |
2 |
7 |
1 |
2 |
3 |
0 |
1 |
8 |
1 |
3 |
2 |
1 |
0 |
9 |
2 |
0 |
2 |
3 |
1 |
10 |
2 |
1 |
3 |
2 |
0 |
11 |
2 |
2 |
0 |
1 |
3 |
12 |
2 |
3 |
1 |
0 |
2 |
13 |
3 |
0 |
3 |
1 |
2 |
14 |
3 |
1 |
2 |
0 |
3 |
15 |
3 |
2 |
1 |
3 |
0 |
16 |
3 |
3 |
0 |
2 |
1 |
用字母替代正交矩陣:
1 |
2 |
3 |
4 |
5 |
|
1 |
A1 |
B1 |
C1 |
D1 |
0 |
2 |
A1 |
B2 |
C2 |
D2 |
1 |
3 |
A1 |
B3 |
C3 |
2 |
2 |
4 |
A1 |
B4 |
3 |
3 |
3 |
5 |
A2 |
B1 |
C2 |
2 |
3 |
6 |
A2 |
B2 |
C1 |
3 |
2 |
7 |
A2 |
B3 |
3 |
D1 |
1 |
8 |
A2 |
B4 |
C3 |
D2 |
0 |
9 |
A3 |
B1 |
C3 |
3 |
1 |
10 |
A3 |
B2 |
3 |
2 |
0 |
11 |
A3 |
B3 |
C1 |
D2 |
3 |
12 |
A3 |
B4 |
C2 |
D1 |
2 |
13 |
3 |
B1 |
3 |
D2 |
2 |
14 |
3 |
B2 |
C3 |
D1 |
3 |
15 |
3 |
B3 |
C2 |
3 |
0 |
16 |
3 |
B4 |
C1 |
2 |
1 |
我們看到:
第一列水平值為3、第三列水平值為3、第四列水平值3、2都需要由各自的字母替代。
1 |
2 |
3 |
4 |
5 |
|
1 |
A1 |
B1 |
C1 |
D1 |
0 |
2 |
A1 |
B2 |
C2 |
D2 |
1 |
3 |
A1 |
B3 |
C3 |
D1 |
2 |
4 |
A1 |
B4 |
C1 |
D2 |
3 |
5 |
A2 |
B1 |
C2 |
D1 |
3 |
6 |
A2 |
B2 |
C1 |
D2 |
2 |
7 |
A2 |
B3 |
C2 |
D1 |
1 |
8 |
A2 |
B4 |
C3 |
D2 |
0 |
9 |
A3 |
B1 |
C3 |
D2 |
1 |
10 |
A3 |
B2 |
C3 |
D1 |
0 |
11 |
A3 |
B3 |
C1 |
D2 |
3 |
12 |
A3 |
B4 |
C2 |
D1 |
2 |
13 |
A1 |
B1 |
C1 |
D2 |
2 |
14 |
A2 |
B2 |
C3 |
D1 |
3 |
15 |
A3 |
B3 |
C2 |
D2 |
0 |
16 |
A1 |
B4 |
C1 |
D1 |
1 |
第五列去掉沒有意義。通過分析,由於四個因素里有三個的水平值小於3,所以從第13行到16行的測試用例可以忽略。
那么這樣的話,就可以有12個測試用例了:
1、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—001 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A全部的幻燈片,有顏色,加框 |
重要級別 |
高 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“全部”; 3、打印內容選擇“幻燈片”; 4、顏色/灰度選擇“顏色”; 5、在“幻燈片加框”前打勾; 6、點擊“確定”。 |
預期輸出 |
打印出全部幻燈片,有顏色且已加框。 |
2、
測試用例編號 |
PPT—ST— FUNCTION—PRINT—002 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A全部的幻燈片為講義,灰度,不加框 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“全部”; 3、打印內容選擇“講義”; 4、顏色/灰度選擇“灰度”; 5、點擊“確定”。 |
預期輸出 |
打印出全部幻燈片為講義,灰度且不加框。 |
3、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—003 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A全部的備注頁,黑白,加框 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“全部”; 3、打印內容選擇“備注頁”; 4、顏色/灰度選擇“黑白”; 5、在“幻燈片加框”前打勾; 6、點擊“確定”。 |
預期輸出 |
打印出全部備注頁,黑白且已加框。 |
4、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—004 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A全部的大綱視圖,黑白 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“全部”; 3、打印內容選擇“大綱視圖”; 4、顏色/灰度選擇“黑白”; 5、點擊“確定”。 |
預期輸出 |
打印出全部大綱視圖,黑白 |
5、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—005 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A當前幻燈片,灰度,加框 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“當前幻燈片”; 3、打印內容選擇“幻燈片”; 4、顏色/灰度選擇“灰度”; 5、在“幻燈片加框”前打勾; 6、點擊“確定”。 |
預期輸出 |
打印出當前幻燈片,灰度且已加框。 |
6、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—006 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A當前幻燈片為講義,黑白,加框 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“當前幻燈片”; 3、打印內容選擇“講義”; 4、顏色/灰度選擇“黑白”; 5、在“幻燈片加框”前打勾; 6、點擊“確定”。 |
預期輸出 |
打印出當前幻燈片為講義,黑白且已加框。 |
7、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—007 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A當前幻燈片的備注頁,有顏色,不加框 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“當前幻燈片”; 3、打印內容選擇“備注頁”; 4、顏色/灰度選擇“顏色”; 5、點擊“確定”。 |
預期輸出 |
打印出當前幻燈片的備注頁,有顏色且不加框。 |
8、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—008 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A當前幻燈片的大綱視圖,有顏色 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“當前幻燈片”; 3、打印內容選擇“大綱視圖”; 4、顏色/灰度選擇“顏色”; 5、點擊“確定”。 |
預期輸出 |
打印出當前幻燈片為講義,黑白且已加框。 |
9、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—009 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A給定范圍的幻燈片,黑白,不加框 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“幻燈片”; 3、打印內容選擇“幻燈片”; 4、顏色/灰度選擇“黑白”; 5、點擊“確定”。 |
預期輸出 |
打印出給定范圍的幻燈片,黑白且不加框。 |
10、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—010 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A給定范圍的幻燈片為講義,有顏色,加框 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“幻燈片”; 3、打印內容選擇“幻燈片”; 4、顏色/灰度選擇“顏色”; 5、點擊“確定”。 |
預期輸出 |
打印出給定范圍的幻燈片為講義,有顏色且加框。 |
11、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—011 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A給定范圍的幻燈片的備注頁,灰度,加框 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“幻燈片”; 3、打印內容選擇“備注頁”; 4、顏色/灰度選擇“灰度”; 5、在“幻燈片加框”前打勾; 6、點擊“確定”。 |
預期輸出 |
打印出給定范圍的幻燈片的備注頁,灰度且加框。 |
12、
測試用例編號 |
PPT—ST—FUNCTION—PRINT—012 |
測試項目 |
測試powerpoint打印功能 |
測試標題 |
打印PowerPoint文件A給定范圍的幻燈片的大綱視圖,灰度 |
重要級別 |
中 |
預置條件 |
PowerPoint文件A已被打開,電腦主機已連接有效打印機 |
輸入 |
文件A:D:\系統測試.ppt |
操作步驟 |
1、打開打印界面; 2、打印范圍選擇“幻燈片”; 3、打印內容選擇“大綱視圖”; 4、顏色/灰度選擇“灰度”; 5、點擊“確定”。 |
預期輸出 |
打印出給定范圍的幻燈片的大綱視圖,灰度 |