異常系テスト
概要

本来の利用手順から外れた操作、許容範囲を超える入力値、必要なファイルやネットワーク接続の欠如、ハードウェア障害などを意図的に発生させる。障害発生時のエラーメッセージの表示内容や処理の中断方法、データの整合性維持などを確認する。利用者が誤った操作を行った場合でも、システムが異常終了したり予期しない結果を返したりしないことが求められる。
金融システムにおける送金処理を例にとると、その途中で停電や機器故障が発生した場合、口座からの出金だけが完了して入金が行われない状態は避けなければならない。このため、障害発生時には処理全体を取り消して元の状態に戻す、あるいは再起動後に未完了の処理を継続して整合性を回復する仕組みが正しく機能するかを確認する。通信回線の切断やデータベースへの接続失敗なども対象となる。
異常系テストと対をなす概念が「正常系テスト」である。これは仕様書で定められた条件や利用手順に従って操作した際に、期待通りの結果が得られることを確認する。両者はソフトウェアテストの基本的な分類軸であり、システムの品質を評価する上で双方の観点が欠かせない。なお、不正な入力や操作ミスなど想定された例外的な状況に対し、適切なエラーメッセージを表示して再入力を促すなど、開発時に想定した異常時の処理が機能するかを確かめるものは「準正常系テスト」と呼ぶこともある。
近年のシステム開発、特にクラウドサービスや分散システムにおいては、一部のネットワーク遅延や外部サービスの停止がシステム全体に波及しないよう、設計段階から耐障害性を高めることが求められている。これに伴い、テスト工程でも意図的に疑似的な障害や過大な負荷を発生させ、システムが機能を縮小しながら稼働を継続できるかを調べる手法も用いられている。不具合が発生した際の影響が深刻な金融システムや社会インフラ、医療機器などの分野では、異常系テストの成否がシステムの信頼性を左右する。