ITパスポート 2022年 問45
問題文
ブラックボックステストに関する記述として、適切なものはどれか。
選択肢
ア:プログラムの全ての分岐についてテストする。
イ:プログラムの全ての命令についてテストする。
ウ:プログラムの内部構造に基づいてテストする。
エ:プログラムの入力と出力に着目してテストする。(正解)
🔒 解説は解答すると表示されます
ブラックボックステストに関する記述として、適切なものはどれか。 【ITパスポート 解説】
正解の理由
正解は エ です。
ブラックボックステストとは、プログラムの内部構造(コードの中身)を見ずに、外から(入力と出力)だけを見て動作を確認するテスト手法です。したがって「プログラムの入力と出力に着目してテストする。」という記述が正しい説明になります。
ブラックボックステストとは、プログラムの内部構造(コードの中身)を見ずに、外から(入力と出力)だけを見て動作を確認するテスト手法です。したがって「プログラムの入力と出力に着目してテストする。」という記述が正しい説明になります。
ポイントをやさしく言うと、ブラックボックステストは「箱の中がどうなっているかは見ないで、入れたものと出てきたものだけで判定する」方法です。日常の例では自動販売機にコインを入れて商品が出るかを確認するようなイメージです(内部でどう動いているかは見ない)。
解法ステップ
- 問題文のキーワードを見る:「入力と出力」「分岐」「命令」「内部構造」など。
- 定義を思い出す:
- ブラックボックステスト=入力と出力に着目(内部不問)
- ホワイトボックステスト=内部構造や命令・分岐を基にテスト(コードを見て設計)
- 各選択肢の語句を定義に当てはめ、どちらの考えに合うかを判定する。
- ブラックボックスの定義に合う選択肢を選ぶ(この場合は「入力と出力」に着目するもの)。
試験で速く解くコツ:選択肢に「内部」「命令」「分岐」といった語があればホワイトボックス系、「入力」「出力」「仕様」「要求」とあればブラックボックス系と即判断できます。
選択肢別の誤答解説
-
ア: プログラムの全ての分岐についてテストする。
→ これは分岐網羅(branch coverage)で、プログラムの内部の分岐(if文やcaseなど)を意識してテストする手法です。内部構造を見て設計するためホワイトボックステストに当たります。よって誤りです。 -
イ: プログラムの全ての命令についてテストする。
→ これは命令網羅(statement coverage)やステートメントカバレッジと呼ばれる考えで、やはりコードの命令一つ一つを実行させることを目的とします。内部を見るテストなのでブラックボックスではありません。 -
ウ: プログラムの内部構造に基づいてテストする。
→ 書いてあるままホワイトボックステストの説明です。内部構造(アルゴリズムやコード)に基づくテストはブラックボックスと逆の考えなので誤りです。 -
エ: プログラムの入力と出力に着目してテストする。
→ これがブラックボックステストの定義に合致します。仕様(要件)に基づいて、外から見える振る舞いを確認するテスト手法です。
よくある誤解
-
「ブラックボックスはコードを全く使わないから効果が薄い」
→ 誤解です。ブラックボックスはユーザー視点でのバグ(仕様違反や機能不具合)を発見するのに強いです。コードを見なくても重要な不具合は見つかります。逆に、内部の死んだ分岐(未使用コード)などは見つけにくい、という弱点があります。 -
「単体テスト=ホワイトボックス、受け入れテスト=ブラックボックス、常にそうだ」
→ 一般的な傾向はありますが厳密ではありません。単体テスト(単位テスト)でも仕様のみで入力/出力を確認するブラックボックス方式で行うことはありますし、受け入れテストでも内部設計を参考にする場合があります。手法は目的に応じて使い分けます。 -
「ブラックボックスはランダムに入力を入れればよい」
→ これも誤りです。効果的なブラックボックステストは等価クラステスト(入力のグループ化)や境界値分析(許容範囲の端を重点的に)などの設計技法を使います。単なるランダム入力は見落としが増えます。
補足コラム
-
用語メモ
- ブラックボックステスト(black-box testing):内部を見ずに、外からの入力と出力で検証する手法。
- ホワイトボックステスト(white-box testing):内部構造やコードを見て、命令や分岐を網羅するようにテストする手法。
-
よく使われるブラックボックスの技法(試験で出やすい)
- 等価クラステスト(equivalence partitioning:入力を代表パターンに分ける)
- 境界値分析(boundary value analysis:範囲の端を重点的にテスト)
- 決定表テスト(decision table):条件と結果の組み合わせを整理してテストケースを作る
-
実務ポイント:両方使うのが基本です。ブラックボックスで仕様通りかを確認し、ホワイトボックスでコードの抜け・漏れを補います。
FAQ
Q1: ブラックボックステストはどのテスト段階で使うことが多いですか?
A1: 受け入れテストやシステムテストなど、外部仕様に基づく確認でよく使われます。ただし単体や結合テストでも使われます。
A1: 受け入れテストやシステムテストなど、外部仕様に基づく確認でよく使われます。ただし単体や結合テストでも使われます。
Q2: ブラックボックスで性能や負荷は確かめられますか?
A2: 性能・負荷テストは主に非機能要件を確認するための別のテストですが、外部からの負荷を与えて応答を測る点ではブラックボックス的に実施できます。ただし専用の手法やツールが必要です。
A2: 性能・負荷テストは主に非機能要件を確認するための別のテストですが、外部からの負荷を与えて応答を測る点ではブラックボックス的に実施できます。ただし専用の手法やツールが必要です。
Q3: 見た目やUIのテストもブラックボックスですか?
A3: はい。ユーザーインターフェース(UI)の振る舞いを外から検証するのはブラックボックスの典型です。
A3: はい。ユーザーインターフェース(UI)の振る舞いを外から検証するのはブラックボックスの典型です。
Q4: 試験対策で覚えるコツは?
A4: 「入力と出力=ブラックボックス」「分岐・命令・内部構造=ホワイトボックス」を短いフレーズで覚えて、選択肢に出てくるキーワードで判断する練習をしましょう。
A4: 「入力と出力=ブラックボックス」「分岐・命令・内部構造=ホワイトボックス」を短いフレーズで覚えて、選択肢に出てくるキーワードで判断する練習をしましょう。
関連キーワード: ブラックボックステスト、ホワイトボックステスト、入力と出力、等価クラステスト、境界値分析、分岐網羅、命令網羅、受け入れテスト、単体テスト、結合テスト

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

