Skip to content

外部結合テスト設計 − 個別設計(ETD-D)作成ルール

本ドキュメントは、品質保証・テスト実装のために 外部結合テスト設計 − 個別設計(External Integration Test Design – Detailed: ETD-D) を統一形式で記述する標準ルールです。

ETD-D は、

  • 外部結合テスト仕様 − 個別仕様(ETS-D)で定義された
  • 特定の外部システム/特定の外部連携
  • に対して
  • テストケース構造を、実装に落とせる粒度で設計する

ことを目的とします。


0. 位置づけ(必読)

ETD-D は **「外部結合テストの実装直前」**の設計成果物です。

plaintext
TSP(テスト戦略・方針)
 └ ETS(外部結合テスト仕様・全体)
    └ ETS-D(外部結合テスト仕様・個別)
       └ ETD(外部結合テスト設計・全体)
          └ ETD-D(外部結合テスト設計・個別) ← 本書
             └ テスト実装・実行(Postman / Newman / JUnit / CI 等)
観点ETDETD-D
対象外部結合の共通設計1 外部システム / 1 連携群
粒度方針・枠組みケース構造・観測点の設計
ケース書かない書く(値は最小)
実装参照先のみ実装へ直結(ファイル/ジョブ/手順)

1. 全体方針

  • ETD-D は 1ファイル = 1 外部連携対象(外部システム/連携群) を原則とします。

  • 「外部結合の本質」を落とします:

    • 契約I/Fの遵守
    • 障害時(タイムアウト/5xx/4xx/未達)の挙動
    • 冪等性
    • 運用(追跡・再送・手動復旧)
  • テストコード全文を貼る必要はありませんが、

    • **そのまま実装に落とせる形(ケースID、入力条件、期待結果、観測点)**で書きます。

2. 対象単位と命名ルール

対象単位(例)

  • 決済サービス連携(支払・取消・照会)
  • 仕入先システム連携(発注送信・受付照会)
  • 外部IdP連携(ログイン・トークン更新・失効)

ファイル名(推奨)

sh
020-外部結合テスト設計-<用語集term>.md

例:

  • 020-外部結合テスト設計-決済.md
  • 020-外部結合テスト設計-仕入先.md

<用語集term>用語集termから採用し、できるだけ固定します。


3. ファイル命名・ID規則

Frontmatter

項目ルール
idetd-<external>(例: etd-payment, etd-supplier
typetest
title外部結合テスト設計: <外部システム名>
statusdraft / ready / deprecated

4. 推奨 Frontmatter 項目

項目説明必須
idETD-D ID
typetest 固定
title設計名
status状態
part_ofetd-index(全体設計)必須
based_onets-...(個別仕様), eapis/ems/efes, adr/nfr/sac必須
supersedes置換関係任意

5. 本文構成(標準テンプレ)

ETD-D は以下の見出しを 必ずこの順序で記述します。

  1. 概要
  2. 対象連携の整理
  3. テスト環境・外部接続方式
  4. テスト観点とケース構成
  5. ケース一覧(設計)
  6. テストデータ設計
  7. 実行・自動化・手動補完
  8. 結果確認・エビデンス
  9. 対象外
  10. メモ / 将来課題

6. 記述ガイド詳細

6.1 概要

  • 外部システム名、連携目的、対象ETS-Dを明記します。

例:

本設計は、外部結合テスト仕様(ets-payment)に基づき、決済サービス連携のケース構成と実行方法を定義する。


6.2 対象連携の整理(必須)

項目内容
外部システム決済サービス
連携種別外部API / Webhook / ファイル
連携パターン支払要求 / 結果照会 / 取消
契約I/Feapis-payment
追跡キー相関ID / 冪等キー(概念)

6.3 テスト環境・外部接続方式(必須)

外部結合は環境が命です。

項目方針
接続先sandbox(推奨)/ staging / production
接続方式実接続 / スタブ / モック
切替方法設定で切替可能(方式のみ)
本番限定項目代替策(運用監視、リハーサル)

6.4 テスト観点とケース構成(必須)

ETS-Dの観点を ケース群へ分解します。

観点ID観点ケース分解方針
EE-PAY-01契約遵守正常/必須欠落/型不整合(方向性)
EE-PAY-03タイムアウト応答なし→再送/保留
EE-PAY-04冪等性同一要求再送
EE-PAY-05追跡相関IDで追跡できる

6.5 ケース一覧(設計)(最重要)

ここで ケースID/前提/入力条件/期待結果/観測点 を設計します。 値の詳細やJSON全文は書きません。

推奨(表)

ケースID観点ID前提入力条件期待結果観測点
ETD-PAY-01EE-PAY-01正常データ支払要求受付成功応答 + 状態
ETD-PAY-02EE-PAY-03外部遅延支払要求再送 or 保留実行履歴
ETD-PAY-03EE-PAY-04冪等キー同一再送二重処理なし状態整合
ETD-PAY-04EE-PAY-05相関IDあり支払要求追跡可能ログ

ポイント:

  • 観測点(何で判定するか)を必ず書く
  • 外部はブラックボックスなので「外部内部状態」ではなく、観測可能な証跡に落とす

6.6 テストデータ設計

データ種別設計方針
正常代表データ
例外必須欠落・境界(方向性)
再送同一冪等キーを再利用
相関ケースIDを相関IDに紐付け

6.7 実行・自動化・手動補完

外部結合は「自動化できない領域」も前提にします。

項目方針
自動実行CI / nightly
手動補完本番限定・管理画面確認
失敗時再実行ルール / 手動復旧手順へのリンク

6.8 結果確認・エビデンス(必須)

種類エビデンス例
契約遵守リクエスト/レスポンス記録
障害時リトライ履歴 / 保留状態
冪等性二重登録なしの状態確認
追跡相関IDログ

6.9 対象外

  • 外部サービス内部処理
  • SLA検証

6.10 メモ / 将来課題

  • 外部仕様変更検知
  • 本番検証の縮小策

7. 禁止事項

禁止理由
秘密情報(キー・トークン値)セキュリティ
JSON/SQL全文実装依存
実装クラス/関数名抽象度低下
ケース値の全列挙保守不能
外部内部状態への依存観測不能

8. サンプル(最小)

yaml
---
id: etd-payment
type: test
title: 外部結合テスト設計: 決済
status: draft
part_of: [etd-index]
based_on:
  - ets-payment
  - eapis-payment
  - adr-payment-idempotency
---

9. 生成AI向け指示テンプレート

  • 以下のルールに従って 外部結合テスト設計 − 個別設計(ETD-D) を 1 ファイル作成してください。
  • 対象は ETS-D で定義された 1外部システムの連携です。
  • ケースID、前提、入力条件、期待結果、観測点を表で設計してください。
  • 禁止: 秘密情報、SQL/JSON全文、実装クラス名、クリック手順の逐語列挙、ケースの値網羅。