正常系テストと異常系テストの違いについて
testing

正常系テストと異常系テストの違いについて

Saki Pham

ソフトウェアテストとは、テスト対象のソフトウェアが期待通りに動作しているかどうかを確認するための、検証と妥当性確認のプロセスです。コードの不具合を発見し、ソフトウェア・アプリケーションの品質を向上させることを目的としています。アプリケーションをテストするには、何らかの入力を与え、その結果が要件どおりであるかどうかをチェックする必要があります。アプリケーションのテストは、正常系テストと異常系テストの2つの方法で実行できます。

この2つのテスト方法は、それぞれに特徴や機能があり、ソフトウェアやアプリケーションをチェックする上で重要な役割を担っています。正常系テストと異常系テストの重要な違いを理解する前に、まずは正常系テストと異常系テストがどんなテストであり、またどんな目的で実施するテストなのかを簡単に紹介します。

正常系テストとは?

正常系テストは、有効な入力データに対してシステムを検証するテストプロセスです。このテストでは、テスターは常に有効な値のセットのみをチェックし、アプリケーションが期待される入力に対して期待通りに動作するかどうかをチェックします。

正常系テストの主な目的は、ソフトウェア・アプリケーションが想定したとおりに動作するかどうかをチェックすることです。正常系テストは、与えられた製品やプロジェクトが常に要件や仕様を満たしていることを証明しようとするものです。正常系テストは、通常の日常生活におけるシナリオを想定し、アプリケーションの期待される動作を確認するためのテストです。

異常系テストとは?

異常系テストは、一般にエラーパステストや障害テストと呼ばれ、アプリケーションの安定性を確保するために行われます。異常系テストとは、無効なデータに対してアプリケーションを検証するプロセスであり、ネガティブな入力に対してアプリケーションが期待通りに動作するかどうかをチェックします。これは、アプリケーションが想定外のことをしないようにテストすることです。このようなテストは、否定的な視点を持ち、無効な入力データに対してのみテストケースを実行するように実施されます。

異常系テストの主な目的は、様々な不正確な検証データセットの影響に対するソフトウェア・アプリケーションの安定性を確認することです。異常系テストは、より多くの不具合を発見し、テスト対象のソフトウェア・アプリケーションの品質を向上させるのに役立ちますが、正常系テストが完了した時点で実施する必要があります。

正常系テストと異常系テストの違い

正常系テストと異常系テストの大きな違いのいくつかを、以下の表で説明します。

番号

正常系テスト

異常系テスト

1

有効な入力データを用いてアプリケーションの応答を確認します。

無効な入力データを用いてアプリケーションの応答を確認します。

2

想定される条件に対してのみ実施されます。

想定外の条件に対してのみ実施されます。

3

ソフトウェア製品の良い品質を保証するものではありません。

ソフトウェア製品の良い品質を保証するものです。

4

正常系テストは異常系テストに比べ、より短い時間で実行することができます。

異常系テストは正常系テストに比べ、より多くの時間を要します。

5

起こりうるすべてのケースを網羅しているわけではありません。

すべての可能なケースを網羅します。

6

有効な入力データに反してシステムを検証するプロセスである。

無効な入力データに対する検証を含むテストプロセスである。

7

正常系テストは異常系テストより意味がありません。

異常系テストは正常系テストよりも重要である。

8

すべてのアプリケーションで実施することができます。

予測できない状態の可能性があるときに実装することができます。

9

知識のない方でも、正常系テストを実施することができます。

テストのプロが、異常系テストを実施することができます。

10

ソフトウェアが正常であることを確認します。

ほとんどバグのないソフトウェアを保証します。

正常系テストと異常系テストの例

年齢を入力するテキストボックスが含まれるアプリケーションをテストするシナリオで、テキストボックスの要件は以下の通りです。

1~99の間の数値のみを受け取る。

1~99の間の数値を入力すると、テキストボックスの右側に緑チェックアイコンが表示される。

その範囲以外の数値を入力すると、テキストボックスの下に「1~99の間の数値を入力してください」のエラーが赤い文字で表示される。

正常系テスト:年齢を入力するテキストボックスに1~99の間の数値(例:55)を入力

異常系テスト:年齢を入力するテキストボックスに1~99の間の数値範囲以外(例:abc)を入力

まとめ

正常系テストと異常系テストの重要な比較を確認した後、テストはソフトウェア・アプリケーションの品質を向上させるのに役立ち、ソフトウェアが発売される前にバグがないことを保証すると結論づけることができます。

その名の通り、この2つは相反する技術ですが、最終的に高品質のソフトウェアを得るためには非常に有効です。

そして最後に、正常系テストと異常系テストはコインの裏表のようなもので、基本的に両方のテストを行うことが望ましいと言えます。両方が実行されればより高い品質が保証されたソフトウェアとなる一方で、どちらかを無視してしまえばそのソフトウェアの品質保証は十分になされたとは言えないでしょう。