220 lines
4.1 KiB
Markdown
220 lines
4.1 KiB
Markdown
---
|
||
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. 執行所有測試
|
||
|
||
```bash
|
||
npm test
|
||
```
|
||
|
||
確認:
|
||
- ✅ 所有測試都通過
|
||
- ✅ 沒有被跳過的測試
|
||
- ✅ 測試覆蓋率合理
|
||
|
||
### 2. 比對測試案例清單
|
||
|
||
從 `testcases.md` 讀取規劃的測試案例,檢查:
|
||
- 規劃了幾個測試案例
|
||
- 實際實作了幾個
|
||
- 哪些測試案例尚未實作
|
||
|
||
### 3. 檢查需求覆蓋
|
||
|
||
從 `requirements.md` 檢查:
|
||
- 所有輸入參數都有測試
|
||
- 所有輸出格式都有驗證
|
||
- 錯誤處理都有測試
|
||
- 邊界條件都有涵蓋
|
||
|
||
## 驗證報告格式
|
||
|
||
```markdown
|
||
# {feature_name} TDD 開發完整性驗證報告
|
||
|
||
## 測試執行結果
|
||
- 測試總數:{數量}
|
||
- 通過:{數量}
|
||
- 失敗:{數量}
|
||
- 跳過:{數量}
|
||
- 成功率:{百分比}%
|
||
|
||
## 測試案例實作狀況
|
||
|
||
### 規劃的測試案例
|
||
- 正常系統:{數量} 個
|
||
- 異常系統:{數量} 個
|
||
- 邊界值:{數量} 個
|
||
- 總計:{數量} 個
|
||
|
||
### 已實作的測試案例
|
||
- 正常系統:{數量} 個
|
||
- 異常系統:{數量} 個
|
||
- 邊界值:{數量} 個
|
||
- 總計:{數量} 個
|
||
|
||
### 實作率
|
||
- 整體實作率:{百分比}%
|
||
|
||
## 需求覆蓋狀況
|
||
|
||
### 已覆蓋的需求
|
||
- {需求項目 1}:✅ 已測試
|
||
- {需求項目 2}:✅ 已測試
|
||
...
|
||
|
||
### 未覆蓋的需求
|
||
- {需求項目 X}:❌ 尚未測試
|
||
...
|
||
|
||
## 完整性判定
|
||
|
||
{✅ 完整 / ⚠️ 不完整}
|
||
|
||
### 判定理由
|
||
{說明為什麼判定為完整或不完整}
|
||
|
||
## 建議
|
||
|
||
{如果不完整,列出建議的改善項目}
|
||
```
|
||
|
||
## 更新 memo.md
|
||
|
||
在 memo.md 中加入驗證結果:
|
||
|
||
```markdown
|
||
## 完整性驗證
|
||
|
||
### 日期
|
||
{當前日期時間}
|
||
|
||
### 驗證結果
|
||
{完整 / 不完整}
|
||
|
||
### 測試統計
|
||
- 測試總數:{數量}
|
||
- 成功率:{百分比}%
|
||
- 實作率:{百分比}%
|
||
|
||
### 需求覆蓋
|
||
- 已覆蓋:{數量} 項
|
||
- 未覆蓋:{數量} 項
|
||
|
||
### 結論
|
||
{總結開發成果}
|
||
|
||
### 後續建議
|
||
{如有需要,列出後續改善項目}
|
||
```
|
||
|
||
## 判定基準
|
||
|
||
### ✅ 完整(開發完成)
|
||
|
||
滿足所有條件:
|
||
- 所有測試都通過(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 階段,補充缺失的測試案例。
|
||
```
|
||
|
||
## 下一步
|
||
|
||
驗證完成後:
|
||
- 如果完整:功能開發結束,可以開始下一個功能
|
||
- 如果不完整:根據驗證報告返回相應階段繼續開發
|