65
64

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

E2Eテスト(インテグレーションテスト)の利点と不利点

Last updated at Posted at 2018-08-04

開発におけるテストの重要さが問われている今、E2Eテストをどのように扱うべきかまとめてみようと思います。

E2Eテストとは?

E2E(End to End)Testと呼ばれるテストとは、単体テストとは違いシステム全体を実稼働時に近い状況で動かしつつテストする手法です。

例えばwebアプリでE2Eテストをする場合、実際にサーバー、ブラウザを立ち上げた状態でブラウザの操作をしながらテストをします。
Railsのようなwebフレームワークを使用している場合、テストの裏側で自動的にサーバーなどを起動してテストをしています。

利点

  • 実際の稼働に近い動きをテストできるため、単機能だけの途切れ途切れのテストではない
  • 表示されているボタンをクリックすると言った細かい挙動まで再現できる
  • ブラウザに表示されている文言などもチェックすることができる

不利点

  • 実際にサーバーやブラウザを起動するため、単機能のテストとは比べ物にならない時間がかかる
  • 細かいUIのテストを実装すると、ちょっとした文言の変更で異常なほど落ちる
  • テストに時間がかかるため、テスト駆動開発などをするときにまともな開発ができない
  • テストが通るのを長い時間待った後に、テストが落ちた後のやる気の削がれ方が凄い

E2Eの使い所

面倒だ! 重い! 壊れた!
とは言ってもどんなサービスにも、往々にして絶対に落ちて欲しくないシステム箇所は存在すると思います。

例えば重要な登録作業やそのサービスの根幹をなす、これが落ちてはこのサービスに意味は無い! 危ない!といったような部分にはE2Eの導入を検討しましょう。

そして導入の仕方にも様々なパターンがあります。
ボタンをクリックして正常に登録ができることを確かめるだけであったり。
正常にある値が表示されていることを確かめるであったり。

多くの検知パターンのテストがありますが、重要な部分はちゃんと検査でき、なおかつ無駄に検査しすぎて変更に弱いテストにしないことを気をつけましょう。

まとめ

結局テストは使い所です。
皆さんが良いテストライフをおくれることを願っております......。

Webアプリケーションのテストについて大まかに全体をまとめた記事を書きましたのでそちらもご覧ください。

他に参考になりそうな記事

65
64
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
64

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?