黑盒测试方法
什么是黑盒測試
黑盒測試又稱功能測試,是在不了解程序內部結構和內部特性的情況下進行的測試方法,黑盒測試只驗證程序是否能按照需求規格說明書的規定正常使用,是否能適當的接收數據并給出適當的輸出結果,如錯誤提示,或正確的界面等。
常用黑盒測試方法有等價類劃分法、邊界值分析法、正交實驗法、流程分析法(場景法)、因圖法、判定表法、輸入域覆蓋法、輸出域覆蓋法、猜錯法(異常分析法)。
一、?等價類劃分法
1.1簡介
等價類劃分法是指將程序的輸入值的集合劃分為若干等價類,等價類又分為有效等價類和無效等價類,從每一類中選取少量數據進行測試。
1.2構造測試用例方法
①?根據需求文檔明確需求
②?分析需求中的每一個功能數
③?確定每一個功能有多少個輸入
④?確定每個輸入有多少規則
⑤?針對輸入規則劃分輸入的等價類
⑥?根據等價類設計測試用例
1.3舉例
1.在輸入條件中確立一個范圍時,可分為一個有效等價類和兩個無效等價類。如成績的輸入,要求分數在[0,100]之間,劃分等價類如下:
有效等價類:分數在[0,100]之間
無效等價類:分數小于0
分數大于100
2.確定輸入取值為n個?值中的一個的時候,可劃分為n個有效等價類和1個無效等價類,如學歷的輸入,要求只能輸入專科、本科、碩士、博士四種,劃分等價類如下:
有效等價類:輸入專科、本科、碩士、博士其中的一個
無效等價類:輸入除四種學歷之外的數據
3.在輸入條件是真假值時,可確立為一個有效等價類(真)和一個無效等價類(假),如一個判斷題的對錯,劃分等價類如下:
有效等價類:對
無效等價類:錯
4.在輸入數據確定了只有一種符合條件的情況下,可確立為一個無效等價類和多個有效等價類,如填空題1+1=?,劃分等價類如下:
有效等價類:2
無效等價類:除2之外的數字
空
空格
漢字
字母
特殊字符
5.在輸入數據確定了個數的時候,可分為一個有效等價類和兩個無效等價類,如一天必須上2-10節課,等價類劃分如下;
有效等價類:一天上2-10節課
無效等價類:一天上課的節數小于2
一天上課的節數大于10
6.在輸入數據確定了格式的時候,可分為一個有效等價類和多個無效等價類,如設置密碼時要求為字符、數字、特殊字符的組合,可劃分等價類如下:
有效等價類:字符、數字、特殊字符的組合
無效等價類:純字符
純數字
三者兩兩組合
……
7.在輸入值是一個路徑的時候,可分為一個有效等價類和多個無效等價類,如輸入圖片的路徑,可劃分等價類如下:
有效等價類:存在的圖片路徑
無效等價類:除圖片之外的其他文件的路徑
超出深度要求的路徑
格式錯誤的路徑(區分/和\,區分大小寫的時候)
不存在的圖片路徑
不存在的其他文件路徑
路徑中存在空格或其他特殊字符
……
二、?邊界值分析法
2.1簡介
邊界值分析法是針對輸入數據的邊界值的測試,一般情況下與等價類劃分法結合使用,根據各個等價類的邊界值設計測試用例。
?
2.2構造測試用例方法
①?根據每個輸入的等價類設計邊界值測試用例,包括等價類的上點和離點(上點:邊界值上的點;離點距離邊界最近的點)
?
2.3舉例
1.成績的輸入,分為三個等價類:
有效等價類:輸入分數在[0,100]
無效等價類:分數小于0
分數大于100
可根據這三個等價類的邊界值設計測試用例如下:
| 等價類 | 邊界值測試用例 | 預期結果 |
| [0,100] | 0 | 正確 |
| [0,100] | 100 | 正確 |
| 小于0 | -1 | 錯誤 |
| 大于100 | 101 | 錯誤 |
2.除去對等價類的邊界值進行分析,還需對輸入數據的類型以及各種場景的邊界值進行測試,如:
a:整型數據的邊界值:-32767和32768
b:布爾值的邊界值:真和假
c:循環的邊界值:第一輪循環和最后一輪循環
d:報表的第一行和最后一行
e:瀏覽器的左上角和右下角
f:數組里的第一個元素和最后一個元素
三、?判定表法
3.1簡介
是根據判定條件列出所有可能的組合,當有n個條件時,就需要列出相應的2n個測試用例。
3.2構造測試用例方法
①?在需求中找到輸入參數要滿足的條件
②?在需求中找到滿足條件后得到的結果
③?將所有的n個輸入條件進行全排列組合,形成2n組測試用例,
④?查看是否可以合并測試用例
⑤?設計測試用例時可以忽略沒有數據可取的不存在的結果
3.3舉例
如下是對閏年判定的測試用例,其中閏年的判定條件為能被4整除但不能被100整除或者能被400整除。
| ? 條件 | 能被4整除 | Y | Y | Y | Y | N | N | N | N |
| 不能被100整除 | Y | Y | N | N | Y | Y | N | N | |
| 能被400整除 | Y | N | Y | N | Y | N | Y | N | |
| ? 結果 | 是閏年 | √ | √ | √ | |||||
| 不是閏年 | √ | ||||||||
| 不存在 | √ | √ | √ | √ |
四、?正交實驗法
4.1簡介
正交實驗法是利用正交表來對程序進行測試,用較少的測試用例進行較全面的測試。根據正交表的正交性,從全面試驗中挑選出適量的、有代表性的點進行試驗。
正交表是一種特制的表格,一般用Ln(mk)來表示,其中L表示正交表,n表示測試用例數,k表示最多可安排影響指標因素的個數或正交表的列數,m表示每個因素的水平數即狀態,n=k*(m-1)-1,即最少的測試用例數。
4.2構造測試用例方法
①?從需求中找出所有的因素(輸入參數)
②?從需求中找出所有的水平(因素狀態)并編號,畫出因素狀態表
③?通過因素狀態表繪制出正交表
④?根據正交表,設計測試用例,一行是一條用例
4.3舉例
1.因素數和水平數剛好符合正交表
如測試一個登陸,需要輸入用戶名、密碼和驗證碼,則用戶名、密碼和驗證碼是因素,每個因素都有填和不填兩種水平(狀態),則n= k*(m-1)-1=3*(2-1)+1=4組測試用例,根據正交實驗法設計正交表如下
| 狀態\因素 | 用戶名 | 密碼 | 驗證碼 |
| 1 | 填 | 填 | 不填 |
| 2 | 填 | 不填 | 填 |
| 3 | 不填 | 填 | 填 |
| 4 | 不填 | 不填 | 不填 |
2.因素的水平數不相符
如一個功能需要一個用戶提交性別、學歷、政治面貌3個數據,每個數據要求如下:
性別:取值為男、女2種
學歷:取值為大專、本科、碩士、博士4種
政治面貌:取值為群眾、共青團員、中共黨員3種
因素狀態表:
| 狀態\因素 | 性別 | 學歷 | 政治面貌 |
| 1 | 男 | 大專 | 群眾 |
| 2 | 女 | 本科 | 共青團員 |
| 3 | 碩士 | 中共黨員 | |
| 4 | 博士 |
正交表如下:
| 測試用例 | 性別 | 學歷 | 政治面貌 |
| 1 | 男 | 大專 | 群眾 |
| 2 | 男 | 本科 | 共青團員 |
| 3 | 女 | 碩士 | 中共黨員 |
| 4 | 女 | 博士 | 共青團員 |
| 5 | 男 | 碩士 | 群眾 |
| 6 | 男 | 博士 | 中共黨員 |
| 7 | 女 | 本科 | 中共黨員 |
| 8 | 女 | 大專 | 共青團員 |
| 9 | 男 | 本科 | 群眾 |
| 10 | 男 | 大專 | 中共黨員 |
| 11 | 女 | 博士 | 群眾 |
| 12 | 女 | 碩士 | 共青團員 |
?
五、?流程圖分析法
5.1簡介
當一個事件觸發時,就形成了一個場景,而同一事件的不同觸發順序和處理結果就形成了事件流。在測試一個軟件的時候,在場景法中,測試流程是軟件功能按照正確的事件流實現的一條正確的流程,即基本流,而凡是出現故障或缺陷的過程,就稱為備選流,備選流是可以從基本流來的,或是由備選流引出的。
5.2構造測試用例方法
①?根據業務流程繪制出流程圖,流程圖包含基本流和備選流
②?根據基本流和備選流生成不同的場景
③?對每一個場景生成相應的測試用例
④?對生成的測試用例重新評審,去掉多余的測試用例,測試用例確定后,對每一個測試用例確定測試數據值
5.3舉例
1.例如一個需要輸入用戶名和密碼的登陸并付款購物功能,其中如果密碼錯誤3次會鎖定用戶的事件流如下:
?
?
?
通過從確定執行用例場景所需的數據元素入手構建矩陣。對于每個場景,至少要確定包含執行場景所需的適當條件的測試用例。例如,在下面的矩陣中,V(有效)用于表明這個條件必須是 VALID(有效的)才可執行基本流,而 I(無效)用于表明這種條件下將激活所需備選流。下表中使用的“n/a”(不適用)表明這個條件不適用于測試用例。
| 測試用例ID | 場景 | 用戶名 | 密碼 | 有錢購物 | 預期結果 |
| 1 | 場景1:購物成功 | V | V | V | 成功購物 |
| 2 | 場景2:用戶名錯誤 | I | n/a | n/a | 提示用戶名錯誤 |
| 3 | 場景3:密碼錯誤 | V | I | n/a | 提示密碼錯誤 |
| 4 | 場景4:密碼錯3次鎖定 | V | I | n/a | 提示密碼錯誤3次鎖定用戶 |
| 5 | 場景5:沒錢付款 | V | V | I | 提示余額不足 |
六、?因果圖法
6.1簡介
因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,適用于檢查程序輸入的各種組合條件。
因果圖法比較合適輸入條件比較多的情況,測試所有的輸入條件的排列組合,所謂的原因就是輸入,所謂的結果就是輸出。
因果圖的“因”—輸入條件
因果圖的“果”—輸出結果
因果圖法要注意考慮:
1.所有輸入/輸出條件的相互制約關系以及組合關系
2.輸入條件的依賴關系,也就是什么樣的輸入組合會產生怎么樣的輸出結果,即“因果關系”
因果圖中的基本符號:
?
?
?
?
6.2構造測試用例方法
①?分析需求中描述的原因和結果,給每個原因和結果賦予一個編號。
②?根據這些關系畫出因果圖
③?因果圖上用一些記號表明約束條件或限制條件
④?把因果圖轉換成判定表
⑤?將判定表的每一列作為依據設計測試用例
?
6.3舉例
1.一個交通卡充值系統的需求:
系統只接收100元,只能選擇充值100
若輸入100元并選擇充值100元,提示充值成功并退卡
若輸入紙幣后一定時間不選擇充值按鈕,退回輸入的紙幣并提示錯誤
不輸入紙幣直接選擇充值按鈕,提示錯誤
輸入條件:
①?輸入100元紙幣
②?點擊充值100元
輸出:
①?提示充值成功
②?完成充值,退卡
③?提示錯誤
因果圖如下:
? 輸入:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???輸出:
?
?
根據因果圖,判定表如下:
| ? | ? | 1 | 2 | 3 |
| 輸入 | 輸入100元紙幣 | 1 | 1 | |
| 選擇充值按鈕 | 1 | 1 | ||
| 輸出 | 提示充值成功 | 1 | ||
| 充值成功并退卡 | 1 | |||
| 提示錯誤 | 1 | 1 |
七、?輸入域覆蓋法
7.1簡介
輸入域覆蓋是指根據SRS(需求分析文檔)結合等價類劃分法和邊界值分析法的一種測試方法,主要是對輸入的特殊值和類型邊界補充測試用例。
八、?輸出域覆蓋法
8.1簡介
輸出域覆蓋是指在了解程序功能的所有輸出后,查看測試用例中所有的輸入產生的輸出結果是否能夠涵蓋所有輸出結果,如果不完善,則根據輸出結果推導出相應的輸入數據,將其補充到測試用例中。
九、?猜錯法
9.1簡介
猜錯法是基于經驗和直覺,以及參考以往測試結果中出現較頻繁及較隱蔽的錯誤,從而推測出程序所有可能出現的錯誤或異常,選擇這些情況下的用例進行測試。
總結
- 上一篇: 数学建模模型大全
- 下一篇: 2019 CCPC-Wannafly W