论坛首页 综合技术论坛

测试驱动开发

浏览 2377 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (15) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-09-18   最后修改:2010-09-20

index:
1,什么是TDD
2,TDD的原理
3,TDD的好处
4,执行一个TDD的基本过程
5,TDD的一些原则



一,什么是TDD?


通过测试来推动开发一种敏捷开发的方式。



二,TDD的原理?


测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,

 

首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后

 

循环进行添加其他功能,直到完成全部功能的开发。

 


三,TDD的好处?


1,每个测试用例都是我们开发的代码需求。


2,因为是先写测试再编码的,所以当编码完成的时候。测试也写完了。


3,在写测试的时候,我们就定义好了需要实现什么接口等一些代码需求,所以我们就可以减少代码文档了。


4,它非常容易定位错误。当我要修改了一个方法,马上去进行单元测试,这样如果出错了,也可以更容易定义错误。

 


四,执行一个TDD的基本过程?


1) 明确当前要完成的功能。我们用Eclipse工具进行开发,可以把要完成的功能记录成一个 TODO 列表。


2) 快速完成针对此功能的测试用例编写。


3) 测试代码编译不通过。


4) 编写对应的功能代码。


5) 测试通过。


6) 对代码进行重构,并保证测试通过。


7) 循环完成所有功能的开发。

 


五,TDD的一些原则?


1,一个测试不能依赖于另外一个测试。


2,不要考虑过多其他方面的细节。


3,把要测试的功能写到测试列表上。


4,先写测试,再写代码。


5,及时重构,避免以后遗漏。


6,小步前进。

 

 

 

   发表时间:2011-01-06  
最近在研究测试驱动开发,文章不错,只是自己还不是很清楚首先如何写测试代码,不清楚什么样问题无需写测试代码,测试的深浅无法判定?望指教一下?呵呵
0 请登录后投票
   发表时间:2011-02-04  
支持测试驱动开发。在一些项目的开发中已经运用了TDD进行开发,效果还不错。
建议使用TDD按照业务场景来进行测试,用户如何使用我们的功能,我们就写哪些测试代码,这样能够帮助我们按需开发代码和做有效的测试。
TDD只需覆盖所有的业务代码,并不需要覆盖所有的代码,所以建议在服务层做TDD。

0 请登录后投票
   发表时间:2011-02-04   最后修改:2011-02-04
rhc2010 写道
最近在研究测试驱动开发,文章不错,只是自己还不是很清楚首先如何写测试代码,不清楚什么样问题无需写测试代码,测试的深浅无法判定?望指教一下?呵呵

原则上测试代码应该覆盖所有的业务逻辑,但是基于投入产出比的考虑(所有的代码都写测试,代价太大,效果不一定更好),可以只在核心和你需要验证的业务逻辑上写测试代码。
测试主要是验证各种输入是否得到预期的输出,那么只需要提供几种常见的输出进行验证就可以,注意测试的输入是无限的,所以就算做了自动化测试,也不能完全保证程序没有问题。
0 请登录后投票
   发表时间:2011-02-05  
补充两点:
1.依赖外部环境接口的服务可以不用做测试,一般都采用jmockit或者easymock将其mock掉。
2.单元测试目前我们一直只对业务层和DAO做测试,展示层没有做单元测试。
0 请登录后投票
   发表时间:2011-02-13  
呵呵说得不错!! 现在有多少人在程序开发中,严格使用了TDD的方法学呢。我就没有,一般都是在开发完Code后才写一些Unit Test的!!

想真正的TDD,还要多磨练一下!!
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics