境界値分析(Boundary Value Analysis)について
境界値分析とは
境界値分析(限界値分析)とは
境界値分析とは、入力データを同じ特性を持つグループに分割し、そのグループが隣接する境界値データを入力としてテストする技法です。
限界値分析とも呼ばれます。
境界値分析は、ブラックボックステスト技法の一つであり、最小限かつ効果的なテストケースを作成できます。
同値分割法と併用して用いられることが多いテストです。
境界値(限界値)とは
境界値(限界値)とは、ある範囲の最小値または最大値(同値分割した領域の端にあたる値)のことです。
境界値はシステムの仕様に直結するため、重点的にテスト・動作確認する必要のある値となります。
境界値分析の根拠
境界値分析は、出力結果が変化する境界付近では不具合が多く発生しやすい、という経験則に基づいています。
境界値は、ヒューマンエラーが潜みやすい箇所です。
例えば、設計書における「未満」「以下」の書き間違えや意味の取り違えなど、注意が必要な。
実際に、コンピュータ黎明期から、条件式の記述ミスや設計書の解釈の誤りなどで、境界値周辺にはバグが頻発する報告が多数あります。
境界付近の入力値を重点的に検証することで、効率良く不具合を検出できます。
境界値分析の実施例
境界値分析の例として、ペーパーテストを挙げてみます。
仕様は以下の通りです。
- 点数が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 | エラーが表示される。 |
境界値分析の注意点
入出力が複雑なシステムでは有効ではない場合がある
境界値分析は、複数の入力値に対して複雑に出力する仕様のシステムのテストでは、テストケースが作成しにくい場合があります。
このような場合には、デシジョンテーブルなどの他テスト技法を利用する方が効率的といえます。