《测试驱动的嵌入式C语言开发》介绍篇

        虽然开篇已经给出了介绍TDD的博文的链接,但这里为了保证内容的完整性,还是决定写一个介绍篇作为整个学习历程的开篇。

  • 什么是TDD

         TDD(Test Drived Develop)即测试驱动开发,其是一种增量式软件开发技术。简单地说,就是先编写单元测试代码,并运行测试代码只有测试代码测试失败的情况下再去添加产品代码。且每次只编写一个功能的测试代码,对应的测试的产品代码添加完成并测试通过后才进行下一个测试代码的编写。这种思想可以很快的发现问题、定位问题并解决问题(因为问题总是最新加入的代码引入的);相比于传统的编程方式"后期调试式编程"(Debug-Later Programming,DLP)先写完代码再测试,这样会使得问题发现点位慢,且很有可能修改一个BUG会引入新的BUG。

         按照TDD思路开发的代码可以在测试通过后,很容易进行代码的重构。通过重构构建易于理解/易于演化且易于我们自己和他人维护的代码,让工作变简单。

  • TDD的好处
  1.  产生的bug更少
  2. 调试时间更短
  3. 边际效应所带来的bug更少
  4. 精心构建的测试可以成为可执行且无歧义的文档
  5. 彻底、全面的回归测试给予我们信心(晚上睡得香、周末无担忧)
  6. 改善设计
  7. 对进度进行监控
  8. TDD不断地给开发者以成就感,你每写一点代码都会完成一些工作,同时你能很清楚它们是正确的。
  • 对于嵌入式开发的益处
  1.  在硬件可用前或者硬件很贵或者很稀少时,通过独立于硬件的方式校验产品代码,从而降低风险。
  2.  在开发环境中执行并移除bug,从而减少长时间的编译、链接和上传这样的循环的次数。
  3.  对于在目标硬件中既难发现有难修改的问题,可以减少调试的时间。
  4.  通过在测试中模型化硬件交互,使硬件/软件的交互彼此独立。
  5.  通过解开模块之间以及模块与硬件之间的耦合来改进软件设计。可测试的代码首先必须是模块化的。

你可能感兴趣的:(TDD,TDD,嵌入式,嵌入式软件)