摘抄:
----------------------------------------------
EMMA 是一个用于检测和报告 JAVA 代码覆盖率的开源工具。它不但能很好的用于小型项目,很方便得得出覆盖率报告,而且适用于大型企业级别的项目。
EMMA 有许多优点,首先你能免费得到它,并把它用于自己项目的开发。它支持许多种级别的覆盖率指标:包,类,方法,语句块(basic block)和行,特别是它能测出某一行是否只是被部分覆盖,如条件语句短路的情况。它能生成 text,xml,html 等形式的报告,以满足不同的需求,其 html 报告提供下钻功能,我们能够从 package 开始一步步链接到我们所关注的某个方法。EMMA 能和 Makefile 和 Ant 集成,便于应用于大型项目。特别还须指出的一点是,EMMA 的效率很高,这对于大型项目来说很重要。
EMMA 是通过向 .class 文件中插入字节码的方式来跟踪记录被运行代码信息的。EMMA 支持两种模式:On the fly 和 Offline 模式。
On the fly 模式往加载的类中加入字节码,相当于用 EMMA 实现的 application class loader 替代原来的 application class loader。
Offline 模式在类被加载前,加入字节码。
On the fly 模式比较方便,缺点也比较明显,如它不能为被 boot class loader 加载的类生成覆盖率报告,也不能为像 J2EE 容器那种自己有独特 class loader 的类生成覆盖率报告。这时,我们能求助于 Offline 模式。
EMMA 也支持两种运行方式:Command line 和 Ant。
命令行一般和 On the fly 模式一起适用,对于简单的项目能够快速产生覆盖率报告。通过 Ant task 来运行 EMMA 的话,特别适用于大型的项目。
-----------------------------------------------
通常情况下,要求代码覆盖率达到80%以上,下面是几种常见的覆盖度量方式。
1. 语句覆盖,度量被测代码中每个可执行语句是否执行到了。
2. 条件覆盖,度量判定中的每个子表达式结果true 和false是否被执行到了。条件覆盖不是将判定中的每个表达式的结果进行排列组合,而是只要每个表达式的结果true和false测试到了就OK了。
3. 路径覆盖,度量每个分支都执行到了。
a. 覆盖率数据只代表你测试过哪些代码,不能代表你是否测试好这些代码。
b. 不要过于相信覆盖率数据
c. 不要只拿语句覆盖率来考核测试人员
d. 路径覆盖率 > 条件覆盖率 > 语句覆盖率
e. 测试人员不能盲目追求代码覆盖率,而应该想办法设计更多更好的用例,哪怕设计出来的案例对覆盖率一点影响也没有。
对于项目,通常需要我们设计出一个更好的测试计划,然后根据测试计划来写测试用例,而不是在写测试用例的时候,考虑有哪些代码没有覆盖到。
相关推荐
单元测试的代码覆盖率至少80%!一大早,一个年轻的程序员问大师:“我准备写一些单元测试用例。代码覆盖率应该达到多少为好?”大师回答道:“不要考虑代码覆盖率,只要写出一些好的测试用例即可。” 一大早,一个...
windows平台下C/C++代码覆盖率检查工具
代码覆盖率是反映测试用例对被测软件覆盖程度的重要指标,既可以用于单元测试,也可以用于黑盒测试。代码覆盖率并不能表明覆盖到的代码不包含缺陷,不能完全用来衡量代码质量。但是,它可以帮我们定位到没有被测试...
lcov测试代码覆盖率例程
用户代码覆盖率测试 ,开源可重写,对于产品质量控制非常重要
Java单元测试覆盖率工具,该工具包为eclipse插件包,可以很方便的跟eclipse或myeclipse集成,配合junit测试代码覆盖率。
现在大部分公司做数字芯片开发都需要用到Verilog,在RTL 代码即将完成时,有必要使用vcs + DVE去查看经过仿真后的CASE代码覆盖率,保证代码本身是没问题的。
代码覆盖率驱动的测试.pdf,官方详细介绍代码覆盖率驱动的测试经典文档
测试代码覆盖率 eclipse的一个插件eclemma-1.2.2,简单、易用。
Super-jacoco应用统计代码覆盖率及问题处理
Bullseye Coverage 是Bullseye 公司提供的一款C/C++代码覆盖率测试工具,个人觉得是比Rational 的Pure Coverage 更优秀的测试工具。相对于Rational 的Pure Coverage,Bullseye Coverage 支持的C/C++的编译器更多,...
c++代码覆盖率,很方便,直接一个命令行就ok了。c++代码覆盖率,很方便,直接一个命令行就ok了。c++代码覆盖率,很方便,直接一个命令行就ok了。
Modelsim代码覆盖率功能Code coverage,能报告出statement(语句)、branch(分支)、condition(条件)、expression(表达)、toggle(信号翻转)、fsm(有限状态机)等多种覆盖率情况。 详细见博客:...
cobertura和weblogic整合使用-代码覆盖率测试 里面详细步骤和使用说明,并附加xml文件,不懂的可以QQ我,147806015,
基于Jacoco的代码覆盖率实时监控与精准测试实践-QECon深圳站2021年全球软件质量&效能大会
Android Native C++代码覆盖率统计 Demo。 C++代码需要基于Clang编译(Android Studio目前默认用Clang),Android NDK版本为NDK 21。
可以结合junit与Clover一起用,单元测试和代码覆盖率
代码覆盖率驱动的测试资料,经由资料大汇总
Coverage.py用于Python的代码覆盖率测量
Ruby 代码覆盖率工具 Coco ,Coco 是一个 Ruby 的代码覆盖率工具,可通过在 RSpec 或者单元测试里通过简单的 req...