止めましょうよTDD(テスト駆動開発)

「テスト書けば大丈夫!バグは全滅する!」

と本気で言い出すアホな輩がいるので止めましょうよTDD。

 

起こりうる大概のサービス事故は、想定外の挙動によってもたらされる。想定外である限り、そのテストを書くこと自体が不可能。だから意味が無い。むしろテスト依存が生まれ、テストで変に安心してイレギュラーケースにまで頭が回らなくなるからTDDが害悪にもなっている。

 

TDDの現場を見てると本当に酷いバグが出ている。なんでそんな事に気づかないかねと思うほど、単純で哀れなミスをしでかす。なんというか「頭を使わなくなっている」。例えば外部API連携で、単純に値のチェックしかしなくなる。外部APIである限りタイムアウトや遅延や重複など起こりうるエラーケースは様々あるのに、TDDやると単純に型や数値の範囲のテストケースしか想定しなくなる。結果とんでもなバグで不可逆な状態を起こし事態は酷く悪化する。

 

何より腹立たしいのは冒頭のようなTDD信者が偉そうにのたまい、無駄に開発工数を増やし、さらに大問題を起こして周りに迷惑をかけることだ。「TDDは正しい。TDDは流行っている。」そんな程度の根拠が薄い理由でプロジェクトに導入し、それこそ本来必要なコードレビューなどをすっぽかしてTDDに依存して事故を起こしているさまは見ていて呆れるしかない。

 

扱う人間側に問題が出てくるなどデメリットもそれなりに発生するとちょっと考えれば判りそうなものだが、技術者という馬鹿共はそんな事まで頭が回らないから結果としてTDDは悪としか言えない。