测试驱动设计如何帮助单人软件项目?

Dav*_*e K 3 tdd unit-testing web-applications

我花了很多时间为我的最新项目构建测试,而且我真的不确定投资回报率是多少.

我是一个人操作,我正在构建Web应用程序.我不一定要"证明"我的软件工程,任何人(除了我的用户),我很担心,我花了很多时间一个很好的协议不必要rebugging测试代码在过去几个月.

我的问题是,虽然我喜欢TDD适用于小型到大型软件团队的想法,但它如何帮助一个人团队快速构建高质量的代码?

谢谢

=>今天遇到这个问题,来自于stackoverflow的创始人之一joel spolsky的博客:

http://www.joelonsoftware.com/items/2009/09/23.html

"Zawinski没有进行过多次单元测试.他们"原则上听起来很棒.鉴于悠闲的发展速度,这肯定是要走的路.但是当你看到时,'我们必须从零到完成六个星期,"好吧,除非我把东西剪掉,否则我不能这样做.而我要删除的东西是不是绝对关键的东西.单元测试并不重要.如果没有单元测试,客户就不会不会抱怨这个.""

随着我年龄的增长,我想我越来越意识到这一切都与速度和功能有关.我很乐意建立单元测试.但由于我们只有很多时间可以使用,我宁愿更快地构建它,依靠beta测试和良好的自动错误报告来解决任何问题.如果这个项目最终变得足够大,以至于这会让我陷入困境,它将产生足够的收入,我可以为重建辩护.

Jor*_*ril 5

我认为当你必须改变/重构/优化许多代码所依赖的东西时,像你这样的情况会有很大帮助...通过使用单元测试,你可以快速确保在改变之前所有工作的东西,之后仍然可以工作:)换句话说,它给你信心.

  • 不同意.TDD不是QA活动,它是一项开发活动.TDD推动应用程序设计.这不是测试你的代码. (4认同)

Sin*_*hot 5

TDD与团队规模没有任何关系.它与使用正确工作的正确界面创建所需的最少软件有关.

TDD过程要求您只编写足够的代码来满足测试要求,因此您最终不会创建不需要的代码.

使用TDD设计一个类会让你觉得它是这个类的客户端,所以你最终创建一个更好的界面比没有TDD时开发它更频繁.

TDD本质上将实现100%的代码覆盖率,证明您的代码有效.这样做的副作用是,您和其他人现在可以更安全地更改您的课程,因为它有一整套自动化测试.

我应该补充一点,它的迭代性质也会创建一个正反馈循环,因此当你迭代时,你会对代码越来越有信心.


Fre*_*els 5

TDD不仅涉及测试,还涉及设计类/ API.

我的意思是:通过先写一个测试,你不得不考虑如何使用你的课程.因此,您首先要考虑类的接口,您希望如何使用类,因此,您的对象模型变得更加可用和可读.