「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

「正常系テスト」と「異常系テスト」と「準正常系テスト」の違い

スポンサーリンク

それぞれの用語の意味


用語意味
正常系テストその対象がやることになっているお仕事を、きちんとこなせるか確認する作業。リハーサルみたいなもの
異常系テストその対象が想定外のことを起こして、きちんと対処できるか確認する作業。避難訓練みたいなもの
準正常系テスト想定の範囲内だけど歓迎していない状況に対して、きちんと対処できるか確認する作業

似ているところ


すべて、テストの分類を指す用語です。


違うところ


テストの観点が違います。
大雑把に言えば

正常系テスト:予定しているお仕事を予定通りにこなせるかの確認
異常系テスト:想定外のことに対して、きちんと対処できるか確認
準正常系テスト:想定はしているけど予定していないことに対して、きちんと対処できるか確認


です。

例えば、そうですね。
狂気のマッドサイエンティスト見習いのピヨ太君が自律型ロボット「ピヨピヨ28号」の動きをテストしたとしましょう。


「正常系テスト」と「異常系テスト」と「準正常系テスト」の違い1

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


「正常系テスト」と「異常系テスト」と「準正常系テスト」の違い2

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


「正常系テスト」と「異常系テスト」と「準正常系テスト」の違い3

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


「正常系テスト」と「異常系テスト」と「準正常系テスト」の違い4

個人的な使い分け


基本的には

正常系テスト:機能として正しい動作をするかのテスト
異常系テスト:正常系テストでやらないテスト
準正常系テスト:異常系テストのうち、普通に使っていても起こり得る事態(入力間違いとか)に対するテスト


の観点で分類しています。


備考


どのようなテストがどこに分類されるかは、お仕事現場によって違ったりします。
区別に迷ったときは、現場の人に確認してください。

例えば、そうですね。

ピヨ太君が、とあるシステムのテストで「電話番号の項目に名前を入れる」というテストをやったとしましょう。
「TEL」の欄に「ピヨ太」と入れて「送信」ボタンを押しました。


「正常系テスト」と「異常系テスト」と「準正常系テスト」の違い5

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


「正常系テスト」と「異常系テスト」と「準正常系テスト」の違い6

ここで問題です。
このテスト項目は正常系でしょうか?
異常系でしょうか?
それとも準正常系でしょうか?

まず「正常系」と呼ぶのは少し抵抗があります。
正常なのは「電話番号の項目に電話番号を入れる」でしょう。
「電話番号の項目に名前を入れる」のは正常では ありません。

それでは「異常系」でしょうか。
そのように解釈することもできます。
正常なのは「電話番号の項目に電話番号を入れる」です。
「電話番号の項目に名前を入れる」のは異常です。

ですが、ちょっと待ってください。
「電話番号の項目に名前を入れた結果、再入力を促す」はシステムの動きとして正しいですし、システムを使っていれば日常的に起こり得る事態です。
そこまで「これは異常だよ!」という事態でもありません。
異常は異常ですが想定の範囲内なので「準正常系」と解釈できます。

ということで、私自身は、入力チェック系のテストは準正常系に分類するのがしっくりきます。

ただし、です。
そもそもテストの分類を「正常系」と「異常系」の2つに分けている(「準正常系」がない)場合も あります。
その場合は「日常的に起こり得ることだし、動きとしては正しいよね」と考えて「正常系」に分類する人もいれば「電話番号の項目に名前を入れるのは、おかしいよね」と考えて「異常系」に分類する人もいるでしょう。

このように、観点や捉え方によって同じテスト項目でも違う分類にできたりします。


スポンサーリンク
書籍画像001
書籍画像075


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
優れたエンジニアがコミュニティの中でしていること
ソフトウェア受託現場の「失敗」集めてみた。 42の失敗事例で学ぶ受託開発のうまい進めかた