测试驱动开发

测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。--源自百度百科

 

兵马未动粮草先行,开发未动测试先行。测试驱动开发,自然是测试先行,在开发功能代码之前,先编写测试代码,根据测试代码,编写出能通过测试的功能代码,以测试来驱动整个开发过程的进行。

基本过程:

1、快速新增一个测试

2、运行所有的测试,发现新增的测试不能通过

3、做一些小小的改动,尽快地让测试程序可运行,为此可以在程序中使用一些不合情理的方法。

4、运行所有的测试,并且全部通过

5、重构代码,以消除重复设计,优化设计结构

简单来说,就是不可运行/可运行/重构——这正是测试驱动开发的口号。

 

测试驱动开发,并不是一种测试技术,而是一种分析方法、设计方法,相对于传统的开发方式,他有一下优势:

1、测试先行,应该先根据用户需求,编写测试用例,对功能的过程和接口都进行设计,这样切入点就是使用者角度,更符合后期开发的需求,并且及时响应需求变更,快速地适应变化。

2、出于易测试和测试独立性的要求,将促使我们实现松耦合的设计,并更多地依赖于接口而非具体的类,提供系统的可扩展性和抗变性。

3、将测试工作提到编码之前,并频繁地运行所有测试,可以尽量地避免和尽早的发现错误,极大地降低了后续测试和修复成本。提高了代码质量,不断的重构代码,消除重复设计,优化代码结构。

4、TDD提供了持续的回归测试,使我们有重构的勇气,因为重构之后的测试是容易的,而且也会暴露出我们重构的质量,不用担心不可预知的错误存在。

5、TDD产生的单元测试代码是良好的开发文档,展示了所有API的使用和运行。

6、TDD可以减轻压力、降低忧虑、提高我们对代码的信心、使我们拥有重构的勇气,这些都是快乐工作的重要前提。

7、快速的提高了开发效率

 

对系统设计的把握,并不是我们想想的那么简单和顺利,常常一个新的功能可能依照原有的设计要修改很多内容,一开始的设计并不能准确的考虑以后的扩展性和兼容性,而测试驱动开发在不断的重构中,提升代码质量,即使没有高级的架构师,我们完成的代码质量也是非常优秀的,并且在不断的重构中,大大提高了开发小组中每个人的能力。

 

上帝打开了这扇门,但并不是轻松的就能进去,测试驱动开发最关键点移动到了测试上面,如何编写测试用例,划分系统功能,如何进行敏捷测试,特别是UI的敏捷测试,就是一大挑战,测试驱动开发并不是要减少我们多少的工作量,而是让我们的程序更加敏捷,质量更高,项目更加成功,人员提升幅度更大。

你可能感兴趣的:(测试驱动开发)