平成24年度 秋期 ITパスポート試験 問46 解説 プログラム品質検証のテスト手法
プログラムの品質を検証するために、プログラム内部のプログラム構造を分析し、テストケースを設定するテスト手法はどれか。
- ア 回帰テスト
- イ システムテスト
- ウ ブラックボックステスト
- エ ホワイトボックステスト ✓ 正答
解説
この問題は、テスト対象の「中身(内部構造)」を見ているのか、それとも「外側(仕様)」を見ているのかを見分けることで一発で正解できます。
キーワードは「内部構造を分析」です。プログラムコードの中身を確認しながらテストを作る手法は、ホワイトボックステストと決まっています。
ホワイトボックステストとブラックボックステストの対比
ソフトウェアテストの手法には大きく分けて二つの視点があります。
ホワイトボックステストとは、プログラムのソースコードや内部設計図といった「中身」を理解した上で、すべての条件分岐や処理経路を網羅するようにテストケースを作成する手法です。開発者やプログラマが主に行うテストであり、論理的な誤りや隠れたバグを見つけるのに適しています。
一方、ブラックボックステストとは、プログラムの内部構造を意識せず、仕様書に基づいて「入力に対して期待通りの出力が得られるか」を確認する手法です。中身がどうなっているか(箱が黒い状態)は気にせず、利用者目線での振る舞いを検証します。
どちらを選ぶかを見極める思考プロセス
この問題文には「プログラム内部のプログラム構造を分析し」という非常に明確なヒントが提示されています。
選択肢を検討する際、まずは「中身を見ているか(ホワイト)」か「外側から見ているか(ブラック)」で分類します。
アの回帰テスト(リグレッションテスト)は、プログラムの修正後に、以前は正常に動いていた機能が影響を受けていないか確認するテストの「目的」を指す言葉です。 イのシステムテストは、開発のフェーズとしてシステム全体が要件を満たしているか確認する「工程」を指す言葉です。 ウのブラックボックステストは、上述の通り外部仕様に着目するテスト手法です。
したがって、内部構造という言葉と結びつくのはホワイトボックステストのみとなります。
この知識が実務で果たす役割
開発現場において、この二つのテスト手法を使い分けることは非常に重要です。
プログラムを書いた直後は、条件分岐が正しく動いているか、すべての処理の道筋を通したかを確認するためにホワイトボックステストが必要です。しかし、どれだけ完璧に内部を網羅しても、ユーザーが使う際に使いにくい、あるいは仕様の解釈を誤っていたらシステムとして成立しません。そのため、最終的にはブラックボックステストによって「製品としての品質」を担保します。
試験としては、手法の名称とそれぞれの定義(何を基準にテストを作るか)を結びつけて暗記しておくだけでなく、開発のどのタイミングで、どういう目的で使い分けるのかという文脈とセットで理解しておくことで、応用問題にも対応できるようになります。