【いーつーいーてすと】
E2Eテスト とは?
💡 「ユーザーになりきって」システムを丸ごとチェック
📌 このページのポイント
- End to Endの略で、入力から出力までシステム全体を通してテストする
- 実際のブラウザやアプリを自動操作して、ユーザーと同じ動きを再現する
- 単体テストでは見つけられない「つなぎ目」のバグを発見できる
- 実行時間が長く環境依存で不安定になりやすいのがデメリット
E2Eテストって普通のテストと何が違うの?
テストにはレベルがあってね。「単体テスト」は関数ひとつひとつを確認、「統合テスト」は複数の部品のつなぎを確認、「E2Eテスト」はユーザーが実際に操作するのと同じ流れでシステム全体を確認するんだ。ログイン→商品検索→カートに入れる→購入、みたいな一連の流れを自動で再現するイメージだよ。
どんなツールを使うの?
ブラウザの自動操作にはPlaywrightやCypressが人気だよ。コードで「このボタンをクリック」「この入力欄にテキストを打つ」「このテキストが表示されていることを確認」みたいに書くんだ。モバイルアプリだとAppiumなどが使われるよ。
E2Eテストのデメリットってあるの?
実行が遅いのと不安定になりやすいのが最大の課題だね。ネットワークの遅延や画面の描画タイミングで結果がコロコロ変わる「フレーキーテスト」が発生しやすい。だからE2Eテストは重要な業務フローに絞って、細かいロジックは単体テストでカバーするのが現場のセオリーだよ。
E2Eテストを書くタイミングってどこがベスト?
テストピラミッドって聞いたことあるけど何のこと?
テストの理想的な比率を三角形で表したものだよ。底辺に大量の単体テスト、中間に統合テスト、頂点に少数のE2Eテスト。上に行くほど実行が遅くて不安定だから数を絞り、下に行くほど速くて安定だから多く書く。Googleではこの比率を70:20:10で推奨していて、実際の現場でもこの考え方が広く採用されているよ。
まとめ:ざっくりこれだけ覚えればOK!
「E2Eテスト」って出てきたら「ユーザーの操作をシミュレートしてシステム全体の動作を確認するテストだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「End-to-End Test」 = 端から端までのテスト
💬 システムの入口(入力)から出口(出力)まで全部通して確認するという意味だよ