所謂等價類是指輸入域的某個互不相交的子集合,所有等價類的並集便是整個輸入域。目的在於測試用例的無冗餘性。
劃分等價類
- 有效等價類:指對於程序規格說明來說,是合理的、有意義的輸入數據構成的集合。檢驗程序是否實現了規格說明預先規定的功能和性能。
- 無效等價類:指對於軟件規格說明而言,沒有意義的、不合理的輸入數據集合。檢查軟件功能和性能的實現是否有不符合規格說明要求的地方。
舉例:
有效等價類:1.長度爲1-6;2.字符爲‘0’-‘9’或者‘a’-‘z’或者‘A’-‘Z’
無效等價類:3.長度爲0;4.長度大於等於7;5.含有英文/數字以外的字符
在使用等價類劃分法設計測試用例的重點在於劃分有效等價類和無效等價類的細粒度。粒度越粗,設計測試用例越少,粒度越細,設計測試用例越多。相對來說,粒度越細,能發現更多問題。
測試用例完整性劃分
- 弱一般等價類:基於單缺陷假設,只針對有效等價類中進行用例設計,不針對無效等價類進行用例設計。“弱”主就是指基於單缺陷假設,“一般”是指僅考慮有效等價類的覆蓋。
- 強一般等價類:基於多缺陷假設,覆蓋每個有效等價類進行用例設計。不針對無效等價類進行用例設計。“強”指的是基於多缺陷假設,也就是考慮多個等價類中取值的組合。
- 弱健壯等價類:基於單缺陷假設的健壯性測試,同時考慮覆蓋有效等價類和無效等價類。 “健壯”是指同時覆蓋了無效等價類,也就是異常場景。
- 強健壯等價類:基於多缺陷假設的健壯性測試,同時考慮覆蓋有效等價類和無效等價類。
構造測試用例
- 按照輸入條件、有效等價類、無效等價類、 建立等價類表,列出所有劃分出的等價類。
- 爲每一個等價類規定一個唯一的編號。
- 設計一個新的測試用例,使其儘可能多地覆蓋尚未被覆蓋的有效等價類,重複這一步,直到所有的有效等價類都被覆蓋爲止。
- 計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重複這一步,直到所有的無效等價類都被覆蓋爲止。