FE EXAM

限界値分析(境界値分析)

入力範囲の境界付近の値を重点的にテストする技法。

INTERACTIVE VISUALIZATION
有効範囲
境界の値
仕様
入力は 1 以上 100 以下の整数のみ有効
有効範囲
1100
選んだ境界値
0
シナリオ
ステップ1 / 6
STEP 1/6入力の仕様を確認するまずテスト対象の仕様を確認します。この入力欄は「1以上100以下の整数だけを有効として受け付ける」とします。数直線の中央にある帯(1〜100)が有効範囲です。限界値分析では、この有効範囲の「ふち(境界)」に注目します。
入力値 →有効範囲 1〜10001100101
境界付近のテスト値
0
無効
下限の1つ外(無効)
1
有効
下限ちょうど(有効)
100
有効
上限ちょうど(有効)
101
無効
上限の1つ外(無効)
解説

📌
限界値分析とは

有効範囲境界の前後を狙う境界の前後を狙う

限界値分析(境界値分析)とは、入力範囲の「ふち(境界)」付近の値を重点的にテストする技法です。仕様だけからテストを設計するブラックボックステストの一種で、同値分割と並んでよく使われます。

身近な例で考えると、遊園地の身長制限に似ています。「身長120cm以上で乗れる」という乗り物は、119cm・120cm・121cm のように境目の前後で「乗れる/乗れない」が変わります。トラブルが起きやすいのはまさにこの境目なので、そこを念入りに確認するわけです。

上のツールで▶ボタンを押すと、「1〜100を有効とする入力」の下限・上限の境界を見つけ、その前後の「0・1・100・101」をテスト値に選ぶ流れを確認できます。

🎯
境界値を狙う理由

バグは範囲の真ん中ではなく、境界(ふち)に集中して発生します。理由は、プログラムを書くときに境界の扱いを間違えやすいからです。代表的な間違いは次の2つです。


不等号の取り違え:「<(未満)」と「<=(以下)」を書き間違える
1つずれ(オフバイワン):「100まで」を「99まで」や「101まで」と1つずらしてしまう

正: if (1 <= score && score <= 100) ... 有効
誤: if (1 < score && score <= 100) ... 1 が無効に
→ 境界「1」だけ結果がずれる

上のコードのように、不等号を1つ間違えるとちょうど境界の値「1」だけが誤った扱いになります。真ん中の「50」をいくら試してもこのバグは見つかりません。だからこそ境界のすぐ内側・すぐ外側の値を狙ってテストするのが効果的なのです。

🔗
同値分割との組合せ

限界値分析は単独でも使えますが、同値分割(=入力を同じ結果のグループに分け代表値でテストする技法)とセットで使うのが定番です。役割が補い合うからです。

項目同値分割限界値分析
狙う場所各クラスの代表(中央)クラスの境界(ふち)
役割広くもれなくカバー危険な境目を重点防御
例の値-5・50・1100・1・100・101

同値分割で「どこに境界があるか」を見つけ、その境界の前後を限界値分析で狙う、という流れが基本です。同値分割が入力全体を広くカバーし、限界値分析が一番危険な境目を守る。この2つを組み合わせることで、少ないテスト数で見落としの少ない検証ができます。上のツールでは、同値分割の代表値とは別に、境界4点を狙う様子を確認できます。

💡
なぜ境界でバグが起きやすいか

有効 1〜10001100101境界のすぐ内側・外側だけが正誤の分かれ目< と <= を取り違えると、ちょうど境界の値だけが誤る

プログラムで「範囲の条件」を書くとき、境界の扱いを1文字間違えやすいという事実があります。これが境界にバグが集中する理由です。

たとえば「1以上100以下を有効にする」という仕様をプログラムに書くとき、次のような間違いがよく起きます。
「<(未満)」と「<=(以下)」の取り違え1 <= x と書くべきところを 1 < x と書いてしまうと、ちょうど x = 1 のときだけ誤って無効扱いになる
1つずれ(オフバイワン):「100まで」のつもりで x < 100(100未満)と書いてしまい、 x = 100 が無効になる

このような間違いは範囲の「まん中の値(例: 50)」を試しても絶対に見つかりません。50 を入れればどちらの書き方でも「有効」と返ってくるからです。だからこそ境界の前後(0・1・100・101)を必ず試すのが限界値分析の考え方です。

📌
境界値の選び方

場所テスト値何を確かめるか
下限の1つ外(無効)0有効範囲より小さい入力がエラーになるか
下限ぴったり(有効)1一番小さい有効値が正しく受け入れられるか
上限ぴったり(有効)100一番大きい有効値が正しく受け入れられるか
上限の1つ外(無効)101有効範囲より大きい入力がエラーになるか

限界値分析では、境界のすぐ内側と外側の合計4点を選ぶのが基本パターンです。「1〜100が有効」なら、下限まわりで 0・1、上限まわりで 100・101 の4つです。これにより、「境界より小さいとエラーになるか」「境界ぴったりは有効か」「境界の1つ外は無効か」の3パターンをすべて確認できます。

上のインタラクティブツールを▶で動かすと、この4点が順番に選ばれる様子を確認できます。境界の前後を試すことで、まん中だけをテストするよりも少ない回数で多くの種類のバグを発見できます。

練習問題

🎯
基本情報技術者 練習問題

Q1.限界値分析(境界値分析)の説明として最も適切なものはどれか。
A.入力範囲の境界付近の値を重点的にテストする
B.入力を同じ結果になるグループに分け代表値でテストする
C.すべての分岐の真と偽を実行する
D.高負荷下でのシステム挙動を確認する
Q2.「1以上100以下の整数を有効とする」入力に対し、限界値分析で選ぶべき値の組として最も適切なものはどれか。
A.50 だけ
B.0, 1, 100, 101
C.25, 50, 75
D.-100, 200
Q3.限界値分析で境界付近を重点的にテストする理由として最も適切なものはどれか。
A.境界付近は処理速度が遅くなりやすいから
B.不等号の取り違えや1つずれ(オフバイワン)など、境界でバグが多発するから
C.境界以外の値はテストする必要がないから
D.境界の値は必ず無効になるから

関連コンテンツ