平成26年度 春期 ITパスポート試験 公開問題 問35 解説 ブラックボックステスト
ソフトウェアのテストで使用するブラックボックステストにおけるテストケース の作り方として,適切なものはどれか。
- ア 全ての分岐が少なくとも1回は実行されるようにテストデータを選ぶ。
- イ 全ての分岐条件の組合せが実行されるようにテストデータを選ぶ。
- ウ 全ての命令が少なくとも1回は実行されるようにテストデータを選ぶ。
- エ 正常ケースやエラーケースなど,起こり得る事象を幾つかのグループに分けて, 各グループが1回は実行されるようにテストデータを選ぶ。 ✓ 正答
解説
ブラックボックステストを見抜くポイント
この問題を解く鍵は、テスト対象の「中身」を見るか「仕様」を見るかという視点の違いです。ブラックボックステストとは、プログラムの内部構造を無視し、仕様書通りに機能するかを確認する手法です。したがって、「入力に対して正しい出力が得られるか」を重視したテストケースの作り方が正解となります。選択肢のうち、データのグループ分け(同値分割など)を行うエが正解であり、残りのア、イ、ウはすべて内部構造を確認するホワイトボックステストの手法です。
ブラックボックステストとホワイトボックステストの境界線
ソフトウェアテストの手法は、主に以下の2つに分類されます。
ブラックボックステスト プログラムの内部構造(コードの分岐や命令の順序)を意識せず、外部から見た「仕様」に基づいたテストを行います。「どのような入力に対して、どのような結果が返るべきか」という入出力関係に注目します。ユーザー目線での動作確認として非常に重要です。
ホワイトボックステスト プログラムのソースコードの内部構造をすべて把握した上で行うテストです。「すべての命令を通ったか」「すべての分岐条件を網羅したか」を確認します。開発者が実装ミスを防ぐために行います。
なぜグループ分けをするのか:同値分割法の実践
選択肢エにある「起こり得る事象を幾つかのグループに分けて」という考え方は、具体的には「同値分割法」と呼ばれます。
例えば、年齢を入力して料金を計算するシステムで、0歳〜19歳は無料、20歳以上は有料という仕様があるとします。すべての年齢(0歳、1歳、2歳...100歳)をテストするのは効率が悪すぎます。そこで、結果が同じになる範囲をグループ化します。
・0歳〜19歳(無料になるグループ)から代表値として10歳を選ぶ ・20歳以上(有料になるグループ)から代表値として30歳を選ぶ
このように、テストする範囲を代表的な値で代表させることで、テストケース数を最小限に抑えつつ、漏れのない検証が可能になります。これは現場の実務でも、少ないテスト工数で高い網羅性を確保するための必須テクニックです。
内部構造を確認する他の選択肢の正体
選択肢ア、イ、ウは、すべて内部ロジックを追いかけるホワイトボックステストの用語です。
・ア(全ての分岐が少なくとも1回は実行される):判定条件網羅(分岐網羅) ・イ(全ての分岐条件の組合せが実行される):条件網羅(条件組み合わせ網羅) ・ウ(全ての命令が少なくとも1回は実行される):命令網羅(ステートメント網羅)
試験では「ブラックボックス=仕様重視=外側からテスト」「ホワイトボックス=ロジック重視=内側からテスト」という対比を頭に入れておくと、迷わずに回答できます。