岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

TDDについてのメモ

1. 「TDDはテスト手法ではない」と2004年には言われていた

dannさん(2004-02-08)

TDDはテスト手法ではない

TDDは設計手法です。

Jon Trisenさんは、TDD is about Testingだと言っていますが、自分はそうは思いません。TDD isn't about Testingです。極論すれば、TDD is about Desingingです。Kent BeckもTDD本の中でそれを伝えようとしています。

設計をするために、ユニットテストを書くのであって、テストをするためにUnitTestを書くわけではありません。TDDでは最初に動作を補償するために多くのテストケースを書く必要はありません。

TDDはテスト手法ではない - dann's blog
artonさん(2004-04-27)

本稿では,テスト駆動開発(Test-driven Development――以降TDDと略す)について解説する。TDDは,その名の通りテストを主としてプログラムを開発する手法だ。ここで重要なのは,TDDはテスト手法ではないということだ。では何かと言えば,TDDはその名の通り開発手法なのだ。さらに正確に言えば,プログラムの開発工程を設計,実装,テストの3段階に分割した場合の最初の段階,すなわち設計を主眼とした開発手法なのである。その意味では設計手法と言い切ってもそれほど間違いではない。

【連載◎開発現場から時代を眺める by arton】第2回 | 日経 xTECH(クロステック)

2. 私の意見

コードの反証可能性というのがよく分からん。反証可能なのは「理論」とか「仮説」とか、真偽を語れるものだけじゃないのかな

http://twitter.com/iwamot/status/9625197639

「あるメソッドは2つの引数の積の平方根を返す」という「仮説」は反証可能だろうけど、TDDでもBDDでも、ふつうは同値分割とか境界値分析とかを使って、数件のテスト/スペックを書くだけだよね。反証主義においては、この程度で仮説の強度が高まったと判断されるんだろうか

http://twitter.com/iwamot/status/9625739976

いくら反証テストを重ねても仮説の強度は高まらないという立場もあるみたいだし http://bit.ly/9wdtlN

http://twitter.com/iwamot/status/9625808047

そんなわけで、私は「TDDはテスト手法にあらず(開発手法である)」「TDDとBDDは名前が違うだけ」と思ってる。前者は2004年時点でコンセンサスが得られていた印象。最近はあえていう人が少なかったのかも

http://twitter.com/iwamot/status/9626450004