1:定義:
在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息,並且保持外部信息(如數據庫或文件)的完整性,如圖所示:
2:黑盒測試方法
黑盒測試設計用例的方法:
等價類,邊界值 (在工作中用的多)
場景法,狀態遷移法 (對整個流程書寫用例)
判定表,因果圖,正交表 (復雜的組合情況編寫用例)
經驗:錯誤推測法,異常分析法,隨機測試
a)等價類划分:
1:有效等價類
是有意義的、合理的輸入數據構成的集合。可檢查程序是否實現了規格說明中所規定的功能和性能。
2:無效等價類
與有效等價類的定義恰巧相反
注意要素:
1、用最少的用例覆蓋最多的有效等價類
2、每一個無效等價類都是一個用例
根據等價類創建測試用例的步驟:
第一步:建立等價類表
例:以年齡輸入框為例
輸入條件 | 有效等價類 | 有效等價類取值 | 無效等價類 | 無效等價類取值 | ||||||||||||||||||
20~99整數 | 20<=年齡<=99 | 88 |
|
|
第二步:輸出測試用例
b)邊界值:
邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類划分法的補充,這種情況下,其測試用例來自等價類的邊界。
設計方法:
確定邊界情況(輸入或輸出等價類的邊界) 選取正好等於、剛剛大於或剛剛小於邊界值作為測試數據。
我們輸入(輸出)條件規定了值的個數,則用最 大個數,最小個數,比最小個數少一,比最大個 數多一的數作為測試數據
例:以年齡輸入框為例 輸入 20~99整數
輸入條件 | 涉及邊界值的地方 | 邊界值分析取值 |
20~99整數 | 邊界為20 和 99 | 19 ,20 ,21,98,99,100 |
c)判定表:
創建判定表的步驟:
1)確定規則的個數:若有N個條件,每一
個條件下有2個值,則有2^n種規則。
2)列出所有條件樁與動作樁。
3)輸入條件項。
4)輸入動作項得到初始判定表。
5)簡化(合並相似規則)。
6)編寫測試用例
舉例:
對功率大於50馬力的機器、維修記錄不全或已運行10年以上的機器,應給予優先的維修處理……”。這里假定,“維修記錄不全”和“優先維修處理”均已在別處有更嚴格的定義;請建立判定表。
1、3個條件:功率大於50馬力的機器、維修記錄不全、已運行10年以上的機器 ,每個條件有兩個值 ,
2^3=8種
初始判定表:
d)因果圖:
多種輸入條件的組合,產生多種結果設計測試用例。
4.2.1 設計方法:
分析軟件規格說明文檔描述的哪些是原因(輸入條件),哪些是結果(輸出條件),給每個原因和結果賦予一個標識符
找出原因與結果,原因與原因之間的對應關系,划出因果圖
在因果圖上標上哪些不可能發生的因果關系,表明約束或限制條件
根據因果圖,創建判定表,將復雜的邏輯關系和多種條件組合很具體明確的表示出來
把判定表的每一列作為依據設計測試用例。
4.2.3 因果圖法總結
優點 :
1、因果圖法能夠幫助我們按照一定步驟,高效的選擇測試用例,設計多個輸入條件組合用例
2、因果圖分析還能為我們指出,軟件規格說明描述中存在的問題
3、可以依據因果圖檢驗需求的邏輯和程序未來應包含的函數或方法。
缺點 :
1、輸入條件與輸出結果的因果關系,有時難以從軟件需求規格說明書得到。
2、即時得到了這些因果關系,也會因為因果關系復雜導致因果圖非常龐大,測試用例數目極其龐大。
e)場景法
根據業務使用的場景 設計用例 工作常用的方法之一
e)基於經驗的測試技術:
(1)錯誤推測法
(2)異常分析法
(3)隨機測試
注意點:
1、測試用例發現程序錯誤的能力最強(邊界值)
2、業務流程場景清晰的系統,使用(場景法)
3、含有輸入條件組合情況,選用因果圖/判定表;
三、優化測試用例的方法
(1)對測試用例不斷進行分解與合並
(2)采用遺傳算法理論進化測試用例
(3)在測試時利用發散思維構造測試用例