ネガティブテストシナリオの自動化は、完全なテストシステムの不可欠な部分です。これは、誤った操作、不正確なデータ、サービスの障害、その他の異常事態に対するシステムの耐性が検証されるテストです。
質問の背景:
以前は、ポジティブシナリオ(ハッピーパス)の方に主に注目が集まりましたが、これらは自動化および保守が容易だったからです。しかし、品質要件が高まり、バグの多くは誤ったまたは明らかに不正な条件の境界で発生しています。これらの手動テストは迅速に陳腐化するため、自動化を通じて劣化を追跡することが可能です。
問題点:
解決策:
重要な特徴:
ネガティブテストでどのエラーが返されるかを確認するだけで十分ですか?
いいえ。エラーの内容だけでなく、エラー後にシステムの状態が変更されていないことも確認することが重要です(例えば、不正確なデータベースエントリが追加されないなど)。
すべてのネガティブシナリオを自動化する必要がありますか?
いいえ。それらは無限に存在する可能性があり、最も可能性が高く重要なシナリオを特定する必要があります(境界値、ヌル/空、無効な型、SQLインジェクションなど)。
すべてのネガティブケースに対して同じ処理を使用できますか?
いいえ。異なるネガティブシナリオは異なる検証、例外処理、およびロールバックを必要とし、テンプレート化されたアサートは不十分です。
システムが有効な登録シナリオのみをテストしています。空のメールアドレスでの登録は自動化されていません。その結果、空のメールでユーザー登録できるという問題は、運用中にのみ発見されます。
利点:
欠点:
すべてのネガティブシナリオ(メールアドレスの不在、不正な形式、SQLインジェクション)について、自動化されたテストが存在し、新しいアカウントが作成されないこととエラーメッセージの内容を明示的に確認します。
利点:
欠点: