テスト手法

E2Eテスト いーつーいーてすと

E2EテストエンドツーエンドテストPlaywrightCypressブラウザ自動化ユーザーシナリオ
E2Eテストって何をテストするの?

簡単に言うとこんな感じ!

E2Eテストは「ユーザーが実際にやる操作を自動でシミュレートする」テストだよ!「ログインして→商品を選んで→カートに入れて→購入する」という一連の流れをブラウザで自動実行して、全部うまく動くか確認するんだ。最もリアルだけど遅くてコストが高い。


E2Eテストとは

E2Eテスト(End-to-End Test:エンドツーエンドテスト) とは、アプリケーションをユーザーの視点から最初(入力)から最後(結果)まで一気通貫でテストする手法です。

ブラウザを実際に操作するように自動実行し、ユーザーが実際に行う操作シナリオが期待通りに動くかを検証します。フロントエンド・バックエンド・DB・外部API全体が統合された状態でのテストです。


主なE2Eテストフレームワーク

フレームワーク特徴
PlaywrightMicrosoft開発。マルチブラウザ対応・速い
Cypressデベロッパー体験が良い・デバッグしやすい
Selenium歴史的に最も普及。多言語対応
PuppeteerHeadless Chrome専用。Google開発

E2Eテストの書き方例(Playwright)

import { test, expect } from '@playwright/test';

test('ユーザーがログインできる', async ({ page }) => {
  await page.goto('/login');
  await page.fill('[name=email]', 'user@example.com');
  await page.fill('[name=password]', 'password123');
  await page.click('[type=submit]');
  await expect(page).toHaveURL('/dashboard');
});

E2Eテストの注意点

  • 実行が遅い:ブラウザを起動するため1テストに数秒〜数十秒かかる
  • 不安定になりやすい:タイミング依存のテスト(フレーキーテスト)が出やすい
  • 少数のハッピーパスに絞る:全シナリオをE2Eで書くのは非現実的

歴史と背景

  • Selenium(2004年):ブラウザ自動化の元祖
  • Cypress(2014年)・Playwright(2020年):モダンなE2Eフレームワークの登場でDXが向上
  • 現在:AI利用のテスト自動生成・自己修復テストが注目されている

関連用語