TDD (テスト駆動開発)について

TDD(テスト駆動開発)とは

以下のTDDのサイクルを繰り返す開発のこと

  1. Todoリストから次の目標を考える
  2. その目標を示すテストを書く
  3. そのテストを実行して失敗させる(Red)
  4. 目的のコードを書く(必要最低限で良い)
  5. 2で書いたテストを成功させる(Green)
  6. テストが通るままでリファクタリングを行う(Refactor)
  7. 1~6を繰り返す

テストファーストでプログラミングを進めつつ、こまめにリファクタリングを行う開発スタイル。

TDDの目的

以下の三つによって、安心できる健康な開発と、変更に強い健康なコードを目指す。

素早いフィードバックの確保

超短期なフィードバックを得ることにより、プログラミングミスを即時に検出し、自分の作業がきちんと達成できていることを即時に確認する。

設計改善効果

TDDはテスタビリティやリファクタリング容易性を改善する。

ユニットテストの確保

副産物として出力されるユニットテストを利用できる。

TDDの三原則

  1. 失敗するユニットテストより先にプロダクションコードを書いてはならない
  2. テストケースのコンパイルが通り、適切に失敗するまでは次のテストケースを書いてはならない
  3. 全てのテストケースが成功するまでは次のプロダクションコードを書いてはならない

引用

テスト駆動開発の基礎|Remote TestKit|スマホサイト・スマホアプリ検証

テスト駆動開発へようこそ