技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

情報処理技術者試験対策「システムテストや同時期に実施するテスト」

目次

https://1drv.ms/b/s!AivF3bzWXOzuhG1Xk5hscKYqkLkM

-------------------------------
テストについては一通り書こうと思います。
今回は、システムテストについてです。
あまり面白いことは書けませんが…。
 
システムテスト結合テストの後に開発部隊が行うテストであり、システムが要件を満たしていることを確認するためのテストです。
以下の2つの要件を満たしていることを確認します。
(なお、バグの原因切り分けを容易にするため、モジュール単独で検証できることは前工程で行う必要があります。例えば、性能テストに関して、SQL単独の性能計測は単体テストの範囲です。)

  • 機能要件
    システムが提供する機能に関する要件。
    ユーザインターフェースやその裏側の業務処理等。
    実運用を想定し、シナリオテストや実時刻テストを行うことにより検証する。
     
  • 非機能要件
    機能要件を実現するための土台として必要になる要件。
    性能テスト、負荷テスト、セキュリティテスト等により検証する。

また、本番環境でのテストもシステムテストで行う必要があります。
テスト環境と本番環境で環境差異(関連モジュールやライブラリのバージョン差異、ネットワーク構成の差異等)がある可能性があり、それがシステムの機能に影響を及ぼす可能性があるためです。
サービス提供時間にテストを行うことはできないため、サービス提供時間外にテストを行うことになります。
場合によっては、テストのために例外的にサービス停止することも検討します。
 
ついでに説明しますが、ユーザ部門による運用テストも同フェーズで実施します。
運用テストでは、開発されたシステムで実運用できるかを検証します。
また、保守開発(本番サービス中のシステムに対する改修)の場合は、リグレッションテスト(退行テスト)も実施します。
リグレッションテストは改修した箇所が他の箇所(現行サービスで問題なく提供できている機能)に影響を及ぼしていないかを確認するためのテストで、同一のインプットで同一のアウトプットが出ることを確認します(現新比較)。