Files
2025-11-29 18:03:45 +08:00

4.1 KiB
Raw Permalink Blame History

description
description
驗證TDD開發的完整性。確認所有測試案例都已實作且通過。

TDD 開發完整性驗證

驗證TDD開發是否完整確保所有規劃的測試案例都已實作並通過。

【功能名】{{feature_name}}

驗證目的

確認:

  1. 所有規劃的測試案例都已實作
  2. 所有測試都通過
  3. 功能開發完整

驗證檔案

需要檢查的文件:

docs/tdd/{feature_name}/requirements.md
docs/tdd/{feature_name}/testcases.md
docs/tdd/{feature_name}/memo.md

需要檢查的程式碼:

  • 測試檔案(如 __tests__/*.test.js
  • 實作檔案(如 src/*.js

驗證步驟

1. 執行所有測試

npm test

確認:

  • 所有測試都通過
  • 沒有被跳過的測試
  • 測試覆蓋率合理

2. 比對測試案例清單

testcases.md 讀取規劃的測試案例,檢查:

  • 規劃了幾個測試案例
  • 實際實作了幾個
  • 哪些測試案例尚未實作

3. 檢查需求覆蓋

requirements.md 檢查:

  • 所有輸入參數都有測試
  • 所有輸出格式都有驗證
  • 錯誤處理都有測試
  • 邊界條件都有涵蓋

驗證報告格式

# {feature_name} TDD 開發完整性驗證報告

## 測試執行結果
- 測試總數:{數量}
- 通過:{數量}
- 失敗:{數量}
- 跳過:{數量}
- 成功率:{百分比}%

## 測試案例實作狀況

### 規劃的測試案例
- 正常系統:{數量} 個
- 異常系統:{數量} 個
- 邊界值:{數量} 個
- 總計:{數量} 個

### 已實作的測試案例
- 正常系統:{數量} 個
- 異常系統:{數量} 個
- 邊界值:{數量} 個
- 總計:{數量} 個

### 實作率
- 整體實作率:{百分比}%

## 需求覆蓋狀況

### 已覆蓋的需求
- {需求項目 1}:✅ 已測試
- {需求項目 2}:✅ 已測試
...

### 未覆蓋的需求
- {需求項目 X}:❌ 尚未測試
...

## 完整性判定

{✅ 完整 / ⚠️ 不完整}

### 判定理由
{說明為什麼判定為完整或不完整}

## 建議

{如果不完整,列出建議的改善項目}

更新 memo.md

在 memo.md 中加入驗證結果:

## 完整性驗證

### 日期
{當前日期時間}

### 驗證結果
{完整 / 不完整}

### 測試統計
- 測試總數:{數量}
- 成功率:{百分比}%
- 實作率:{百分比}%

### 需求覆蓋
- 已覆蓋:{數量} 項
- 未覆蓋:{數量} 項

### 結論
{總結開發成果}

### 後續建議
{如有需要,列出後續改善項目}

判定基準

完整(開發完成)

滿足所有條件:

  • 所有測試都通過100%
  • 實作率達 100%(或合理說明未實作的原因)
  • 需求覆蓋率達 100%
  • 程式碼品質良好

⚠️ 不完整(需要繼續開發)

有以下任一情況:

  • 有測試失敗
  • 重要測試案例未實作
  • 重要需求未覆蓋
  • 程式碼品質有明顯問題

驗證完成後的行動

如果驗證通過(完整)

  1. 在 memo.md 中標記為完成
  2. 整理開發記錄
  3. 結束此功能的 TDD 開發

如果驗證未通過(不完整)

  1. 在 memo.md 中記錄缺失項目
  2. 返回相應階段補充:
    • 缺測試案例 → 返回 /tf-red
    • 測試未通過 → 返回 /tf-green
    • 程式碼品質 → 返回 /tf-refactor

輸出範例

完整的情況

✅ TDD 開發完整性驗證:通過

📊 測試統計
- 測試總數15 個
- 全部通過
- 成功率100%
- 實作率100%

📋 需求覆蓋
- 全部需求項目都已測試
- 覆蓋率100%

🎉 功能開發完成!

不完整的情況

⚠️ TDD 開發完整性驗證:未通過

📊 測試統計
- 測試總數12 個
- 通過10 個
- 失敗2 個
- 成功率83.3%
- 實作率80%

❌ 未實作的測試案例
1. 邊界值測試:空陣列的處理
2. 錯誤測試:無效輸入的錯誤訊息
3. 邊界值測試:最大值超過限制

📝 建議
請返回 Red 階段,補充缺失的測試案例。

下一步

驗證完成後:

  • 如果完整:功能開發結束,可以開始下一個功能
  • 如果不完整:根據驗證報告返回相應階段繼續開發