UNPKG

@dyoshikawa/tsumiki

Version:

A CLI tool for install tsumiki commands

356 lines (257 loc) 12.1 kB
# TDD テストケース完全性検証 TDD開発でテストケースの実装が完全に完了しているかを検証します。 ## 検証の目的 リファクタリング後に、予定していたテストケースがすべて実装されているかを確認し、実装漏れを防ぎます。 ## 検証手順 ### 1. 既存テストのグリーン状態確認 - **必須**: 全ての既存テストが成功していることを確認 - `npm test` または `jest` を実行してテスト結果を確認 - テスト失敗がある場合は先に修正が必要 - すべてのテストがグリーンであることを確認してから次のステップに進む ### 2. TDDメモファイルと要件定義文書の確認 - `doc/implementation/{test_case_name}-memo.md` を確認(メモファイルが存在する場合) - `doc/implementation/{feature_name}-requirements.md` を確認 - `doc/implementation/{feature_name}-testcases.md` を確認 - `doc/todo.md` を確認して対象タスクの現在のステータスを把握 - 予定していたテストケース数と内容を把握 ### 2. 実装済みテストケースの確認 - 現在のテストファイルを確認 - 実装済みテストケース数をカウント - 各テストケースの内容を予定と照合 ### 3. 実装状況の分析とTODO.md更新判定 以下の形式で分析結果を提供してください: ``` ## テストケース実装状況 ### 📋 TODO.md対象タスク確認 - **対象タスク**: [現在のTDD開発対象タスク名] - **現在のステータス**: [未完了/部分完了/完了済み] - **完了マーク要否**: [要/不要] ### 📋 予定テストケース(要件定義より) - **総数**: [予定していた総テストケース数] - **分類**: - 正常系: [数]個 - 異常系: [数]個 - エッジケース: [数]個 - その他: [数]個 ### ✅ 実装済みテストケース - **総数**: [実装済み総テストケース数] - **成功率**: [通過テスト数]/[実装テスト数] ([成功率]%) ### ❌ 未実装テストケース([数]個) 1. **テストケース名**: [予定していたが未実装のテスト] - **種類**: [正常系/異常系/エッジケース] - **内容**: [テストの詳細内容] - **重要度**: [高/中/低] - **要件項目**: [対応する要件定義書の項目] 2. **テストケース名**: [2つ目の未実装テスト] ... ### 📋 要件定義書網羅性チェック - **要件項目総数**: [要件定義書の総項目数] - **実装済み項目**: [実装・テスト済みの項目数] - **要件網羅率**: [実装済み]/[総数] = [網羅率]% #### 未網羅の要件項目([数]個) 1. **要件項目**: [未実装の要件項目名] - **分類**: [入力パラメータ/出力仕様/制約条件/使用例/エラーケース等] - **内容**: [要件の詳細内容] - **実装不足の理由**: [なぜ未実装なのか] - **対応の必要性**: [必須/推奨/任意] 2. **要件項目**: [2つ目の未網羅項目] ... ### 📊 実装率 - **全体実装率**: [実装数]/[予定数] = [実装率]% - **正常系実装率**: [実装数]/[予定数] = [実装率]% - **異常系実装率**: [実装数]/[予定数] = [実装率]% - **エッジケース実装率**: [実装数]/[予定数] = [実装率]% ``` ### 4. 判定基準 #### ✅ 完全実装済み(自動で次ステップ) ``` - 既存テスト状態: すべてグリーン - 要件網羅率: 100%(全要件項目実装・テスト済み) - テスト成功率: 100% - 未実装重要要件: 0個 - 品質基準: 要件定義に対する完全な充実度を達成 ``` #### ⚠️ 実装不足あり(追加実装必要) ``` - 既存テスト状態: 失敗テストあり または - 要件網羅率: 100%未満(要件定義の項目に対する実装不足) - 重要な要件項目が未実装・未テスト - 要件充実度に品質リスクあり ``` ### 5. 検証結果のメモファイル記録とTODO.md更新 #### メモファイルへの追記 検証完了後、以下の情報を `doc/implementation/{test_case_name}-memo.md` に追記: ```markdown # [機能名] TDD開発完了記録 ## 確認すべきドキュメント - `docs/implements/{{task_id}}/{feature_name}-requirements.md` - `docs/implements/{{task_id}}/{feature_name}-testcases.md` ## 🎯 最終結果 ([日時]) - **実装率**: [数]% ([実装数]/[予定数]テストケース) - **品質判定**: [合格/不合格] - **TODO更新**: [✅完了マーク追加/要改善] ## 💡 重要な技術学習 ### 実装パターン [今後再利用できる重要な実装手法] ### テスト設計 [効果的だったテストアプローチ] ### 品質保証 [品質確保で重要だった観点] ## ⚠️ 注意点(該当時のみ) [実装時の重要な注意事項や未完了項目] --- *既存のメモ内容から重要な情報を統合し、重複・詳細な経過記録は削除* ``` **統合更新ルール:** 1. **重要情報保持**: 既存メモの技術的学習ポイント・再利用可能パターンを統合 2. **重複削除**: 類似の記録・詳細な経過は最新情報に集約 3. **簡潔化**: 日付・数値などの詳細は最終結果のみ保持 4. **再利用重視**: 今後の開発で参考になる情報を優先して残す 5. **関連情報重視**: 仕様情報などの情報は優先して残す #### TODO.md完了マーク自動更新 検証が完了した場合、以下の手順でTODO.mdを自動更新: 1. **完了タスクの特定**: 現在のTDD開発対象タスクを特定 2. **完了マーク追加**: 該当タスクに `✅ **完了**` マークを追加 3. **完了理由記載**: `(TDD開発完了 - [テスト数]テストケース全通過)` を追記 4. **サブタスク更新**: 関連するサブタスクにも `[x]` チェックマークを追加 例: ```markdown ### 1. JSONファイルパス引数処理機能 ✅ **完了** (TDD開発完了 - 15テストケース全通過) - [x] コマンドライン引数でJSONファイルパスを受け取る機能を追加 - [x] 複数のJSONファイルパスに対応(sample/ディレクトリ全体の読み込み) - [x] 引数バリデーション機能 ``` ### 6. 対応アクション #### 完全実装済みの場合 以下のメッセージと共に次のお勧めコマンドを表示: ``` ✅ テストケース完全性検証: 合格 - 予定テストケース: [数]個すべて実装済み - テスト成功率: 100% - 品質基準: 達成 次のお勧めステップ: `/tdd-cycle` で次のTDDサイクルを開始します。 ``` **メモファイル記録**: 検証結果をメモファイルに自動追記する。 **TODO.md更新**: 完了したタスクに✅完了マークを自動追加する。 #### 実装不足がある場合 以下のメッセージを提供し、追加実装を促す: ``` ⚠️ テストケース実装不足を検出 未実装テストケース([数]個)があります。 完全な品質保証のため、以下の追加実装をお勧めします: [未実装テストケースのリスト] 追加実装を行いますか?それとも現状で次のステップに進みますか? ``` **メモファイル記録**: 実装不足の検証結果もメモファイルに追記する。 **TODO.md更新**: 実装不足の場合でも、部分完了したタスクがあれば適切にマークする。 ## 検証対象ファイル ### 確認すべきドキュメント - `doc/todo.md` - プロジェクト全体のタスク完了状況(完了マーク更新対象) - `doc/implementation/{feature_name}-requirements.md` - `doc/implementation/{feature_name}-testcases.md` ### 確認すべきテストファイル - `src/__tests__/*.test.ts` - `src/__tests__/*.test.js` ### 確認すべき実装ファイル - `src/*.ts` - `src/*.js` ### Gitで変更されたファイル - `git status` で変更されたファイル - `git diff --name-only` で変更されたファイル ## 品質基準 ### 最低品質基準 - **実装率**: 80%以上 - **成功率**: 100% - **重要テスト**: すべて実装 - **要件網羅性**: 要件定義書の主要機能をすべて網羅 - **コンパイルエラー**: なし ### 理想品質基準 - **実装率**: 100% - **成功率**: 100% - **網羅性**: 全ケース対応 - **要件完全網羅**: 要件定義書の全項目を網羅 ### 要件定義書の網羅性チェック 要件定義書(requirements.md)に記載された以下の項目が実装・テストされているかを確認: #### 必須チェック項目 - **入力パラメータ**: 全ての必須・オプション引数の処理 - **出力仕様**: 期待される出力形式・構造の実装 - **制約条件**: パフォーマンス・セキュリティ・互換性要件 - **基本使用例**: 想定される基本的な使用パターン - **エッジケース**: 境界値・例外条件の処理 - **エラーケース**: 異常系の適切な処理 - **主要アルゴリズム**: 機能の核となる処理ロジック #### 網羅性判定基準 ``` ✅ 完全網羅 (100%): - 要件定義書の全項目が実装・テストされている - 入力パラメータの全パターンをテスト - 出力仕様の全形式を検証 - エラーケース・エッジケースを全て網羅 ⚠️ 部分網羅 (80-99%): - 主要機能は実装されているが一部項目が未実装 - 基本的な使用例は網羅されている - 重要でないエラーケースの一部が未実装 ❌ 不十分 (<80%): - 要件定義書の重要な項目が未実装 - 基本的な使用例に漏れがある - エラーハンドリングが不十分 ``` ## 自動遷移判定 ### 品質判定基準 ``` ✅ 高品質(要件充実度完全達成): - 既存テスト状態: すべてグリーン - 要件網羅率: 100%(要件定義書の全項目に対する完全な実装・テスト) - テスト成功率: 100% - 未実装重要要件: 0個 - 要件充実度: 要件定義に対する完全な充実度を達成 ⚠️ 要改善(要件充実度不足): - 既存テスト状態: 失敗テストあり または - 要件網羅率: 100%未満(要件定義書の項目に対する実装・テスト不足) - 重要な要件項目が未実装・未テスト - 要件充実度: 要件定義に対する充実度が不十分 - 追加実装による要件充実度向上が必要 ``` ## 使用例 ```bash # refactorフェーズ後に自動実行 /tdd-refactor # ↓ 自動実行 /tdd-verify-complete # ↓ 実装完全なら自動実行 /tdd-cycle ``` ## 出力形式 実装状況に応じて以下のいずれかの形式で出力: ### 完全実装の場合 ``` ✅ **テストケース完全性検証: 合格** 📊 今回のタスク要件充実度: - 対象要件項目: [数]個 - 実装・テスト済み: [数]個 / 未実装: [数]個 - 要件網羅率: 100% - 要件充実度: 完全達成 📊 全体のテスト状況: - 全テストケース総数: [数]個 - 成功: [数]個 / 失敗: [数]個 - 全体テスト成功率: [数]% 🚀 要件定義に対する完全な充実度を達成しました。 自動で次のTDDサイクルに進みます。 ``` ### 実装不足の場合 ``` ⚠️ **テストケース実装不足を検出** 📊 今回のタスク要件充実度: - 対象要件項目: [数]個 - 実装・テスト済み: [数]個 / 未実装: [数]個 - 要件網羅率: [数]% - 要件充実度: [充実度レベル] 📊 全体のテスト状況: - 全テストケース総数: [数]個 - 成功: [数]個 / 失敗: [数]個 - 全体テスト成功率: [数]% ❌ 未実装テストケース: [未実装テストケースの詳細リスト] 🤔 要件充実度向上のため追加実装を行いますか? ``` この検証により、TDD開発の品質と完全性を確保します。