平成22年度 秋期 ITパスポート試験 問89 解説 テストデータの網羅性
問89 Mさんがプログラムのテストに使うデータを準備するために表2の出力結果表を作成した理由として, 適切なものはどれか。
- ア 処理の間違いが起こりそうなケースを洗い出して, そのケースのテストデータを準備し, プログラムの信頼性のテストを行うため。
- イ プログラムに記述されている命令の実行順序を追跡するためのテストデータを準備し, 設計どおりの順序で命令が実行されるかどうかをテストするため。
- ウ 要件から考えられるケースの中から, 発生頻度の高そうなケースを選んでテストデータを準備し, 少ないテストデータで効率的にテストを行うため。
- エ 要件から考えられるケースを網羅するテストデータを準備し, すべてのケースを漏れなくテストするため。 ✓ 正答
解説
この問題は、プログラムのテストにおけるテストデータの作成目的を問うものです。正解は「エ」です。
表2のような一覧表を作成する理由は、すべての入力条件の組み合わせ(地区、サイズ区分、重量区分)を漏れなく洗い出し、それらが正しく処理されるかを網羅的に確認するためです。
網羅的テストの重要性
ソフトウェアテストにおいて、特定の条件下でのみ発生するバグや、条件の境界値での誤動作を見つけるためには、考えられるすべてのケースをテストすることが基本です。
もしテストケースを「発生頻度が高いもの」や「間違いやすそうなもの」だけに絞ってしまうと、利用頻度が低い組み合わせや、設計者が想定していなかった特殊なケースでプログラムが異常終了したり、誤った結果を返したりするリスクが残ります。
表を活用したテスト設計の思考プロセス
今回のように「地区」「サイズ区分」「重量」という複数のパラメータがある場合、それぞれの組み合わせは「直交表」や「決定表(デシジョンテーブル)」のような考え方を用いて整理します。
- 各入力要素が取りうる値を整理する
- すべての組み合わせが何通りあるかを算出する
- それらすべてを列挙した表を作成し、それぞれの期待値を記入する
このプロセスを経ることで、「まだ試していない組み合わせはないか?」という不安を解消し、テストの漏れを防ぐことができます。試験対策としては、このような表形式の資料が提示された場合、それは「効率化」ではなく「抜け漏れ防止(網羅性)」を目的としていると判断するのが定石です。
実務における位置付け
この手法は、実際のシステム開発において、品質を担保するための「ホワイトボックステスト」や「ブラックボックステスト」の設計段階で非常に重要です。
特に複雑な料金計算や、条件分岐が多い業務アプリケーションでは、経験や勘に頼ったテストでは必ずと言っていいほどバグを見落とします。開発の現場では、このような表を作成してテストケースを可視化することで、テスト担当者間での認識齟齬をなくし、第三者でもテストの網羅性を検証できる状態を作ることが強く推奨されます。