测试覆盖率工具:EclEmma

目录

1 测试覆盖率实现技术
2 EclEmma介绍
3 EclEmma测试覆盖率指标
4 EclEmma安装
5 示例项目介绍
  5.1 创建项目
  5.2 用Coverage as TestNG Suite跑用例
  5.3 跑后结果
  5.4 导出HTML报告 
  5.5 导入导出合并覆盖率Session
  5.6 测试引用的jar包的覆盖率

1 测试覆盖率实现技术


返回

  • Instrumentation:代码注入,在产品代码的关键位置插入统计代码,从而获得测试覆盖率数据

    • Class Instrumentation: 把统计代码插入编译好的.class文件
    • Source Instrumentation:把统计代码插入源代码并编译成新的.class文件
  • Custom JVM:在JVM中把统计代码插入.class。测试覆盖率分析可以在JVM执行测试代码的过程中完成

2 EclEmma介绍


返回

  • 一个优秀的开源软件测试工具
  • eclipse的一个插件
  • 能够对由 Java 语言编写的程序进行覆盖测试
  • 能够在工作平台中启动
  • 直接对代码覆盖进行分析
  • 覆盖结果将立即被汇总并在Java源代码编辑器中高亮显示
  • 也可程序运行的结果生成详尽的覆盖测试报告
  • 可以结合JUnit、TestNG使用
  • 工作原理:Class Instrumentation

3 EclEmma测试覆盖率指标


返回

  • 行覆盖率:  部分行覆盖:a>b?a:b
  • 基本语句块覆盖率:  基本语句块:没有if-else分支的代码区域
  • 类覆盖率:  由JVM加载并初始化
  • 方法覆盖率:  第一个基本语句块被执行

4 EclEmma安装


返回

  1. 启动eclipse -> 点击Help菜单 -> Install New Software,在弹出的对话框中,点击Add
  2. 输入Name,例如EclEmma。输入Location:http://update.eclemma.org/
  3. 安装后重新启动eclipse,如果成功安装,工具栏上会出现一个新的按钮,如图1所示

图1 EclEmma按钮

5 示例项目介绍


返回

下面通过项目介绍如何在使用了TestNG测试框架的项目中的使用EclEmma测试覆盖率

TestNG请参考: TestNG 入门教程

5.1 创建项目

项目中使用TestNG测试框架,包含被测类'Calculator'和测试类'CalculatorTest'。

源代码:TestngAndEclEmmaDemo.zip

图2 测试结构

5.2 用Coverage as TestNG Suite跑用例

图3 Coverage as TestNG Suite

5.3 跑后结果

图5 标注源代码和Coverage视图

5.4 导出HTML报告

如何导出:
  1. 要导出的session (session:一次测试覆盖率交互活动)
  2. 选择报告的类型(HTML/XML/Text/EMMA session)
  3. 存放位置
 图6 导出报告 

图7 HTML报告

HTML报告可以逐层展开,点击方法还可以看到代码的覆盖情况。

列名含义:

  • missed Instructions代码覆盖率,
  • Missed Branches逻辑分支覆盖率,
  • Missed Cxty判断执行数,
  • missed Lines代码行数,
  • Methods方法个数。

5.5 导入导出合并覆盖率Session

既可以导出session,也可以导入session,还可以合并session,这样,可以将多次测试覆盖率的结果进行合并

图8 合并Session

5.6 测试引用的jar包的覆盖率

图9 测试引用的jar包的覆盖率

其他Eclipse覆盖率插件

EclEmma、Clover与Cobertura插件

