1.正交表介紹
標准正交表:
Ln(mk) :
L: 表示正交表
n: 實驗行數 且 n = (m-1)*k + 1
k: 因素數 (輸入 或 控件數量)
m: 水平數 (輸入的取值 或者 每個控件的下拉選項數量)
標准正交表的每個因素的水平數相同.
混合正交表:
Ln(m1k1m2k2m3k3.......)
L: 表示正交表
n: 實驗行數 且 n = (m1-1)*k1 + (m2-1)*k2+(m3-1)*k3+.........+1
m1k1: k1個控件有m1個選項
m2k2: k2個控件有m2個選項
m3k3: k3個控件有m3個選項
2.正交表法應用場景:
多條件組合用例設計,但是不適用依賴和聯動(比如省市區那樣的下拉框)。常見於頁面組合設置用例設計和兼容性組合用例設計。用最少的實驗覆蓋最多的操作,測試用例設計很少,效率高。正交性從全面試驗中挑選出部分有代表性的點進行試驗。
3.正交表設計步驟
設計測試用例的步驟:
1、確定因子(變量)
2、確定水平(變量的取值)
3、選擇一個合適的正交表
4、把變量的值映射到表中
5、把每一行的各因素水平的組合作為一個測試用例
6、加上你認為可疑且沒有在表中出現的用例組合
4.選擇正交表
1、考慮因素(變量)的個數
2、考慮因素水平(變量的取值)的個數
3、考慮正交表的行數
4、取行數最少的一個
正交表查詢地址
http://support.sas.com/techsup/technote/ts723_Designs.txt
5.設計用例時三種情況
因子和水平相符,且水平數(變量的取值)相同、因素數(變量)剛好符合某一正交表,則直接套用正交表,得到用例。
例子:
對某人進行查詢,假設查詢某個人時有三個查詢條件:
根據“姓名”進行查詢
根據“身份證號碼”查詢
根據“手機號碼”查詢
考慮查詢條件要么不填寫,要么填寫,此時可用正交表進行設計
① 因素數和水平數
有三個因素:姓名、身份證號、手機號碼。每個因素有兩個水平:
姓名:填、不填
身份證號:填、不填
手機號碼:填、不填
② 選擇正交表
表中的因素數>=3
表中至少有三個因素的水平數>=2
行數取最少的一個
結果:L4(2^3)
③ 變量映射
姓名:1→填寫,2→不填寫;
身份證號:1→填寫,2→不填寫;
手機號碼:1→填寫,2→不填寫;
④ 用L4(2^3)設計的測試用例
測試用例如下:
1:填寫姓名、填寫身份證號、填寫手機號
2:填寫姓名、不填身份證號、不填手機號
3:不填姓名、填寫身份證號、不填手機號
4:不填姓名、不填身份證號、填寫手機號
⑤增補測試用例
5:不填姓名、不填身份證號、不填手機號
測試用例減少數:8→5
因素數不相同
水平數(變量的取值)與某正交表相同,但因素數(變量)卻不相同,則取因素數最接近但略大於實際值的正交表表,套用之后,最后一列因素去掉即可。
例子:
兼容性測試:
操作系統:2000、XP、2003
瀏覽器:IE6.0、IE7.0、TT
殺毒軟件:卡巴、金山、諾頓
如果全部進行測試的話,3^3=27個組合,需要進行27次測試。
① 因素數和水平數
有三個因素:
操作系統、瀏覽器、殺毒軟件
每個因素有三個水平。
② 選擇正交表
表中的因素數>=3
表中至少有三個因素的水平數>=3
行數取最少的一個
結果:L9(3^4),如下圖:
③ 變量映射
操作系統:1→2000,2→XP,3→2003
瀏覽器:1→IE6.0,2→IE7.0,3→TT
殺毒軟件:1→卡巴,2→金山,3→諾頓
④用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)(如下圖)
③ 變量映射
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
④ 用L18(3^6 6^1)設計的測試用例
略
測試用例減少數:216→18
加上一些可疑的情況(設為n個)為18+n,它比原來也少多了。
6.ALLpairs工具生成混合正交表
下載地址
https://www.softpedia.com/dyn-search.php?search_term=allpairs
1、先根據測試要求得到取值表(下面是我一個案例取值表)用excel表
2、將取值表數據復制粘貼到新建的test.txt文本當中
3、將test.txt放進allpairs所解壓的文件夾里面如下:
4.在命令行執行allpairs.exe test.txt>test1.txt
test1.txt即為所需正交表,波浪線表示可以選任一水平。