システムのテストは主に4つの段階があります。1つ目はプログラマが行なうテストです。このテストは単体テスト、UNITテストとも呼ばれ、各プログラマがコーディングした内容が仕様書に沿ったものとなっているかがチェックされます。Unitテストでは機能自体のテストではなく、あくまでも仕様書通りに作成されているかが重要視されます。
この段階で仕様書の不備がある場合にはテストが中止され仕様書等の見直しとなります。単体テストが終了すると次は結合テストが行なわれます。結合テストは複数のプログラムを走らせ、ある一定のモジュールが適切に動くかがテストされます。特にシステム内部でやりとりされる入出力データについては厳しくチェックされます。
結合テストが終わるとシステムテストとなります。このテストでは開発チーム内で本番で使うサーバにて実際に稼働させてチェックされます。この段階ではほぼ本番と同様であり、実際のデータを利用して稼働時間についてもチェックされます。とくに速度が出ていない場合には予定速度前調整が繰り返されます。
その後、運用テストとなります。運用テストでは利用者も含めて本番と同じ環境で行われ、ハードウエアもこの時点で納品となります。運用テストでは納品先で確実に動くことがテストされます。また、同時にマニュアルについても精査され、また、障害をわざと起こして対応ができるかについてもテストされ、本番を迎えることとなります