今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

TDDはテスト手法ではない via TECHMemo

TDDでは、Drive Design on unit levelするために、testabilityの高い設計になるため、柔軟な設計ができるわけです。ここがTDDのキーポイントです。

そのとおり。(ぱちぱち)
機能が atomic (分割不可能)に分割されていることは、理想的なソフトウェアが満たす要件のひとつだ。
testability が高いということは、言い換えれば機能の分割がうまくいっているということだ。TDD はそのような設計を生み出してくれる。
テストを書くとき、恐らく、いきなり大きな機能のテストを書こうとは思わない。無意識に小さな機能に対するテストを書こうと思うのが(たぶん)普通だろう。その結果、小さな機能に分割されていく。TDD は、自然とそのような設計に誘導してくれる。
機能分割が atomic であることが、柔軟さを生み出してくれる。なにかの振る舞いを作りたいときは、atomic に分割された機能を組み合わせればいいのだから。