基本情報技術者試験 平成31年度 春期 午前 問47
テスト技法、ブラックボックステスト、ホワイトボックステストに関しての問題。
--------------------------
平成31年度 春期 午前 問47
ブラックボックステストに関する記述として、最も適切なものはどれか。
ア
テストデータの作成基準として、プログラムの命令や分岐に対する網羅率を使用する。
イ
被テストプログラムに冗長なコードがあっても検出できない。
ウ
プログラムの内部構造に着目し、必要な部分が実行されたかどうかを検証する。
エ
分岐命令やモジュールの数が増えると、テストデータが急増する。
--------------------------
解説
世の中はグレーなことばかり(どうでもいい)。
ブラックボックスは日常でもたまに聞くのでわかりやすい。
"中身がよく分からないこと" に対して使われる。
ブラックボックステストをやる人はプログラムの中身を知っているような動きをしてはいけない。
どんな言語で書かれているか、どんなロジックになっているか、等を気にしてはいけない。
何か入力をしたときに、想定した出力があるのかそうでないのか、だけをテストする(入力と出力の間にあるものを全てブラックボックスとして扱う)。
選択肢ア「テストデータの作成基準として、プログラムの命令や分岐に対する網羅率を使用する」はプログラムの命令や分岐を気にしている。
中身のロジックを気にしてしまっているので、これはホワイトの方。
選択肢イ「被テストプログラムに冗長なコードがあっても検出できない」は冗長なコードがあっても検出できない、つまりプログラムの中身は気にしていないので、ブラックの方。つまり正解は選択肢イ。
コードが冗長であっても機能の側面(入力に対してどの様な出力をするか)には影響がない。
とんでもなく冗長な書き方をしているコードと限りなく洗練されたコードであっても、バグがなければブラックボックステストはどちらも同じ結果/評価になる。
冗長かどうかが影響するのは非機能の面であり、冗長の分だけ処理が重くなり性能が低下したり、コードがわかりにくくなり保守性が悪くなったりする。
これらはブラックボックステストではなく、別の観点のテストで検出することになる。
仮に性能に対して要求要件が存在し、性能テストが合格できなければ、冗長な部分を修正する可能性がでてくる。
選択肢ウ「プログラムの内部構造に着目し、必要な部分が実行されたかどうかを検証する」ははっきりとプログラムの内部構造に着目と書いてしまっている。
なのでホワイトの方。
選択肢エ「分岐命令やモジュールの数が増えると、テストデータが急増する」も分岐命令やモジュールの数がテストに影響するなら、それはホワイトの方。
ブラックボックスのテストケースは入力できるパラメータと出力される結果だけを見ているので、プログラムの内部構造である分岐やモジュールの数はテストケースに影響を与えない。
ホワイトボックスの場合ではプログラム内部における分岐の網羅性を考えるので、分岐やモジュールの数が増えるとテストケースは増えることになる。
前後の問題はこちら。