TDDの利点。

Advantages of Test-Driven Development | Agile Pain Reliefという記事より。

TDDの利点

  • はじめにテストを書くことで、どのようなコードを書きたいかを真剣に検討できる。
  • すぐにフィードバックを得られる。
  • 詳細な仕様を作成できる。
  • 手戻りにかかる時間を削減できる。
  • 問題点を絞り込みやすく、デバッガに掛ける時間を短縮できる。
  • ついさっき変更(もしくはリファクタリング)した部分が、既存のコードを壊したか否かがわかる。
  • 課題に対し、徐々に進化し、適応しながら設計することができる。
  • シンプルにできる。
    • コードを根本的にシンプルに書けるようになる。テストを通るコードしか書かなくてもよい。
    • 一つの責務を負った小さいクラスを書けるようになる。
    • 疎結合のコードを書く助けになる。
    • SOLIDコードが書けるようになる。
  • ユニットテストの結果はシンプルで、コードのドキュメントとしても役立つ。
  • 以下の効果により、品質向上とバグ削減に役立つ:
    • 目的(やコードの仕様)について検討するようになる。
    • コードをシンプルに書けるようになる。複雑性はバグの温床。
    • 変更したコードや新しいコードが、既存のコードを壊していないことを保障できる。

TDD欠点

TDDは習得が難しい。2〜4ヶ月間は、生産性が低下するだろう。

関連記事もいくつも挙げられているのも、なかなか面白そうです。