システムテスト
システムテストはシステムが全体として要求された機能や性能を満たしているかどうかを検証します。
結合テストが完了したあとに実施します。
テスト計画の作成
まず、テスト全体の方針や概要をまとめた「システムテスト計画書」を作成します。
システムテストの目的、対象範囲、実施方法、テスト体制、テスト環境、スケジュール、合格基準など、テスト全般に関わる方針をまとめ、プロジェクトメンバー全員で方向性を共有します。
システムテスト仕様書の作成
策定されたテスト計画にもとづいて、「システムテスト仕様書」を作成します。
システムテストのシナリオやテスト内容、確認すべき項目などを具体的に定義します。
また、テストする際に必要なテストデータの内容も定義します。
システムテスト環境の構築
テスト計画にもとづいてシステムテスト環境を構築します。
結合テストまでは、開発マシンやテスト用マシンでのテストとなりますが、システムテストは原則として本番と同等のマシンでのテストとなります。
アプリケーションのテストだけでなく、ハードウェアやOS、ミドルウェアなどの
システム全体が正常に動作することを確認します。
Webサーバや開発言語、デーだベースなどのバージョンの組み合せによるトラブルを
未然に防ぐためにも、本番とまったく同じ環境を構築してテストを行う必要があります。
システムテストの実施
テスト実施者は、「システムテスト仕様書」にもとづいてテストを実施します。
障害を発見した場合は、障害管理票を起票し、不具合が改修されるまで管理します。
システムテストの種類
システムテストにはいくつか種類があります。
特にパフォーマンスを評価するテストについては、「性能テスト」や「ストレステスト」などの目的によってテストの内容や手法が異なります。
混乱を避けるためにも事前に関係者の間でテスト内容の認識を合わせておきましょう。
◆パフォーマンステスト
性能テスト(Performance Test)
システムのパフォーマンスを判定するためのテストです。
ある条件でのレスポンスタイムを測定し、測定結果をもとにチューニングや最適化を行います。
レスポンスタイムを評価するために行います。
ロードテスト(Load Test)
システムの動作を測定するテストです。
通常時/ピーク時の負荷に対して、システムが耐えられるかを判定します。
全ユーザーのトランザクションを処理しきれるかを評価するために行います。
ストレステスト(Stress Test)
要件で定義した限界、またはそれを超えた条件で、システムを評価するテストです。
過負荷な状態で発生するバグ(排他制御の問題、競合条件、メモリーリークなど)を検出します。
万が一、高負荷な状況が発生した場合に何が起こるのかを把握するために行います。
キャパシティテスト(Capacity Test)
パフォーマンス要件を満たしつつ、どの程度のユーザやトランザクションをさばけるかを検証します。
将来的なユーザ数やデータ量の増加に対して、どういったリソース(CPU、メモリ、ネットワーク帯域など)を拡充すべきかを計画化するための調査といえます。
ユーザやデータ量が増えたときに何を増やせばよいかを把握するために行います。
◆障害テスト
要件定義書や外部設計書で想定されている障害に対して、システムが正しく動作すること、意図しない動作や新たな障害が発生しないこと、などを確認します。
たとえばハードウェアの故障やデータベースサーバのダウンなどの障害を擬似的に発生させてテストを実施します。
また障害発生時の対応や障害復旧手順が正しいことを確認します。
◆セキュリティテスト
要件定義で定められたセキュリティ要件が、システムに正しく反映されていることを確認します。
システムで対策すべきセキュリティ項目には、外部からの不正アクセス防止や情報の漏えい防止などがあります。
■次の記事
運用テスト
PR