戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2019年 春期 午前(科目A)47


問題文

ブラックボックステストに関する記述として、最も適切なものはどれか。

選択肢

テストデータの作成基準として、プログラムの命令や分岐に対する網羅率を使用する。
被テストプログラムに冗長なコードがあっても検出できない。(正解)
プログラムの内部構造に着目し、必要な部分が実行されたかどうかを検証する。
分岐命令やモジュールの数が増えると、テストデータが急増する。

🔒 解説は解答すると表示されます

ブラックボックステストの特徴【午前解説】

正解の理由

「被テストプログラムに冗長なコードがあっても検出できない。」が正解です。ブラックボックステストはソフトウェアの内部実装(コードの有無や冗長性)を直接検査せず、仕様に対する入出力や振る舞いだけを評価します。冗長コードは内部的な非効率や不要な命令であり、外部の振る舞いに影響しない場合はブラックボックス手法では検出できません。したがって「検出できない」という記述が最も適切です。

解法ステップ

  1. 問題文のキーワード(「ブラックボックステスト」)で定義を即座に思い出す。
  2. 各選択肢が「内部を検査するか」「外部仕様に基づくか」を基準に分類する。
  3. ホワイトボックスに該当する記述(命令網羅・分岐網羅・内部構造の実行確認)を除外する。
  4. 残った選択肢がブラックボックスの特徴(内部構造の不可視性や入出力中心)と一致するか確認する。

選択肢別の誤答解説

  • ア: 「テストデータの作成基準として、プログラムの命令や分岐に対する網羅率を使用する。」
    → 誤り。命令網羅や分岐網羅はコード内部の実行を基にするホワイトボックステストの指標です。ブラックボックスの基準ではありません。
  • : 「被テストプログラムに冗長なコードがあっても検出できない。」
    → 正解。内部の冗長や未使用コードは外部仕様に影響しない限りブラックボックスでは検出しにくいため、この記述が適切です。
  • ウ: 「プログラムの内部構造に着目し、必要な部分が実行されたかどうかを検証する。」
    → 誤り。これはホワイトボックステストの説明で、ブラックボックスとは逆のアプローチです。
  • エ: 「分岐命令やモジュールの数が増えると、テストデータが急増する。」
    → 誤解を招く記述。内部の分岐数が増えるとホワイトボックスではテストケース増加につながるが、ブラックボックスでは仕様や入力空間の複雑さが影響します。必ずしも「分岐命令=テストデータ急増」とは言えません。

よくある誤解

  • ブラックボックスで内部の全ての欠陥が見つかると思い込む誤解:内部実装の問題(冗長コード・未使用分岐)は見つけにくいです。
  • カバレッジ指標をブラックボックスに当てはめる誤解:命令網羅や分岐網羅はホワイトボックスの概念でありブラックボックスの評価指標ではありません。
  • 入力の組合せが増えれば必ずブラックボックスのテストデータが急増するという誤解:仕様次第で組合せ爆発はあるが、代表値選定で抑制可能です。

補足コラム

ブラックボックステストでは主に以下のテスト設計技法が用いられます:同値クラステスト、境界値分析、状態遷移テスト、決定表テスト、因子組合せ(ペアワイズ等)。これらは仕様やユーザ視点から「代表的かつ重要な入力」を選ぶための手段です。冗長コードや未到達コードを検出したい場合は、静的解析、コードレビュー、カバレッジ測定を含むホワイトボックスアプローチが適切です。実務ではブラックボックスとホワイトボックスを組合せる「グレーボックス」的な戦略が有効です。

FAQ

Q: ブラックボックステストでデッドコードは見つかりますか?
A: 通常は見つかりません。デッドコードは実行されない内部部分なので、ブラックボックスだけでは発見困難です。
Q: ブラックボックスはどのレベルで使うべきですか?
A: システムテスト、受入テスト、統合テストなど仕様に基づく段階で有効です。ユニットテストではホワイトボックス併用が多いです。
Q: テスト網羅率はブラックボックスで測れますか?
A: 従来の命令網羅や分岐網羅はホワイトボックスの概念です。ただし、仕様ベースでの「機能網羅」や「ユースケース網羅」はブラックボックス的なカバレッジ指標になり得ます。
Q: 冗長コードを検出する手法は?
A: 静的解析ツール、コードカバレッジ測定、リファクタリングレビュー、動的プロファイリングなどホワイトボックス寄りの手法が必要です。

関連キーワード: ブラックボックステスト、ホワイトボックステスト、同値クラステスト、境界値分析、状態遷移テスト、決定表、テスト設計技法、網羅率、冗長コード、テスト自動化
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について