分享
 
 
 

Visual Unit 2

王朝百科·作者佚名  2010-03-13
窄屏简体版  字體: |||超大  

Visual Unit是什么?

Visual Unit,简称VU,是一种可视化、自动化、标准化、高效率的C/C++单元测试工具,功能强大并且易学易用。

为什么要进行单元测试?

测试是保证软件产品质量的基本手段,单元测试就是将代码单元与其他代码隔离进行测试,相当于电视机工厂对元器件的测试。软件单元测试可能比电视机的元器件测试有更高必要性和价值,因为代码单元是人工编写的,"故障率"更高,软件复杂度通常也更高,导致在集成后查找代码错误的单位成本也高得多。

单元测试为什么难于实施?

工厂在组装电视机前都会对元器件进行测试,这是保证质量减少后续测试成本的最好选择,但很多软件开发企业都没有实施单元测试,为什么?成本太高或耗时太多工期不允许,成本高或耗时多的原因之一,是缺少测试效果好测试效率高的单元测试工具。

传统的单元测试工具大致分为两类:手工类和自动类,自动类使用自动静态分析和自动生成测试用例进行动态测试,只能发现有特征错误,而有特征错误一般不会超过20%,大多数代码错误都是自动系列无法发现的;手工类理论上可能发现所有错误,但要人工编写测试代码,耗费时间一般是编码时间的一倍到几倍。有些自动单元测试工具也提供手工方法,当然也要面对手工方法耗时多的问题。即使不考虑价格,由于自动类的测试效果远不能满足需要,更多企业还是选择手工类,投入编码时间的一至几倍来进行单元测试,不但成本高昂,而且常常难于实施。

在开发工具领域内,单元测试工具是最薄弱的一环,多年来都没有太大的进展。对于大多数软件开发企业来说,单元测试也是开发过程中最薄弱的环节。

Visual Unit介绍

经过五年的研发,我们创新了单元测试理论,找出了一套既保证测试效果又具有很高效率的方法,并完整地实现了这套方法,开发出新一代单元测试工具Visual Unit。

Visual Unit 1.0于2005年8月底公开测试,10月初发布1.0正式版。V2.0是在V1.0大量应用的基础上,完全重新设计的版本。

评价单元测试工具的应用价值,主要有几个指标:可用性、测试效果、测试效率,开发效率。

可用性:高度耦合的代码难于分割测试一直是单元测试的主要难点,VU2具有完善的桩功能,包括:补齐(自动生成未定义符号)、隔离(自动生成桩代码替换底层代码)、控制(在用例中随意控制底层代码的行为),从开始编码到升级维护的各个阶段,均可对任意层次、范围的代码实施分割测试,对被测试代码完全没有可测性要求。

测试效果:测试效果通常用白盒覆盖率来衡量,Visual Unit独有的"基于现有用例找出遗漏用例"的技术,可以轻松实现100%的语句、条件、分支、路径覆盖。这里说的是"实现"这些覆盖,而不仅仅是"统计"出覆盖率,仅仅统计出覆盖率意义并不太大,剩余的往往是最难的,没有自动工具的支持,找出遗漏用例是很困难的。

测试效率:自动生成测试代码和用例框架;功能强大的用例编辑器可快速建立用例集;无需编写代码即可随意控制底层代码行为;使用用例设计器高效找出遗漏用例;自动生成边界测试用例。能自动化的都已自动化,人的工作量已压缩到最低限度,保证了测试效率。

开发效率:VU还为高效开发调试提供支持。编码过程中,自动同步更新,随时可以执行测试;自动显示输入输出数据,可用简单语法输出任意中间变量、表达式的值,自动显示代码执行状况,使程序行为一目了然,帮助整理和验证编程思维,并能快速排除错误;增强调试器功能,包括:可视化选择调试输入、自动中断、无限制重复或后退、调试过程中切换除入。无需增加工作时间和劳动强度,在原来用于编码的时间内可以同时完成编码和基本单元测试。

从"桩控制"功能看VU2的技术领先地位

VU的多数功能皆为独有,难于与其他工具一对一比较,但"桩控制"在VU之前就具有成熟的技术,很多单元测试工具都已实现此功能,还有专门产品,因此可以作为判断VU技术地位的一个参考点。"桩控制",或者Stub、Mock,目的都差不多,都是在用例中控制底层代码的行为,即在底层代码未实现、被隔离、或不符合测试要求时,通过一定的技术手段模拟底层代码的行为。对于VU来说,"桩控制"是一个重要功能,但只是一个三级功能(用例编辑器下的用例助手下的一个功能),仅仅这一个功能,就具有多项重要的技术进步:

不需要编写代码;

不仅可以设定返回值,还可以设定输出参数、成员变量、全局变量的值,支持任意数据类型;

多次调用同一子函数可以分别设定不同的行为,例如,指定返回1,2,3,4,那么子函数第一次执行返回1,第二次执行返回2…;

自动判断子函数是否被调用和调用次数(在自动控制等领域具有重要价值);

可以屏蔽桩控制,改为调用实际代码(只需重设一下选项)。

VU2部分功能清单

具有完善的桩功能,包括:补齐、隔离、控制,从开始编码到升级维护的各个阶段,均可对任意层次、范围的代码实施分割测试;

自动生成测试代码和用例框架;

可视化编辑测试用例,用简单语法判断各种输出,还可自动判断中间变量;

可在用例中随意控制子函数的行为,包括设定返回值、输出参数、成员变量、全局变量的值,多次调用同一子函数可以设置不同的行为;

自动统计语句、条件、分支、路径覆盖;

显示参数、成员变量、返回值等输入输出数据;

显示每个用例所执行的代码;

自动画出逻辑结构图,显示每个用例的执行路径;

显示逻辑结构图中任一语句块、分支、分支结构、路径的代码;

逻辑结构图可自由裁剪,语句块、分支、分支结构、路径均可删除/恢复;

用例设计器可轻松找出遗漏用例,实现100%的语句、条件、分支、路径覆盖;

自动描述程序行为,帮助整理、验证编程思路,提高编程效率,快速排除程序错误;

增强调试器功能,自动支持后退、重复、可视化选择输入、调试中切换输入;

自动生成HTML格式的测试报告。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有