ISTQB Foundation Levelの**Chapter 4「Test Analysis and Design(テスト分析と設計)」では、ブラックボックステスト技法として「同値分割法」と「境界値分析」が登場します。
本記事では、その中でも境界値分析(Boundary Value Analysis: BVA)**について、例題を交えてわかりやすく解説します。
■ 境界値分析とは?
境界値分析(Boundary Value Analysis)とは、
入力データや出力データの“境界(限界点)”に注目してテストを行う技法です。
多くのバグは「範囲のギリギリ」に発生する傾向があります。
そのため、境界値に着目してテストを行うことで、最小限のテストケースで高い欠陥検出率を得ることができます。
■ 境界値分析の基本イメージ
例えば、「年齢を入力するフィールド」があるとしましょう。
|
条件 |
入力可能範囲 |
|---|---|
|
年齢は18歳以上30歳以下 |
18 ≤ 年齢 ≤ 30 |
このとき、テストすべき値は次の通りです。
|
種類 |
テストデータ |
期待結果 |
|---|---|---|
|
境界外(下) |
17 |
無効(拒否) |
|
境界値(下) |
18 |
有効(受け入れ) |
|
境界値(上) |
30 |
有効(受け入れ) |
|
境界外(上) |
31 |
無効(拒否) |
✅ ポイント:
この4つの値(17, 18, 30, 31)をテストすることで、範囲全体の動作を確認できます。
■ 同値分割法との違い
前回学んだ「同値分割法(Equivalence Partitioning)」では、
範囲を「有効グループ」と「無効グループ」に分け、各グループから代表値を1つ選びました。
境界値分析では、それに加えて**“境界の前後”**をテストします。
-
同値分割法:範囲の中から1つずつ(例:20, 40 など)
-
境界値分析:範囲の**端(17,18,30,31)**を重点的にテスト
つまり、より厳密に入力条件のエラーを検出できるのがBVAの強みです。
■ 2点分析(Two-point analysis)と3点分析(Three-point analysis)
境界値分析には、テストの厳密さに応じて次の2種類があります。
|
種類 |
内容 |
例(18〜30の場合) |
|---|---|---|
|
2点分析(Two-point) |
境界の内側と外側をテスト(計4ケース) |
17, 18, 30, 31 |
|
3点分析(Three-point) |
境界の内側・境界上・外側をテスト(計6ケース) |
17, 18, 19, 29, 30, 31 |
-
2点分析:一般的な入力チェックに使用(コストが低い)
-
3点分析:安全性や正確性が求められるシステム(例:医療、航空、金融など)で使用
■ 数式で表すと?
範囲が LB ≤ X ≤ RB の場合:
-
2点分析:
-
LB − 1, LB, RB, RB + 1
-
-
3点分析:
-
LB − 1, LB, LB + 1, RB − 1, RB, RB + 1
-
■ 例題①:年齢入力フィールド
フィールドは「18歳以上30歳以下」を受け入れる。
3点分析を使う場合、最小のテストケース数は?
-
3点分析 → 各境界に3点ずつ → 合計6ケース
✅ 答え:6
テスト値:17, 18, 19, 29, 30, 31
■ 例題②:ショッピングカートの数量制限
最低注文数は5個。
100個以上で10%割引が適用される。
この場合の範囲は次の3つに分かれます。
|
パーティション |
範囲 |
意味 |
|---|---|---|
|
無効 |
4以下 |
注文不可 |
|
有効(通常) |
5〜99 |
注文可・割引なし |
|
有効(割引あり) |
100以上 |
割引適用 |
2点分析の場合の境界値:
-
4, 5, 99, 100
✅ 答え: [4, 5, 99, 100](合計4ケース)
■ 例題③:EP+BVAの組み合わせ問題(試験頻出)
年齢フィールド:18〜30
「有効な同値クラス」と「有効な境界値」を組み合わせたテスト値は?
-
EP(同値分割法) → 中間値(例:25)
-
BVA(2点分析) → 18, 30
-
有効値のみを抽出 → 18, 25, 30
✅ 正解: [18, 25, 30]
■ 試験対策ポイント(ISTQB Foundation)
-
「有効境界値(Valid Boundary Value)」と「無効境界値(Invalid Boundary Value)」を区別できるようにする
-
「Two-pointかThree-pointか」を問題文で確認する
-
「Valid collection」=有効+無効を両方含む
-
「Valid boundary value」=有効範囲のみ
■ まとめ
|
ポイント |
内容 |
|---|---|
|
技法名 |
Boundary Value Analysis(境界値分析) |
|
目的 |
境界の前後で欠陥を検出する |
|
応用 |
入力範囲、数値チェック、フォーム入力など |
|
試験の狙い |
BVAの考え方とテストケース数の導出 |
|
関連技法 |
同値分割法(Equivalence Partitioning) |
■ まとめ:実務での活用例
-
フォーム入力チェック(年齢、数量、金額、日付など)
-
REST APIのパラメータ検証
-
IoT機器や車載ECUの閾値テスト
-
バリデーションロジックの単体テスト設計
たとえば「速度は0〜180km/h」と仕様にある場合、
テスト値は −1, 0, 180, 181 で境界チェックできます。
たった4ケースで、主要な欠陥を効率的に検出できます。
💡 最後に
ISTQB試験では、BVAの計算問題が高頻度で出題されます。
時間をかけて表を書くより、
「LB, LB−1, RB, RB+1」のように数式パターンで素早く導出できるようにしておくのがおすすめです。



コメント