本文へスキップ

平成22年度 春期 ITパスポート試験 問47

この問題の解説と、これまでの解答の記録です。

問47
頻出度★★★

プログラムの単体テストに関する記述のうち, 適切なものはどれか。

出典 平成22年度 春期 ITパスポート試験 問47
解説

問 47

  • 不正解ア

    複数のプログラムを組み合わせて一括してテストするのは、単体テストの次の工程である結合テスト (統合テスト) の説明である。単体テストは名前のとおりプログラムごとに単独で行うものなので、「プログラムごとのテストは行わず」という点で定義と正反対になっている。また個々のプログラムを検証しないまま組み合わせると、不具合が出たときにどのプログラムが原因かを切り分けられず、修正の手間がかえって膨らむ。

  • 不正解イ

    単体テストの仕様は、プログラムの内部構造が決まるプログラム設計 (詳細設計) の内容に基づいて作成する。V 字モデルでは、システム要件定義に対応するのはシステムテスト (総合テスト) であり、システム要件を定義する段階で作るのはシステムテストの仕様である。テストの仕様はそれぞれ対応する設計工程で作るという対応関係を取り違えている。

  • 不正解ウ

    テストデータをシステムの利用者が作成し、利用者の立場で確認するのは受入テスト (運用テスト) の進め方である。単体テストのデータは、プログラムのロジックを把握している開発者が、どの命令や分岐を通すかという網羅性を考えて自ら用意する。利用者は通常プログラム内部のロジックを知らないため、網羅性を狙ったデータを作ることはできない。

  • エ

    正解 正解は エ。単体テスト (モジュールテスト) は、作成したプログラムを一つずつ取り出し、そのプログラム単体が設計どおりに動くかを確かめる開発工程の最初のテストである。テストを担当するのはプログラムの内部を知っている開発者自身なので、入出力だけを見るブラックボックステストと併せて、内部の処理手順をたどりながら検証するホワイトボックステストが中心になる。そのため、すべての命令を一度は実行したか (命令網羅)、条件分岐の真と偽の両方を通したか (分岐網羅) といった網羅基準を立て、ロジックの網羅性まで含めてテストデータを用意する。エ の記述はこの単体テストの本質をそのまま述べており適切である。ここで内部ロジックの抜けを潰しておくことで、後続の結合テスト以降では個々のプログラムの単純な作り込みミスではなく、プログラム間のつなぎ部分に絞って不具合を追えるようになる。

ここがポイント
  • 単体テストはプログラム (モジュール) 単位で内部ロジックを検証する工程であり、開発者がホワイトボックステストを中心に (ブラックボックステストと併用して) 実施する。命令網羅・分岐 (判定) 網羅などの網羅基準を満たすテストデータを作り、ロジックの網羅性まで確認するのが特徴。
  • テスト工程と設計工程の対応 (V 字モデル) を押さえる。単体テスト ↔ プログラム設計、結合テスト ↔ ソフトウェア (方式) 設計、システムテスト ↔ システム要件定義、受入テスト ↔ 利用者の要求。テスト仕様は対応する設計工程で作成し、テストの実施者も工程が進むにつれて開発者から利用者へ移っていく。
用語

解答の記録