当我阅读Batic D的Dogsa T的先前工作的摘要时。测试驱动开发的有效性:工业案例研究。软件质量杂志。2011; 19(4):643-661。令我惊讶的是,围绕TDD进行的许多研究中使用的度量都是基于诸如代码行,缺陷和开发时间所基于的。
是否有研究集中在使用TDD与传统开发或最后测试相比开发的产品的总拥有成本上?
我对购置和运营总成本特别感兴趣。
当我阅读Batic D的Dogsa T的先前工作的摘要时。测试驱动开发的有效性:工业案例研究。软件质量杂志。2011; 19(4):643-661。令我惊讶的是,围绕TDD进行的许多研究中使用的度量都是基于诸如代码行,缺陷和开发时间所基于的。
是否有研究集中在使用TDD与传统开发或最后测试相比开发的产品的总拥有成本上?
我对购置和运营总成本特别感兴趣。
Answers:
有一些研究关于进行TDD的含义和好处,但结果是矛盾的。一些项目(以我的经验)由于使用TDD而导致的错误率和拥有成本降低,因为更改功能的成本大大降低了。其他一些则停止了。
一些研究(这里是一个-检查幻灯片n50)显示,错误的数量随覆盖范围的增加而增加。我假设更大的覆盖范围意味着TDD,而更多的错误意味着更高的拥有成本。
从我的角度来看,任何度量标准或实践本身都不能与提高质量或降低拥有成本相关。有多种因素可以导致某种相关性。这些因素在团队和项目之间发生变化。
我认为我们都听过有关团队的故事,这些团队刚刚开始进行TDD,编写了100行测试方法,(在我看来)这增加了拥有成本,因为更新该测试将非常昂贵。
我的务实原则是,关心并渴望学习,在支持他们及其思想的环境中工作的人具有更好的质量和拥有成本。
我没有任何专门的研究,但是我可以从个人经验和其他开发人员的经验中告诉您,我知道当正确地应用于中型和大型项目时,TDD可以缩短产品上市时间,减少错误和缺陷并提高代码质量。
话虽这么说,他们不是万灵丹,您能在没有TDD的情况下编写出色的代码吗?是的,您可以使用TDD编写错误的代码吗?同样取决于您的项目,TDD可能会大大增加代码的拥有成本,一个很好的例子是NASA,其中每行代码的成本巨大,但是拥有成本并不是重点,因为它没有缺陷。
正确应用时,TDD会增加您的启动成本和代码基础,但是您将获得回归测试,早期错误检测和更好的代码设计的长期利益,这将减少缺陷,测试成本和维护时间,从而降低总体成本。所有权。