ネガティブテストとは? 例のテストケース
陰性検査
陰性検査 ネガティブ テストは、ソフトウェア アプリケーションに予期しない入力データや条件がないか確認するために使用されるソフトウェア テストの種類です。予期しないデータや条件には、間違ったデータ タイプから強力なハッキング攻撃まで、さまざまなものがあります。ネガティブ テストの目的は、ネガティブな入力によってソフトウェア アプリケーションがクラッシュするのを防ぎ、品質と安定性を向上させることです。
陽性テストを行うことによってのみ、システムが通常の状態で動作していることを確認できます。 100% 障害のないシステムを保証するには、システムが予期せぬ状況に対処できることを確認する必要があります。
陰性検査の例
陰性検査の例として一般的に考えられているリフトの場合を考えてみましょう。
私たちは皆、エレベーターの機能を知っています。 これらは、階番号を押すとエレベーターがその特定の階に移動するなど、エレベーターの要件として考慮されます。
エレベーターが指定階などに到達するとドアが自動で開きます。
次に、上昇率のマイナスのシナリオをいくつか考えてみましょう。 そのうちのいくつかは、
陰性検査 | 陽性反応検査 |
---|---|
規定の人数(体重)を超えた場合はどうなりますか? | 指定された人数のみがエレベーターに入ることが想定されます |
エレベーター内で誰かが喫煙したり火災を起こしたりした場合はどうなりますか? | エレベーター内に煙や火が発生することはありません |
運転中に停電が起きたらどうなりますか? | エレベーター稼働中に停電することはありません |
これらすべてのケースは陰性検査を受けることになります。 これが重要なのは、上記のすべてが起こらないことを保証できないため、それらを封じ込める必要があるということです。
重量超過状態がチェックされ、実装時に重量超過状態があるとリフトが異常な動作をする場合を考えてみましょう。 これはシステムの信頼性に潜在的な影響を与え、生命の危険を引き起こす可能性もあります。 これは陰性検査とは何か、そしてその重要性について説明します。
同じケースがソフトウェアにも当てはまります。ネガティブ テストでは、通常の操作手順から逸脱しています。いくつかの例を見てみましょう。
たとえば、登録フォームを考えてみましょう。
陰性検査 | 陽性反応検査 |
---|---|
メール欄に無効なメールIDを入力してください | メールフィールドには有効なメールIDのみ入力してください |
電話番号欄(文字)に無効な電話番号を入力しようとしました | 数字フィールドには数字のみが入力されます |
指定された境界外のサイズの画像をアップロードする | 指定された境界以下のサイズの画像のみがアップロードされます |
次のような無効なファイルをアップロードします XML画像アップロード欄に、SQL等のファイル | jpg.png などの有効な画像形式のみをアップロードしてください。 |
先ほども述べたように、これらすべてのネガティブなケースにおいて、システムが適切に機能することを確認する必要があります。 誰かが数字フィールドに文字を入力しようとしたが、システムは数字を期待しているため予期せぬデータを処理できず、最終的にシステムがクラッシュした場合を考えてみましょう。 あるいは、誰かが何かをしようとした場合はどうなるでしょうか SQLインジェクション そしてデータベースからすべてのデータを消去します。 私たちはそのような潜在的な損失に耐えることはできません。 したがって、陰性検査は重要です。
なぜネガティブテストを行うのでしょうか?
テストは時間とコストがかかる作業なので、「何を」「どのように」「どの程度」テストするかを決めることが非常に重要です。システムでネガティブ テストを行う必要があるかどうかを慎重に選択する必要があります。それでは、ネガティブ テストの重要性について見ていきましょう。
組織の視点
顧客に高品質の製品を提供するのは組織の責任です。 これを達成するには、陰性テストを行う必要があります。
障害に対する確認の一環として、組織はネガティブ テストを実行する必要があります。
おそらく、100% エラーのないシステムを構築することはできませんが、障害を防ぐためにすべてのことを行ったことを確認する必要があり、それを達成するには、ネガティブ テストを行う必要があります。
影響は私たちが考慮しなければならない要素の XNUMX つです。 電子商取引サイトで陽性テストを実施し、すべてが正常であることを確認したと考えてください。 しかし、システムに抜け穴があり、誰かが SQL インジェクションを実行してすべてのデータを消去できる場合はどうなるでしょうか。 それは重大なセキュリティ侵害になります。 この種のケースを回避するには、陰性検査も行う必要があります。
一般に公開されているアプリケーション、主に Web サイトの場合、アプリケーションの使用手順をあまり制御できないことを常に念頭に置く必要があるため、そのようなケースがすべてカバーされ封じ込められていることを確認するためにネガティブ テストを行う必要があります。
もう一つ注意しなければならないのは、システムを破壊する機会を探しているブラックハッカーがたくさんいるということです。ハッキングはネガティブテストでカバーされる重要なケースです。
クライアントの視点
クライアントは、ネガティブテストが必須であることを保証するために、常に脆弱性ゼロの製品を期待しています。
電子商取引、オンライン在庫などの機密性の高い商品の場合、セキュリティとネガティブ テストは必須です。
陰性検査に関するクライアントの唯一の懸念はコストです。 ただし、影響が分析されたら、ネガティブ テストを行うかどうかはクライアントの判断になります。
陰性検査のやり方
陰性テストを行うには、考えられるすべてのケースを考慮する必要があります。 それは、可能であれば、それを考慮する必要があるということです。 テストケース 正しい使い方でなくても問題ありません。たとえば、メール フィールドが表示されたら、正しいメール形式以外に、そこに入力できる可能性のあるすべての入力について考えます。同様に、画像アップロード オプションが表示されたら、考えられるすべてのファイルでテストする必要があります。
ネガティブテストケースを作成する際には、入力に優先順位を付ける必要があります。そうしないと、多くのケースが考えられます。たとえば、「.png」ファイルのみを入力するイメージフィールドの場合、「jpeg」、「xml」、「xls」など、アップロードするオプションが多数あります。したがって、XMLなどのオプションを優先する必要があります。 SQL jpeg や xls よりも大きな影響を与える可能性があるため、最初に SQL および XML の場合に対処する必要があります。 このように、時間とテストコストを節約するために、実行前にケースに優先順位を付ける必要があります。
陰性検査の長所と短所
他のすべてのテスト手法と同様に、ネガティブ テストにも長所と短所があり、主に「どこで」「いつ」「どのように」使用するかに基づいて異なります。 これを見てみましょう。
ネガティブテストの利点
- 周知のとおり、陰性検査は製品の品質を保証するために非常に重要です。 高品質の製品とは脆弱性のない製品であり、ネガティブ テストが非常に重要であることを確認します。
- 陰性テストを実行すると、考えられるすべてのケースが確実にカバーされます。 意図的か非意図的かにかかわらず、検査結果が陰性となる可能性があります。 したがって、すべてのケースがカバーされていることを確認するには、陽性テストとともに陰性テストも行う必要があります。
- ネガティブなテストにより、クライアントは本番稼働前にさらに自信を持つことができます。
陰性検査の欠点
- ソフトウェア エンジニアリングでは、場合によってはネガティブ テストが時間とエネルギーの無駄になります。 多くの場合、過剰な陰性検査は必要ありません。 たとえば、アプリケーションが 100 人で使用するために作成されている場合、一度に XNUMX 人のユーザーがシステムを使用する場合を考慮する必要はありません。 したがって、ネガティブなテストケースの条件を決定することは非常に重要です。 特定のシステムに対してネガティブ テストを行う必要がない場合もあります。
- ネガティブ テスト ケースの作成には、熟練した経験豊富な人材が必要です。
- クライアントにとって、ネガティブ テストは、リリースの不必要な遅延とコストの増加を引き起こすもう XNUMX つの原因です。
- チームが陰性検査により多くの時間とエネルギーを費やす可能性。 検査者が陰性検査に多くの時間とエネルギーを費やし、結果として陽性検査の集中力が低下する可能性があります。