ITパスポート 2014年 春期 問34
問題文
開発者Aさんは、入力データが意図されたとおりに処理されるかを、プログラムの内部構造を分析し確認している。現在Aさんが行っているテストはどれか。
選択肢
ア:システムテスト
イ:トップダウンテスト
ウ:ブラックボックステスト
エ:ホワイトボックステスト(正解)
🔒 解説は解答すると表示されます
プログラムの内部構造を分析して確認しているテストはどれか【ITパスポート 解説】
正解の理由
「プログラムの内部構造を分析し確認している」とあるので、これはソフトウェアの内部(コードの中身)を見て動作を確かめる方法です。内部を調べながらテストする手法はホワイトボックステスト(white-box testing:内部構造を基に行うテスト)です。したがって、選択肢の中ではエのホワイトボックステストが該当します。
ポイントを平たく言うと:
- 「内部構造を分析する」=中身(コード・処理の流れ)を見ている → ホワイトボックス
- 対義語として「外側から入出力だけを見る」ならブラックボックス(black-box testing)
解法ステップ
- 問題文のキーワードを探す:「内部構造」「分析」「確認」など。
- 各選択肢の意味を思い出す:
- ホワイトボックステスト:内部(コード・処理の流れ)を見てテストする。
- ブラックボックステスト:仕様や入出力だけを見てテストする。
- トップダウンテスト:結合テストの一手法で、上位モジュールから順に結合していく。
- システムテスト:完成したシステム全体を確認する。
- 「内部構造を分析している」に合致するのはホワイトボックスであると判断する。
- よって答えはエ。
選択肢別の誤答解説
- ア: システムテスト(system testing:完成したシステム全体の動作確認)
- システム全体が仕様どおり動くかを、外側(ユーザー視点)で確認します。内部コードを詳しく見るとは限りません。問題文の「内部構造を分析」は当てはまりません。
- イ: トップダウンテスト(top-down integration testing:上位モジュールから順に結合してテスト)
- これは結合テストの進め方(どの順でモジュールを組み合わせるか)についての方法です。内部構造の分析そのものを指す言葉ではありません。
- ウ: ブラックボックステスト(black-box testing:入出力や仕様に基づいてテスト)
- 内部の実装を見ずに、外から見える振る舞いだけで確認します。問題の「内部構造を分析する」とは逆の考え方です。
- エ: ホワイトボックステスト(white-box testing:内部構造に基づくテスト)
- 内部の処理や分岐などを直接確認するため、問題文の状況に合致します。
よくある誤解
- 「結合テスト=ホワイトボックス」ではない
- 結合テスト(モジュールを組み合わせて確認する)はホワイトボックスでもブラックボックスでも実施できます。結合の進め方(トップダウンやボトムアップ)と、内部を見るかどうかは別の視点です。
- 「システムテストは必ずブラックボックス」ではない
- システムテストは外側からの振る舞い確認が主体ですが、必要に応じて内部ログや構造を参照して詳細確認することもあります。とはいえ「内部を分析している」ことを直接示す表現ではありません。
- 「ホワイトボックスは難しいから使わない」は誤り
- コードの品質や分岐の確認には非常に有効です。自動化やカバレッジ測定で効率化できます。
補足コラム
ホワイトボックステストでよく使う考え方・指標:
- ステートメントカバレッジ(statement coverage):コードの文が実行された割合
- ブランチカバレッジ(branch coverage):条件の分岐(if の true/false)がどれだけ実行されたか
- パスカバレッジ(path coverage):処理の経路ごとに実行確認する割合
実務では、単体テスト(unit test:1つの部品=関数やクラスを確認するテスト)でホワイトボックス手法を使うことが多いです。テストツール(例:カバレッジ測定ツール)を使うと、どの行が実行されたかが分かり、見落としを減らせます。
例(イメージ)
- if 文の両方の分岐を実行するために、入力値を2種類用意してテストする。これがブランチカバレッジ向上の一例です。
FAQ
Q1: ホワイトボックステストは誰がやることが多いですか?
A1: 主に開発者が実施します。コードの中身を理解している人が行うのが効率的だからです。ただし、テスト専任者がコードを見て行うこともあります。
A1: 主に開発者が実施します。コードの中身を理解している人が行うのが効率的だからです。ただし、テスト専任者がコードを見て行うこともあります。
Q2: ブラックボックステストとホワイトボックステスト、どちらが重要ですか?
A2: 両方重要です。ホワイトボックスは内部の欠陥(分岐漏れ、境界処理など)を見つけやすく、ブラックボックスは仕様との齟齬やユーザー視点の問題を見つけやすいです。併用が基本です。
A2: 両方重要です。ホワイトボックスは内部の欠陥(分岐漏れ、境界処理など)を見つけやすく、ブラックボックスは仕様との齟齬やユーザー視点の問題を見つけやすいです。併用が基本です。
Q3: トップダウンテストはホワイトボックスの一種ですか?
A3: トップダウンは「結合テストの順序」を示す手法で、ホワイトボックス/ブラックボックスとは異なる分類軸です。実際のテスト中に内部確認(ホワイトボックス)を行うことは可能です。
A3: トップダウンは「結合テストの順序」を示す手法で、ホワイトボックス/ブラックボックスとは異なる分類軸です。実際のテスト中に内部確認(ホワイトボックス)を行うことは可能です。
関連キーワード: ホワイトボックステスト、ブラックボックステスト、システムテスト、トップダウンテスト、単体テスト、結合テスト、コードカバレッジ

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

