关闭

单元测试工具比拼:JTest vs Agitator

3521人阅读 评论(2) 收藏 举报

最近想研究一下一些Java的单元测试工具,目前市场主流的商业的单元测试工具主要有JTest和Agitator,其他的可能名气不大,我也不是很清楚。下面就对这两个工具进行对比一下,当然我用的也不是很深入。

1、代码规则检查

(1)、JTest

我认为JTest的主要特色功能主要是其代码规则审查一块,功能非常强大,可以自己定义代码规则以适应本团队、甚至本公司的开发规范。其RuleWizard功能非常有特色。只不过好像最新的JTest 7.5的评估版好像拿掉了RuleWizard了,当然可以把以前版本中的RuleWizard拷贝到JTest 7.5中的一个目录,也可以使用。这个应该在各个版本中变化不大。另外提到一点的就是JTest的评估版好像不支持GBK等字符集,我确认了一下,发现是JTest中包含的JRE中缺少一个JDK1.5的charsets.jar文件,只要拷贝过来即可。

还有由于JTest的代码规则检查消耗时间较长,可以结合Rational Robot,让其自动运行并自动生成代码检查的报表。当然也可以结合CruiseControl、Ant等工具,自动生成这样的报表。

(2)、Agitator

对比一下,Agitator的代码规则的总体界面的友好性和方便性,不如JTest。当然它也提供和CruiseControl、Ant等工具的集成,也可以自动生成报表。

(3)、小结

在代码规则检查这块,JTest要占有一定的优势。当然由于Agitator是新兴的工具,很多都需要经过市场的考验,我想这一块Agitator将来会有所提高的。

2、单元测试

(1)、JTest

现在各个版本的JTest的单元测试都是自动生成JUnit单元测试案例,并且JTest对JUnit进行了扩展,添加了一些自有的一些特性。但是由于是自动生成单元测试案例,那些测试案例大多数对开发人员没有任何价值,因此可以说那些自动生成的单元测试案例基本上没有任何价值。

而在JTest7.5中,我发现了一个新特性,就是用户自定义单元测试案例,但是界面不是很方便。很有点类似于国内一家公司推出的C++的单元测试工具VisualUnit。但总体来说还需要很大改进。毕竟对于单元测试来说,能方便程序员开展单元测试,并大幅度节省程序员时间的工具才是发展方向。因为对于一个项目而言,工期是非常紧张的,如果需要写2~5倍的单元测试代码,太耗费项目时间,尤其对于国内的软件环境。

(2)、Agitator

而Agitator就非常方便,基本上程序人员不需要写JUnit单元测试案例,主要进行简单的界面操作,就可以完成单元测试工作,这个对程序员是非常有吸引力的,只要填填空,就可以完成单元测试,简直是太美妙了。另外Agitator的主要特色就是其专家功能,提供一些市场比较常见的工具,如Spring、Hibernate等工具整合,非常方便,并应用了Mock的思想。还有一个特色就是自定义单元测试比较方便,可以采用工厂、列表等各种各样的方式。

(3)、小结

在单元测试方面,Agitator占有一定优势,这可能是一些单元测试大师级人物在其公司有关,如Kent Beck等等。

3、报表功能和管理控制

(1)、JTest

JTest本身不提供报表功能,而是需要另外购买该公司的GRS来提供,我觉得这是额外的一个投资,我倒认为GRS应该和JTest捆绑,不应该独立出来。而GRS总体功能比较强,我是试用的GRS1.0版本,现在新版本不提供下载,而且GRS比较难配置,并且界面也不是很友好。我倒建议采用Eclipse RCP的方式和JTest紧密集成方式更好。

(2)、Agitator

Dashboard的功能比较方便,可以和CruiseControl、Ant等工具进行集成使用。比较方便。

(3)、小结

二者不分伯仲。

4、二者缺陷

二者都不知界面的单元测试工作,如AWT/Swing、SWT等,这是二者需要改进之处。

5、结论

从单元测试角度来说,我倾向于使用Agitator。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:108864次
    • 积分:1408
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:15篇
    • 译文:0篇
    • 评论:26条
    最新评论