E2Eテストという言葉を初めて聞いたので、
ざっくり理解します。
E2Eテスト(End to Endテスト)
システム全体を一通り動作させて正しく動作することを確認するテスト。
Webアプリケーションの場合、ユーザが行うブラウザ操作を起点とし、
クライアント処理・サーバ処理を通して画面再描画に至る過程を最初から最後までテストする。
User Interface Testとも呼ばれるらしい。
e.g.ログインページのテストシナリオ
よくログインページが例として挙げられるらしい。
- ログイン画面を表示
- メールアドレスを入力
- パスワードを入力
- ログインボタンを押下
- トップページに遷移すること
E2Eテストの主な特徴
-
コストが高い
実行時の時間的コストや、変更の影響を受けたテストの修正など。 -
実行時間が長い
ユニットテストと比べ、一通りの動作をテストするため。 -
不安定になりやすい
ユニットテストと異なり、ネットワーク・DB・ファイルなどへの外部通信が発生するため、それらの影響を受けて、成功していたはずのテストが失敗することがある。 デザインの変更など、変更の影響を受けやすい。
なぜE2Eテストをやるのか
軽く調べた結果、辛いテストだということが初心者なりにわかった。
しかし、「この機能が動かなければ、このサイトはなんのためにあるのか」というようなアプリケーションの核となるような機能では、時間的コストをかけてでもE2Eテストを行う必要性がある場合があることを知れた。