軟件測試中正交法設計測試用例實例分析
測試用例(Test Case)是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程序路徑或核實是否滿足某個特定需求。
測試用例(Test Case)目前沒有經典的定義。比較通常的說法是:指對一項特定的軟件產品進行測試任務的描述,體現測試方案、方法、技術和策略。內容包括測試目標、測試環境、輸入數據、測試步驟、預期結果、測試腳本等,并形成文檔。
目的
本文以一個轉帳功能為例介紹了測試例估計和設計的方法。
例子說明
進行測試例估計和設計的依據是需求規格說明書和設計說明書。一般的步驟如下:
1.
2.
3.
4.
5.
例如在對某一應用系統的轉賬功能進行測試過程中,利用正交矩陣生成測試用例步驟如下:
1.約束條件分析:P5L4
標號 |
影響測試規格的要素 |
取值1 |
取值2 |
取值3 |
取值4 |
1 |
用戶權限 |
有轉賬權限 |
無轉賬權限 |
|
|
2 |
票據號 |
票據號有效 |
票據號無效 |
|
|
3 |
賬號 |
賬號有效 |
賬號無效 |
|
|
4 |
轉賬金額 |
轉賬金額小于或等于用戶實際金額 |
轉賬金額大于用戶實際金額 |
|
|
5 |
轉賬方式 |
同城不同行轉賬 |
同行轉賬 |
異地電匯 |
異地信匯 |
注:P表示影響測試規格要素個數;L表示影響測試規格要素的最大取值個數
2.生成標準測試例集矩陣:
編號 |
用戶權限 |
票據號 |
賬號 |
轉賬金額 |
轉賬方式 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
2 |
2 |
2 |
2 |
3 |
1 |
3 |
3 |
3 |
3 |
4 |
1 |
4 |
4 |
4 |
4 |
5 |
2 |
1 |
2 |
3 |
4 |
6 |
2 |
2 |
1 |
4 |
3 |
7 |
2 |
3 |
4 |
1 |
2 |
8 |
2 |
4 |
3 |
2 |
1 |
9 |
3 |
1 |
3 |
4 |
2 |
10 |
3 |
2 |
4 |
3 |
1 |
11 |
3 |
3 |
1 |
2 |
4 |
12 |
3 |
4 |
2 |
1 |
3 |
13 |
4 |
1 |
4 |
2 |
3 |
14 |
4 |
2 |
3 |
1 |
4 |
15 |
4 |
3 |
2 |
4 |
1 |
16 |
4 |
4 |
1 |
3 |
2 |
圖表 2
說明:首先分析第一個要素“用戶權限”,其取值只有2個,即“用戶權限”的值只有可能是1或2,這樣3和4的取值所在的情況就可以刪除,之后在考慮“用戶權限”的2個取值的具體情況,一個是用戶權限有效(1),另一個是用戶權限無效(2),當取值為有效時,所有的情況都可以保留,當取值為無效時,只保留一個就可以了(一旦最高優先級的條件不能滿足,那么其他低優先級的條件就不需要考慮),然后用同樣的方法判斷其他的條件,最后等到一個臨時結果(編號1,2,5),這時可以從最后一個要素開始分析,要使最后一個要素有意義那前4個要素必須都成立(值為1),而要素“轉帳方式”有4種取值而現在的結果中有效情況只有一種(No1),所以可以增加3種(即,見表4中No2,3,4),F在考慮要素“轉帳金額”,可以增加在前3個要素都成立時,“轉帳金額”取值為大于用戶實際金額的情況(即,見表4中No5)。接著考慮要素“帳號”,可以增加在前2個要素都成立時,“帳號”取值為帳號無效的情況(即,見表4中No6)。接著考慮要素“票據號”,可以增加在第一個要素都成立時,“票據號”取值為票據號無效的情況(即,見表4中No7)。這樣就補齊了所有的情況,從而得到最終結果(表5)
3.篩選測試矩陣:
注:由于測試例矩陣是根據影響要素條件最大取值個數得出,因此不是所有影響要素的取值個數都與最大值相等,因此應將矩陣中不存在的測試例條件刪除。
編號 |
用戶權限 |
票據號 |
賬號 |
轉賬金額 |
轉賬方式 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
2 |
2 |
2 |
2 |
3 |
1 |
3 |
3 |
3 |
3 |
4 |
1 |
4 |
4 |
4 |
4 |
5 |
2 |
1 |
2 |
3 |
4 |
6 |
2 |
2 |
1 |
4 |
3 |
7 |
2 |
3 |
4 |
1 |
2 |
8 |
2 |
4 |
3 |
2 |
1 |
9 |
3 |
1 |
3 |
4 |
2 |
10 |
3 |
2 |
4 |
3 |
1 |
11 |
3 |
3 |
1 |
2 |
4 |
12 |
3 |
4 |
2 |
1 |
3 |
13 |
4 |
1 |
4 |
2 |
3 |
14 |
4 |
2 |
3 |
1 |
4 |
15 |
4 |
3 |
2 |
4 |
1 |
16 |
4 |
4 |
1 |
3 |
2 |
圖表 3
4.修改測試矩陣:
注:由于測試例矩陣是根據影響要素條件最大取值個數得出的,因此在刪除測試例時應將因此導致測試矩陣范圍不完整的測試例補充完整。
說明:編號5,6,7,8的情況中有“-”,其意義為“取任何值都不影響結果”
編號 |
用戶權限 |
票據號 |
賬號 |
轉賬金額 |
轉賬方式 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
1 |
1 |
1 |
2 |
3 |
1 |
1 |
1 |
1 |
3 |
4 |
1 |
1 |
1 |
1 |
4 |
5 |
1 |
1 |
1 |
2 |
- |
6 |
1 |
1 |
2 |
- |
- |
7 |
1 |
2 |
- |
- |
- |
8 |
2 |
- |
- |
- |
- |
圖表 4
5.生成測試用例:
編號 |
用戶權限 |
票據號 |
賬號 |
轉賬金額 |
轉賬方式 |
1 |
有轉賬權限 |
票據號有效 |
賬號有效 |
轉賬金額大于或等于用戶實際金額 |
同城不同行轉賬 |
2 |
有轉賬權限 |
票據號有效 |
賬號有效 |
轉賬金額大于或等于用戶實際金額 |
同行轉賬 |
3 |
有轉賬權限 |
票據號有效 |
賬號有效 |
轉賬金額大于或等于用戶實際金額 |
異地電匯 |
4 |
有轉賬權限 |
票據號有效 |
賬號有效 |
轉賬金額大于或等于用戶實際金額 |
異地信匯 |
5 |
有轉賬權限 |
票據號有效 |
賬號有效 |
轉賬金額小于用戶實際金額 |
同城不同行轉賬 |
6 |
有轉賬權限 |
票據號有效 |
賬號無效 |
轉賬金額大于或等于用戶實際金額 |
同城不同行轉賬 |
7 |
有轉賬權限 |
票據號無效 |
賬號有效 |
轉賬金額大于或等于用戶實際金額 |
同城不同行轉賬 |
8 |
無轉賬權限 |
票據號有效 |
賬號有效 |
轉賬金額大于或等于用戶實際金額 |
同城不同行轉賬 |
圖表 5
說明
使用直角矩陣的方法可以進行最初的測試分析設計和估計,但是隨著項目的進展,測試組對系統的理解會逐漸加深,因此需要根據需要多次進行測試分析設計和估計。
文章來源于領測軟件測試網 http://www.kjueaiud.com/