测试覆盖率工具EclEmma使用培训

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

测试覆盖 率指标
方法覆盖率
第一个基本语句 块被执行
Mantis使用培训
8
培训内容
术语介绍 EclEmma介绍 EclEmma使用
安装 Coverage运行模式 运行模式 查看结果 合并结果 导出报告 导入数据 高级特性
Mantis使用培训 9
安装(一) Eclipse 标准的 Update 机制远程安装
测试覆盖率工具 EclEmma使用培训
测试小组
20080604
目的
提高单元测试质量 ,从而提高项目整体开发效 率和软件质量
Mantis使用培训
2
培训内容
术语介绍 EclEmma介绍 EclEmma使用
安装 获得测试覆盖率 查看结果 合并结果 导出报告 导入数据 高级特性
Mantis使用培训
3
术语介绍 测试覆盖率
Mantis使用培训
22
HTML报告-项目
Mantis使用培训
23
HTML报告-包
Mantis使用培训
24
HTML报告-类/方法
Mantis使用培训
25
导入session文件 可将该session的测试覆盖率数据从外部导入
Mantis使用培训
26
导入session文件
Mantis使用培训
27
测试代码对被测功能代码的覆盖程度
测试覆盖率实现技术
Mantis使用培训
4
测试覆盖率实现技术
EclEmma 为Class Instrumentation方 式,不会改变项目文 Instrumentation:代码注入,在产品代码的关键 件中的class文件
位置插入统计代码,从而获得测试覆盖率数据
Class Instrumentation: 把统计代码插入编译好 的.class文件 Source Instrumentation:把统计代码插入源代码并编 译成新的.class文件
培训内容
术语介绍 EclEmma介绍 EclEmma使用
安装 Coverage运行模式 运行模式 查看结果 合并结果 导出报告 导入数据 高级特性
Mantis使用培训 28
高级特性 Coverage视图工具栏 EclEmma的配置界面
Mantis使用培训
29
Coverage视图工具栏
重新执行当前session 最小/大化视图 显示更多菜单 定位到其他视图选中的 Java元素的测试覆盖率
Mantis使用培训
13
显示Coverage工具按钮(二)
Mantis使用培训
14
显示Coverage工具按钮(三)
Mantis使用培训
15
示例项目介绍 示例项目源代码组织结构:
Random:被测代码 RandomTest1:Random类的第一个 JUnitTestCase类 RandomTest2:Random类的第二个 JUnitTestCase类 Other: 与其他3个类无关的类(设置这 个类的原因,稍后会做说明) Other包:无关包(设置这个包的原因, 稍后会做说明)
Байду номын сангаас
绿色:全部执行 黄色:部分执行 红色:未执行
Mantis使用培训
20
导出报告 在Coverage视图主区域中点击右键,出现的 快捷菜单中选择”Export Report…”
Mantis使用培训
21
导出报告 session:一次测试覆盖率交互活动 要导出的session 选择报告的类型(HTML/XML/Text/EMMA session) 存放位置
Mantis使用培训
10
安装(二) http://update.EclEmma.org/
Mantis使用培训
11
培训内容
术语介绍 EclEmma介绍 EclEmma使用
安装 Coverage运行模式 运行模式 查看结果 合并结果 导出报告 导入数据 高级特性
Mantis使用培训 12
显示Coverage工具按钮(一)
EclEmma介绍
Eclipse插件 工作原理:Class Instrumentation(把统计代 码插入编译好的.class文件) 测试覆盖率指标
Mantis使用培训
7
测试覆盖率指标
行覆盖率
部分行覆盖: a>b?a:b
基本语句块覆盖率
基本语句块:没有ifelse分支的代码区域
类覆盖率
由JVM加载并初 始化
Mantis使用培训
31
合并后的结果 测试覆盖率是多次测试覆盖率的累积
Mantis使用培训
32
显示更多菜单(过滤元素) 点击 按钮后会出现更多菜单
以项目/根部包/当前包/ 类为根节点,显示各个 元素的测试覆盖率 以字节码指令/语句块/ 行/方法/类为单位,显 示元素的测试覆盖率 隐藏/过滤未使用的类, 隐藏 过滤未使用的类, 过滤未使用的类 默认未选中
Custom JVM:在JVM中把统计代码插入.class。 测试覆盖率分析可以在JVM执行测试代码的过程 中完成
Mantis使用培训 5
培训内容
术语介绍 EclEmma介绍 EclEmma使用
安装 Coverage运行模式 运行模式 查看结果 合并结果 导出报告 导入数据 高级特性
Mantis使用培训 6
Coverage
删除当前/所有session 合并session
工具栏
选择session 折叠所有节点
当只有一次测试覆盖率测试结果时,合并session按钮不可用,显示为灰色。
Mantis使用培训 30
合并结果 可以将多次测试覆盖率的结果进行合并 选择Coverage视图工具栏上的 按钮,进入 如下界面:
Mantis使用培训
33
显示更多菜单 点击 按钮后会出现更多菜单
Mantis使用培训
34
EclEmma的配置界面 在测试覆盖率工具栏中点击“Coverage…”进 入
Mantis使用培训
35
设置代码注入方式
Mantis使用培训
36
两种注入方式对比
Outside Instrumentation:修改class文件的备份文件(这个 备份文件保存在一个与项目文件不同的临时目录中),默认 方式。 In-place instrumentation:直接修改项目中的class文件。一 般不推荐使用这个功能。
Mantis使用培训
16
运行测试程序 以RandomTest1为例
Mantis使用培训
17
查看结果
Mantis使用培训
18
Coverage视图
对用output路 1 项目 径相同的类, 2 源文件 无法单独为 3包 某个类分析 4类 其测试覆盖 5 方法 率
Mantis使用培训
19
标注源代码
Mantis使用培训
37
设置JUnit版本
Mantis使用培训
38
问题讨论
Mantis使用培训
39
谢谢!
Mantis使用培训
40
相关文档
最新文档