当前位置:文档之家› C及C++单元测试工具(白盒测试工具集成测试工具)选型报告

C及C++单元测试工具(白盒测试工具集成测试工具)选型报告

C及C++单元测试工具(白盒测试工具、集成测试工具)选型报告一、选型情况1、选型概述对比了三种C/C++单元测试工具:工具RX、工具TX、工具VU。

其中,工具VU为国产软件,另外两种为国外软件。

2、选型过程(1)第一阶段:通过网络搜索、咨询代理商等方式进行初步筛选,挑选出工具RX、工具TV、工具VU作为候选软件;(2)第二阶段:成立选型小组,和候选软件的开发商或代理商进行接触,通过座谈,电话沟通,软件演示等手段,结合单位情况、报价等多种因素进行分析;(3)编制评审结果:编制对比表格,得出评审结论,提出选择建议。

3、评价方式基于实际应用的需要,从对单元测试的主要难题的解决程度、测试效率、测试效果、服务、价格等方面进行评价。

二、三种软件优点与不足1、工具RX:概况:X国XX公司出品初步了解的价格是每浮动License的售价为50万左右。

优点:1:静态分析,允许用户加强代码的标准,评估软件的复杂度和可维护性。

2:动态测试,验证软件需求,为测试的说明、执行、归档、重用和重复动态测试提供一个形式上的框架。

通过测试产生一个完整的诊断和质量确认的报告。

提供大量的覆盖率分析:语句覆盖、条件分支覆盖、数据值覆盖、MC/DC和用户自定义标准。

3:软件执行,测试程序是否满足需求。

4:数据检查,检查用户定义的类型。

5:测试脚本,根据用户定义的Test Case Definition自动生成。

6:自动打桩,使用桩模块模拟被测模块的函数调用。

用户可以传递参数给桩模块,并设置桩模块的返回参数7:时间工具,检测软件的执行时间。

不足:1:没有底层输入和局部输入、局部输出功能,不但增加编写桩代码的工作量,而且有些代码的测试无法进行。

内部输入用桩来设定,与一般输入分开,难于维护。

2:由于工具不可能自动了解被测试代码的功能,生成的用例多是垃圾,意义不大。

3:没有表格驱动功能,增加了数据建立和维护成本,也不便于对数据分类集中以便人工检查数据的完整性。

4:输入输出数据分散而不直观,不能一目了然地浏览程序行为(程序行为就是什么输入下会执行哪些代码产生什么输出)。

5:覆盖状况(如哪个条件真值未覆盖)标示不清晰,没有直观逻辑结构图,分支和路径的覆盖状况难于便利地浏览。

6:没有协助用户快速找出遗漏用例的功能,难于实现高标准的覆盖。

2、工具TX概况:X国XXX公司出品,曾在国内设有分公司,但在x年x月底撤消。

每浮动License 售价约2.1万美元,另每年收取30%服务费。

多购时单价变化不大。

优点:1:可以检测编码规范2:可以自行制定规则3:检测后出现问题的地方标注清楚4:违规行为有划分等级5:代码走查,回归测试,白盒测试,黑盒测试各个功能点分开不足:1:没有底层输入和局部输入和局部输出功能,不但增加编写桩代码的工作量,而且有些代码的测试无法进行。

内部输入用桩来设定,与一般输入分开,难于维护。

2:由于工具不可能自动了解被测试代码的功能,生成的用例多是垃圾,意义不大。

3:没有表格驱动功能,增加了数据建立和维护成本,也不便于对数据分类集中以便人工检查数据的完整性。

4:输入输出数据分散而不直观,不能一目了然地浏览程序行为(程序行为就是什么输入下会执行哪些代码产生什么输出)。

5:覆盖状况(如哪个条件真值未覆盖)标示不清晰,没有直观逻辑结构图,分支和路径的覆盖状况难于便利地浏览。

6:没有协助用户快速找出遗漏用例的功能,难于实现高标准的覆盖。

3、工具VU概况:国内xxx公司出品,2005年V1.0发布,目前最新版本为4.4。

