マナビング基本情報技術者

ブラックボックステストで冗長コードは見つかるか

基本情報技術者試験 平成31年度春期 午前 問47 / システム開発技術 › ソフトウェア構築

過去問にチャレンジ

平成31年度春期 午前 問47

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

  1. ア

    テストデータの作成基準として,プログラムの命令や分岐に対する網羅率を使用する。

  2. イ

    被テストプログラムに冗長なコードがあっても検出できない。

  3. ウ

    プログラムの内部構造に着目し,必要な部分が実行されたかどうかを検証する。

  4. エ

    分岐命令やモジュールの数が増えると,テストデータが急増する。

会話形式の解説

講師講師
まず、何を手掛かりにテストするかを考えます。ブラックボックステストは、入力に対する出力を仕様と照らし合わせます。
受験者受験者
命令や分岐をどれだけ実行したかという網羅率も、確認できそうに思いました。
講師講師
網羅率を求めるには、プログラムの内部を調べる必要があります。入出力を基準にする方法には当てはまりません。
受験者受験者
内部構造を見て、必要な部分が実行されたか確かめる記述も同じですか。
講師講師
はい。それは内部構造に着目するホワイトボックステストの考え方です。
受験者受験者
では、冗長なコードがあっても、出力に影響しなければ外からは分からないのでしょうか。
講師講師
そのとおりです。外から見える動作に影響しなければ、入出力の結果には現れません。したがって、冗長なコードを検出できないという記述が適切です。
受験者受験者
分岐命令やモジュールが増えるとテストデータが急増する、という記述はどう考えますか。
講師講師
この方法のテストデータは、内部の分岐命令やモジュールの数から直接決まりません。分岐を網羅しようとする説明なら、内部構造に着目する方法です。
受験者受験者
入力と出力を見ているのか、内部の実行状況を見ているのかで区別できますね。
講師講師
はい。迷ったときは、その確認にプログラムの内部を見る必要があるかを考えると判断しやすくなります。

まとめ

ブラックボックステストは、入力に対する出力を仕様と照らし合わせる方法です。外から見える動作に影響しない冗長なコードは、この方法だけでは検出できません。命令や分岐の網羅率、内部の必要な部分の実行状況は、内部構造に着目するホワイトボックステストの考え方です。

解答・解説

正解はイです

この問題のテーマ

ブラックボックステストで確認できることと、内部構造を調べるホワイトボックステストとの違いを問う問題です。

解き方の考え方

まず、各選択肢が入出力の確認について述べているか、プログラム内部の確認について述べているかを見分けます。ブラックボックステストは、入力に対する出力を仕様と照合します。そのため、外から見える動作に影響しないコードは、この方法だけでは見つけられません。

選択肢ごとの解説

  1. ×ア  テストデータの作成基準として,プログラムの命令や分岐に対する網羅率を使用する。
    命令や分岐をどれだけ実行したかという網羅率を求めるには、プログラムの内部を調べる必要があります。これは入出力を基準にするブラックボックステストの説明ではありません。
  2. ○イ  被テストプログラムに冗長なコードがあっても検出できない。
    冗長なコードがあっても、それが外から見える動作に影響しなければ、入出力の結果には現れません。したがって、ブラックボックステストだけではそのコードを検出できません。
  3. ×ウ  プログラムの内部構造に着目し,必要な部分が実行されたかどうかを検証する。
    必要な箇所が実行されたかを確かめるには、プログラムの内部構造を見ます。これはホワイトボックステストの考え方です。
  4. ×エ  分岐命令やモジュールの数が増えると,テストデータが急増する。
    ブラックボックステストのテストデータは、内部の分岐命令やモジュールの数から直接決まるものではありません。分岐を網羅しようとしてテスト量が増えるという説明は、内部構造に着目する方法に当てはまります。

POINT

  • ブラックボックステストでは、入力と出力の関係を仕様と照らし合わせます。
  • 命令や分岐の実行状況を確かめるには、内部構造を見る必要があります。
  • 入出力に影響しない冗長なコードは、外から動作を確認するだけでは判別できません。

※出典:平成31年度春期 基本情報技術者試験 午前 問47