基本情報技術者 2014年 秋期 午前(科目A) 問48
問題文
ブラックボックステストに関する記述として、適切なものはどれか。
選択肢
ア:テストデータの作成基準として、命令や分岐の網羅率を使用する。
イ:被テストプログラムに冗長なコードがあっても検出できない。(正解)
ウ:プログラムの内部構造に着目し、必要な部分が実行されたかどうかを検証する。
エ:分岐命令やモジュールの数が増えると、テストデータが急増する。
ブラックボックステストに関する記述として、適切なものはどれか。【午前2 解説】
要点まとめ
- 結論: ブラックボックステストは仕様に基づき入力と出力だけを検証し、内部の冗長コードは検出できません。
- 根拠: ブラックボックスは内部構造を参照せず、命令・分岐網羅などのカバレッジ指標を用いない外部仕様中心の手法です。
- 差がつくポイント: 選択肢は「内部を見るか否か」「カバレッジ指標の有無」を軸に判別すると短い時間で正答できます。
正解の理由
正解は イ です。ブラックボックステストはプログラムの内部構造(ソースコード、分岐、命令の網羅)を参照せず、仕様に対する入力と期待出力の一致を検証する手法です。冗長なコード(実行しても出力に影響を与えない余分な処理)は外部からは見えないため、ブラックボックス手法だけでは検出できません。したがって「被テストプログラムに冗長なコードがあっても検出できない」は適切な記述です。
よくある誤解
- 「ブラックボックスで網羅率を測るべき」と考える誤解:命令網羅や分岐網羅はホワイトボックスの概念で、ブラックボックスでは通常使いません。
- 「ブラックボックスで内部バグを全部見つけられる」と期待する誤解:出力に現れない冗長箇所や非活性化された経路は検出困難です。
- 「分岐やモジュール数が増えれば必ずテストデータが急増する」と単純化する誤解:内部構造の増加と外部入力パターンの増加は必ずしも一致しません。
解法ステップ
- ブラックボックステストの定義を頭に浮かべる(内部構造を見ない、仕様ベース)。
- 各選択肢が「内部を見るか/カバレッジ指標を使うか」に該当するかを判別する。
- 「内部構造に着目」や「網羅率を使用」とある選択肢はホワイトボックスに該当するため除外する。
- 残った記述がブラックボックスの特徴と合致するか最終確認して正答とする。
選択肢別の誤答解説
- ア: テストデータの作成基準として、命令や分岐の網羅率を使用する。
- 誤り。命令網羅や分岐網羅はホワイトボックステスト(構造化テスト)の指標であり、ブラックボックスの手法ではありません。
- イ: 被テストプログラムに冗長なコードがあっても検出できない。
- 正解。ブラックボックスは入出力観点で検証するため、実行されない冗長コードや内部構造の問題は検出できないことが多いです。
- ウ: プログラムの内部構造に着目し、必要な部分が実行されたかどうかを検証する。
- 誤り。これはホワイトボックステストの説明であり、ブラックボックスの定義と矛盾します。
- エ: 分岐命令やモジュールの数が増えると、テストデータが急増する。
- 誤り(文脈依存)。分岐やモジュールの増加はホワイトボックス設計でテストケース増加を招くことが多いが、ブラックボックスでは入力ドメインや仕様に依存するため必ずしも直接連動しません。
補足コラム
ブラックボックステストの代表的な手法には等価クラステスト、境界値分析、状態遷移テスト、同値分割、ユースケース/シナリオテストなどがあります。これらは外部仕様から効果的にテストケースを設計するための方法で、ユーザ視点や要件仕様に近い観点でバグを見つけやすい利点があります。一方、ホワイトボックス(構造化)テストと組み合わせることで、内部欠陥と外部仕様違反の両面をカバーできます。
FAQ
Q: ブラックボックスでコードの無駄や未使用コードは絶対に見つからないのですか?
A: 原則として見つけにくいですが、冗長コードが副作用を起こして出力に影響を与えれば検出されます。単独では限界があります。
A: 原則として見つけにくいですが、冗長コードが副作用を起こして出力に影響を与えれば検出されます。単独では限界があります。
Q: ブラックボックスで使う代表的な設計技法は何ですか?
A: 等価クラステスト、境界値分析、状態遷移テスト、因果関係テストなどが代表です。
A: 等価クラステスト、境界値分析、状態遷移テスト、因果関係テストなどが代表です。
Q: どの段階でブラックボックスとホワイトボックスを使い分けるべきですか?
A: 単体テストやコード変更直後はホワイトボックス、受け入れテストや機能検証はブラックボックスを中心に使い、両者を組み合わせるのが効果的です。
A: 単体テストやコード変更直後はホワイトボックス、受け入れテストや機能検証はブラックボックスを中心に使い、両者を組み合わせるのが効果的です。
関連キーワード: ブラックボックステスト、ホワイトボックステスト、構造化テスト、等価クラステスト、境界値分析、状態遷移テスト、カバレッジ、テスト設計、テストオラクル、単体テスト、統合テスト

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