优点:1:自动生成测试驱动代码、桩代码;自动提供表格驱动支持,建立用例只需在表格中填数据,数据表格支持复合类型、数组、指针,多级指针可设置任一级的空指针;对于不便于表格驱动的数据,如链表、映射表,提供了数据转换接口,转换为便于表格驱动的数据。

与前两种工具一样,VU也有自动生成用例的功能,不过,VU认为工具不可能自动了解代码的功能,因此主要依靠自动用例是不现实的,只能作为一个补充。

2:解决了单元测试的核心难题:解耦合。

不需要编写桩代码,不污染产品代码,可以像设置参数一样,随意控制底层函数产生测试所需要的数据;同一用例多次调用同一底层函数,可以设定不同数据;支持在某些用例控制底层函数产生指定的数据,而另一些用例调用实际代码;3:解决了单元测试的另一个核心难题:局部输入与局部输出支持用替换选中代码、插入代码等方式,将局部数据转换为可在表格中设置输入的变量;支持多次赋值,方便地解决死循环之类的问题;支持在任意指定位置打印局部数据,并支持对局部数据的结果进行判断;这些功能不需要手工编写代码,且不污染产品代码。

4:白盒覆盖支持语句、条件值、判定、MC/DC、分支、路径覆盖的自动统计;所有未覆盖的逻辑单位具有清晰的标示;更重要的是,具有白盒用例设计功能,针对未覆盖的逻辑单位,支持从现有用例中计算出近似用例,并提供修改提示,用户按提示修改近似用例,即可完成覆盖;此功能可以快速实现高标准覆盖,例如MC/DC。

可标记不可覆盖的逻辑单位,并将标记为不可覆盖的逻辑单位从覆盖率统计中去除。

5:支持快速开发测试结果支持程序行为描述,即同时显示指定用例的输入、所执行的代码、输出;支持一边开发,一边自动更新测试代码并执行测试。

6:可维护性与可复用性产品代码修改时,测试代码自动更新,测试代码不需要手工维护;测试数据与测试代码分离,便以维护;支持将测试数据保存到文本文件,其他函数可从文本文件导入数据;支持将测试数据保存到Excel文件,其他函数可从Excel文件导入数据;复用的数据支持针对单个数据、某类型下的数据、及整个函数的所有数据。

不足:没有静态分析功能。

如果需要静态分析,可以按10:1的比例,搭配专业的静态分析工具,如PL(价格5000人民币左右)。

PL是最专业和老牌的静态分析工具,其功能明显优于RX和TX所捆绑的静态分析功能。

三、主要功能对比表四、选择建议通过上述比较可看出:VU在解决单元测试的主要难题(耦合问题、局部输入、局部输出)方面优势明显。

在测试效率上,VU的工作过程基本上就是在表格中填写数据,测试数据与测试代码分离,自动生成的测试代码自然可以自动维护。

另外,表格化的测试数据也更容易复用。

在测试效果上,三者的覆盖统计差不多,但VU有用例设计器,可以快速地完成覆盖,另外两种工具在测试复杂代码时,要完成覆盖是很困难的,Visual Unit优势明显。

服务也很重要,VU国内团队开发和服务,便于沟通,这是国外工具不能比拟的。

VU没有捆绑静态分析功能,但静态分析只不过是更严格的编译,通常,把编译器的警告等级调到最高,基本上就可以代替静态分析工具的功能,并且更便利。

如果需要静态分析,应该采购专门的静态分析工具,如PL,不但在功能上比捆绑的更专业,而且在经济上也更合算,例如,采购10个捆绑式工具,付出的是10个单元测试工具和10个静态分析工具的价钱,同时只有10个用户使用,而采购10个单元测试工具+2个静态分析工具,付出的是10个单元测试工具和2个静态分析工具的价钱,同时可以有12个用户使用。

综上所述,VU各方面均优于另外两种工具,建议采购VU。

说明以上为C或C++单元测试工具(白盒测试工具、集成测试工具)选型报告模板。

选型报告是申请采购单元测试工具(白盒测试工具、集成测试工具)时可能需要提交的技术资料。

本模板仅包含通用内容,请根据实际自行修改和补充。

