一:說明
1.1 等價類划方法
1.2 邊界值分析方法
1.3 決策表方法
1.4 錯誤推測方法
1.4 因果圖方法
二:詳解
2.1 等價類划分方法
定義:是把所有可能的輸入數據,即程序的輸入域划分成若干部分(子集),然后從每一個子集中選取少數具有代表性的數據作為測試用例(子集中每個輸入對發現軟件錯誤都是等效的)。該方法是一種重要的,常用的黑盒測試用例設計方法。
等價類分類:
(a) 有效等價類-->指對於軟件規格說明來說,是合理的、有意義的輸入數據構成的集合。
(b) 無效等價類-->與有效等價類相反,指對於軟件規格說明而言,沒有意義的、不合理的輸入數據集合。
編寫設計測試用例的步驟:
(1) 根據被測對象的輸入條件,確定等價類,包括有效等價類和無效等價類。
有效等價類:系統可以接受、認可的、正確的業務操作。
無效等價類:系統認為是非法的,不合理的輸入。
(2) 將有效等價類、無效等價類進行編號。有效等價類取交集,無效等價類取並集。
(3) 為每個等價類設計具體測試數據。
注:
在實際測試過程中,不管是有效等價類,還是無效等價類,系統都要做出響應。
如輸入合法郵箱名,系統應該能夠接受;
如輸入非法郵箱名,系統應給予“郵箱名輸入不合法,請重新輸入!”等類似的錯誤提示。
案例:
新浪郵箱名,其輸入要求如下:
1. 4~16個字符
2. 支持英文小寫、數字、下划線
3. 不支持全部為數字或下划線
案例解析:
輸入條件 |
有效等價類 |
無效等價類 |
用戶名字符數 |
4~16(1) |
0(2)、0<個數<4(3)、>16(4) |
用戶名組成 |
英文小寫(5)、數字(6)、下划線(7) |
非英文小寫、數字、下划線(8) |
用戶名支持格式 |
不全為數字(9)、不全為下划線(10) |
全為數字(11)、全為下划線(12) |
郵箱名有效輸入集合: (1) (5) (6) (7) (9) (10) 32jing_qfda
無效集合:
(2) 郵箱名為空
(3) jby
(4) jiangboyang_1987_12_22
(8) 江渤洋
(11) 1234567890
(12) __________
最終測試用例:
序號 |
輸入及操作說明 |
期望的測試結果 |
1 |
32jing_qfda |
符合要求 |
2 |
郵件名為空 |
用戶名字符數 不符合要求 |
3 |
jby |
|
4 |
jiangboyang_1987_12_22 |
|
5 |
江渤洋 |
用戶名組成 不符合要求 |
6 |
@#%…… |
|
7 |
FDAY |
|
8 |
1234567890 |
用戶名支持格式 不符合要求 |
9 |
__________ |
2.2 邊界值分析方法
定義:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。是對等價類划分方法的補充。通常邊界值分析法是作為對等價類划分法的補充,這種情況下,其測試用例來自等價類的邊界。
與等價划分的區別:
編寫測試用例的步驟:
(1) 根據被測對象的輸入(或輸出)要求確定邊界值。
(2) 選取等於、剛剛大於、剛剛小於邊界的值作為測試數據。
注:基本思想是在最小值(min)、略高於最小值(min+)、正常值(nom)、略低於最大值(max-)和最大值(max)等處取值。
單缺陷假設和多缺陷假設:
單缺陷假設 : 是指“失效極少是由兩個或兩個以上的缺陷同時發生引起的”。要求測試用例只使一個變量取極值,其他變量均取正常值;
多缺陷假設 : 是指“失效是由兩個或兩個以上缺陷同時作用引起的”,要求測試用例時同時讓多個變量取極值。
邊界值測試分類:

