この経験から何かを学ぶという態度を持っていることに対するあなたへの小道具。きっとそうなると思います。
あなたが最初に学ばなければならないことは、ユニットテストの必要性があなたがどれほど経験を積んでいるかとは何の関係もないということです。最高の開発者は、最高のユニットテスターの1人にもなります。
Bill Venners:あなたはあなたの本のリファクタリングでこう言っています:「リファクタリングしたいのなら、本質的な前提条件はしっかりしたテストを持っていることです。」つまり、テストがない場合はリファクタリングしてはいけないということですか?
マーティン・ファウラー:ネットなしで綱渡りをしていると考えるべきです。綱渡りが上手で、それほど高くない場合は、試してみるとよいでしょう。しかし、これまでに綱渡りをしたことがなく、ナイアガラの滝の上にある場合は、おそらく良い網が必要です。
http://www.artima.com/intv/refactorP.htmlから
以前は単体テストなしでPHPを作成していました。その後、何年にもわたってJavaでユニットテストを実践してきた結果、ユニットテストなしでは、PHPの単一ページよりもはるかに複雑な作業はできないことがわかりました。理由?生産性。単体テストがなければ、自信を持ってリファクタリングすることはできませんでした。つまり、A)さらに分解してすべてを最初からやり直さなければならないか、B)醜いレガシーコードを処理する必要がありました。
入札するときに、テストに時間をかける必要がありますか?はい。それはそれがかかることを直感的に思えるんより多くの時間を? はい、また。おそらく、他のいくつかの回答がおおよそ見積もったように、単体テストなしの場合よりも50〜100%高い見積りが必要になるでしょう。
しかしながら!...
- 仕様の穴を先にキャッチして対処します
- つまり、よりクリーンで堅固な仕様に開発することになります。
- 仕様の変更に迅速かつ自信を持って対応できます
- バグが減ります
- バグはより早く簡単に修正されます
その結果、見積もりはより正確になります。時間単位で請求する場合、クライアントにさらに印象を与え、料金を上げることができます。定額で請求すると、1時間あたりの収益が増えます。
テストを行わない場合、推定はクラップシュートである可能性が高いです。バグ、変更管理、および再定義はすべて、正確に見積もるにはひどいものです。3つすべての影響を最小限に抑えるには、テストが重要です。