入力と出力だけに着目して様々な入力に対して仕様書どおりの出力が得られるかどうかを確認していく, システムの内部構造とは無関係に外部から見た機能について検証するテスト方法はどれか。
平成21年度 春期 ITパスポート試験 問42
この問題の解説と、これまでの解答の記録です。
問 42
不正解ア
運用テストは、システムを実際の運用環境・運用手順のもとで動かし、業務に使えるかを利用者側が最終確認する「テスト工程 (段階)」の名称である。単体テスト → 結合テスト → システムテスト → 運用テストという開発の流れの最後に位置づけられるもので、入力と出力だけに着目するか内部構造まで見るかという「テスト技法の分類」を表す言葉ではない。したがって設問の定義には当てはまらない。
不正解イ
結合テストは、単体テストを終えた複数のモジュール (プログラム部品) を組み合わせ、モジュール間の受渡しやインタフェースが正しく連携するかを確認するテスト工程の名称である。これも工程の区分であって、内部構造を見るか外部からの入出力だけを見るかという観点の分類ではない。実際、結合テストの中でブラックボックステストの技法を使うこともあり、両者は同じ軸で並ぶ概念ではない。
- ウ
正解 正解は ウ。ブラックボックステストは、プログラムの中身を見えない黒い箱 (ブラックボックス) とみなし、内部のロジックやソースコードには一切踏み込まずに、「この入力を与えたら、仕様書どおりの出力が返ってくるか」だけを外側から確認するテスト技法である。設問の「入力と出力だけに着目」「システムの内部構造とは無関係」「外部から見た機能について検証する」という三つの条件は、いずれもブラックボックステストの定義そのものを言い換えたものであり、他の選択肢では満たせない。判断の根拠となるのは仕様書 (外部仕様) であり、テストケースも仕様から作る。代表的な設計手法には、入力値を同じ結果になるグループに分けて代表値を試す同値分割と、グループの境目の値を重点的に試す限界値分析 (境界値分析) がある。
不正解エ
ホワイトボックステストは、プログラムの内部構造 (制御の流れや分岐、命令) が見える白い箱とみなし、ソースコードの論理を検証する技法で、命令網羅や分岐網羅といった網羅基準でテストケースを作る。設問が明示している「システムの内部構造とは無関係に」という条件と真っ向から矛盾するため誤り。ブラックボックステストとちょうど対になる考え方である。
- ブラックボックステスト = 内部構造を見ず、入力と出力が仕様書どおりかを外部から検証する技法。テストケースは仕様から作り、代表的な設計手法に同値分割と限界値分析 (境界値分析) がある。対になるホワイトボックステストは内部の論理構造に着目し、命令網羅・分岐網羅などで検証する。
- 「テスト技法 (何に着目して確認するか)」と「テスト工程 (開発のどの段階で行うか)」を混同しないこと。ブラックボックス/ホワイトボックスは技法の分類、単体テスト・結合テスト・システムテスト・運用テストは工程の分類であり、別の軸の用語である。