E2Eテストの導入
1. 目的
現在のCIで実行している自動テストは単体テスト中心のため、複数のコンポーネントが組み合わさって初めて発生する不具合を、本番デプロイ前に検知できません。
そこで、E2Eテスト(エンドツーエンドテスト)を導入し、稼働中のAPIに対して実際にリクエストを送り、CRUD操作や主要ユースケースが正しく動作することを自動検証する仕組みを構築してみましょう。本番に近い環境で組み合わせ起因の不具合まで検知できる体制を整えます。
2. やるべきこと
- 検査するシナリオ(CRUD・主要ユースケース)と、利用するテストツールを検討してみましょう
- E2Eテストを実装し、稼働中のAPIに対して通ることを確認してみましょう
- テストを定期的に実行する仕組みを整えてみましょう(CI/CDパイプラインに組み込むか、独立したワークフロー(スケジュール実行・手動トリガー)として運用するかは選んで構いません)
- テスト失敗時にチームへ通知が届く仕組みを設定してみましょう
3. 余裕があれば
- 並列実行などにより全体の実行時間を短縮してみましょう
- テストレポートを生成し、GitHub Pages等で確認できるようにしてみましょう
- Blue/Greenデプロイメントの構築課題と組み合わせ、E2Eテスト結果を本番切り替え判定として活用してみましょう
4. ツール・機能の候補
※ 以下のすべてを使う必要はなく、目的に合わせて適切なものを選んでみましょう。ここに無いツールを使っても構いません。
| ツール・機能名 | 概要 |
|---|---|
| pytest + requests | Pythonで稼働中のAPIに対するE2Eテストを書ける組み合わせ |
| Playwright | ブラウザ操作も含めた多言語対応のE2Eテストフレームワーク |
| Postman + Newman | Postmanで作成したAPIテストを Newman 経由でCI上から実行できる |
| GitHub Actions(スケジュール実行) | cron形式で定期的にE2Eを実行 |
| Allure Report | テスト結果のリッチなレポートを生成 |
5. 目安期間
1〜2週間