在开发的过程中,总有种忧虑感,担心系统会出现这样或那样的Bug,修改Bug后,更要把所有的流程重测一遍。于是我们在完成代码后,编写测试程序,将所有的流程通过测试程序自动跑一遍。
测试驱动开发就在这种需求下诞生了。它将测试用例的开发提到了功能代码之前,这样功能代码是为满足测试用例能通过而开发,同时,测试用例也成为以后修改BUG后的测试方式。这样测试用例驱动了功能代码的开发。
测试驱动开发一般要经历三个阶段:
1.Red 不可运行阶段:开发测试用例,此时没有功能代码,不可运行。
2.green 可运行:快速完成功能代码,让测试用例运行起来,此时的代码中可能存在不合理的部分。
3.refactor 重构:对功能代码进行重构,优化系统结构。
下图是一个比较流行的测试模型:V测试模型
优点:
1.代码中的错误可以明显减少。
2.错误的减少使项目经理能够多开发时间更精确的把握。
3.错误的减少使我们每天得到新功能的成品。
“测试驱动开发”和“结对编程”是最著名的两个敏捷实践,它们都是通过提供代码的质量来提高生成效率的。