一、什么是TDD
  简单的说,即在写任何功能代码之前,先写它的测试代码。具体步骤:
  ·根据需要编写一个测试用例
  ·编写功能代码,以让刚才的测试用例通过
  ·逐步补充测试用例
  ·修改功能代码使新增的测试用例和原来的都通过
  ·重构,包括功能代码和测试用例
  二、为什么使用TDD
  提高代码质量。由于功能代码的高质量和完善的测试用例集,增强了开发者信心,从而赢得他人信任。
  改进设计。TDD保证了功能代码的可测试性,降低了耦合度,改善组件对象模型,使设计在开发过程中逐步完善和改进。
  为功能代码提供了良好的文档,并能维护代码和文档的同步。敏捷宣言主张:能够运行的软件胜过面面俱到的文档。测试用例集是一份准备可靠,且能运行的文档。
  在一定程度上可代替程序调试。当每个单元测试关注每一个具体功能时,问题被更早和更好地避免。另外调试是手动而不可重复,TDD的测试用例集则是自动可回归的。
  有效的质量控制和项目管理。对管理者来说,通过单元测试每日构建的结果,每天都清楚的知道项目的质量和开发进度
  三、TDD是测试,更是设计
  当开始写单元测试代码时,其实也正在开发。在编写功能代码前,站在功能代码的使用者角度设计测试用例,运用针对接口编程等原则降低耦合度,改进设计。由此可见,TDD也是面向对象的分析,设计和开发方法。在贯彻TDD的开发过程中,对于每个类分别进行测试,对于每部分都进行简单设计,频繁重构,终形成了一整套可运行的测试用例集,TDD体现持续改进的过程,是一种增量式设计。
  TDD(Test Driven Development),是一种测试技术,更是一种设计方法。其重心不在Test,而在于Development,是一种以意图来驱动的软件开发方法——意图编程。