平成21年度 秋期 ITパスポート試験 問50 解説 システムテストの担当者
あるシステムの開発において,単体テスト,結合テスト,システムテスト,運用テストの順にテストを実施することにした。システムテストのテストケースの作成者として適切な者はだれか。
- ア 外部設計の担当者 ✓ 正答
- イ 内部設計の担当者
- ウ プログラム開発の担当者
- エ 利用部門の担当者
解説
システムテストの役割は「要件定義や外部設計で決められた仕様通りにシステムが動作するか」を確認することです。したがって、システム全体の振る舞いを定義した外部設計の担当者が、作成した仕様に基づいてテストケースを作るのが最も適切です。
テスト工程と作成者の関係
システム開発におけるテストは、開発の各工程に対応した検証作業です。それぞれのテストには「誰が設計した内容を確認するのか」という明確な境界線があります。
単体テストと結合テストは、主にプログラムの内部構造やモジュール間の連携を確認する工程であるため、プログラムや内部設計を担当した人がテストケースを作成します。一方、システムテスト以降は、開発者視点ではなく、ユーザーが利用する機能や性能といった外部的な要件に焦点が移ります。外部設計担当者は、システムがユーザーに提供すべき機能を文書化する責任を負っているため、その期待値が満たされているかを判定する基準を作成する立場にあります。
なぜ外部設計者が作成するのか
システムテストで確認するのは、個々のプログラムの動きではなく、システム全体が本来の目的を果たしているかという点です。もしプログラム開発者がテストケースを作ってしまうと、どうしても「プログラムがどう動くか」という実装視点に偏ってしまい、外部設計で想定していた「あるべき動作」の観点が漏れてしまうリスクがあります。
外部設計者は「利用者から見たシステムの機能・非機能要件」を最も深く理解しています。そのため、意図した通りの入力に対して正しい出力が得られるか、あるいは負荷がかかった際に性能要件を満たせるかといった、システム全体の整合性を確認するためのテストケースを作成するのに最も適した立場にあるのです。
現場におけるテスト設計の重要性
この問題は、単にテストケースを書く人を選ぶだけでなく、システム開発における責任分担の考え方を問うています。ITパスポート試験において、この知識は以下のような場面で役立ちます。
システム開発のプロジェクトに参加する際、どの段階で誰が何を検証すべきかを理解しておくことは、手戻り(やり直し)を防ぐために重要です。例えば、テスト結果で不具合が見つかった場合、それがプログラムのバグなのか、外部設計の認識齟齬なのかを判断する場面があります。テストケースの作成者がその工程の責任者と一致していれば、問題の原因が仕様策定段階にあるのか、実装段階にあるのかという切り分けを迅速に行うことができるようになります。