AgentSkillsCN

e2e-testing

负责端到端测试的设计与实施,精准验证关键路径,全面保障用户旅程体验。

SKILL.md
--- frontmatter
name: e2e-testing
description: E2Eテスト設計・実装。クリティカルパス検証とユーザージャーニー保証。

E2E Testing

トリガー

  • 新規機能のE2Eテスト作成
  • ユーザージャーニーの検証
  • リリース前の最終確認

基本原則

E2Eは最重要。最小限で最大カバレッジ。

項目基準
件数2-5件/エンドポイント
対象クリティカルパスのみ
実行時間1件30秒以内目標

必須テストシナリオ

Money関連(最優先)

  • 決済フロー完走
  • 金額計算正確性
  • 決済失敗リカバリ
  • 返金処理

Security関連(最優先)

  • 認証フロー
  • 認可チェック
  • セッション管理
  • 不正アクセス拒否

コアユーザージャーニー

  • 登録→ログイン→主要機能→ログアウト
  • CRUD操作の完走
  • エラー発生→リカバリ

テスト設計チェックリスト

作成前

  • Usefulness Score ≥15 を満たすか?
  • 既存テストと重複しないか?
  • クリティカルパスか?
  • 実装詳細に依存していないか?

作成中

  • セレクタは安定か? (data-testid推奨)
  • 待機処理は適切か? (明示的wait)
  • テストデータは独立しているか?
  • クリーンアップ処理があるか?

作成後

  • 3回連続成功するか?
  • 他テストと独立実行できるか?
  • 失敗時のエラーメッセージは明確か?

構造パターン

typescript
describe('E2E: [ユーザージャーニー名]', () => {
  beforeAll(async () => {
    // テストデータ準備
  });

  afterAll(async () => {
    // クリーンアップ
  });

  it('should complete [critical path]', async () => {
    // Arrange: 初期状態セットアップ

    // Act: ユーザー操作シミュレート

    // Assert: 最終状態検証
  });
});

Flaky Test対策

原因対策
タイミング依存明示的wait使用
データ競合テストごとにデータ分離
外部依存モック/スタブ化
環境差異Docker化

Flaky発生時: 即座に修正 or 削除。放置禁止。


禁止事項

  • ❌ sleep/固定wait使用
  • ❌ DOM構造依存セレクタ
  • ❌ テスト間のデータ共有
  • ❌ 実装詳細の検証
  • ❌ 5件超/エンドポイント
  • ❌ Usefulness Score < 15 のテスト

ツール選定

用途推奨
Web UIPlaywright
APIcurl + jq / supertest
MobileDetox / Appium

品質ゲート

指標閾値
成功率100% (99%でもNG)
実行時間5分以内/スイート
Flaky率0%