正常系と異常系の違いとは?IT初心者向けにテストで確認する内容や具体例を分かりやすく解説
結論として、正常系は「想定どおりに操作した場合の動作」を確認するテスト、異常系は「想定外の操作やエラーが発生した場合の動作」を確認するテストです。
- 正常系テスト:利用者が正しい操作を行った場合に、期待どおりの結果になるか確認する
- 異常系テスト:誤った入力や障害が発生した場合でも、システムが安全に動作するか確認する
システムは正常時だけでなく、誤操作や予期しないエラーが発生した場合でも適切に動作する必要があります。そのため、どちらのテストも品質を確保するうえで欠かせません。
正常系とは
正常系とは、仕様どおりの入力や操作を行ったときに、期待した結果になるかを確認するテストです。
利用者が正しい手順で操作した場合を想定して確認します。
例えばログイン機能では、次のような内容が正常系テストです。
- 正しいユーザーIDとパスワードでログインできるか
- ログイン後にトップページが表示されるか
- ユーザー名が正しく表示されるか
異常系とは
異常系とは、誤った入力や想定外の状況でも、システムが適切に処理できるかを確認するテストです。
異常系では、エラーが発生しないことではなく、エラーが発生した際に正しく処理されることを確認します。
例えばログイン機能では、次のような内容が異常系テストです。
- 間違ったパスワードでログインできないか
- ユーザーIDを未入力にするとエラーメッセージが表示されるか
- 存在しないユーザーではログインできないか
- 一定回数以上失敗するとアカウントがロックされるか
正常系と異常系の違い
| 項目 | 正常系 | 異常系 |
|---|---|---|
| 目的 | 期待どおりに動作するか確認 | エラー時の動作を確認 |
| 入力内容 | 正しい入力 | 誤った入力・想定外の操作 |
| 期待結果 | 正常に処理される | 適切なエラー処理が行われる |
| 確認内容 | 機能や処理の正常動作 | エラーメッセージ・例外処理・データ保護 |
なぜ異常系テストが重要なのか
実際の利用者は、必ずしも設計者が想定したとおりに操作するとは限りません。
例えば、入力漏れや誤ったデータの入力、ネットワーク切断など、さまざまな状況が発生します。
異常系テストを行わないと、システムが停止したり、データが壊れたり、利用者に分かりにくいエラーが表示されたりする可能性があります。
実際のIT現場での利用例
例1:ログイン機能
正常系
- 正しいID・パスワードでログインできる
- ホーム画面へ遷移する
異常系
- 誤ったパスワードでログインできない
- 未入力時にエラーメッセージが表示される
- ロック対象の場合はログインを拒否する
例2:共有フォルダー
正常系
- 権限のあるユーザーがアクセスできる
- ファイルを保存できる
異常系
- 権限のないユーザーはアクセスできない
- アクセス拒否のメッセージが表示される
例3:Active Directory認証
正常系
- 正しいアカウントで認証できる
- 所属グループに応じた権限が適用される
異常系
- 無効なアカウントでは認証できない
- アカウントロック時はログインできない
- パスワード期限切れの場合は変更を促す
実際のIT現場での流れ
- 正常系テストを実施する
- 基本機能が正常に動作することを確認する
- 異常系テストを実施する
- エラー処理や例外処理を確認する
- 不具合を修正する
- 再テストを実施する
筆者が現場で経験したこと
社内システムのテストでは、正常系だけを確認して問題なしと判断していました。しかし、異常系テストでネットワークを切断した状態を再現したところ、画面が固まって操作できなくなる不具合が見つかりました。
通常の操作では気付かなかった問題でしたが、異常系テストを実施したことでリリース前に修正できました。この経験から、正常系と異常系は必ずセットで確認する重要性を学びました。
業務でよくあるトラブル例
- 正常系だけ確認してリリースしてしまう
- エラーメッセージが英語のままで利用者が理解できない
- 入力チェックが不足している
- 通信エラー時に画面が固まる
- 例外処理が実装されておらずシステムが停止する
初心者が混乱しやすいポイント
- 異常系は「システムが壊れること」だと思ってしまう
- エラーが出たらテスト失敗だと考えてしまう
- 正常系だけ確認すれば十分だと思ってしまう
- 異常系は開発者だけが実施するものだと思ってしまう
異常系テストでは、エラーが表示されること自体が正しい結果である場合もあります。重要なのは、仕様どおりに安全な処理が行われることです。
確認するポイント
正常系
- 期待どおりの結果になるか
- 画面遷移は正常か
- データが正しく保存されるか
- 処理時間に問題がないか
異常系
- 適切なエラーメッセージが表示されるか
- システムが停止しないか
- データが破損しないか
- ログが正しく記録されるか
ログの確認方法
異常系テストでは、エラー画面だけでなくログも確認しましょう。
- Windowsイベントログ
- アプリケーションログ
- Webサーバーログ
- データベースログ
利用者には表示されないエラー情報が記録されていることがあります。
イベントビューアーで確認する内容
- イベントビューアーを開く
- 「Windows ログ」を選択する
- 「アプリケーション」または「システム」を開く
- エラーや警告が記録されていないか確認する
上司へ報告するポイント
- 正常系・異常系それぞれの実施状況
- 発見した不具合の内容
- 再現手順
- 影響範囲
- 修正状況
「テスト完了」だけではなく、「正常系は完了、異常系で〇件の不具合を確認」のように具体的に報告すると状況が伝わりやすくなります。
エスカレーションするタイミング
- システムが停止する不具合を発見した
- データ消失や情報漏えいの可能性がある
- エラー発生時に復旧できない
- 仕様と異なるエラー処理になっている
- 利用者の業務に大きな影響がある
関連するIT用語
- 単体テスト
- 結合テスト
- 総合テスト
- 受入テスト(UAT)
- テストケース
- 例外処理
- エラーハンドリング
- 回帰テスト(リグレッションテスト)
よくある質問(FAQ)
正常系だけテストすれば十分ですか?
十分ではありません。利用者の誤操作や障害発生時にも安全に動作することを確認するため、異常系テストも必須です。
異常系テストではエラーが表示されれば成功ですか?
エラーが表示されるだけでは不十分です。仕様どおりのメッセージが表示され、システムが正常に処理を終了し、データが保護されていることまで確認する必要があります。
インフラエンジニアや社内SEも異常系テストを行いますか?
はい。サーバー停止時の冗長化動作、ネットワーク切断時の通信、アクセス権限不足時の挙動などを確認することが多くあります。
まとめ
正常系は「正しい操作で期待どおりに動作するか」を確認するテスト、異常系は「誤操作や障害が発生しても安全に処理できるか」を確認するテストです。
正常系だけでは見つからない問題は多く、異常系テストによってエラー処理やシステムの安全性を確認できます。
IT業務では、正常系と異常系の両方を実施することで、利用者が安心して使えるシステムを提供できます。初心者のうちから両者の違いと目的を理解し、テストケースを作成する際にも両方の観点を取り入れることが大切です。

コメント