境界値分析(Boundary Value Analysis)について
境界値分析とは
境界値分析(限界値分析)とは
境界値分析とは、入力データを同じ特性を持つグループに分割し、そのグループが隣接する境界値データを入力としてテストする技法です。
限界値分析とも呼ばれます。
境界値分析は、ブラックボックステスト技法の一つであり、最小限かつ効果的なテストケースを作成できます。
同値分割法と併用して用いられることが多いテストです。
境界値(限界値)とは
境界値(限界値)とは、ある範囲の最小値または最大値(同値分割した領域の端にあたる値)のことです。
境界値はシステムの仕様に直結するため、重点的にテスト・動作確認する必要のある値となります。
境界値分析の根拠
境界値分析は、出力結果が変化する境界付近では不具合が多く発生しやすい、という経験則に基づいています。
ITシステムに限らず一般的にも、境界値というものはヒューマンエラーが潜みやすく、不具合が頻発する箇所です。
例えば、設計書における「未満、以下、以上、超」の書き間違えや意味の取り違えは、どのような分野でも発生するミスです。
そのため、境界付近の入力値を重点的に検証することは、効果的に不具合を検出する手法といえます。
境界値分析の実施例
前提条件
境界値分析の例として、ペーパーテストを挙げてみます。
仕様は以下の通りです。
- 点数が60点以上の場合には「合格」とする。
- 点数が60点未満の場合には「不合格」とする。
- 0から100までの整数を有効な値として扱う。(無効な値の場合はエラー表示)
1.同値クラスを分類する
入力データを同じ特性を持つグループに分けることを「同値クラスを作る」といいます。
ここでは、「合格という有効同値クラス」と、「不合格という有効同値クラス」と、それ以外の「無効同値クラス」に分類します。
2.各同値クラスの境界値を選定します。
各同値クラスの境界値を選定します。
通常、境界値は各同値クラスの最小値と最大値、または最初と最後の値になります
# | 入力データ | 期待値 |
---|---|---|
境界値 1 | 0 | これ以上ならば不合格と表示される。これ未満ならばエラーとなる。 |
境界値 2 | 60 | これ以上ならば合格と表示される。これ未満ならば不合格と表示される。 |
境界値 3 | 100 | これ以下ならば合格と表示される。これより超過ならばエラーとなる。 |
3.テスト条件を決定する
# | 入力データ | 期待値 |
---|---|---|
Case 1 | -1 | エラーが表示される。 |
Case 2 | 0 | 不合格と表示される。 |
Case 3 | 59 | 不合格と表示される。 |
Case 4 | 60 | 合格と表示される。 |
Case 5 | 100 | 合格と表示される。 |
Case 6 | 101 | エラーが表示される。 |
境界値分析の注意点
入出力が複雑なシステムでは有効でない場合がある
境界値分析は、複数の入力値に対して複雑に出力する仕様のシステムに対しては、テストケースが作成しにくい場合があります。
このような場合には、デシジョンテーブルなどの他テスト技法を利用する方が効率的といえます。