テスト駆動開発の問題はテストすることである
ビヘイビア駆動開発から調べることで、もっとすっきりしました。
1. どのように動くか決める(設計)
2. それをコードにする。(テストコード)
3. そのコードが動くようにする。(実装コード)
これが基本なんですが、まず間違える一番の原因は Test と言う言葉だったのです。
この言葉に惑わされて、とんでもない方向にいってしまうのです。
どういうことかというと、
テストは、どの程度学力が付いたか調べる行為であり、テストで良い結果を出す為の行為である。
という感じです。人はテストで良い結果を出したくなるから、しょうがないですね。
しかし、テストで良い点を取ろうとはおもっていません。結果は OK と NG の二つだけだし。
では、なんでとんでもない方向にいくの?そう思う人が私一人ではなかったようです。
A NEW LOOK AT TEST-DRIVENDEVELOPMENT by Mr.Dave Astels
そのヒントは言語的相対論(Sapir-Whorf hypothesis)でした。
人類分類学者の Edward Sapir と 同僚の Benjamin Whorf が提唱しました。
詳しくは Wikipedia で調べてください。
言語は認識に影響を与える思考の習性を提供する
という理論です。極論な事を言うと、
日本語を使っている人は日本的な考えになる。
だから中国のことを知りたかったら、中国語をしゃべれ!
ただし影響を与えるだけであり、決定されるわけではないので誤解無きように。
今、行っているテスト駆動開発は正しく行われていますか?
最後に忘れて欲しくないのが、テスト駆動開発もビヘイビア開発駆動も同じ事です。
別の開発手法だと思わないでください。