スタブです。
技法名 境界値テスト †
技法名(英語) boundary value test †
説明 †
- 入力同値クラスと出力同値クラスの端(境界値)や、その上下の隣接値に着目して効果的にバグを検出する技法。
- 同値クラスの境界付近で誤りが生じやすいという経験則が背景にある。
- 同値分割法と組み合わせた仕様ベース(ブラックボックステスト)のほかに、プログラム内のループ終了条件などを意識した構造ベース(ホワイトボックステスト)などもある。
使用例 †
JRの料金体系は、
おとな | 12歳以上(12歳でも小学生は「こども」です) |
こども | 6歳〜12歳未満(6歳でも小学校入学前は「幼児」です) |
幼児 | 1歳〜6歳未満 |
乳児 | 1歳未満 |
となっています。
年齢を入力値とした「幼児かどうかを判定する」関数では、
・有効同値クラス: 1歳以上6歳未満
となっています。
- Beizerの方法
境界は値にあるのではなく0と1の間と、5と6の間にあるとして、{0歳, 1歳, 5歳, 6歳}を境界値テストの入力値集合として扱う方法です。JSTQBで採用されています。Beizerの方法を採用する際には、有効同値クラスの代表値(本ケースなら3歳など)を合わせてテストすることをお勧めします。
- Jorgensenの方法
端の値と端±1の値、すなわち{0歳, 1歳, 2歳, 5歳, 6歳, 7歳}を境界値テストの入力値集合として扱う方法です。英国標準(BS 7925-2)で採用されています。
どちらの方法を採用するかは、考え方次第です。効率が良いのはBeizerの方法です。しかし、Beizerの方法はテスト設計時に間違いが紛れ込む危険があります。上の例でいうと、{0歳, 1歳, 6歳, 7歳}を境界値テストの入力値集合として採用してしまう危険があるということです。
この間違えを防ぐために、
──────0○●1───────5●○6──────
という絵を描いて、「○:無効同値クラスの境界値」、「●:有効同値クラスの境界値」を視覚的に明らかにすると良いでしょう。
補足 †
参考文献 †
- [書籍]ソフトウェア・テストの技法 (G.J. マイヤーズ)
- [書籍]ソフトウェア品質知識体系ガイド-SQuBOK Guide- (SQuBOK策定部会)
- [書籍]知識ゼロから学ぶソフトウェアテスト(高橋寿一)
total 1087 today 1 yesterday 1