テストを次の順序で行う場合, システムテストの目的として, 最も適切なものはどれか。 単体テスト → 結合テスト → システムテスト → 運用テスト
平成23年度 特別試験 ITパスポート試験 問54
この問題の解説と、これまでの解答の記録です。
問 54
- ア
正解 正解はア。設問が示す「単体テスト → 結合テスト → システムテスト → 運用テスト」という順序は、検証する範囲を下位から上位へ段階的に広げていくソフトウェアテストの標準的な進め方です。単体テストではプログラム(モジュール)1 本ずつ、結合テストではモジュールやプログラムをつないだ部分、そしてシステムテストでは全てのプログラムを結合した「システム全体」が対象になります。システムテストは、開発者側が行う最後のテスト工程であり、開発したシステムが要件定義で決めた仕様どおりに動くかを総合的に確認する場です。確認の対象は大きく 2 種類あります。1 つは機能要件、すなわち必要な業務機能がすべて備わって正しい結果を出すか、異常なデータを与えたときに適切に処理されるかといった点。もう 1 つは非機能要件、すなわち応答時間やスループットといった性能、大量データや同時アクセスに耐えられるか(負荷テスト)、障害発生時に復旧できるか、セキュリティ上の欠陥がないかといった点です。ア の「開発者が, システム全体の機能と性能を検証する」は、この対象範囲(システム全体)と検証観点(機能と性能)の両方を正しく言い当てているため、システムテストの目的として最も適切です。なお、システムテストで開発者が品質を確認し終えてから、次の運用テストで利用者側が業務目線の最終確認を行う、という役割分担になっている点も併せて押さえておきましょう。
不正解イ
「プログラム間のインタフェースに問題がないことを確認する」のは、システムテストの 1 つ手前にある結合テスト(統合テスト)の目的です。結合テストでは、単体テストに合格したモジュールやプログラムを組み合わせ、呼出し方が正しいか、受け渡すデータの項目・型・件数・順序が食い違っていないかを確認します。検証範囲がプログラム間のつなぎ目に限定されており、システム全体の機能や性能を総合的に評価するものではないため、システムテストの目的としては不適切です。
不正解ウ
「プログラムの内部構造に着目して, プログラムが正しく動作していることを確認する」のは、最初の工程である単体テストの目的です。内部構造に着目するテストはホワイトボックステストと呼ばれ、分岐や繰返しといった制御の流れをすべて通るようにテストケースを設計します(命令網羅・判定条件網羅など)。対象は個々のプログラム 1 本であってシステム全体を見る工程ではないため、システムテストの目的にはあたりません。
不正解エ
「利用者が, 本番環境のシステムを使って, 業務が実施できることを検証する」のは、システムテストの後に行う運用テスト(受入れテストに相当)の目的です。ここでの主体は開発者ではなく利用者側であり、実際の業務手順・業務データ・運用体制のもとで、システムを使って日常業務が滞りなく回るかを確認します。開発者がシステムの品質を確認するシステムテストとは実施主体も検証の観点も異なるため誤りです。
- テスト工程と目的の対応 — 単体テストはプログラム単体を内部構造に着目して検証(ホワイトボックステスト)、結合テストはモジュール・プログラム間のインタフェースを検証、システムテストは開発者がシステム全体の機能要件と非機能要件(性能・負荷・セキュリティなど)を総合検証、運用テストは利用者が実際の業務環境で業務を実施できるかを検証する。「誰が」「どこまでの範囲を」「何の観点で」見るかで見分けるのがコツ。
- システムテストの検証観点 — システムテストは開発者が行う最終テストで、機能が仕様どおり動くかに加え、応答時間やスループットなどの性能、大量データ・同時アクセスへの耐性、障害時の復旧、セキュリティといった非機能要件まで対象に含める。性能テストや負荷テストはこの工程で実施される。