あらためて境界値テストを勉強
今日の勉強会で「境界値テスト/境界値分析」について話題に上がったので、家に帰ってから少し復習。テキストはバイザーのブラックボックステスト本。
![]() |
一般的にバグが境界・端っこに多くあることから、入力や出力を同値分割してそれらの境界・境界の近くを狙ってテストするが、それを「境界値テスト」「境界値分析」と呼んでいる。
バグパターン
話を簡単にするために1次元の数直線を考える(多次元はドメイン分析テスト)。X<20をドメインB、X≧20をドメインAとした場合、以下のようなバグパターンがある。

| 分類 | イメージ | テストすべきポイント | |
|---|---|---|---|
| 1 | 閉包バグ(closure bug) | ![]() |
ONポイント |
| 2 | 右への境界移動(boundary shifted right) | ![]() |
ONポイント |
| 3 | 左への境界移動(boundary shifted left) | ![]() |
OFFポイント |
| 4 | 境界抜け(missing boundary) | ![]() |
ONポイント、OFFポイント |
| 5 | 余分な境界(extra boundary) | ![]() |
INポイント、OUTポイント |
バグの原因
パターン1は、閉集合・開集合の実装を間違えた場合であり、不等号のつけ間違いなど。パターン2と3は、境界となる値自体を実装間違えした場合。パターン4は、実装者にとっては未知の境界であり、仕様が曖昧な場合に生じる。パターン5は、存在しない境界を作りこんでしまった場合。いずれも単純なプログラムミスもあるが、仕様の見落とし・解釈誤り・曖昧さが原因となることもある。このあたりは、単体テストレベルのテスト分析でつぶしておきたい。
パターン5のために、INポイントやOUTポイントは近傍を選ぶよりは離れたところを選ぶべきなのかな。
--
# パターン5が誤りでしたので、訂正。あきやまさんありがとうございますm(_ _)m
| 固定リンク
この記事へのコメントは終了しました。







コメント
表の中の、5番目は「ONポイント、OFFポイント」ではなく「INポイント、OUTポイント」では??
投稿: あきやま | 2011年2月27日 (日) 10:57
>あきやまさん
コメントありがとうございます。間違ってますね、訂正しました。
バイザーの本は1回読んでもわからないことが多いですが、たまに読み返すと
ちょっと理解が進んだりして面白いです。
投稿: softest | 2011年2月27日 (日) 12:30
このバイザー本を全部読んだ訳ではないのですが、少なくとも「INポイント」「OUTポイント」という言葉は目次には出てこないのですが、別の本では出てくる言葉なのでしょうか?
投稿: かめ | 2011年3月 3日 (木) 14:37
>かめさん
コメントありがとうございます。
最近の書籍でいえば「ソフトウェアテスト技法ドリル」のドメイン分析テスト
でINポイント、OUTポイントという言葉が登場しています。
バイザー本を見直してみましたが、内部点・外部点というのが当てはまるかなと
思います。
投稿: softest | 2011年3月 3日 (木) 22:18