且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《测试驱动的嵌入式C语言开发》——1.5节TDD的好处

更新时间:2022-09-28 09:53:24

1.5 TDD的好处
正如很多其他技巧,如打桌球或者高山滑雪一样,TDD也要花相当长的时间来练习。许多开发者已经接受了这种技术,而且再也不想回到从前“后期调试式编程”的方式去了。这里罗列出一些TDD实践者所描述的好处:
产生的bug更少

  • 无论小的还是大到可以在现场产生灾难性结果的逻辑错误,TDD都能在开发时快速发现。缺陷就这样避免了。
    调试时间更短
  • 更少的bug自然意味着更短的调试时间,就是这么简单。
    边际效应所带来的bug更少
  • 测试会绑定假定、约束并给出使用范例。当新代码违反了这些假定或约束,测试给出警告。
    单元测试是“不会说谎的文档”
  • 精心构建的测试可以成为可执行且无歧义的文档。千言万语也没有一个可工作的示例能说明问题。
    内心的平静
  • 彻底、全面的回归测试给予我们信心。TDD开发者据称晚上睡得更香,且周末更少被打扰。
    改善设计
  • 好的设计一定是可测试的设计。长函数、紧耦合以及复杂的条件判断,这些都会导致复杂且难测试的代码。如果开发者发现对计划中的代码改动很难编写测试,那就说明设计有问题,TDD会在早期给出提示。TDD是监视代码变坏的雷达。
    对进度的监控
  • 测试跟踪记录了到底现在哪些部分已经可以工作了,以及已经完成了多少工作。它对于“完成”给出了新的估计方法和定义。
    有趣且回报丰厚
  • TDD不断地给开发者以成就感。你每写一点代码都会完成一些工作,同时你能很清楚它们是正确的。