測試用例設計之正交實驗法


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)

 

clip_image001

 

③ 變量映射

 

姓名: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),如下圖:

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,它比原來也少多了。

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即為所需正交表,波浪線表示可以選任一水平。

 

 


免責聲明!

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



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