プロローグ 読者の方で、次のように思っていらっしゃる方は、どれくらいいるでしょうか。 「いちばん重要な財産はコードであり、万一コードを失ってしまったら、元と同じ品質のコードをもう一度書くのはとても大変だ」 筆者も長年このように思っていました。では、もし以下のように考えたらどうでしょう。 「いちばん重要な財産はテストであり、万一コードをすべて失ってしまったとしても、テストが無事なら元と同じ品質のコードをもう一度書くことができる」 今までとずいぶん違う考え方ですね。いろんな声が聞こえてきそうです。 「コメントはどうするんだ」 「テストが複雑すぎて保守できなくなったらどうするんだ」 ごもっともです。テスト駆動開発は万能ではありません。うまく適用できない場面もあり、このときは従来どおりのやり方が必要です。たとえば、デバイス制御(あるタイミングでI/Oポートを叩くとか)などは、保守可能なテストを書く
![第1回 テスト“だけ”を使ってコードを再現するのは難しい? | gihyo.jp](https://cdn-ak-scissors.b.st-hatena.com/image/square/4f3127d1a90f00a529825df13b636b1af57e0ea9/height=288;version=1;width=512/https%3A%2F%2Fgihyo.jp%2Fassets%2Fimages%2FICON%2F2013%2F1208_tdd_supremacy.png)