軟件測試專欄 | ||
---|---|---|
上一篇 | 主目錄 | 下一篇 |
【前言】
弱
一般等價類測試是基於單缺陷
假設,強
一般等價類測試是基於多缺陷
假設;說等價類健壯是因爲考慮無效值(一般==不考慮無效值,健壯==考慮無效值
)。弱是取MAX,強是笛卡爾乘積
邊界值測試和等價類測試都是黑盒測試
1 簡介
什麼是等價類測試?
等價類是指某個輸入域的子集合中各個數據對於揭露程序的錯誤都是等效的,或者進行相同的處理。測試某等價類的一組數據就等價於對這一類其他值得測試,因此在等價類中只需要取一組測試用例即可。等價類集合的劃分,提供完備性、保證無冗餘性。
確定等價類的原則
1)輸入條件規定
取值範圍
,則卡定義一個有效等價類和兩個無效等價類。例如學生成績範圍是0~100,則一個有效類:0<=成績<=100,兩個無效類:成績<0,成績>100
2)如果規定了輸入數據的個數
,則可類似的劃分出一個等價類和兩個無效等價類。例如一個學生一個學期選修1~3門,則一個有效等價類:1 ~ 3門,兩個無效等價類:不選,選修 超過3門
3)如果規定數據的一組值
,且程序對不同的輸入做不同的處理,則每個允許的輸入值是一個有效等價類,所有不允許的輸入值的集合是一個無效等價類。例如輸入條件說明學歷可爲:專科、本科、碩士、博士4種,則一個有效等價類:專科/本科/碩士/博士,一個無效等價類:其他任何學歷
4)如果規定了輸入數據必須遵循的規則
,可以確定一個有效類和若干個無效等價類。例如校內電話撥號爲 9開頭,則一個有效等價類:9+外線號碼,若干個無效等價類:非9開頭+外線號碼,9+非外線號碼,…
5)如果確知已劃分的等價類中個元素在程序中的處理方式不同,則應將此等價類進一步劃分
成更小的等價類
2 等價類測試分類
分類(兩大類,根據規格說明書的功能)
- 有效等價類
- 無效等價類
分類比較
類別 | 單/多缺陷 | 考慮無效值 | 測試用例 |
---|---|---|---|
弱一般等價類測試 | 單缺陷 | 不考慮 | 通過變量的每個等價類中選擇一個值 |
強一般等價類測試 | 多缺陷 | 不考慮 | 笛卡爾積每個元素都選擇一個值 |
弱健壯等價類測試 | 單缺陷 | 考慮 | 對於有效輸入,使用每個有效類的一個值;對於無效輸入,測試用例取一個無效值,其餘的值都是有效的。 |
強健壯等價類測試 | 多缺陷 | 考慮 | 有效類+無效類的笛卡爾乘積,從每個元素中獲得測試用例 |
-【注】
說等價類弱是因爲是單缺陷(弱==單缺陷,強==多缺陷
)
說等價類健壯是因爲考慮無效值(一般==不考慮無效值,健壯==考慮無效值
)
3 測試實例
1 兩變量函數
X1有三個等價類[a,b]、(b,c]、(c,d],X2有兩個等價類[e,f)、[f,g]
1) 弱一般等價類測試:從變量的每個等價類中選擇一個值即可,3個。(選擇不唯一,下同)
2)強一般等價類測試:從笛卡爾積結果中每個元素取一個值,6個
3)弱健壯等價類測試:對於有效輸入,使用每個有效類的一個值(同 弱一般等價類測試);對於無效輸入,測試用例取一個無效值,其餘的值都是有效的。x1<a,x1>d,x2<e,x2>g四個無效情況,無效輸入的取值有四個,並保持其餘有效。7個。
4)強健壯等價類測試:有效類+無效類的笛卡爾乘積,從每個元素中獲得測試用例
2.1 三角形問題(輸入域)
劃分等價類:
1)弱一般等價類測試&強一般等價類測試:
2)弱健壯等價類測試
3)強健壯等價類測試
3X3X3=27個
2.2 三角形問題(輸出域)
劃分等價類:
2.3 三角形問題(細緻劃分)
劃分有效等價類:
無效等價類:
輸入個數不對,輸入類型不對,不在有效範圍
3.1 NextDate
弱健壯:
強健壯:3X3X3=27
3.2 NextDate
另一種劃分(無效等價類仍是3.1中的)
弱一般等價類測試
4 佣金問題(輸入域)
等價類劃分
部分強健壯等價類測試用例
4 佣金問題(輸出域)
等價類劃分
測試用例