外部結合テスト仕様 − 個別仕様(ETS-D)作成ルール
本ドキュメントは、品質保証・テスト設計のために 外部結合テスト仕様 − 個別仕様(External Integration Test Specification – Detailed: ETS-D) を統一形式で記述する標準ルールです。
ETS-D は、
- 特定の外部システム/特定の外部連携
- に対して
- どの連携を、どの観点で、どこまで保証するか
を レビュー・合意可能な粒度で明文化することを目的とします。
0. 位置づけ(必読)
ETS-D は「外部結合テスト仕様(全体)」を具体化する 中核ドキュメントです。
plaintext
TSP(テスト戦略・方針)
└ ETS(外部結合テスト仕様・全体)
└ ETS-D(外部結合テスト仕様・個別) ← 本書
└ ETD(外部結合テスト設計)
└ テスト実装・実行| 観点 | ETS(全体) | ETS-D(個別) |
|---|---|---|
| 対象 | 外部結合の全体像 | 1 外部システム / 1 連携群 |
| 粒度 | 横断・共通 | 契約単位・連携単位 |
| 主眼 | 方針・境界 | 保証内容の明確化 |
| ケース | 書かない | 代表条件のみ |
1. 全体方針
ETS-D は 1ファイル = 1 外部連携対象 を原則とします。
「外部結合テストの単体テスト版」ではありません。
- 外部結合の本質は 契約・境界・障害時・運用 です。
ETS-D では以下を必ず明確にします。
- 対象外部システム
- 契約I/F
- 連携パターン
- 保証観点(特に例外・補償・冪等性)
2. 対象単位と命名ルール
対象単位(例)
- 決済サービス連携
- 仕入先システム連携
- 外部IdP連携
- 配送会社システム連携
ファイル名(推奨)
sh
010-外部結合テスト仕様-<用語集term>.md例:
010-外部結合テスト仕様-決済.md010-外部結合テスト仕様-仕入先.md
※ <用語集term> は Glossary に登録された正式名称を使用します。
3. ファイル命名・ID規則
Frontmatter
| 項目 | ルール |
|---|---|
| id | ets-<external>(例: ets-payment, ets-supplier) |
| type | test |
| title | 外部結合テスト仕様: <外部システム名> |
| status | draft / ready / deprecated |
4. 推奨 Frontmatter 項目
| 項目 | 説明 | 必須 |
|---|---|---|
| id | ETS-D ID | ○ |
| type | test 固定 | ○ |
| title | 仕様名 | ○ |
| status | 状態 | ○ |
| part_of | ETS(全体)(ets-index) | 必須 |
| based_on | ESIL, EAPIS / EMS / EFES, NFR, SAC, ADR | 必須 |
| supersedes | 置換関係 | 任意 |
5. 本文構成(標準テンプレ)
ETS-D は以下の見出しを 必ずこの順序で記述します。
- 概要
- 対象外部システムと契約境界
- 連携パターン
- 保証観点
- テスト条件(代表条件)
- 障害・例外時の期待挙動
- 合格基準とエビデンス
- 対象外
- メモ / 将来課題
6. 記述ガイド詳細
6.1 概要
- 対象となる 外部システム 1 つを明確にします。
- 業務的な位置づけを 1〜2 文で記述します。
例:
本仕様は、決済サービスとの外部連携について、契約I/F遵守および障害時の挙動を保証する。
6.2 対象外部システムと契約境界(必須)
推奨(表)
| 項目 | 内容 |
|---|---|
| 外部システム名 | 決済サービス |
| 連携種別 | 外部API |
| 契約I/F | eapis-payment |
| 接続環境 | sandbox / 検証 |
| 認証方式 | OAuth(方式のみ) |
| 管理境界 | API 受付以降は外部責任 |
※ 「どこまでが自システムか」を明確にします。
6.3 連携パターン(必須)
| パターンID | 呼称 | 方向 | 概要 |
|---|---|---|---|
| EIT-PAY-01 | 支払要求 | 自 → 外 | 決済要求送信 |
| EIT-PAY-02 | 結果取得 | 自 → 外 | 決済結果取得 |
| EIT-PAY-03 | 失敗通知 | 外 → 自 | Webhook |
6.4 保証観点(最重要)
ETS-D の中心です。 内部結合よりも「例外・運用」比重を高くします。
| 観点ID | 分類 | 観点 | 保証内容 | 根拠 |
|---|---|---|---|---|
| EE-PAY-01 | 契約 | 入力妥当 | 契約I/Fに準拠した送信 | EAPIS |
| EE-PAY-02 | 契約 | 応答解釈 | 応答を正しく業務状態へ反映 | BAC |
| EE-PAY-03 | 例外 | タイムアウト | タイムアウト時の遷移が正しい | ADR |
| EE-PAY-04 | 例外 | 再送 | 冪等性が保証される | ADR |
| EE-PAY-05 | 運用 | 追跡 | 相関IDで追跡可能 | NFR |
| EE-PAY-06 | セキュリティ | 認証 | 認証方式が守られる | NFR |
6.5 テスト条件(代表条件)
値・全列挙は禁止。 「どの方向を確認するか」のみ記述します。
| 観点ID | 条件ID | 条件 | 期待結果 |
|---|---|---|---|
| EE-PAY-01 | EC-01 | 正常支払 | 決済成功 |
| EE-PAY-02 | EC-02 | 失敗応答 | 業務エラー |
| EE-PAY-03 | EC-03 | 応答なし | 再送/保留 |
| EE-PAY-04 | EC-04 | 同一要求再送 | 二重決済なし |
6.6 障害・例外時の期待挙動(必須)
| 事象 | 検知 | 期待挙動 | 補償/復旧 | エビデンス |
|---|---|---|---|---|
| タイムアウト | 応答なし | 保留 | 再送 | 実行ログ |
| 4xx | 応答 | 入力不備扱い | 業務修正 | エラーログ |
| 5xx | 応答 | リトライ | 後続再送 | 再送履歴 |
| Webhook未着 | 時間超過 | 手動確認 | 運用対応 | 監査記録 |
6.7 合格基準とエビデンス
| 観点 | 合格条件 | エビデンス |
|---|---|---|
| 契約 | 主要パターン合格 | リクエスト/レスポンス |
| 例外 | 全例外確認済 | ログ/履歴 |
| 冪等 | 二重処理なし | 状態確認 |
| 未解決 | Critical 0 | 不具合票 |
6.8 対象外
- 外部サービスの内部処理
- SLA 違反検証(契約対応)
6.9 メモ / 将来課題
- 外部仕様変更の監視方法
- 本番限定検証の代替策
7. 禁止事項
| 禁止 | 理由 |
|---|---|
| 秘密情報(キー・トークン) | セキュリティ |
| SQL / JSON 全文 | 実装依存 |
| 実装クラス/関数名 | 設計破壊 |
| 個別ケース大量列挙 | 下位設計へ |
8. サンプル(最小)
yaml
---
id: ets-payment
type: test
title: 外部結合テスト仕様: 決済
status: draft
part_of: [ets-index]
based_on:
- esil-payment
- eapis-payment
- nfr-security
- adr-payment-retry
---9. 生成AI向け指示テンプレート
- 以下のルールに従って 外部結合テスト仕様 − 個別仕様(ETS-D) を 1 ファイル作成してください。
- 対象は 1つの外部システムです。
- 契約境界・保証観点・障害時挙動・合格基準を必ず含めてください。
- 値の総当たり、実装依存情報、秘密情報は禁止です。