Red → Green → Refactor サイクル(テスト駆動開発(TDD))
← テスト駆動開発(TDD) の全体マップ(第1階層)へ戻る
TDD の中核。テスト1件分の高速反復(分〜秒単位)。テストリストが空になるまで繰り返す
ワークフロー(第2階層)
各アクティビティをクリックすると、個別作業(第3階層)へ移動します。
graph LR a0["Red(失敗するテストを書く)"] a1["Green(テストを通す)"] a0 --> a1 a2["Refactor(重複除去・設計改善)"] a1 --> a2 click a0 "/process-compass/processes/tdd/cycle/red/" "Red(失敗するテストを書く)の詳細へ" click a1 "/process-compass/processes/tdd/cycle/green/" "Green(テストを通す)の詳細へ" click a2 "/process-compass/processes/tdd/cycle/refactor/" "Refactor(重複除去・設計改善)の詳細へ"
アクティビティ一覧
- Red(失敗するテストを書く) — この段階でインターフェース設計(振る舞いをどう呼び出すか)を行う(担当: 開発者(Developer))
- Green(テストを通す) — 最短でテストを通す。汚くてよい(仮実装・ベタ書き・三角測量などの戦略)(担当: 開発者(Developer))
- Refactor(重複除去・設計改善) — 最もスキップされがちなステップ。省くと「コード断片の寄せ集め」になり TDD の設計価値が失われる(担当: 開発者(Developer))
このフェーズの出口ゲート
Refactor 後の再検査
| Deliverables | リファクタ済みコード+全テスト |
|---|---|
| 判定基準 | リファクタ後も全緑を維持していること(振る舞い不変の保証) |
| 判定者 | テストランナー(機械) |
| 判定結果 | 全緑(サイクル完了) / 赤(リファクタを戻す) |
※ 判定者が人間でなく自動テスト、判定周期が秒〜分、判定結果がコードの前進/巻き戻し。WF のフェーズゲートとは根本的に別物