コンテンツにスキップ

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 のフェーズゲートとは根本的に別物