測試用例設計方法小結-正交表


測試場景

在股票交易中,我們作為投資者,首先需要開一個證券賬戶,證券賬戶有很多種類,比方說普通資產賬戶、信用賬戶、期權賬戶等等,每個賬戶都會有狀態,正常交易,凍結,又或者是銷戶。證券賬戶開完之后,也不是所有業務都能做,比方說科創板,創業板是有門檻的。到了交易的環節,可交易的種類也有很多種,債券,期貨,股票等等。
作為一個測試人員,面對,5個限制條件,每個限制條件3種情況,測試用例數就可能是33333=243條用例,現實情況可能限制條件更多,那在這種情況下,該如何編寫測試用例,用最少的用例數,盡可能的實現100%覆蓋呢,這里就可以用到正交表

正交表

1 2 3
1 1 1 1
2 1 2 2
3 2 1 2
4 2 2 1

從測試的角度來看一個常見的正交表,行代表測試用例數,列代表限制條件,表格中的1,2即是限制條件有多少種情況。從數學的角度來說,這個正交表就是一個包含4次實驗,每次最多觀察3個因素,每個因素2水平的正交表。
正交表具有以下兩個特性:

每一列中,不同的數字出現的次數相等
任意兩列中數字的排列方式齊全而且均衡。可以看上面的正交表,任意兩列都有(1,1)(1,2)(2,1)(2,2)

這就體現出了正交表的“均勻分散性,整齊可比”,每個因素的每個水平與另一個因素各水平都只各碰一次。

正交表行數計算

試驗次數(行數)=∑(每列水平數-1)+1
例:
3因素,2水平,行數=(2-1)3+1=4
5因素,4個2水平,1個3水平,行數=(2-1)
4+(3-1)*1+1=7

測試用例設計

思路

首先,思考有哪些變量,每個變量有哪些取值
然后,根據變量,和值的數量選擇一個合適的正交表,將值映射到表中(前重后輕)
最后,把每一行作為一個測試用例,並觀察所有用例,看是否有你認為重要但缺少的用例場景,補充上去,畢竟我們的目標仍然是覆蓋盡可能全的測試場景。

水平數不同時的設計方法

其實現實中很多測試場景的變量取值數量大都不同,這里總結兩種方法,合並拆分法,刪減法

合並拆分法

舉個栗子

狀態/因素 A打印范圍 B打印內容 C打印顏色 D打印效果
0 A1全部 B1幻燈片 C1顏色 D1幻燈片加框
1 A2當前幻燈片 B2講義 C2灰度 D2幻燈片不加框
2 A3給定范圍 B3備注頁 C3黑白
3 B4大綱視圖

然后我們可以將多出來的因素進行合並,就變成了4因素3水平

狀態/因素 A打印范圍 B打印內容 C打印顏色 D打印效果
0 A1全部 B1、B2幻燈片、講義 C1顏色 D1幻燈片加框
1 A2當前幻燈片 B2講義 C2灰度 D2幻燈片不加框
2 A3給定范圍 B3備注頁 C3黑白

然后再挑選合適的正交表

行數/因素 A B C D
1 A1 B1\B2 C1 D1
2 A1 B3 C3 D2
3 A1 B4 C2
4 A2 B1\B2 C3
5 A2 B3 C2 D1
6 A2 B4 C1 D2
7 A3 B1\B2 C2 D2
8 A3 B3 C1
9 A3 B4 C3 D1

把合並的狀態展開,把實際狀態數偏少的值用任意屍體數替換

行數/因素 A B C D
1 A1 B1 C1 D1
2 A1 B2 C1 D1
3 A1 B3 C3 D2
4 A1 B4 C2 D2
5 A2 B1 C3 D1
6 A2 B2 C3 D2
7 A2 B3 C2 D1
8 A2 B4 C1 D2
9 A3 B1 C2 D2
10 A3 B2 C2 D2
11 A3 B3 C1 D1
12 A3 B4 C3 D1

最后我們的測試用例就是12條

刪減法

仍然用上面的案例

狀態/因素 A打印范圍 B打印內容 C打印顏色 D打印效果
0 A1全部 B1幻燈片 C1顏色 D1幻燈片加框
1 A2當前幻燈片 B2講義 C2灰度 D2幻燈片不加框
2 A3給定范圍 B3備注頁 C3黑白
3 B4大綱視圖

我們根據它的因素數水平數,選擇一個行數最少的正交表,這個案例我們選擇的是4因素5水平的正交表

行數/因素 A B C D E
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 C1 3 1
10 A3 B2 C2 2 0
11 A3 B3 3 D2 3
12 A3 B4 C3 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

然后刪除多余的E列,將數字部分按水平值順序填寫補充完整

行數/因素 A B C D
1 A1 B1 C1 D1
2 A1 B2 C2 D2
3 A1 B3 C3 D1
4 A1 B4 C1 D2
5 A2 B1 C2 D1
6 A2 B2 C1 D2
7 A2 B3 C2 D1
8 A2 B4 C3 D2
9 A3 B1 C1 D1
10 A3 B2 C2 D2
11 A3 B3 C3 D2
12 A3 B4 C3 D1
13 A1 B1 C1 D2
14 A2 B2 C3 D1
15 A3 B3 C2 D1
16 A1 B4 C1 D2

刪除由於四個因素里有三個的水平值小於等於3,所以第13行到16行的測試用例可以忽略

行數/因素 A B C D
1 A1 B1 C1 D1
2 A1 B2 C2 D2
3 A1 B3 C3 D1
4 A1 B4 C1 D2
5 A2 B1 C2 D1
6 A2 B2 C1 D2
7 A2 B3 C2 D1
8 A2 B4 C3 D2
9 A3 B1 C1 D1
10 A3 B2 C2 D2
11 A3 B3 C3 D2
12 A3 B4 C3 D1

工具

自行搜索allpairs,一個根據正交表自動生成測試用例場景的小工具


免責聲明!

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



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