「正常系テスト」と「異常系テスト」と「準正常系テスト」の違い
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 正常系テスト | その対象がやることになっているお仕事を、きちんとこなせるか確認する作業。リハーサルみたいなもの |
| 異常系テスト | その対象が想定外のことを起こして、きちんと対処できるか確認する作業。避難訓練みたいなもの |
| 準正常系テスト | 想定の範囲内だけど歓迎していない状況に対して、きちんと対処できるか確認する作業 |
似ているところ
すべて、テストの分類を指す用語です。
違うところ
テストの観点が違います。
大雑把に言えば
正常系テスト:予定しているお仕事を予定通りにこなせるかの確認
異常系テスト:想定外のことに対して、きちんと対処できるか確認
準正常系テスト:想定はしているけど予定していないことに対して、きちんと対処できるか確認
です。
例えば、そうですね。
狂気のマッドサイエンティスト見習いのピヨ太君が自律型ロボット「ピヨピヨ28号」の動きをテストしたとしましょう。

燃料が十分にある状態で「ちゃんと動くかな?」を確認するのが正常系テストです。
予定しているお仕事を予定通りにこなせるか確認する作業を指します。

間違って燃料の代わりにジュースを入れちゃってもピヨピヨ28号が壊れないかを確認するのが異常系テストです。
想定外のことを起こして、きちんと対処できるか確認する作業を指します。

燃料が残り少なくなったときに安全な場所に撤退するかを確認するのが準正常系テストです。
想定の範囲内だけど歓迎していない状況に対して、きちんと対処できるか確認する作業を指します。

個人的な使い分け
基本的には
正常系テスト:機能として正しい動作をするかのテスト
異常系テスト:正常系テストでやらないテスト
準正常系テスト:異常系テストのうち、普通に使っていても起こり得る事態(入力間違いとか)に対するテスト
の観点で分類しています。
備考
どのようなテストがどこに分類されるかは、お仕事現場によって違ったりします。
区別に迷ったときは、現場の人に確認してください。
例えば、そうですね。
ピヨ太君が、とあるシステムのテストで「電話番号の項目に名前を入れる」というテストをやったとしましょう。
「TEL」の欄に「ピヨ太」と入れて「送信」ボタンを押しました。

その結果「入力された『ピヨ太』というのは電話番号っぽくないよね。やり直し!」とエラーになりました。
これは動きとしては正しいです。

ここで問題です。
このテスト項目は正常系でしょうか?
異常系でしょうか?
それとも準正常系でしょうか?
まず「正常系」と呼ぶのは少し抵抗があります。
正常なのは「電話番号の項目に電話番号を入れる」でしょう。
「電話番号の項目に名前を入れる」のは正常では ありません。
それでは「異常系」でしょうか。
そのように解釈することもできます。
正常なのは「電話番号の項目に電話番号を入れる」です。
「電話番号の項目に名前を入れる」のは異常です。
ですが、ちょっと待ってください。
「電話番号の項目に名前を入れた結果、再入力を促す」はシステムの動きとして正しいですし、システムを使っていれば日常的に起こり得る事態です。
そこまで「これは異常だよ!」という事態でもありません。
異常は異常ですが想定の範囲内なので「準正常系」と解釈できます。
ということで、私自身は、入力チェック系のテストは準正常系に分類するのがしっくりきます。
ただし、です。
そもそもテストの分類を「正常系」と「異常系」の2つに分けている(「準正常系」がない)場合も あります。
その場合は「日常的に起こり得ることだし、動きとしては正しいよね」と考えて「正常系」に分類する人もいれば「電話番号の項目に名前を入れるのは、おかしいよね」と考えて「異常系」に分類する人もいるでしょう。
このように、観点や捉え方によって同じテスト項目でも違う分類にできたりします。






