プログラムの品質を検証するために, プログラム内部のプログラム構造を分析し, テストケースを設定するテスト手法はどれか。
平成24年度 秋期 ITパスポート試験 問46
この問題の解説と、これまでの解答の記録です。
問 46
不正解ア
回帰テスト (リグレッションテスト) は、プログラムに修正や機能追加を行った後、その変更が原因で今まで正常に動いていた既存の機能が壊れていないかを確認するテストである。「いつ・何のために行うか」というテストの目的による分類であり、内部構造を分析してテストケースを設計する技法を指す言葉ではない。回帰テストの中身はホワイトボックスでもブラックボックスでもあり得るので、設問の答えにはならない。
不正解イ
システムテストは、単体テスト・結合テストを終えた後、システム全体を対象として、要件定義どおりの機能・性能・信頼性が満たされているかを開発者側が検証するテスト工程である。これはテストを行う段階 (工程) の名称であって、テストケースの作り方を示す技法ではない。しかもシステム全体を外部からの動きで確認する性格が強く、内部の論理構造を分析するという設問の説明には当てはまらない。
不正解ウ
ブラックボックステストは、プログラムの内部構造をあえて見ず、外部仕様 (どんな入力に対してどんな出力が返るべきか) だけに着目してテストケースを設計する技法である。中が見えない箱として扱うので、代表的な技法は同値分割や限界値分析になる。設問が言う「内部構造を分析して」とはちょうど正反対の考え方であり、ホワイトボックステストと対になる概念として区別して覚える必要がある。
- エ
正解 正解は エ「ホワイトボックステスト」。ホワイトボックステストは、プログラムの中身 (命令・条件分岐・処理経路といった内部の論理構造) を実際に読んで解析し、その構造に基づいてテストケースを設計する技法である。箱の中が透けて見える (ホワイト=透明な箱) というたとえのとおり、テスト担当者が内部構造を知っていることが前提となる。代表的な網羅基準として、すべての命令を最低 1 回は通す「命令網羅」、すべての分岐の真・偽の両方を通す「分岐 (判定) 網羅」などがあり、これらを満たすように入力データを選ぶ。設問の「プログラム内部の構造を分析し、テストケースを設定する」という記述はこの定義に完全に一致するので エ が正しい。
- ホワイトボックステストは内部の論理構造 (命令・分岐・経路) に着目し、命令網羅や分岐 (判定) 網羅で網羅性を測る。対するブラックボックステストは外部仕様 (入力と出力) だけに着目し、同値分割や限界値分析でケースを作る。この 2 つは対概念としてセットで覚える。
- テストの用語は分類の軸が 2 種類ある。ホワイトボックス/ブラックボックスは「テストケースの作り方 (技法)」の軸、単体テスト・結合テスト・システムテスト・運用テストは「開発工程のどの段階か」の軸、回帰テストは「何のために行うか (目的)」の軸である。設問がどの軸を問うているかを見極めれば、選択肢を素早く絞り込める。