テスト駆動開発の誤解とゴール
過去の自分は、テスト駆動開発(TDD)=テストファーストという間違った認識をしていた。そこでテスト駆動開発 / Kent BecKを読んで認識が変わった。
テスト駆動開発のゴール
「動作するきれいなコード」。Ron Jeffries のこの簡潔な言葉が、テスト駆動開発(TDD)のゴールだ。
p.ix まえがき - テスト駆動開発
この1文にすべて込められている。
テスト駆動開発の誤解
TDDであれBDDであれ、書籍や一次情報にまでアクセスせず、伝聞や自分たちの解釈でTDD/BDDの名前やツールを使う人が増えました。加えて、時間の経過に伴う意味の希薄化も発生しました。 (中略)
- TDD = テストを先に書くコードの書き方のこと
- モックオブジェクト = テストを書くのが難しい対象に対して無理やりテストを書く際に使うツール
p.302 訳者解説:意味の希薄化 より
テスト駆動開発は「動作するきれいなコード」を書くための一連の流れ(ワークフロー)で、テストファーストはテスト駆動開発の要素の一部ではあるけどすべてではない。