李白写的“举头望明月,低头思故乡”,看月亮,必须得抬头看,不然你看见的月只是水中月,而思故乡,必须得低头,看着脚下的土地,土地连结深情,传递的思念感应才会自然。

可见,李白对抬头和低头,有看似经典的认识,只是李白的脖颈不听使唤,该低头时却抬头,该抬头时却低头,搞得李白一辈子光碰头,有时被摔的鼻青脸肿的,但这时的李白爱喝酒,喝了酒就疯疯癫癫的,于是,李白就借着痛感籍着癫意把一肚子的酒吐出来,成就了“君不见黄河之水天上来……”的诗句。

元萨都剌《北人冢上》诗:“低头下拜襟尽血,行路人情为惨切。

”可见,古人从心里是不喜欢低头的,喜欢的是抬头。

记得我以前在学校操场里喜欢低头,体育老师说我是一个没有自信的学生,还说我是一个没有阳光心态的人。

记得体育老师说过这样的一句话:“瓜子之所以长的粒粒饱满,那是因为向日葵始终抬头向着太阳。

”记得我第一次去应聘工作,应聘的工作人员看我低着头,直接就叫我回去了。

那我就抬起头吧,进家门的时候,由于我抬起头,我的头一下子就被碰出了血来,搞得我在家里好几天就不想出门的。

我走下坡的时候,依然是抬起头,这样显得自己有自信,冷不防,我一连向下栽了好几个跟斗,摔的我头破血流的。

我的头招谁惹谁了?干嘛都跟我的头过不去呢?48人的脑袋瓜不过三斤半,由于低头和抬头的缘故,造成有的人头成了“巨头”,而有的人头却成了“狗头”,还要来一点狗血喷头……唉,看来抬头与低头之间的学问确实太高深了,像我这样的孺子是搞不明白的,只能是舔一舔皮毛而已写作时,只与写作为伴,就能听到内心的声音,飘忽的灵感也能捕捉,笔下就有了属于自己的文字和思想。

就我为例,大学期间,常一个人钻在图书馆,早进晚出,看完一本书,常有感悟到笔尖,亦能有几篇散文杂评登报。

毕业后,到西双版纳工作,与内心的对话少之又少,每日工作之余,与友聚餐、喝酒、烧烤,不到凌晨绝不不回家,回家即一头醉晕埋进被子,日复一日,丧失了与灵魂独处的时间,自然再无创作灵感。

写作的人,几乎都远离正常人生活,也不遵守惯常的生活秩序。

安妮宝贝曾说,只有死去的繁华,能让我安静,所以,她常在黑暗中敲打键盘。

太温馨的生活,亦会使写作者陷于温柔之乡,懒得思考,更懒得动笔,路遥在写《平凡的世界》时,因为忽略家,忽略妻女,造成与林达的婚姻不睦,这或许不能怨路遥,因为他是个真正的写作者,是写作对孤独的需要,离间了他们的感情。

张爱玲,荒原上的孤独者,以23岁的人生阅历对人性作出冷酷、深邃、老道的剖析,生逢苍凉时代的孤独,成就了她文坛奇女的地位。

一代文学大师川端康成亦是孤独成就了他,出生不久,父母去世,7岁,祖母去世,10岁,姐姐去世,14岁,祖父去世,孤独是他500多篇小说永远的笔调,最终,他也选择在孤独中毁灭了自己。

诺贝尔文学奖获得者莫言说,在我少年时期,吃不饱、穿不暖,牵着一头牛或者羊,在四面看不到人的荒凉土地上孤独地生存。

饥饿和孤独是我写作的源泉。

所以说,很多人不是写不出来东西,只是缺乏独处的机会,一旦自处,孤独,下笔,无需微言大义,只需直言生活,定会渐渐文思汹涌,像有神魔推动。

这种深入骨髓的孤独,能让人打开灵感的黑匣子,在里面不能看到多少美好东西,却能自由的在一片完全属于自己内在精神空间翱翔,在孤独中煎熬自己、消耗自己的过程,亦生脱胎换骨升华自己的过程。

相关主题