邊界值附近的數據確定的幾種方法:
項 |
邊界值 |
測試用例的設計思路 |
字符 |
起始-1個字符/結束+1個字符 |
假設一個文本輸入區域允許輸入1~255個字符,輸入1個和255個字符作為有效等價類;輸入0個和256個字符為無效等價類,這幾個數值都屬於邊界條件值 |
數值 |
開始位-1/結束位+1 |
數據的輸入域為1~999,其最小值為1,最大值為999,則0、1000為邊界值 |
空間 |
小於空余空間一點/大於滿空間一點 |
測試數據存儲時,使用比最小剩余空間大一點(幾千字節)的文件作為最大值檢驗的邊界條件 |
方向 |
剛剛超過/剛剛低於 |
|
報表 |
第一行和最后一行 |
|
數組 |
第一個和最后一個下標元素 |
|
數據類型 |
16位整型數據,32767和-32768 |
|
循環結構 |
第2次和倒數第2次循環 |
|
案例:XX博客圖片上傳,要求上傳文件大小不超過5M
案例解析:
以健壯邊界值的標准可選取5M(正好等於)、5.1M(剛剛大於)、3M(正常值)0.1M(略高於最小值)4.9M(略小於最大值)最為邊界值來測試。
最終測試用例:
2.3 決策表方法
定義:決策表又稱判斷表,是一種呈表格狀的圖形工具,適用於描述處理判斷條件較多,各條件又相互組合、有多種決策方案的情況。精確而簡潔描述復雜邏輯的方式,將多個條件與這些條件滿足后要執行動作相對應。但不同於傳統程序語言中的控制語句,決策表能將多個獨立的條件和多個動作直接的聯系清晰的表示出來。
組成:
1)條件樁(Condition Stub):列出了問題的所有條件。通常認為列出的條件的次序無關緊要。
2)動作樁(Action Stub):列出了問題規定可能采取的操作。這些操作的排列順序沒有約束。
3)條件項(Condition Entry):列出針對它左列條件的取值。在所有可能情況下的真假值。
4)動作項(Action Entry):列出在條件項的各種取值情況下應該采取的動作。
優點:決策表能羅列出所有的可能情況,並清晰的指出相應的處理方式,用戶不需要考慮其中的邏輯關系就能一眼看出其中什么樣的動作對應什么樣的情況,這比程序語言中層層嵌套的邏輯語句要強多了。而所有可能情況的平面羅列,也能避免在程序語言編寫中,因為邏輯上的層層嵌套而產生遺漏,尤其在if-then-else結構中else部分是可選的情況下。
2.4 錯誤推測方法
定義:指在測試程序時,人們可以根據經驗或直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例的方法(列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例)。
案例:測試一個對線性表(比如數組)進行排序的程序
案例解析:根據錯誤推測法可推測列出以下幾項需要特別測試的情況
2.5 因果圖方法
定義:因果圖法是一種適合於描述對於多種輸入條件組合的測試方法,根據輸入條件的組合、約束關系和輸出條件的因果關系,分析輸入條件的各種組合情況,從而設計測試用例的方法,它適合於檢查程序輸入條件涉及的各種組合情況。利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合於檢查程序輸入條件的各種組合情況。
編寫測試用例的步驟:
(1) 分析軟件規格說明書中的輸入輸出條件並分析出等價類,將每個輸入輸出賦予一個標示符;分析規格說明中的語義,通過這些語義來找出相應的輸入與輸入之間,輸入與輸出之間的關系。
(2) 將對應的輸入與輸入之間,輸入與輸出之間的關系關聯起來,並將其中不可能的組合情況標注成約束或者限制條件,形成因果圖。
(3) 由因果圖轉化成判定表。
(4) 將判定表的每一列拿出來作為依據,設計測試用例。
適合使用因果圖法設計測試的用例:
因果圖方法最終生成的就是判定表,它適合於檢查程序輸入條件的各種組合情況。
案例:有一個處理單價為1元5角的盒裝飲料的自動售貨軟件。若投入1元5角的硬幣,按下“可樂”,“雪碧”或“紅茶”按鈕,相應的飲料就送處理。若投入的是2元硬幣,在送出飲料的同時退還5角硬幣。
案例解析及最終測試用例: