TDD (テスト駆動開発)について
TDD(テスト駆動開発)とは
以下のTDDのサイクルを繰り返す開発のこと
- Todoリストから次の目標を考える
- その目標を示すテストを書く
- そのテストを実行して失敗させる(Red)
- 目的のコードを書く(必要最低限で良い)
- 2で書いたテストを成功させる(Green)
- テストが通るままでリファクタリングを行う(Refactor)
- 1~6を繰り返す
テストファーストでプログラミングを進めつつ、こまめにリファクタリングを行う開発スタイル。
TDDの目的
以下の三つによって、安心できる健康な開発と、変更に強い健康なコードを目指す。
素早いフィードバックの確保
超短期なフィードバックを得ることにより、プログラミングミスを即時に検出し、自分の作業がきちんと達成できていることを即時に確認する。
設計改善効果
TDDはテスタビリティやリファクタリング容易性を改善する。
ユニットテストの確保
副産物として出力されるユニットテストを利用できる。
TDDの三原則
- 失敗するユニットテストより先にプロダクションコードを書いてはならない
- テストケースのコンパイルが通り、適切に失敗するまでは次のテストケースを書いてはならない
- 全てのテストケースが成功するまでは次のプロダクションコードを書いてはならない