ホワイトボックステストのテストケース作成に関する記述のうち,適切なものはどれか。
平成25年度 春期 ITパスポート試験 問37
この問題の解説と、これまでの解答の記録です。
問 37
不正解ア
入力条件が数値の項目にあえて文字データを与えるのは、仕様上その項目が受け付けない値 (無効な同値クラス) を入れて、入力チェックが正しく働くかを外側から確かめるテストである。同値分割やエラー推測と呼ばれる技法で、プログラムの内部構造を一切参照せず、入力と出力の仕様だけからテストケースを作っている。したがってこれはブラックボックステストのテストケース作成であり、ホワイトボックステストの説明としては誤りである。
不正解イ
入力データと出力データの対応関係をグラフで表現し、その有効な組合せをテストケースにするのは、原因結果グラフ法 (原因と結果の関係を図に表し、決定表に展開して組合せを導く技法) の説明である。着目しているのは仕様上の入力と出力の関係だけで、プログラムがどのような分岐で実装されているかは問題にしていない。よってこれもブラックボックステストに分類され、ホワイトボックステストのテストケース作成には当たらない。
不正解ウ
人の体重の入力に対して上限値と下限値を決めてテストするのは、有効な値の範囲の境目に注目してテストケースを作る限界値分析 (境界値分析) である。境目の前後で処理を誤る不具合を見つけやすい有効な技法だが、根拠となるのは入力してよい値の範囲という仕様であって、プログラム内部の制御構造ではない。したがってこれもブラックボックステストの技法であり、ホワイトボックステストの説明としては誤りである。
- エ
正解 正解はエ。ホワイトボックステストとは、プログラムの中身 (ソースコードの論理構造・制御の流れ) を見たうえで、内部の処理が意図どおり動くかを確かめるテストである。中身が見える箱、という名前のとおり、テストケースは仕様書だけでなく実際のプログラムの分岐や繰返しの構造をもとに設計する。その設計の指針が「網羅基準 (カバレッジ)」で、代表的なものに、すべての命令を少なくとも1回実行する命令網羅と、if 文などの判定について真の場合と偽の場合の両方の経路を少なくとも1回通す分岐網羅 (判定条件網羅) がある。エの「プログラムの全ての分岐経路を少なくとも1回実行するようにテストケースを作成する」はまさに分岐網羅そのもので、内部構造に立ち入って通っていない経路を洗い出す考え方であり、ホワイトボックステストのテストケース作成として適切である。テストされていない経路にバグが潜むことを防げる点が、この網羅の狙いである。
- ホワイトボックステストはプログラムの内部構造 (論理・制御の流れ) に基づいてテストケースを設計する手法で、単体テストで多く用いられる。網羅基準として、すべての命令を1回以上実行する命令網羅と、判定の真・偽の両方の分岐を1回以上通す分岐網羅 (判定条件網羅) があり、どこまで通したかをカバレッジ (網羅率) で測る。
- ブラックボックステストは内部構造を見ず、外部仕様 (入力と出力の関係) だけからテストケースを設計する手法で、同値分割、限界値分析 (境界値分析)、原因結果グラフ法などが代表的な技法である。技法名がどちらのテストに属するかを整理して覚えることが、この種の設問を解く鍵になる。