向您表明您将从这种经验中学到东西的态度。我相信你会的。
您应该学习的第一件事是,单元测试的必要性与您的经验无关。最好的开发人员也将成为最好的单元测试人员之一:
Bill Venners:您在书《 Refactoring 》中说:“如果要重构,基本前提是要进行可靠的测试。” 这是否意味着如果您没有测试,就不应该重构?
马丁·福勒(Martin Fowler):您应该将其视为走钢丝的绳索。如果您擅长走钢丝,而且走不高,那么您可以尝试一下。但是,如果您以前从未走过钢丝,并且经过了尼亚加拉大瀑布,那么您可能想要一个好的网。
来自http://www.artima.com/intv/refactorP.html
我以前是在没有单元测试的情况下编写PHP的。然后,经过多年使用Java进行单元测试的实践,我发现如果没有单元测试,我将无法处理比PHP中的单个页面复杂得多的事情。原因?生产力。没有单元测试,我就无法信心十足地进行重构–这意味着要么A)我将不得不拆掉更多东西并从头开始处理所有事情,要么B)我将不得不处理丑陋的旧代码。
竞标时,您需要考虑时间进行测试吗?是的。看起来很直觉会花费更多时间吗? 是的,再次。正如其他一些答案所粗略估计的那样,您可能需要比没有单元测试的情况多估计50-100%。
然而!...
- 您将更早发现并解决规格漏洞
- 这意味着您将开发出更清洁,更可靠的规格
- 您将能够快速而自信地对规格更改做出响应
- 您将减少错误
- 您的错误将被更快更容易地发现
结果,您的估计将更加准确。如果按小时收费,您将给客户留下更多印象,并能够提高费率。如果您按固定费率收费,则每小时可以赚更多的钱。
如果不进行测试,您的估算值很可能是垃圾。错误,更改顺序和重新定义对于准确估算都是很糟糕的。测试是最小化这三个因素的关键!