最終更新: 2026/06/22 18:56
DRP テスト計画書
役割: DRP のテスト戦略の正典 — どの文書層の変更を、どの種別のテストで、いつ検証するか。個々のテストケース(
TC-)の定義は テスト設計書。 トレーサビリティ: SR/EDD ↔ TC の対応は各文書 frontmatter のverified-byが SSoT。マトリクスは CI が生成する(手書き・コミット禁止 / id_conventions.md §2.4)。
1. テスト層 × 変更影響分類(L1〜L4)
改修の影響分類(id_conventions.md §3)ごとに再実行するテスト層:
| 変更分類 | 再実行するテスト層 | 実体 |
|---|---|---|
| L1(ビジネス要件) | 受入 — Confirmation KPI | ADR-0117 等の §Confirmation 計測(escalate 終端率・差戻し率トレンド: GET /audit/runs/summary) |
| L2(システム要件) | システムテスト | TC- 手動/半自動ケース(test_cases.md 系)+ golden eval 全件 |
| L3(外部設計 = 契約) | 契約テスト | golden eval(FN=0 ブロッキング)+ OpenAPI diff(CI 化予定)+ chat API contract-check + プロンプト仕様 ↔ nodes 突合(CI 化予定) |
| L4(内部設計のみ) | 単体 | vitest(workerd プール)pass の確認のみ |
2. テスト種別カタログ
| 種別 | 実体 | 実行 | ゲート性 |
|---|---|---|---|
| 単体(vitest) | drp/test/*.test.ts(6 ファイル) | pnpm --filter drp run test・毎 PR(path filter) | CI 必須 |
| 契約 — golden eval | prompts-eval/datasets/{gate0-triage, cross-validation, body-generation}/golden.jsonl + tools/triage-eval / tools/crossval-eval | prompt_eval.yml(prompts/production 変更時)+ prompt_regression_cron.yml(定期) | triage FN=0 はブロッキング |
| 契約 — API 型 | src/contracts/chat_api_contract.ts + mock drift gate(type-check:e2e) | 毎 PR | CI 必須 |
| e2e — mocked-route UI | test/e2e/(Playwright、全 API モックで決定論的) | pnpm run test:e2e:ui・毎 PR(ui-e2e job) | CI 必須 |
| e2e — 実 LLM full-run | drp-real-e2e.yml | 契約/ハンドラ変更 PR で自動 + 隔週月曜 06:00 JST + workflow_dispatch | 定期保証 |
| システム — TC 手動系 | test_cases.md(TC-01〜07 / TC-S / TC-C) | プロンプト・ゲート判定変更時に該当系列を実行 | 変更時必須 |
| 基盤検証 | drp-graph-check.yml(mermaid グラフ整合) | 毎 PR | CI 必須 |
3. 方針
- FN=0 はブロッキング: 「記録に値する起案を誤って捨てない」golden eval(26 ケース)が落ちたらマージ不可。閾値の緩和・ケース削除は不可(CLAUDE.md「既存テストの skip / 削除禁止」)。
- 差戻し型ゲートはテスト必須・情報提供型は実起案モニタリング許容: 止めるゲート(0 / 4 / CV / 2)は自動テストで判定境界を固定する。助言のみのゲート(1 / 3 / Policy)は出力スキーマの存在検証 + 実起案モニタリングで足りる(品質 assertion の整備は backlog。テスト設計書 §4)。
- 転写コピーを正としない:
test-tc*.mjsのスクリプト内転写プロンプトは陳腐化している。分類検証の正は SSoT を直接ロードする golden eval。 - 新規ゲート・新規契約には同一 PR で verified-by を割当: テスト未整備のまま SR/EDD を増やさない(未整備の場合も planned TC を採番し状態を明示する)。
4. 内容整合指標の CI 化(main 申し送り)
ADR-0117 §Confirmation の Phase 2 完了判定 2 指標。文書側は突合可能な構造で整備済み:
| 指標 | 突合対象(文書側) | 突合対象(実装側) | CI 化 |
|---|---|---|---|
| ① OpenAPI ↔ 実 API レスポンス型 | openapi.yaml(唯一の機械可読定義) | src/contracts/chat_api_contract.ts / 実レスポンス型 | main 分担 |
| ② プロンプト仕様 ↔ nodes 使用プロンプト | prompt_io_contracts.md §2 表 + 各 output_schema.json | src/nodes/*.ts の loadPrompt/inline 経路 | main 分担 |
変更履歴
| 日時 | 変更 |
|---|---|
| 2026-06-05 | 初版 — CLAUDE.md「変更時テスト」表の DRP 部分を一般化し、L1〜L4 × テスト層の戦略を定義(ADR-0117 Phase 2) |