邊界值分析 ( Boundary Value Analysis ; BVA )

從歷史資料與過往經驗來看,許多問題都發生在輸入或輸出範圍的邊界值上,而不是在輸入範圍內,因此,我們必須小心去分析邊界值條件,針對邊界值去設計測試案例,以免忽略邊界值的錯誤。

一、BVA 介紹

針對輸入輸出的邊界值進行測試的一種黑箱測試方法,等價類劃分法 ( Equivalence Class Partitioning ; ECP )的類別子集也有助於發現潛在的邊界條件,當變數資料可以正確分解時,ECP 子集也可顯示出做為其他重要邊界條件的數值。

BVA 特別適用偵測以下幾種錯誤:

  • 人為造成的錯誤資料型態

  • 指定錯誤的關係運算子

  • 資料型態的封裝

  • 迴圈結構的問題

  • 差一錯誤 (off-by-one-errors)

隱藏的邊界值
並不是所有的邊界值都可以用數值表示,或是直接讓使用者觀察到,像是程式中會有許多迴圈,或是一些資料型態,也都存在著邊界值的問題。

二、BVA 作法

步驟如下:
1. 列出所有可輸入的變數,假設有 n 個
2. 每一個變數最常用在測試的邊界值有最小值、最小值-1、最小值+1、最大值、最大值-1、最大值+1
承上,總共會有 6 個測試案例。

如果有 n 個變數,則測試案例就會有 6n+1,其中的「1」是表示全部變數都在正常範圍內的測試案例。

三、案例

案例一:
三角形輸入三邊長 A,B,C,且輸入限制為  1 ≤ x ≤ 200 (單位: cm)

  • 當輸入為範圍內數值,則會輸出為 正三角形 / 等腰三角形 / 非三角形

  • 當輸入不為範圍內數值,則會輸出錯誤訊息

我們可以根據每個變數的邊界值列出應該測試的數值,如下:

A = { 0,1,2,199,200,201}
B = { 0,1,2,199,200,201}
C = { 0,1,2,199,200,201}

固定其他兩邊為正常範圍內的值(以此案例為 1- 200 之間為正常範圍值),根據列出的邊界值來當第三邊的值,列出測試案例,到此處會列出 6n 個測試案例,之後並加上三邊皆在正常範圍內的測試案例,為公式中「+1」的測試案例,結果如下:

案例二:

輸入一位學生計算機概論成績,成績範圍:0~100。
可輸入最小值為 0,可輸入最大值為 100
所以根據邊界分析法,我們會取 -1, 0, 1, 99, 100, 101 來做邊界值測試,
之後會在取在範圍內任一的值(假設我們取 60)當做確認輸入範圍內的值也為正常。
結果如下:

參考網址:
(1) What is boundary value analysis and equivalence partitioning?
(2) 測試用例設計白皮書--邊界值分析方法
(3) 邊界值分析法
(4) 邊界值測試
(5) 微軟軟體測試之道 Chapter 5 <功能測試技術>

廣告

3 thoughts on “邊界值分析 ( Boundary Value Analysis ; BVA )

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s