[章番号]: [連携機能名] 統合テスト仕様書
このテンプレートの使い方
このファイルは、複数のコンポーネントや外部システムとの連携を検証する、統合テストの仕様を定義するためのテンプレートです。 テスト環境の構築や、テストデータの管理方法を明確にすることが重要です。 詳しい使い方は「テスト仕様の書き方ガイド」を参照してください。
1. はじめに
1.1. 目的
1.2. テスト範囲
- テスト対象範囲:
- [例:
/usersAPIエンドポイントからデータベースへの永続化までの一連のフロー] - [例: ユーザー作成時のキャッシュ(Redis)更新処理]
- [例:
- テスト対象外:
- [例:
UserServiceの個別のビジネスロジック(単体テストでカバー)] - [例: データベースサーバー自体の性能テスト]
- [例:
2. テスト環境
| 項目 | 内容 |
|---|---|
| 実行環境 | [例: CI環境 (Docker)] |
| データベース | [例: PostgreSQL 16 (TestContainers)] |
| キャッシュ | [例: Redis 7 (TestContainers)] |
| 外部APIモック | [例: Mockoon, WireMock] |
| テストツール | [例: Supertest (for API), Jest] |
3. テストデータ管理
- 初期データ:
[例:
test/fixtures/base-data.sqlスクリプトをテスト実行前に実行する。] - テスト間の分離: [例: 各テストケースは、個別のデータベーストランザクション内で実行し、テスト終了時にロールバックする。]
4. テストケース
-
4.1. [連携シナリオ1] (例: ユーザー新規作成API)
TC-INT-USER-001:有効なデータでユーザーを作成する
-
テスト手順:
-
POST /usersに以下の有効なユーザー情報を送信する。{ "name": "Test User", "email": "test@example.com" } -
APIからのレスポンスを確認する。
- データベースの
usersテーブルを直接クエリする。 - Redisのキャッシュを直接確認する。
-
-
期待される結果:
- APIレスポンス:
- HTTPステータスが
201 Createdであること。 - レスポンスボディに、作成されたユーザーIDが含まれること。
- HTTPステータスが
- データベース:
usersテーブルに、手順1で送信した情報を持つ新しいレコードが1件追加されていること。
- キャッシュ:
- Redisに
user:[ID]のキーで、手順1で送信した情報と一致するユーザーデータがキャッシュされていること。
- Redisに
- APIレスポンス:
- 関連要件:
[API-USER-1-2]
TC-INT-USER-002:重複したメールアドレスでユーザーを作成する
- テスト手順:
- 事前に
existing@example.comというメールアドレスを持つユーザーをDBに作成しておく。 POST /usersに、emailがexisting@example.comのユーザー情報を送信する。
- 事前に
- 期待される結果:
- APIレスポンス:
- HTTPステータスが
409 Conflictであること。
- HTTPステータスが
- データベース:
usersテーブルに新しいレコードが追加されていないこと。
- APIレスポンス:
- 関連要件:
[FUNC-USER-1-3]