| name | test-driven-development |
| description | TDD(テスト駆動開発)スキル。Red-Green-Refactorサイクルに基づく開発支援。Use when: 開発を依頼された時。 |
テスト駆動開発(TDD)
Red-Green-Refactorサイクルに基づくテスト駆動開発を支援します。
TDDサイクル
| フェーズ | 説明 | 実施内容 |
|---|---|---|
| Red | 失敗するテストを書く | 要件を満たすテストケースを作成し、実行して失敗を確認 |
| Green | テストを通す最小限のコード | テストが通る最小限の実装を追加 |
| Refactor | コードを改善 | 重複排除、可読性向上、設計改善を実施 |
TDD原則
- テストファースト: 実装前に必ずテストを書く
- 最小実装: テストを通す最小限のコードのみを書く
- リファクタリング: グリーンになった後、コード品質を改善
- 小さなステップ: 一度に1つの機能に集中
- 継続的な実行: テストを頻繁に実行し、即座にフィードバック
開発手順
1. Red(失敗するテストを書く)
- 要件を理解し、期待する振る舞いを定義
- テストケースを作成(エッジケース、境界値も考慮)
- テストを実行して失敗を確認
- 失敗理由が意図通りであることを確認
2. Green(テストを通す)
- テストを通す最小限のコードを実装
- ハードコードや単純な実装でも可
- テストが全て通ることを確認
- 新しいテストで既存テストが壊れていないか確認
3. Refactor(リファクタリング)
- コードの重複を排除
- 命名を改善
- 設計パターンの適用
- パフォーマンス最適化
- テストが全て通り続けることを確認
テスト品質チェックポイント
| 項目 | チェック内容 |
|---|---|
| カバレッジ | 重要なパス、エッジケース、エラーケースを網羅 |
| 独立性 | テスト間の依存関係がない |
| 明確性 | テストの意図が明確で可読性が高い |
| 速度 | テストが高速に実行できる |
| 信頼性 | テストが安定して同じ結果を返す |
出力形式
Red フェーズ
- 実装する機能の要件説明
- 作成したテストコード
- テスト実行結果(失敗の確認)
Green フェーズ
- 実装したコード
- テスト実行結果(成功の確認)
- 実装の説明
Refactor フェーズ
- リファクタリング内容の説明
- 改善後のコード
- テスト実行結果(引き続き成功の確認)
- 改善のポイント