前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >测试覆盖率工具:EclEmma

测试覆盖率工具:EclEmma

作者头像
测试小兵
发布2019-11-19 22:31:07
1K0
发布2019-11-19 22:31:07
举报
文章被收录于专栏:猪圈子猪圈子

1 测试覆盖率实现技术

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

1.Class Instrumentation: 把统计代码插入编译好的.class文件

2.Source Instrumentation:把统计代码插入源代码并编译成新的.class文件

  • Custom JVM:在JVM中把统计代码插入.class。测试覆盖率分析可以在JVM

1.执行测试代码的过程中完成

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所示

5 示例项目介绍

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

TestNG请参考: TestNG 入门教程

5.1 创建项目

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

源代码:TestngAndEclEmmaDemo.zip

5.2 用Coverage as TestNG Suite跑用例

5.3 跑后结果

5.4 导出HTML报告

如何导出:

  • 要导出的session (session:一次测试覆盖率交互活动)
  • 选择报告的类型(HTML/XML/Text/EMMA session)
  • 存放位置

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

列名含义:

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

5.5 导入导出合并覆盖率Session

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

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

其他Eclipse覆盖率插件

EclEmma、Clover与Cobertura插件

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python测试社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 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包的覆盖率
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档