论坛首页 综合技术论坛

测试的粒度如何界定?

浏览 5540 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-21  
对于测试驱动来说,如何确定要测试的主体,是个似是而非的问题。
在OO中对象是最基本的组织结构,那么测试的主体是否可以以对象为基本单位呢?
所以我们可以看见很多“对象”和“对象测试”对,比如有一个CustomerOrder对象,就会有一个CustomerOrderTest对象。虽然后者并不是总是存在。
另外一个常见的做法是只在服务层有测试,也就是说同时测试了Service,DomainModel,DAO。

前者的问题在于对象都是普遍联系的,紧紧测试某个对象,会产生一些意义模糊的测试。这好比流水线作业,某个局部动作如果不放到整个流水线来考察,就没有意义。另外,需要很多的mock或stub也确实恼人。

后者则目的明确,但问题在于运行成本昂贵,因为依赖的东西太多,以至于运行一次测试需要分钟级别的时间。同时,代码会存在相互干扰的情况。

我认为测试应当有明确的目的,否则完全不能思考,同时也需要作合理的划分,要不成本太高。

要到达上述要求,透过方面的视角也许是一个可以考虑的方法。

实际上,寻找测试的粒度,就是在寻找彼此分离的关注点。

针对关注点来进行测试,果真不蒙人?
   发表时间:2006-12-21  
引用
透过方面的视角也许是一个可以考虑的方法。


这样测试会不会覆盖不全?
0 请登录后投票
论坛首页 综合技术版

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