読者です 読者をやめる 読者になる 読者になる

hirschkalb's blog

"I beseech you, in the bowels of Christ, think it possible that you may be mistaken."

006 テスト駆動開発 Test-driven development

パズリング・プログラマ

テスト駆動開発においてはじめに「失敗するコードを書く」のはなぜだろう?

答え:テスト駆動開発(TDD)においてコードを書く動機は「失敗(レッド)」だからというのが第一の理由。ただしTDDになじみがない人にはこの説明だけでは納得されないだろう。


TDDを実践しているひとならば、おそらく上の問いははじめから生じていない。このような問いが生じるのは、TDDを十分に実践できる環境にいないからではなかろうか。ということで、

[2] 失敗するコードを書く、より一般に説得的な理由はなんだろう?


失敗を意図したテストが正しく失敗しないことがある。失敗を意図したテストにコードが合格してしまうことがある。このとき、プログラマは意図しない出来事が起こっていることに気づくことができる。


もうひとつ。あるプログラマは振る舞いAを実装したいとしよう。実装前と実装後とにかかわらず一定の振る舞いAを示してしまうコードがあったとする(プログラマの実装中に他のコードに変更が入ったため等、理由はなんでもよい)。


このようなとき失敗の確認をしていないと、プログラマ自身の実装によりAが実現されたと誤った認識をしてしまう。失敗を確認することで自身の変更が全体に正しく影響を及ぼしていることを確認できる。


c.f. 『TDDって何?』 http://d.hatena.ne.jp/irof/20110621/p1, 『4つのルールと5つのコツでチラ見するテスト駆動開発入門 〜本を読んでTDDを実践したまとめ』http://rimuru.lunanet.gr.jp/notes/post/2882/,テスト駆動開発http://ja.wikipedia.org/wiki/%E3%83%86%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%83%BC%E3%82%B9%E3%83%88

広告を非表示にする