E2E
E2E (エンドツーエンド) テストは、アプリケーションが期待どおりに動作し、ユーザーのタスクやプロセスの種類を問わずデータフローが適切に機能することを確認する手法である。
具体的には、エンドユーザーの観点に立って現実世界で想定されるシナリオをシミュレートして、たとえば登録フォームでは、ユーザーが以下の操作のいずれか (または複数) を行うと想定されている。
メールアドレスとパスワードを空のままにする
有効なメールアドレスとパスワードを入力する
無効なメールアドレスとパスワードを入力する
登録ボタンを押す
E2E テストを実施することで、これらすべての操作がユーザーの期待どおりに機能するか検証できます。
E2E テストは網羅的なテストのように思えますが、継続的インテグレーションを堅実に実践するには、他にも多数のテスト手法を組み合わせる必要があり、検討すべき主なテストは以下のとおりです。
単体テスト: システムの構成コンポーネントの 1 つひとつが期待どおり機能することを確認する
機能テスト: システムが特定の入力に対して適切な出力を返すことを確認する
結合テスト: 個々のソフトウェアモジュールを 1 つのグループとして組み合わせてテストする
E2E テストが上述のテストと異なる点は、ユーザーのワークフロー全体に焦点を置くことにあります。
E2E テストが重要な理由
以下のような理由から、E2E テストは広く採用されています。
詳細なテストケースを数多く追加できるので、単体テストや機能テストなどのテスト手法よりもテストカバレッジの拡張に役立つ。
エンドユーザーの行動に基づくテストケースを実行して、アプリケーションが正しく動作することを確認できる
重要なユーザーの操作順序を自動化して、市場投入までの時間を短縮できる
ソフトウェアのテストにかかる時間を短縮して、ソフトウェアの開発と保守にかかる総コストを削減できる
バグを定期的かつ確実に検出できる。
E2E テストは優れたソフトウェアテスト手法です。 しかし、E2E テスト自体の特性から、以下の課題がある。
・時間がかかる
・現実世界のシナリオを再現するようにテストを設計する必要がある
・ユーザーの目的を深く理解する必要がある。