単体テストの習慣がない場所で必ず聞く言葉がある。 「単体テストを書けば不具合はなくなるの?」 答えはNOである。 「単体テストを書けば工数が減るの?」 厳密に言えば、答えはNOである。 単体テストは変更・追加開発した場合のデグレーションを減らすことはできるが、変更・追加箇所に不具合がないことを保証する方法論ではない。もちろんTDDで開発して、単体テストを予めかいておけば、いくらか不具合を減少させることはできるし、検証テストでは作るのが難しいテスト条件でのテストを行うこともできるので、まったく完全なNOではない。検証テストで発見される不具合が少なければ、不具合修正と再テストの時間を減らすことができるので、工数が減る場合もある。 でも、単体テストは銀の弾丸ではない。単体テストができるのは、テストケースで定義した状態・状況において不具合が発生すると教えることだけである。 ということを頭においた上