测试覆盖率工具:EclEmma相关推荐

  1. 阿里p8推荐,测试覆盖率工具—Jacoco,实用性极佳

    测试覆盖率工具 测试过程中根据需求文档和设计文档编写测试用例.执行测试:为了更加全面的覆盖,我们可能还需要理解被测程序的逻辑,需要考虑到每个函数的输入与输出,逻辑分支代码的执行情况,这个时候我们的测试 ...

  2. 测试覆盖率工具--EMMA

    测试覆盖率(Code Coverage) 测试覆盖率,简单的说,就是评价测试活动覆盖产品代码的指标.测试的目的,是确认产品代码按照预期一样工作,也可以看作是产品代码工作方式的说明文档.进一步考虑,测试 ...

  3. 代码扫描工具测试覆盖率工具

    测试覆盖率工具 转载于:https://www.cnblogs.com/vivian-test/p/5398289.html

  4. iOS 覆盖率检测原理与增量代码测试覆盖率工具实现

    背景 对苹果开发者而言,由于平台审核周期较长,客户端代码导致的线上问题影响时间往往比较久.如果在开发.测试阶段能够提前暴露问题,就有助于避免线上事故的发生.代码覆盖率检测正是帮助开发.测试同学提前发现 ...

  5. ios 单元测试覆盖率怎么查看_iOS 覆盖率检测原理与增量代码测试覆盖率工具实现...

    背景 对苹果开发者而言,由于平台审核周期较长,客户端代码导致的线上问题影响时间往往比较久.如果在开发.测试阶段能够提前暴露问题,就有助于避免线上事故的发生.代码覆盖率检测正是帮助开发.测试同学提前发现 ...

  6. Android 增量代码测试覆盖率工具实践

    当业务快速发展,新业务不断出现,开发同学粗心的情况下,难免会出现少测漏测的情况,如何保证新增代码有足够的测试覆盖率?当一段正常的代码,开发却修改了,测试人员没有测试其功能,如果保证能够发现? 所以代码 ...

  7. Android增量代码测试覆盖率工具

    美团业务快速发展,新项目新业务不断出现,在项目开发和测试人员不足.开发同学粗心的情况下,难免会出现少测漏测的情况,如何保证新增代码有足够的测试覆盖率是我们需要思考的问题. 先看一个bug: 以上代码可 ...

  8. java测试覆盖率工具_【腾讯TMQ】JAVA代码覆盖率工具JaCoCo-原理篇(下)

    三.JaCoCo使用方式 使用方式有很多,这里贴出了相应的参考链接,根据项目的不同可以灵活供有需要的读者去学习. 3.1 Apache Ant方式 参见 http://eclemma.org/jaco ...

  9. 测试覆盖率统计工具_使用测试工具和方法进行测试覆盖率

    测试覆盖率统计工具 概述: 要定义"测试覆盖率",我们必须谈论以下主题: 测试覆盖的目的. 不同类型的测试覆盖率标准. 测试覆盖率指标 单元测试范围 测试覆盖率工具 测试覆盖范围的 ...

最新文章

  1. HTML全局属性data-
  2. bzoj3224: Tyvj 1728 普通平衡树(打个splay暖暖手)
  3. [算法]两个栈实现一个队列
  4. 在Anaconda中实现多版本Python共存
  5. Android 4.4环境搭建——Android SDK下载与安装
  6. 搜苹果ipad版_春季课前第3轮评估! 安卓苹果电脑端全平台支持!
  7. Java 网络编程实例—多线程聊天室
  8. Ragel——基于有限状态机用于产生源码的编译器
  9. Python调用有道智云文本翻译API接口实现“智能”伪原创
  10. 由于应用universal link 校验不通过 ios应用升级SDK 更换Universal Links校验
  11. 怎么删除win10的系统更新服务器,教你怎么永久删除Win10更新助手(Update Assistant)...
  12. 安卓开发 投屏安卓设备到电脑端 scrcpy
  13. 环境保护刻不容缓,智慧治理迎来新生!
  14. 数据标准化的方法与作用
  15. get(obj, “a.b[0].c“, 0)
  16. java中时区的时令问题
  17. Android 应用安装过程分析
  18. C语言程序设计第二次作业
  19. CFA1级 JC网课
  20. Fiddler 手机抓包

热门文章

  1. element中表格报错 ResizeObserver loop completed with undelivered notifications.
  2. 8款超高效率的办公软件,增加工作幸福感,千万别错过
  3. ✔G【OPA828】放大器模块 超低输入电流偏置 同相/反相放大器 跟随器
  4. keil5中新建一个STM32工程
  5. 基于mind+实时模式实现语音对讲功能
  6. libcurl相关知识
  7. 世界上面积超过10000平方公里的淡水湖排名
  8. 【身份证识别】BP神经网络身份证号码识别【含Matlab源码 1344期】
  9. .net导入Excel 并显示进度条
  10. 0.5mm的焊锡丝能吃多大电流_工程施工中怎样计算要用多大的电线电缆?