一、定義
某類事物(具有相同的屬性或方法)的集合,這個集合中某個個體所表現的特徵與其他個體完全一致。測試上:對於某個被測對象的測試輸入而言,某個個體能夠被接受或被拒絕,則該個體所在集合中的任意個體都應該被接受或拒絕。
二、等價類劃分
- 有效等價類:針對被測對象而言,合理的、有意義的、系統接受的輸入。(如:用戶名長度在6-18的)
- 無效等價類:針對被測對象而言,不合理的、無意義的、系統不能接受的輸入。(如:用戶名長度大於18位,或小於6位)
三、等價類劃分規則
1、如果需求規定了輸入域的取值個數或確定了某個範圍時,則可確定一個有效等價類及兩個無效等價類。如:
- 有效等價類 :用戶名長度在6-18位之間。
- 無效等價類:①用戶名長度大於18位;②用戶名長度小於6位。
2、如果需求規定了某個輸入域的集合,或者必須如何的情況下,可確定一個有效等價類及一個無效等價類。如:
- 有效等價類:以字母開頭。
- 無效等價類:以非字母開頭。
3、如果需求規定了某個輸入域是真假值時,可確定一個有效等價類和一個無效等價類。
4、如果用戶需求規定了輸入域是一組值,則可確定若干個有效等價類及一個無效等價類。如:
京東商城:
- 鑽石會員
- 金牌會員
- 銅牌會員
- 普通註冊用戶
5、用戶需求規定必須遵守某種規則時,可確定一個有效等價類及若干個從不同角度違反規則的無效等價類。如,以字母開頭:
- 有效等價類:以字母開頭。測試
- 無效等價類:①以特殊字母開頭;②以漢字開頭。
四、用等價類進行測試用例設計步驟
- 根據需求,劃分有效及無效等價類,有效等價類統一編號,無效等價類統一編號。
- 設計一個新的測試用例,使其儘可能覆蓋所有尚未覆蓋有效等價類,直到所有有效等價類都覆蓋。
- 設計一個新的測試用例,使其反覆蓋一個無效等價類,直到所有無效等價類都被覆蓋。
五、等價類四則運算法(加、減、乘、除)
- 加法:不考慮需求其他子項,細緻分解當前測試點及詳細需求,做累加。
- 減法:根據業務規則減少,排除相關不可能出現的規則,減少不可能出現的組合。
- 乘法:如果有效等價類中具有互斥條件的需求時,可進行相乘得到用例個數。
- 除法:排除所有具有重複性的等價類,儘可能做到有效等價類之間交集爲空,無效等價類之間交集也爲空,有效及無效等價類的並集爲整個輸入域。