等價類劃分法
有效等價類指輸入完全滿足程式輸入的規格說明,有效、有意義的輸入數據所構成的集合。利用有效等價類可以檢驗程式是否滿足規格說明所規定的功能和性能。
無效等價類和有效等價類相反,即不滿足程式輸入要求或者無效的輸入數據構成的集合。使用無效等價類,可以鑑別程式異常情況的處理。在程式設計中,不但要保證所有有效地數據輸入能產生正確的輸出,同時需要保障在輸入錯誤或者空輸入的時候能有異常保護,這樣的測試才能保證軟體的可靠性。
等價類劃分法是一種典型的、重要的黑盒測試方法,它將程式所有可能的輸入數據(有效的和無效的)劃分成若干個等價類。然後從每個部分中選取具有代表性的數據當做測試用例進行合理的分類,測試用例由有效等價類和無效等價類的代表組成,從而保證測試用例具有完整性和代表性。利用這一方法設計測試用例可以不考慮程式的內部結構,以需求規格說明書為依據,選擇適當的典型子集,認真分析和推敲說明書的各項需求,特別是功能需求,儘可能多地發現錯誤。由於等價類是在需求規格說明書的基礎上進行劃分的,並且等價類劃分不僅可以用來確定測試用例中的數據的輸入輸出的精確取值範圍,也可以用來準備中間值、狀態和與時間相關的數據以及接口參數等,所以等價類可以用在系統測試、集成測試和組件測試中,在有明確的條件和限制的情況下,利用等價類劃分技術可以設計出完備的測試用例。這種方法可以減少設計一些不必要的測試用例,因為這種測試用例一般使用相同的等價類數據,從而使測試對象得到同樣的反映行為。對於等價類我們從以下幾個方面討論它的劃分方法。
劃分等價類的標準
1)完備測試、避免冗餘;
2)劃分等價類重要的是:集合的劃分,劃分為互不相交的一組子集,而子集的並是整個集合;
3)並是整個集合:完備性;
4)子集互不相交:保證一種形式的無冗餘性;
5)同一類中標識(選擇)一個測試用例,同一等價類中,往往處理相同,相同處理映射到"相同的執行路徑"。
劃分等價類的原則
(1) 如果輸入條件規定了取值範圍,或值的個數,則可以確立一個有效等價類和兩個無效等價類。
(2) 如果輸入條件規定了輸入值的集合,或者是規定了“必須如何”的條件,這時可確立一個有效等價類和一個無效等價類。
(3) 如果輸入條件是一個布爾量,則可以確定一個有效等價類和一個無效等價類。
(4) 如果規定了輸入數據的一組值,而且程式要對每個輸入值分別進行處理。這時可為 每一個輸入值確立一個有效等價類,此外針對這組值確立一個無效等價類,它是所有不允許的輸入值的集合。
(5) 如果規定了輸入數據必須遵守的規則,則可以確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則)。
(6)在確知已劃分的等價類中各元素在程式處理中的方式不同的情況下,則應再將該等 價類進一步的劃分為更小的等價類。
套用
在確立了等價類後,可建立等價類表,列出所有劃分出的等價類輸入條件:有效等價類、無效等價類,然後從劃分出的等價類中按以下三個原則設計測試用例:
1)為每一個等價類規定一個唯一的編號;
2)設計一個新的測試用例,使其儘可能多地覆蓋尚未被覆蓋地有效等價類,重複這一步,直到所有的有效等價類都被覆蓋為止;
3)設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重複這一步,直到所有的無效等價類都被覆蓋為止。