劃分等價類的標準程序員
掌握必須使同類數據的處理過程及處理結果徹底一致的大原則,可參考如下劃分方法數據庫
輸入條件安全 |
有效等價類數據結構 |
無效等價類oracle |
合格成績取值範圍爲[60,100]之間的整數工具 |
[60,100]之間的整數性能 |
大於100; |
輸入等價類測試 |
有效等價類spa |
無效等價類 |
日期的類型及長度 |
①6位數字字符 |
②有非數字字符 ③少於6位數字字符 ④多於6位數字字符 |
年份範圍 |
⑤在1990~2049之間 |
⑥小於1990 ⑦大於2049 |
月份範圍 |
⑧在01~12之間 |
⑨等於00 ⑩大於12 |
2)設計測試用例,以便覆蓋全部的有效等價類在表中列出了3個有效等價類,編號分別爲①、⑤、⑧,設計的測試用例以下:
測試數據 指望結果 覆蓋的有效等價類
200211 輸入有效 ①、⑤、⑧
3)爲無效等價類設計測試用例,設計結果以下:
測試數據 指望結果 覆蓋的無效等價類
95June 無效輸入 ②
20036 無效輸入 ③
2001006 無效輸入 ④
198912 無效輸入 ⑥
200401 無效輸入 ⑦
200100 無效輸入 ⑨
200113 無效輸入 ⑩
使用等價類劃分法測試的實例(續)
某保險公司的人壽保險的保費計算方式爲:
投保額×保險費率
其中,保險費率依點數不一樣而有別,10點及10點以上保險費率爲0.6%,10點如下保險費率爲0.1%;而點數又是由 投保人的年齡、性別、婚姻情況和撫養人數來決定,具體規則以下:
年齡 |
性別 |
婚姻 |
撫養人數 |
||||
20~39 |
40~59 |
其它 |
M |
F |
已婚 |
未婚 |
1人扣0.5點 最多扣3點 (四捨五入取整) |
6點 |
4點 |
2點 |
5點 |
3點 |
3點 |
5點 |
(1)分析程序規格說明中給出和隱含的對輸入條件的要求,列出等價類表(包括有效等價類和無效等價類)。
(2)根據(1)中的等價類表,設計能覆蓋全部等價類的 測試用例。
輸入條件 |
有效等價類 |
編號 |
無效等價類 |
編號 |
年齡 |
20~39歲 |
1 |
||
40~59歲 |
2 |
|||
1~19歲 60~99歲 |
3 |
小於1 |
12 |
|
大於99 |
13 |
|||
性別 |
單個英文字符 |
4 |
非英文字符 |
14 |
非單個英文字符 |
15 |
|||
‘M’ |
5 |
除‘M’和‘F’以外的 其它單個字符 |
16 |
|
‘F’ |
6 |
|||
婚姻 |
已婚 |
7 |
除’已婚’和’未婚’以外的其它字符 |
17 |
未婚 |
8 |
|||
撫養人數 |
空白 |
9 |
除空白和數字以外 的其它字符 |
18 |
1~6人 |
10 |
小於1 |
19 |
|
6~9人 |
11 |
大於9 |
20 |
以往的測試經驗代表,因爲需求界定不許確、設計不嚴密、程序書寫手誤等等緣由,對於這些數據範圍邊界的判斷是軟件極容易出錯的地方。大量的錯誤每每發生在輸入或輸出範圍的邊界上,所以針對各類邊界狀況設計測試用例,能夠檢查出更多的錯誤。
3)首先肯定邊界狀況。一般輸入或輸出等價類的邊界就是應該着重測試的邊界狀況,所以在等價類的邊界上以及兩側的狀況設計測試用例。
1) 輸入(輸出)條件規定了取值範圍
2) 輸入(輸出)條件規定了值的個數
3) 程序規格說明書中提到的輸入或輸出是一個有序的集合
4) 程序中使用了一個內部數據結構
等價類劃分法和邊界值分析方法都是着重考慮輸入條件,但沒有考慮輸入條件的各類組合、輸入條件之間的相互制約關係。這樣雖然各類輸入條件可能出錯的狀況已經測試到了,但多個輸入條件組合起來可能出錯的狀況卻被忽視了。
若是在測試時必須考慮輸入條件的各類組合,則可能的組合數目將是天文數字,所以必須考慮採用一種適合於描述多種條件的組合、相應產生多個動做的形式來進行測試用例的設計,這就須要利用因果圖(邏輯模型)
因果圖法的簡介
(1)根據程序規格說明書描述,分析並肯定因(輸入條件)和果(輸出結果或程序狀態的改變),畫出因果圖。
(2)將獲得的因果圖轉換爲斷定表。
(3)爲斷定表中每一列所表示的狀況設計一個測試用例
因果圖
因果圖中的4種基本關係
在因果圖的基本符號中,圖中的左結點ci表示輸入狀態(或稱緣由),右結點ei表示輸出狀態(或稱結果)。ci 與 ei 取值0或1,0表示某狀態不出現,1則表示某狀態出現。
在實際問題中輸入狀態相互之間、輸出狀態相互之間可能存在某些依賴關係,稱爲「約束」。對於輸入條件的約束有E、I、O、R四種約束,對於輸出條件的約束只有M約束。
「閱讀指南」斷定表
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
||
問題 |
以爲疲倦? |
Y |
Y |
Y |
Y |
N |
N |
N |
N |
感興趣嗎? |
Y |
Y |
N |
N |
Y |
Y |
N |
N |
|
糊塗嗎? |
Y |
N |
Y |
N |
Y |
N |
Y |
N |
|
建議 |
重讀 |
√ |
|||||||
繼續 |
√ |
||||||||
跳下一章 |
√ |
√ |
|||||||
休息 |
√ |
√ |
√ |
√ |
決策表的組成
將任何一個條件組合的特定取值及相應要執行的動做稱爲一條規則。在決策表中貫穿條件項和動做項的一列就是一條規則。
決策表的生成
(1) 肯定規則的個數。
(2) 列出全部的條件樁和動做樁。
(3) 填入條件項。
(4) 填入動做項,獲得初始決策表。
(5) 簡化決策表,合併類似規則。
合併後的條件項用符號「-」表示,說明執行的動做與該條件的取值無關,稱爲無關條件
測試方法的選擇
(1)在任何狀況下都必須採用邊界值分析法。這種方法設計出的測試用例發現程序錯誤的能力最強。
(2)必要時採用等價類劃分法補充測試用例。
(3)採用錯誤推斷法再追加測試用例。
(4)對照程序邏輯,檢查已設計出的測試用例的邏輯覆蓋 程度。若是沒有達到要求的覆蓋標準,則應當再補充更多的測試用例。
(5)若是程序的功能說明中含有輸入條件的組合狀況,則應一開始就選用因果圖法。
用戶登陸界面測試用例設計: