11 プラクティス7 テストでふるまいを明示する
内容
テストによって動くものと動かないものがすぐにわかる。
これは開発の原動力を大きく影響を及ぼす。
ケイパー・ジョーンズは「開発者の時間の半分以上が、過去にやった仕事の手直しに費やされている」と言っている。
例えば、不具合の原因が2箇所による複合的な要因の場合、その原因を特定するのは非常に時間がかかるが、ありえる。
この手直しに時間がかかっていることが、テスト駆動開発を行う理由だ。
マネージャーがテスト駆動開発する時間を持てないというのは、以下のループとなっているためだ。
- テスト駆動開発をしていないから、問題の原因の特定に時間がかかる
- 問題の原因の特定に時間をかけすぎてるから、テスト駆動開発を学習する時間がとれない
このループになっているのであれば、ここから降りなければならない。
テストは具体的な要件であり、メソッドの使い方を正しくフォーカスすることができる。これは実装を良くするためや、問題をとりのぞくために非常に効果がある。
学び
- ほとんどの時間を読む時間、調査する時間に費やしているという事実
- テスト駆動開発をしていないからテスト駆動開発ができないループに入っている場合、なんとかしてそのループを抜け出なければならない
学びを活かすアイディア・行動
- テストコードの目的のための事前知識整理