黑盒測試用例設計集錦(一)
等價類劃分法
1.定義
是把所有可能的輸入資料,程式的輸入域劃分成若干部分(子集),然後從每一個子集中選取少數具有代表性的資料作為測試用例。該方法是一種重要的,常用的黑盒測試用例設計方法。
2.劃分等價類
等價類是指某個輸入域的子集合。在該子集合中,各個輸入資料對於揭露程式中的錯誤都是等效的,併合理地假定:測試某等價類的代表值就等於對這一類其他值的測試,因此,可以把全部輸入資料合理劃分為若干等價類,每一個等價類中取一個數據作為測試的輸入條件就可以用少量代表性的測試資料取得較好的測試結果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。
1)有效等價類
是指對於程式的規格說明來說合理的、有意義的輸入資料構成的集合。利用有效等價類可檢驗程式是否實現了規格說明的功能和效能。
2)無效等價類
與有效等價類的定義恰巧相反。無效等價類指對程式的規格說明是不合理的或者是無意義的輸入資料構成的集合。對於具體問題,無效資料至少應有一個,也可能有多個。
3.劃分等價類的標準
1)完備測試、避免冗餘
2)劃分等價類重要的是:集合的劃分,劃分為互不相交的一組子集,而子集的並不是整個集合;
3)子集互不相交,保證一種形式的無冗餘性
4)同一類中標識(選擇)一個測試用例,同一等價類中,往往處理相同,相同處理對映到“相同的執行路徑”。
4.劃分等價類的方法
1)再輸入條件規定了取值範圍或值得個數的情況下,則可以確定一個有效等價類和兩個無效等價類。如:輸入學生成績,範圍是0~100;
2)再輸入條件規定了輸入值的集合或者規定了“必須如何”的條件的情況下,可確立一個有效等價類和無效等價類;
3)在輸入條件是一個布林量的條件下,可確定一個有效等價類和一個無效等價類。
4)在規定了輸入資料的一組值(假定n個),並且程式要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類
5)在規定了輸入資料必須遵守的規則的情況下,可確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則);
6)在確知已劃分的等價類中各元素在程式處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。
5.設計測試用例
在確立了等價類後,可建立等價類表,列出所有的等價類輸入條件:有效等價類、無效等價類,然後從劃分出的等價類中按以下三個原則設計測試用例:
1)為每一個等價類規定一個唯一編號;
2)設計一個新的測試用例,使其儘可能多的覆蓋尚未被覆蓋地等價有效類,重複這一步,直到所有的有效等價類都被覆蓋為止;
3)設計一個新的測試用例,使其僅僅覆蓋一個尚未覆蓋的無效等價類,重複這一步,直到所有的無效等價類都被覆蓋為止。
實戰
某程式規定:“輸入三個整數a,b,c分別作為三邊的邊長構成三角形。通過程式判定所構成的三角形的型別,當此三角形為一般三角形,等腰三角形及等邊三角形時,分別計算...”。用等價類劃分方法為該程式進行測試用例設計。
分析題目中給出和隱含的輸入條件的要求:
(1)整數(2)三個數(3)非零數(4)正數(5)兩邊之和大於第三邊(6)等腰(7)等邊
如果a、b、c滿足條件(1)~(4),則輸出下列四種情況之一:
1)如果不滿足條件(5),則程式輸出“非三角形”;
2)如果三條邊相等的即滿足條件(7),則程式輸出“等邊三角形”
3)如果只有兩條邊相等、即滿足條件(6),則程式輸出“等腰三角形”
4)如果三條邊都不相等,則程式輸出“一般三角形”
列出等價類並編碼
覆蓋有效等效類的測試用例
a b c 覆蓋等價類號碼
3 4 5 (1)~(7)
4 4 5 (1)~(7),(8)
4 5 5 (1)~(7),(9)
5 4 5 (1)~(7),(10)
4 4 4 (1)~(7),(11)