コンテンツにスキップ

[章番号]: [連携機能名] 統合テスト仕様書

このテンプレートの使い方

このファイルは、複数のコンポーネントや外部システムとの連携を検証する、統合テストの仕様を定義するためのテンプレートです。 テスト環境の構築や、テストデータの管理方法を明確にすることが重要です。 詳しい使い方は「テスト仕様の書き方ガイド」を参照してください。

1. はじめに

1.1. 目的

1.2. テスト範囲

  • テスト対象範囲:
    • [例: /users APIエンドポイントからデータベースへの永続化までの一連のフロー]
    • [例: ユーザー作成時のキャッシュ(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:有効なデータでユーザーを作成する

  • テスト手順:

    1. POST /users に以下の有効なユーザー情報を送信する。

      { "name": "Test User", "email": "test@example.com" }
      
    2. APIからのレスポンスを確認する。

    3. データベースのusersテーブルを直接クエリする。
    4. Redisのキャッシュを直接確認する。
  • 期待される結果:

    • APIレスポンス:
      • HTTPステータスが 201 Created であること。
      • レスポンスボディに、作成されたユーザーIDが含まれること。
    • データベース:
      • usersテーブルに、手順1で送信した情報を持つ新しいレコードが1件追加されていること。
    • キャッシュ:
      • Redisに user:[ID] のキーで、手順1で送信した情報と一致するユーザーデータがキャッシュされていること。
  • 関連要件: [API-USER-1-2]

TC-INT-USER-002:重複したメールアドレスでユーザーを作成する

  • テスト手順:
    1. 事前に existing@example.com というメールアドレスを持つユーザーをDBに作成しておく。
    2. POST /users に、emailexisting@example.comのユーザー情報を送信する。
  • 期待される結果:
    • APIレスポンス:
      • HTTPステータスが 409 Conflict であること。
    • データベース:
      • usersテーブルに新しいレコードが追加されていないこと。
  • 関連要件: [FUNC-USER-1-3]

5. 関連ドキュメント