黑盒測試方法之邊界值分析
1. 概述
在長期的測試工作中,人們發現大量的錯誤都是出現在了輸入和輸出域的邊界範圍上,而並不是輸入範圍的內部。因此要對各種邊界情況設計測試用例,以查詢出更多的錯誤。
邊界值屬於等價類方法的特定輸入域,包含在有效等價類或無效等價類中,根據等價類推斷理論,邊界值方法產生的測試資料測試效果和等價類方法相同,只是邊界值方法產生的資料更具有針對性,通常選取輸入域的邊界值。
2. 邊界條件和次邊界條件
>邊界條件
邊界條件是特殊情況,比如要求輸入的長度為6-10,位,那麼邊界條件就是長度為6和長度為10以及兩種情況。除此之外,還有長度比6與10小1位和大1位這四種情況。
>次邊界條件
上面的邊界條件是很容易找到的,一般都在規格說明書中有明確規定,或在使用軟體時確定。但是有些邊界是在軟體的內部的,終端使用者幾乎是看不到的,但是在測試時依然要檢查到這些點,這樣的條件被稱為內部邊界條件或次邊界條件。
例如在一個接收使用者輸入範圍為1000以內的整數的程式,明面上的區間為0到1000,但是還要考慮到計算機內部的儲存問題,也就是說要考慮到2的乘方的邊界的情況,比如14、15、16等。
3. 邊界值構造測試資料時的三個點
>上點
上點是指輸入域邊界上的點,如果輸入域是閉區間,則上點在輸入域內,反之如果輸入域是開區間,則上點在輸入域外。
>離點
離點是指離上點最近的一個點,如果輸入域是封閉的,則離點在域的範圍外,如果輸入域是開區間,則離點在域的範圍內,並且離點的選擇和上點的資料型別和精度有關。
例如,長度為7到10的輸入域,上點就是7和10,如果針對輸入域[7,10],則離點就是6和9,而針對輸入域(7,10),則離點是8和9,上述輸入域的精度都是1。
>內點
內點是輸入域範圍內的任意一個點。
4. 邊界值的選擇方法
邊界值分析是一種補充等價類劃分的測試用例技術,它不是選擇等價類的任意元素,而是選擇等價類邊界的測試用例。邊界值分析法不僅重視輸入條件邊界,也適用於輸出域測試用例。在使用該方法設計測試用例時,遵循以下原則:
- 如果輸入條件規定了值得範圍,則應取剛達到這個範圍的邊界的值以及剛剛超越這個邊界的值作為測試輸入資料。
- 如果輸入條件規定了值的個數,則用最大個數、最小個數、比最小個數少1和比最大個數多1的資料作為測試資料。
- 如果程式的規格說明書給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最後一個元素作為測試資料。
- 如果程式使用了一個內部資料結構,則應當選擇這個內部資料結構邊界上的值作為測試用例。
- 分析規格說明,找出其他可能的邊界條件。
5. 邊界值劃分表
參考等價類設計方法中等價類劃分方法,確定了有效和無效等價類後,輸入每個輸入域的上點、內點、離點,填入表格,形成下面的邊界值劃分表。
根據形成的邊界值劃分表確定測試用例/資料的步驟如第6部分所示。
6. 根據邊界值劃分表確定測試資料的基本步驟
在繪製出邊界值劃分表後,就可以根據表格來確定測試資料/用例了,其步驟和等價類中確定測試用例的步驟類似,具體如下:
- 為每個等價類的上點、內點、離點設定唯一編號,上點、內點統一編號,離點統一編號。
- 設計新的測試用例,該測試用例只覆蓋一個邊界值劃分表中尚未被覆蓋的點即可,不斷重複此步驟,直到邊界值劃分表中所有的內點、離點、上點全部被覆蓋完即可。
邊界值設計在實際的使用中應該明確上點、內點及離點,通常而言,邊界值設計就是在等價類的方法上增加了針對上點和離點的測試。
7. 例項
這個例項仍然以上篇文章《等價類劃分》最後的例項為例,用邊界值分析的方法選取測試資料,作為等價類劃分形成測試資料的補充。
例項的內容主要為:以126郵箱註冊功能頁面為例,其中郵箱地址需要由為6~18個字元構成,包括字母、數字、下劃線並且必須以字母開頭和以字母或數字結尾。
其截圖如下:
按照例項主要內容中的描述,再結合第4部分邊界值的選擇方法中的內容,可以非常容易的發現,針對等價類劃分中的關於使用者名稱或者說是郵箱地址的長度情況是適用於邊界值分析法設計測試用例的,並且其適用於其中第一個原則。在明確了這點後,針對長度部分,按照第4部分的第一個原則,參考第5部分的邊界值劃分表,可以繪製以下的邊界值劃分表:
由於針對的是郵箱的長度情況進行測試,所以在等價類名框直接輸入了[6,18],然後在編寫內點、上點、離點的相關資訊。
最後,根據上述的邊界值劃分表,結合第6部分的步驟,從中即可抽取出以下的測試用例/資料:
上表中的5條測試資料就是根據邊界值分析法得到的測試資料,其覆蓋了輸入域[6,18]的內點、離點和外點,補充了等價類劃分設計的測試資料的不足。
相關文章
- 測試用例的邊界值分析法
- 軟體測試用例設計方法-邊界值法
- 邊界值分析法例項
- 黑盒測試
- 黑盒測試用例設計方法三
- 軟體測試技術-黑盒測試
- APP黑盒測試總結APP
- 黑盒白盒測試工具
- 黑盒測試用例二
- 黑盒測試技術之等價類劃分
- 知識普及:黑盒測試、白盒測試、灰盒測試之間的區別
- 黑盒測試策略及測試範圍(web端)Web
- 黑盒測試和白盒測試的關係
- 【軟體測試】(三)黑盒測試綜合策略概述
- 跨越邊界: Lisp 之美Lisp
- 測試前奏 之 Robotium使用Eclipse和ADT對apk進行黑盒測試EclipseAPK
- 白盒測試、灰盒測試以及黑盒測試的區別
- 軟體測試中的黑盒測試是什麼?
- [技術討論]QQ農場bug看邊界測試
- NEO智慧合約黑盒測試框架框架
- 黑盒測試---等價類劃分法
- 冒泡、選擇、快排、插入排序—效能簡單測試/rand()邊界值——c++資料結構排序C++資料結構
- 軟體測試要學什麼(1)黑盒測試詳解教程
- 效能測試之測試分析與調優
- 黑盒測試、白盒測試、單元測試、整合測試、系統測試、驗收測試的區別與聯絡...
- 《超越邊界》
- 機器學習之迴歸分析--預測值機器學習
- 二分查詢左邊界,右邊界,>=,>,<=,<
- 軟體測試需求分析方法
- 微服務邊界微服務
- 軟體測試:瓶頸分析方法
- 使用Dice loss實現清晰的邊界檢測
- 博弈論之軟體測試的價值
- React元件設計之邊界劃分原則React元件
- 技術的邊界
- 軟體測試方法的分析與研究
- 面向價值程式設計:低邊際成本的自動化測試程式設計
- .netcore持續整合測試篇之測試方法改造NetCore