TDD Methodologies Marketplace
這個 marketplace 提供兩種互補的測試驅動開發(TDD)方法,讓您根據不同的開發情境選擇最適合的方法。
包含的 Plugins
1. Kent Beck TDD
純粹的有機 TDD 方法
基於 Kent Beck 的經典著作《Test-Driven Development: By Example》,強調讓設計自然演進。
特點:
- 🌱 從最簡單的測試開始
- 🎯 讓設計自然演進
- ⚡ 快速的 Red-Green-Refactor 循環
- 💡 接受硬編碼和假實作
- 📝 簡單的旅程記錄
命令: /kb-start, /kb-red, /kb-green, /kb-refactor, /kb-review
適合:
- 探索性開發
- 需求不明確的情況
- 個人開發
- 學習 TDD
2. Test-First TDD
結構化的計劃驅動 TDD 方法
強調完整的規劃、詳細的文檔和完整性驗證。
註: 此方法參考並修改自 classmethod/tsumiki 專案
特點:
- 📋 從需求文件開始
- 📊 預先規劃所有測試案例
- 📝 完整的繁體中文註解
- ✅ 完整性驗證機制
- 👥 適合團隊協作
命令: /tf-requirements, /tf-testcases, /tf-red, /tf-green, /tf-refactor, /tf-verify
適合:
- 團隊協作
- 需求明確的情況
- 需要完整文檔
- 品質要求高
快速開始
1. 加入 Marketplace
從本地安裝:
/plugin marketplace add /Users/cash/Downloads/tdd/marketplace
從 GitHub 安裝(推薦):
/plugin marketplace add cashwu/claude-code-tdd-marketplace
2. 安裝 Plugin
選擇其中一個或兩個都安裝:
# 安裝 Kent Beck TDD
/plugin install kent-beck-tdd
# 安裝 Test-First TDD
/plugin install test-first-tdd
# 或兩個都安裝(推薦)
3. 開始使用
Kent Beck TDD:
/kb-start
Test-First TDD:
/tf-requirements
兩種方法的比較
| 特性 | Kent Beck TDD | Test-First TDD |
|---|
| 起點 | 第一個簡單測試 | 需求文件 |
| 規劃方式 | 逐步演進 | 預先規劃 |
| 文檔量 | 最小化(journey.md) | 完整(4個文檔) |
| 測試選擇 | 一次一個,自然浮現 | 預先規劃所有測試 |
| 實作策略 | 3種策略靈活選擇 | 最小實作優先 |
| 完整性檢查 | 主觀回顧 | 客觀驗證 |
| 學習曲線 | 需要 TDD 思維 | 結構化,易跟隨 |
| 適用情境 | 探索、個人 | 團隊、明確需求 |
如何選擇?
選擇 Kent Beck TDD 如果:
- ✅ 你在探索一個不熟悉的問題領域
- ✅ 需求還不是很明確
- ✅ 想讓設計自然演進
- ✅ 個人開發,不需要大量文檔
- ✅ 想學習純粹的 TDD 思維
選擇 Test-First TDD 如果:
- ✅ 在團隊中協作開發
- ✅ 需求規格很清楚
- ✅ 需要完整的文檔和可追溯性
- ✅ 需要驗證測試覆蓋率
- ✅ 有合規或稽核要求
兩個都安裝?
推薦! 不同的情境可以使用不同的方法:
- 新功能探索 → Kent Beck TDD
- 正式功能開發 → Test-First TDD
- 學習和練習 → Kent Beck TDD
- 團隊協作 → Test-First TDD
目錄結構
marketplace/
├── .claude-plugin/
│ └── marketplace.json # Marketplace manifest (必要)
├── README.md # 本文件
├── INSTALL.md # 安裝指南
├── LICENSE # MIT License
└── plugins/
├── kent-beck-tdd/ # Kent Beck TDD Plugin
│ ├── .claude-plugin/
│ │ └── plugin.json
│ ├── commands/
│ │ ├── kb-start.md
│ │ ├── kb-red.md
│ │ ├── kb-green.md
│ │ ├── kb-refactor.md
│ │ └── kb-review.md
│ └── README.md
└── test-first-tdd/ # Test-First TDD Plugin
├── .claude-plugin/
│ └── plugin.json
├── commands/
│ ├── tf-requirements.md
│ ├── tf-testcases.md
│ ├── tf-red.md
│ ├── tf-green.md
│ ├── tf-refactor.md
│ └── tf-verify.md
└── README.md
工作流程對比
Kent Beck TDD 流程
/kb-start # 啟動,想第一個測試
↓
/kb-red # 寫一個小測試(Red)
↓
/kb-green # 用最簡單方式讓它通過(Green)
↓
/kb-refactor # 消除重複(Refactor)
↓
/kb-review # 回顧,決定下一步
↓
循環或結束
Test-First TDD 流程
/tf-requirements # 整理需求規格
↓
/tf-testcases # 規劃所有測試案例
↓
/tf-red # 建立測試(Red)
↓
/tf-green # 實作功能(Green)
↓
/tf-refactor # 重構改善(Refactor)
↓
/tf-verify # 驗證完整性
↓
完成或返回補充
生成的文檔
Kent Beck TDD
docs/tdd/{feature_name}/
└── journey.md # TDD 開發旅程記錄
Test-First TDD
docs/tdd/{feature_name}/
├── requirements.md # 需求規格
├── testcases.md # 測試案例清單
├── memo.md # 開發過程記錄
└── verification-report.md # 驗證報告
核心 TDD 原則(兩者共通)
兩種方法都遵循 TDD 的核心原則:
Red-Green-Refactor 循環
- Red(紅燈):寫一個失敗的測試
- Green(綠燈):用最簡單的方式讓測試通過
- Refactor(重構):在測試保護下改善程式碼
核心價值
- 🧪 測試先行
- 💚 快速反饋
- 🔄 持續重構
- 📈 漸進式開發
- 🛡️ 測試作為安全網
範例場景
場景 1:探索新的 API 設計
選擇:Kent Beck TDD
你不確定 API 應該長什麼樣子,想通過測試來探索最佳設計。
/kb-start
# 想第一個最簡單的使用案例
# 開始 Red-Green-Refactor 循環
# 讓設計自然演進
場景 2:團隊開發購物車功能
選擇:Test-First TDD
需求很清楚,團隊需要文檔,PM 需要追蹤進度。
/tf-requirements
# 整理完整的購物車需求
/tf-testcases
# 規劃所有測試:正常、異常、邊界
# 進行 Red-Green-Refactor
/tf-verify
# 驗證所有功能都已完成
實際專案範例
想看看這兩種 TDD 方法的實際應用嗎?以下是使用這些方法開發 Tennis Kata 的真實專案:
🎾 Tennis Kata - Kent Beck TDD
Repository: ai-tdd-tennis
使用 Kent Beck TDD 方法實作的 Tennis Kata,展示:
- 有機演進的開發過程
- 從最簡單的測試開始
- 讓設計自然浮現
- 開發旅程記錄(journey.md)
適合學習如何用純粹的 TDD 思維進行開發。
🎾 Tennis Kata - Test-First TDD
Repository: ai-tdd-test-first-tennis
使用 Test-First TDD 方法實作的 Tennis Kata,展示:
- 完整的需求文件(requirements.md)
- 預先規劃的測試案例(testcases.md)
- 詳細的開發記錄(memo.md)
- 繁體中文註解
適合學習如何用結構化的方式進行 TDD 開發。
📚 學習建議
如果您是 TDD 初學者:
- 先看 Test-First TDD 範例 - 結構清晰,容易跟隨
- 再看 Kent Beck TDD 範例 - 理解 TDD 的本質和思維方式
- 比較 兩種方法在同一個 Kata 上的不同呈現
兩個專案都實作相同的 Tennis Kata,可以直接比較兩種方法的差異!
常見問題