ブラックボックステストの着目点をどう見分けるか
ITパスポート試験 令和4年度 問45 / システム開発技術 › システム開発技術
過去問にチャレンジ
ブラックボックステストに関する記述として,適切なものはどれか。
- ア
プログラムの全ての分岐についてテストする。
- イ
プログラムの全ての命令についてテストする。
- ウ
プログラムの内部構造に基づいてテストする。
- エ
プログラムの入力と出力に着目してテストする。
会話形式の解説
講師この問題では、テストの内容を何に基づいて決めるかに注目します。ブラックボックステストと、ホワイトボックステストという内部構造に基づくテストを区別しましょう。
受験者ブラックボックステストは、プログラムの中身よりも、入力に対してどんな結果が出るかを確かめるものだと考えました。
講師その考え方で合っています。仕様、つまりプログラムがどのように動くべきかという定めに基づいて、入力に対して期待する出力と、実際の出力が一致するかを確かめます。
受験者それなら、入力と出力に着目する説明が正解ですね。ただ、全ての分岐をテストする場合も、入力を与えて結果を見るのではないですか。
講師入力を与えることはあります。ただし、全ての分岐をテストするのは「分岐網羅」といい、内部の分岐を基準にテスト内容を決めます。そのため、ホワイトボックステストに属します。
受験者入力を使うかどうかではなく、内部の分岐に着目している点で判断するのですね。全ての命令をテストする場合も同じ考え方ですか。
講師はい。全ての命令をテストするのは「命令網羅」といい、内部の各命令が実行されることを確かめます。これもホワイトボックステストなので、ブラックボックステストの説明としては不適切です。
受験者分岐も命令も、プログラムの内部にあるものですね。そうすると、内部構造に基づくという説明もホワイトボックステストに当たりますね。
講師そのとおりです。内部構造に基づくという選択肢は、ホワイトボックステストの説明です。ブラックボックステストでは、内部の制御構造を基準にテスト内容を決めません。
受験者整理すると、仕様上の入力と出力の対応に着目するのがブラックボックステストで、命令や分岐などの内部構造に着目するのがホワイトボックステストですね。
講師はい。よくある混同は、「入力を与えるならブラックボックステスト」と考えることです。入力の有無ではなく、仕様上の入出力と内部構造のどちらを基準にするかで見分けましょう。
まとめ
ブラックボックステストは、プログラムの入力と出力の対応に着目するテストです。仕様に基づいて期待する出力を定め、実際の出力と一致するかを確かめます。分岐網羅や命令網羅は、内部構造に基づくホワイトボックステストに属します。両者は入力を与えるかどうかではなく、テスト内容を決める基準で区別します。
解答・解説
正解はエです
この問題のテーマ
ブラックボックステストとホワイトボックステストを、テストで着目する対象の違いから区別する問題です。
解き方の考え方
入力に対して仕様どおりの出力が得られるかを確かめるのが、ブラックボックステストです。一方、命令や分岐など、プログラム内部の構造に基づくのがホワイトボックステストです。各選択肢が入出力と内部構造のどちらに着目しているかで判断します。
選択肢ごとの解説
- ×ア プログラムの全ての分岐についてテストする。全ての分岐をテストする説明は、分岐網羅に当たります。プログラム内部の分岐に着目するため、ホワイトボックステストに属します。
- ×イ プログラムの全ての命令についてテストする。全ての命令をテストする説明は、命令網羅に当たります。内部の各命令が実行されることを確かめるため、ホワイトボックステストに属します。
- ×ウ プログラムの内部構造に基づいてテストする。内部構造に基づいてテストするのは、ホワイトボックステストの説明です。ブラックボックステストでは、内部の制御構造を基準にテスト内容を決めません。
- ○エ プログラムの入力と出力に着目してテストする。入力と出力に着目するのが、ブラックボックステストです。仕様に基づいて期待する出力を定め、実際の出力と一致するかを確かめるので、エが正解です。
補足
ホワイトボックステストでも入力を与えて実行することはあります。区別する鍵は入力の有無ではなく、テスト内容を仕様上の入出力から決めるか、内部構造から決めるかです。
POINT
- ブラックボックステストは、入力と出力の対応に着目します。
- 期待する出力は、仕様に基づいて定めます。
- 命令網羅や分岐網羅は、内部構造に基づくホワイトボックステストに属します。
