内部結合テスト設計 − 個別設計(ITD-D)作成ルール
本ドキュメントは、品質保証・テスト実装のために 内部結合テスト設計 − 個別設計(Internal Integration Test Design – Detailed: ITD-D) を統一形式で記述する標準ルールです。
ITD-D は、ITS-D で定義された 特定の内部連携に対して、テストケース構造を実装に落とせる粒度で設計します。
1. 全体方針
- ITD-D は テストコード直前の最後の設計成果物です。
plaintext
TSP(戦略)
└ ITS(内部結合テスト仕様・全体)
└ ITS-D(内部結合テスト仕様・個別)
└ ITD(内部結合テスト設計・全体)
└ ITD-D(内部結合テスト設計・個別) ← 本書
└ テスト実装(JUnit / CI)- ITD-D は 1ファイル = 1 内部結合対象を原則とします。
- ITD-D は「仕様」ではなく 設計です。
- 何を保証するか → ITS-D
- どう切り分けて試すか → ITD-D
- JUnit 等のコードは貼らず、そのままコードに変換できる構造で記述します。
2. 対象単位と命名ルール
対象単位(例)
- 注文API × 在庫ドメイン
- 決済サービス × 注文サービス
- バッチ × 業務ロジック
ファイル名(推奨)
sh
020-内部結合テスト設計-<用語集term>.md例:
020-内部結合テスト設計-在庫.md020-内部結合テスト設計-注文API.md
※ <用語集term> は Glossary に定義された安定語を使用します。
3. ファイル命名・ID規則
Frontmatter
| 項目 | ルール |
|---|---|
| id | itd-<対象>(例: itd-inventory, itd-order-api) |
| type | test |
| title | 内部結合テスト設計: <対象名> |
| status | draft / ready / deprecated |
4. 推奨 Frontmatter 項目
| 項目 | 説明 | 必須 |
|---|---|---|
| id | ITD-D ID | ○ |
| type | test | ○ |
| title | 設計名 | ○ |
| status | 状態 | ○ |
| part_of | itd-index | 必須 |
| based_on | ITS-D | 必須 |
| supersedes | 置換関係 | 任意 |
5. 本文構成(標準テンプレ)
ITD-D は以下の見出しを 必ずこの順序で記述します。
- 概要
- 対象連携の整理
- テスト観点とケース構成
- ケース一覧(設計)
- テストデータ設計
- 実行・自動化方法
- 判定基準
- 対象外
- メモ / 将来課題
6. 記述ガイド詳細
6.1 概要
- 対象とする 内部結合1件を明確にします。
- 対応する ITS-D を必ず明示します。
例:
本設計は、内部結合テスト仕様(ITS-inventory)に基づき、注文APIと在庫ドメイン間の結合テストケース構成を定義する。
6.2 対象連携の整理(必須)
推奨(表)
| 項目 | 内容 |
|---|---|
| 連携元 | 注文API |
| 連携先 | 在庫ドメイン |
| 連携方式 | 内部API |
| 実行タイミング | 注文確定時 |
| 対応仕様 | its-inventory |
※ 実装名・物理名は禁止。
6.3 テスト観点とケース構成(必須)
ITS-D で定義された 保証観点を どのようなケース群に分解するかを定義します。
推奨(表)
| 観点ID | 観点 | ケース分解方針 |
|---|---|---|
| II-INV-01 | 正常引当 | 正常系 × データ差分 |
| II-INV-02 | 在庫不足 | 不足量別 |
| II-INV-03 | 状態整合 | 状態遷移パターン |
| II-INV-04 | ログ | 成否別 |
6.4 ケース一覧(設計)(最重要)
ここでは ケースID・構造を定義します。 値の詳細は最小限に留めます。
推奨フォーマット
| ケースID | 観点ID | 前提 | 入力条件 | 期待結果 |
|---|---|---|---|---|
| ITD-INV-01 | II-INV-01 | 在庫あり | 正常注文 | 引当成功 |
| ITD-INV-02 | II-INV-02 | 在庫不足 | 注文 | エラー |
| ITD-INV-03 | II-INV-03 | 複数注文 | 連続実行 | 状態整合 |
ポイント:
- 「何を変えるか」だけを書く
- 数値・JSON・SQLは禁止
6.5 テストデータ設計
| データ種別 | 設計方針 |
|---|---|
| マスタ | 正常/不足/境界を用意 |
| トランザクション | ケースごとに初期化 |
| ID | テスト専用識別子 |
6.6 実行・自動化方法
| 項目 | 方針 |
|---|---|
| 実行手段 | 自動 |
| ツール | JUnit |
| 実行場所 | CI |
| 前後処理 | 初期化 / ロールバック |
6.7 判定基準
| 観点 | 合格条件 |
|---|---|
| 機能 | 全 Assertion 成功 |
| 状態 | 状態遷移が仕様通り |
| 例外 | 想定外エラーなし |
6.8 対象外
- 性能・負荷
- 外部システム
6.9 メモ / 将来課題
- ケース追加余地
- データ量拡張
7. 禁止事項
| 禁止 | 理由 |
|---|---|
| SQL全文 | 実装依存 |
| JSON全文 | 可読性低下 |
| クラス/関数名 | 設計劣化 |
| 全値網羅 | 保守不能 |
8. サンプル(最小)
yaml
---
id: itd-inventory
type: test
title: 内部結合テスト設計: 在庫
status: draft
part_of: [itd-index]
based_on:
- its-inventory
---9. 生成 AI 向け指示テンプレート
- 以下のルールに従って 内部結合テスト設計 − 個別設計(ITD-D) を作成してください。
- 対象は ITS-D で定義された 1つの内部連携です。
- ケース構造(ID・前提・入力・期待結果)を設計してください。
- 値の詳細、SQL、実装コードは記載しないでください。