51Testing软件测试论坛

标题: 比较Visual Unit和CppUnit的优缺点 [打印本页]

作者: 华人天堂    时间: 2007-1-4 17:33
标题: 比较Visual Unit和CppUnit的优缺点
C++的两个单元测试工具Visual Unit和CppUnit,大家用过的谈谈他们在应用中的优点和不足。看你们更看重哪个工具,说说你理由。
作者: czo    时间: 2007-1-5 15:59
没人回答,我来回答一下吧,说得不对欢迎拍砖。

只拿Visual Unit个人版(以下称VU)来比较,因为个人版是免费的,同时企业版的大多数功能都是CPPUNIT没有的。

概况
CPPUNIT是老牌的、经典的单元测试框架,有很多同族兄弟,统称xUnit,Visual Unit是新兴的可视化单元测试工具,发展势头似乎很猛。

基本功能
都是通过“人工建立测试用例,设定输入和预期的输出,运行程序,自动判断输出是否符合预期”这一方法来测试,这也是基本的测试方法。
不同之处:
VU是自动生成测试代码,测试用例也会生成框架,CPPUNIT完全人工编写。

调试支持
VU提供调试支持,好像从1.3开始,调试功能完全向个人版开放。支持后退和重复,可以从测试用例编辑器中选择调试输入,也可以自动将出错的用例作为输入,调试过程中还可以切换输入。这些听起来并不轰轰烈烈的功能,对于边开发边测试来说,是很好用的。
CPPUNIT好像没有这些功能。

适应性与灵活性
这是最重要的特性,总体上来说,VU的适应性和灵活性要好些。很多人都会有种感觉:自己编写测试代码当然最灵活了,这一点本没错,但使用CPPUNIT也并不是完全自由的,也要在它的框架下进行,另一方面,VU生成的测试代码也是可以修改的,还提供了自定义测试功能(即由用户自己写测试代码,不过好像只在测试COM接口之类的特殊情形下才用得上)。由于VU的测试工程只完成很单纯的工作(执行测试,把数据发给VU),不需要在测试代码中进行测试组织和数据处理,所以测试工程简单得多,因为简单,也就更灵活和具有更好的适应性。
用例的预期输出VU也要灵活得多,CPPUNIT使用一套宏,比较复杂,VU可以用任何布尔表达式,像这样都是可以的:
strcmp(str, "12345") == 0
i > 0 || ret <= 0
pStr->IsEmpty()
var.GetLength() == 0
.m_strName == "AAA"
最后一个是对成员变量进行判断,一个用例可以有任意多个预期输出。


授权方式与服务
CPPUNIT 开源,免费,好像没什么来自官方的服务吧。
VU 免费(个人版)
VU个人版虽然是免费的,但提供服务,官方的技术支持是不问用户身份的。
VU的服务意识是不错的,有在线技术支持,有问题时用户不会到各个论坛上讨论,这对宣传是很不利的,官方不可能不了解这一点,因此,可以说明他们还是把用户利益看得比较重的。

文档
VU有详细的文档,包括帮助,理论教程,视频实操教程。
CPPUNIT的文档比较少,主要是一些入门介绍。

扩展性
CPPUNIT是开源框架,有一些插件可以使用,你自己有能力的话也可以开发一些新功能。
VU是商业产品,官方一直不断升级,另一方面,个人版和企业版是兼容的,如果公司愿意出一些银子升级到企业版,那还是蛮爽的,比如平常很难做到的高要求白盒覆盖,企业版都可以做到。

心理感觉
用开源产品可能更有自由感。
VU有一点非常恶心:企业版没有D版。我搜了一下,有不少找破解版或破解方法的贴子,但都没有结果。有好得多的企业版,又被迫用个人版的话,可能很多人心理感觉很不好。不过另一方面,没有D版也有好处,因为开发商能生存和发展,也就能提供长期的服务和开发更好的产品。

[ 本帖最后由 czo 于 2007-1-6 11:03 编辑 ]
作者: VisualUnit    时间: 2007-1-7 23:20
标题: to ceo:
老大辛苦了!比较得很详细。
不明白的是,老大既然知道没有D版开发商才能生存,能生存才能提供长期服务,为什么会认为没有D版“极恶心”?
另外,我看到老大在求破解的贴子中回复建议人家去看雪找高手破解VU,够狠。就是这个帖子:http://bbs.51testing.com/thread-54125-1-1.html
作者: czo    时间: 2007-1-13 11:13
to VisualUnit:
老兄很生气,后果很严重......

我的名字是czo,不是ceo,ceo是老大,我是老小。
作者: VisualUnit    时间: 2007-1-16 23:29
我并不生气,当然也没后果,~_~,还是要谢谢老兄。
作者: whkwzyc    时间: 2007-2-7 11:09
看了VU的文档,可是还是不会用sdlkfj9
作者: walkman2508    时间: 2007-10-8 02:56
不错的总结~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2