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