代码覆盖率

代码覆盖率简介

作为一个测试人员,保证产品的软件质量是其工作的首要目标。为了这个目标,测试人员常常会通过很多手段或工具来加以保证,覆盖率就是其中比较重要的一个。我们通常会将测试覆盖率分为两个部分,即“需求覆盖率”和“代码覆盖率”。需求覆盖率:指测试人员对需求的了解程度,根据需求的可测试性拆分成各个子需求点,来编写相应的测试用例,最终建立一个需求和用例的映射关系,以用例的测试结果来验证需求的实现,可以理解为黑盒覆盖。代码覆盖率:为了更加全面地覆盖,我们可能还需要理解被测程序的逻辑,需要考虑到每个函数的输入与输出、逻辑分支代码的执行情况,这个时候我们的测试执行情况就以代码覆盖率来衡量,可以理解为白盒覆盖。以上两者完全可以相辅相成,用代码覆盖结果反向地检验需求覆盖(用例)的测试是否充分完整。

覆盖率工具

1.Javascript测试覆盖率工具JSCoverage:一个用于度量Javascript程序的代码覆盖率的工具,JSCoverage支持IE6、IE7、Firefox2、Firefox3、Opera、Safari等流行的浏览器,支持Windows平台和Linux平台,JSCoverage是开源软件,官方网站为:http://siliconforks.com/jscoverage/。

2.Java测试覆盖率工具

Emma:离线插桩模式,即先编译出class文件,然后插桩,打包运行。不支持分支覆盖率,其使用手册地址为:http://emma.sourceforge.net/reference_single/reference.html。

JaCoCo:特色是引入agent,支持在线插桩模式,即在class加载的时候即时插桩,同时也支持离线插桩,具有丰富的dump机制,支持分支覆盖率,运行速度比较快。其使用地址为:http://eclemma.org/JaCoCo/index.html。支持gradle方式,我们在Android覆盖率方面选用的工具为JaCoCo,优势主要集中在两点:一是JaCoCo社区比较活跃,它是原Emma团队新推出的覆盖率工具,Emma项目已经很久没有更新了;二是JaCoCo比Emma多了分支覆盖。

Coverlipse:一个Eclipse的Code coverage插件。

Cobertura:一种开源工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码和没有执行哪些代码,来测量测试覆盖率。除了找出未测试到的代码并发现bug外,Cobertura还可以通过标记无用的、执行不到的代码来优化代码,还可以提供API实际操作的内部信息。

3..NET测试覆盖率工具

Clover.NET:Visual Studio的代码覆盖率统计工具,其官方网站为:http://www.cenqua.com/clover.net/。

NCover官方网站为:http://ncover.org/。

PartCover:与NCover非常相似,PartCover是针对.NET的一个开源代码覆盖工具。它包括了一个控制台应用程序、GUI覆盖浏览器,以及用在CC.NET中的xsl转换。

4.C/C++测试覆盖率工具

Bullseye Coverage:Bullseye公司提供的一款C/C++代码覆盖率测试工具,除了支持各种UNIX下的编译器之外,在Windows下还支持VC、Borland C++、Gnu C++、Inter C++。提供的代码覆盖率是分支覆盖率而不是一般的代码覆盖率,个人认为分支覆盖率比代码覆盖率更好。Bullseye Coverage可以从http://www.bullseye.com/上获取。

5.Ruby测试覆盖率工具

rcov:一个用于诊断Ruby代码覆盖率的工具,它最主要的用途就是确定单元测试是否覆盖到所有代码,rcov使用一个经过优化的C运行,因此性能相当惊人,同时它还提供多种格式的输出。

6.其他
AutomatedQA公司的AQtime。AQtime运行在Windows平台上,它支持.NET应用和非.NET应用,但不支持Java应用。AQtime除了包含代码覆盖率监测以外,还包括性能监视等功能。DevPartner Studio的Web script Coverage工具。该工具主要是收集Web客户端script脚本覆盖率的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值