1 引言
一般來說,軟件測試設計方法分爲5類:傳統的黑盒測試方法、基於質量的測試方法、基於風險的測試方法、基於經驗的測試方法以及白盒測試方法。下面分篇介紹下傳統的黑盒測試和白盒測試方法。
5種黑盒測試方法如下:
·等價類
·邊界值
·判定表
·決策樹
·正交法
7種白盒測試方法如下:
·語句覆蓋
·分支覆蓋
·條件覆蓋
·判定覆蓋
·條件覆蓋
·路徑覆蓋
·控制流測試
2 等價類&邊界值測試設計
2.1 運用等價類/邊界值設計測試用例
通過等價類/邊界值法設計軟件測試用例是測試用例設計的最基本的方法。這兩種方法密不可分。下面先介紹"等價類分析法"。
2.1.1 等價類
等價類是指軟件測試對象的某個參數輸入域的子集合。在該子集合中,各個輸入數據對於識別軟件測試對象中的缺陷是等價的。只要測試等價類的某一個代表值,就可以認爲覆蓋了該等價類所有其他值的軟件測試。
等價類的劃分
是把軟件測試對象的輸入域劃分成若干部分,然後從每一部分中選取少數具有代表性的數據,作爲測試用例輸入數據的測試用例設計技術。
等價類的兩個假設
(1)軟件測試對象等價類中任意一個代表值沒有發現缺陷,則認爲等價類內其他值也不能發現缺陷。比如等價類爲【0~5】,如果測試數據4沒有發現缺陷,那麼測試數據1也不可能發現缺陷。
(2)軟件測試對象等價類中任意一個代表值可以發現缺陷,則認爲等價類內其他值也都可以發現缺陷。比如等價類爲【0~5】,如果測試數據4發現缺陷,那麼測試數據1也肯定能發現缺陷。
有效等價類與無效等價類
(1)有效等價類:對於軟件測試對象而言,有效等價類指的是合理的、有意義的數據構成的集合。
(2)無效等價類:對於軟件測試對象而言,無效等價類指的是不合理的、沒有意義的數據構成的集合。
案例2-1:等價類的分類。
通過表2-1來看各種類型的數據是如何通過等價類進行分類的。
表2-1等價類的設計法
下面再介紹一下"邊界值分析法"。
2.1.2 邊界值
邊界值分析是對輸入或輸出的邊界值進行軟件測試的一種測試方法。通常,邊界值分析法作爲對等價類劃分法技術的補充。這種情況下,其測試用例來自等價類的邊界。由於程序員在開發時在邊界區域比較容易犯錯誤(如原本應該爲a<100,卻寫成a≤100),所以邊界值測試法就顯得非常重要。由於邊界值是隨着等價類出現的,所以邊界值可以分爲有效等價類的邊界值和無效等價類的邊界值。
邊界值分析的步驟如下:
(1)識別軟件測試對象中的參數等價類;
(2)識別每個等價類的邊界值;
(3)創建邊界值的相關測試用例;
(4)定義邊界值分析技術的覆蓋率。
案例2-2:邊界值的設計法。
基於表2-1,來看各種情況的邊界值如何劃定,見表2-2。
表2-2邊界值的設計法
2.1.3 基於輸出的等價類/邊界值劃分
等價類/邊界值除了可以以輸入進行分類,也可以以輸出進行分類,如案例2-3所示。
案例2-3:公園門票規定:
身高1.2m以下的兒童免票;
身高1.2~1.4m的兒童半票(含1.2m);
年齡在60~69歲之間的老人半票(含60歲);
年齡在70歲以上的老人免票(含70歲);
在校學生半票(不含在職學生、電大學生);
革命烈士家屬、現役軍人免票。
我們可以劃分等價類爲全票、半票和免票,見表2-3。
表2-3公園門票等價類/邊界值