博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试覆盖率工具:EclEmma
阅读量:7096 次
发布时间:2019-06-28

本文共 1444 字,大约阅读时间需要 4 分钟。

测试覆盖率工具:EclEmma

2016-08-26

目录

1

2
3
4
5
  5.1
  5.2
  5.3
  5.4
  5.5
  5.6

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请参考: 

5.1 创建项目

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

源代码:

图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插件

 

转载于:https://www.cnblogs.com/Ming8006/p/5811425.html

你可能感兴趣的文章
C++ 文件的复制、删除、重命名
查看>>
Oracle Patch Set Update and Critical Patch Update April 2011 Released
查看>>
hdu 2189
查看>>
std::map, std::multimap, std::tr1::unordered_map 区别 - 笔记本 - 博客频道 - CSDN.NET
查看>>
/usr/bin/ld: cannot find -lxxx问题总结
查看>>
C 语言 restrict 关键字的使用
查看>>
ASP.NET 自定义成员资格提供程序 Part.4(使用自定义提供程序类)
查看>>
ASP.NET调用V3版本的Google Maps API
查看>>
苹果面试8大难题及答案
查看>>
运行 tomcat 错误 : java.lang.Exception: Socket bind failed: [730048] 解决方法:
查看>>
并行接口和串行接口
查看>>
Adding a nested ESXi on 5.1
查看>>
类型函数C语言void关键字
查看>>
数字频率计的verilog实现
查看>>
使用递归算法结合数据库解析成java树形结构
查看>>
SqlServer和Oracle中一些常用的sql语句6 存储过程
查看>>
喝咖啡写脚本,顺便再加一点点CSS语法糖 2.五分钟学会Less
查看>>
编辑简单的 shell程序
查看>>
fileupload的乱码解决
查看>>
mini2440裸机之I2C
查看>>