什麼是邊界值分析

由於缺陷容易集中在等價類的交界,而測試交界緊鄰兩側之值(例如接受1~100時的0、1、100、101)的黑箱測試技法。容易找出比較運算子混淆之類的錯誤。

日文名稱: 境界値分析

「邊界值分析」出現在1領域的3道練習題中(軟體開發與專案管理等)。

這個名詞所屬的領域: 軟體開發與專案管理

為什麼要測試交界

程式的條件分支容易出現「<」與「<=」、「>」與「>=」混淆,或陣列索引差1(off-by-one)等錯誤,其影響只在交界的值上出現。例如規格為「85 ℃以上發出警告」,程式卻寫成 if (t > 85),在84 ℃與86 ℃時會依規格運作,只有85 ℃時不發出警告。以等價類劃分只測試各類別中間的值,無法發現這類錯誤。

值的選法

整數輸入接受1~100時,下方交界選0與1,上方交界選100與101。也有測試交界值及其兩側相鄰值(0、1、2與99、100、101)的更細做法。像票價類別這樣有多個類別時,要在類別改變的所有交界選取兩側的值。輸入為小數時,依規格所定的解析度(0.1為一單位等)決定相鄰的值。

接近硬體之軟體中的交界

嵌入式軟體中有許多規格數值的交界,例如 ADC 讀值的臨界值、計時器計數器從最大值回到0的點、緩衝區剛好滿的點、通訊封包的最大長度等。8位元計數器在255到0的溢位,16位元有號整數在32,767與−32,768的交界,容易發生計算錯誤。這類交界要從規格書的數值與資料型別的範圍兩方面找出來。

練習邊界值分析的題目

某程式依年齡(0以上的整數)決定入場費:0~17歲為兒童票價,18~64歲為一般票價,65歲以上為敬老票價。為了確認票價類別改變的交界,以邊界值分析選擇的測試值組合,下列何者最適當?

  1. A10、40、90
  2. B17、18、64、65
  3. C18、65
查看答案與解析

正確答案:B. 17、18、64、65

由於缺陷容易集中在等價類的交界,邊界值分析會測試交界緊鄰兩側的值。兒童與一般票價的交界選17與18,一般與敬老票價的交界選64與65,因此是17、18、64、65這4個值。像把條件的「<」與「<=」寫錯這類錯誤,只測試交界的一側時可能無法發現。10、40、90是從各類別選代表值的等價類劃分的值,無法確認交界的錯誤。

常見問題

等價類劃分與邊界值分析要如何區分使用?

多半是組合使用。以等價類劃分將輸入分成類別並測試各類別的代表值,再以邊界值分析追加測試類別交界的兩側。只用等價類劃分雖能減少測試數量,但容易漏掉交界的錯誤。

邊界值分析是白箱測試嗎?

它是從規格所寫範圍的交界選擇值,因此是黑箱測試的技法。不過,實作中的陣列大小或型別範圍等,也有規格沒寫到的交界,因此有時會看原始碼加以追加。

解析中的「邊界值分析」

出現「邊界值分析」的題目(3題)

  1. 某程式依年齡(0以上的整數)決定入場費:0~17歲為兒童票價,18~64歲為一般票價,65歲以上為敬老票價。為了確認票價類別改變的交界,以邊界值分析選擇的測試值組合,下列何者最適當?
  2. 關於黑箱測試的說明,下列何者適當?
  3. 規格是「溫度在85 ℃以上時發出警告」,但韌體中誤寫成「if (t > 85)」。溫度 t 為整數。下列測試值中,能發現此錯誤的是何者?

相關名詞

等價類劃分 黑箱測試 白箱測試 工作分解結構(WBS) 分支涵蓋率 要徑法(CPM) 敏捷開發 測試驅動開發(TDD) 實獲值管理(EVM) 瀑布式模型

前往名詞解釋列表