1. 程式人生 > >軟體測試學習筆記之等價類劃分

軟體測試學習筆記之等價類劃分

等價類劃分測試法滿足了測試的兩個需求:完備的測試、避免冗餘。

等價類測試法將每一個輸入變數的取值根據它們的特點劃分成互不相交的一組子集,並保證這組子集的並是整個輸入變數的取值。隨後從每個子集中抽取其中一個元素來代表這一子集進行測試,從而實現通過最少的測試用例來無冗餘地覆蓋全部輸入測試。因此等價類劃分測試的前提條件是:假設同一型別輸入具有同樣的測試結果,在設計時如果無法確定系統一定滿足該前提條件則需要與其它的測試方法混用來增加測試有效性(如對有疑點的輸入區間增加邊界值檢測)。

其劃分原則如下:

Ø 在輸入條件規定的取值範圍或值的個數的情況下,可以確定一個有效等價類和兩個無效等價類。

Ø 在規定了輸入資料的一組值中(假定有n個值),並且程式要對每個輸入值分別處理的情況下,可以確定n個有效等價類和一個無效等價類。

Ø 在規定輸入資料必須遵守的規則的情況下,可以確定一個有效等價類和若干個無效等價類。

Ø 在輸入條件規定了輸入值的集合或規定了“必須如何”的條件下,可以確定一個有效等價類和一個無效等價類。

Ø 在確定已劃分的等價類中各元素在程式處理中的方式不同的情況下,則應將該等價類進一步地劃分為更小的等價類。

對於有多個變數組成的系統,等價類測試法也有單缺陷與多缺陷的條件假設,在單缺陷前提條件下,我們只需要保證測試用例使用了每個變數每個子集中的一個元素即可。


由上圖可以看出,在x軸方向上測試用例覆蓋了[a,b],[b,c],[c,d]三個區間y軸方向上測試用例覆蓋了[e,f],[f,g]兩個區間。

在多缺陷前提條件下,我們要保證測試用例覆蓋所有變數等價笛卡爾積的每個子集,即變數子集的叉乘。


如果還考慮到無效等價類,則會擴充套件成以下的形式:


等價劃分法由於同樣只關注系統輸入輸出之間的關係而不關心繫統內部實現,因此是一種典型的黑盒測試方法。它幾乎適用於所有測試,然而當各個輸入變數之間相互制約,相互影響時,輸入變數的區間變化劃分將十分困難,此時等價劃分方法只能用來輔助指導測試而不能當成主要測試方法。