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

合集下载

覆盖率介绍(内部培训)

覆盖率介绍(内部培训)

选择覆盖 率类型
工具自动 关联到该 行
选中没有 覆盖的代 码
代码覆盖率及在UVF中的应用
条件覆盖率详细报告
选择覆盖 率类型
工具自动 关联到该 行
选中没有 覆盖的条 件
覆盖率介绍
3
功能覆盖率及在UVF中的应用
功能覆盖率及在UVF中的应用
针对功能覆盖率的验证
建立能够自动统计功能覆盖率的模型,通过该模型,可以方便地得到 当前的功能覆盖率,并根据它调整验证策略,使仿真收敛。
功能覆盖率及在UVF中的应用
功能覆盖率模型的工作流程
设置功能点
用大量随机种子运行 受约束的测试用例
检查用例是否通过
存储当前用例覆盖率 信息 修改用例描述或者约 束 合并覆盖率信息,得 到覆盖率
覆盖率不达标
功能覆盖率及在UVF中的应用
UVF中的功能覆盖率模型
UVF的功能覆盖率模型是 SV模型,为了结合 vcs和 ncsim仿真器对 SV 语法的支持情况,功能覆盖率模型可以用下图表示:
代码覆盖率及在UVF中的应用
代码覆盖率概要信息查询
带代码覆盖率回归测试后,在 Regression子页面中点中关注的用例或 者ALL,然后就可以在 Coverage子页面中查询代码覆盖率的概要信息。
代码覆盖率及在UVF中的应用
vcs仿真器下代码覆盖率详细信息查询
步骤一:右键点击 Coverage子页面 Code栏,弹出 View Detail对话框。 然后左键点击 View Detail对话框启动 FireFox浏览器自动获取当前窗口 的代码覆盖率详细信息。
覆盖率介绍
3 1 3 2 3
覆盖率简介 代码覆盖率及在UVF中的应用 功能覆盖率及在UVF中的应用

如何进行代码的单元测试与覆盖率测试

如何进行代码的单元测试与覆盖率测试

如何进行代码的单元测试与覆盖率测试单元测试是软件开发中的一项重要实践,它用于确保代码的质量和稳定性。

单元测试是针对程序的最小可测试单元进行的,通常是函数、方法或类。

覆盖率测试是一种评估测试套件质量的度量方法,它可以衡量被测试代码的执行情况。

本文将介绍如何进行代码的单元测试和覆盖率测试。

一、单元测试单元测试是开发者在开发过程中主动测试代码逻辑是否正确的方法之一。

下面是一些进行单元测试的最佳实践:1.选择合适的测试框架选择一个适合你项目的单元测试框架是很重要的。

常用的单元测试框架包括JUnit(Java)、pytest(Python)、Mocha (JavaScript)、JUnit(JUnit)等。

2.编写测试用例编写测试用例是单元测试的核心。

测试用例应该覆盖尽可能多的代码路径和边界条件,以确保代码在各种情况下都能正常工作。

可以使用测试框架提供的断言方法来验证代码的行为是否符合预期。

3.模拟依赖在进行单元测试时,为了隔离被测试代码和外部依赖,通常需要使用模拟对象或桩对象来替代外部依赖。

这可以通过使用测试框架提供的模拟对象或者使用依赖注入来实现。

4.自动化测试自动化测试是一种自动运行测试用例的方式,可以节省时间和精力,提高测试的效率。

可以使用构建工具(如Maven、Gradle)或集成开发环境(IDE)中的插件来运行测试用例。

5.持续集成为了确保代码的稳定性,应将单元测试纳入到持续集成流程中。

持续集成工具(如Jenkins、Travis CI)可以在代码提交后自动运行单元测试,并提供相应的测试报告。

二、覆盖率测试覆盖率测试是一种衡量测试套件对被测试代码覆盖程度的方法。

它可以帮助开发者评估测试用例对代码的覆盖情况,指导测试用例的编写和改进。

下面是进行覆盖率测试的几个步骤:1.选择覆盖率工具选择一个合适的覆盖率测试工具,常用的工具包括JaCoCo (Java)、coverage.py(Python)、Istanbul(JavaScript)等。

软件测试--开发者测试

软件测试--开发者测试

04 Java反射机制
在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法; 生成动态代理。
04 Java反射机制
需要获取到class类,得到了这个类以后就可以得到class文件里面 所有的信息 -包括属性,构造方法,普通方法。得到class类的三种 常用方法 类名.class 对象.getClass() 使用Class.forName(“类名”);
也没有必要人工梳理测试结果的报告。 JUnit 测试可以被组织为测试套件,包含测试用例,甚至其他的测
试套件。 JUnit 在一个条中显示进度。如果运行良好则是绿色;如果运行失
败,则变成红色。
03 Junit基本用法
1)创建一个简单的类来作为测试用例 2)创建Test Case类
向测试类中添加测试方法方法; 在测试方法前加上注释@test; 执行测试条件并应用Junit中的API来检查。
03 JUnit中的API
JUnit重要的API: Assert:断言方法的集合 TestCase:一个定义了运行 多重测试的固定装置 TestResult:集合了还行测试样例的所有结果 TestSuite:测试的集合
03 JUnit中的API
Assert类的重要方法: void assertEquals(boolean expected, boolean actual) 检查
开发者测试
--曹石超
目录
关于开发者测试 测试工具 JUnit单元测试框架 JAVA反射机制
01 关于开发者测试
01 什么是开发者测试
在软件开发过程中,一个程序从开始开发到交付使用,中 间涉及了包括单元测试、集成测试、系统测试等许多测试环 节。其中由开发者完成的代码级测试部分称为开发者测试。

测试覆盖率工具EclEmma使用培训 共41页PPT资料

测试覆盖率工具EclEmma使用培训 共41页PPT资料

Mantis使用培训
33
显示更多菜单 点击 按钮后会出现更多菜单
Mantis使用培训
34
EclEmma的配置界面
在测试覆盖率工具栏中点击“Coverage…”进 入
Mantis使用培训
35
设置代码注入方式
Mantis使用培训
36
两种注入方式对比
Outside Instrumentation:修改class文件的备份文件(这个 备份文件保存在一个与项目文件不同的临时目录中),默认 方式。 In-place instrumentation:直接修改项目中的class文件。一 般不推荐使用这个功能。
查看结果
合并结果
导出报告
导入数据
高级特性
Mantis使用培训
6
EclEmma介绍
Eclipse插件 工作原理:Class Instrumentation(把统计代 码插入编译好的.class文件) 测试覆盖率指标
Mantis使用培训
7
测试覆盖率指标
行覆盖率
基本语句块覆盖率
部分行覆盖: a>b?a:b
Mantis使用培训
37
设置JUnit版本
Mantis使用培训
38
问题讨论
Mantis使用培训
39
谢谢!
Mantis使用培训
40
测试覆盖率工具 EclEmma使用培训
测试小组
20190604
目的
提高单元测试质量 ,从而提高项目整体开发效 率和软件质量
Mantis使用培训
2
培训内容
术语介绍
EclEmma介绍
EclEmma使用
安装 获得测试覆盖率

白盒测试中的代码覆盖率评估方法

白盒测试中的代码覆盖率评估方法

白盒测试中的代码覆盖率评估方法代码覆盖率评估是白盒测试工作中的一个重要方面,它用于衡量测试用例对被测软件的代码覆盖情况。

本文将介绍几种常见的代码覆盖率评估方法,并分析它们的优缺点以及适用场景。

1. 语句覆盖率(Statement Coverage)语句覆盖率是最常见的代码覆盖率评估方法之一,它的计算方式是统计被测试代码中被执行的语句占总语句数的比例。

这种方法的优点是简单直观,易于理解和计算。

然而,它没有考虑到语句内部的分支和条件,可能会导致一些潜在的逻辑错误未被发现。

2. 判定覆盖率(Decision Coverage)判定覆盖率是一种更严格的评估方法,它要求每个判定(decision)在执行过程中都会被覆盖到。

判定指的是一个布尔表达式或一个条件分支,覆盖到意味着条件的每个可能取值都被测试过。

相比于语句覆盖率,判定覆盖率更能发现隐藏在条件分支中的错误。

然而,这种方法可能会导致测试用例数目的急剧增加,增加测试工作的工作量。

3. 条件覆盖率(Condition Coverage)条件覆盖率要求每个条件中的每个子条件都至少执行一次真值和一次假值,以确保条件的每个可能情况都得到覆盖。

条件覆盖率是判定覆盖率的一个扩展,也能够发现隐藏在条件判断中的错误。

与判定覆盖率类似,条件覆盖率存在测试用例数目增加的问题。

4. 路径覆盖率(Path Coverage)路径覆盖率是最为全面和严格的评估方法之一,它要求覆盖被测试代码中的每个可能路径。

路径是指从程序的入口到出口的一系列语句组成的序列。

路径覆盖率能够发现更多的潜在错误,但测试用例的数量将呈指数级增加,会增加测试工作的复杂性和时间成本。

5. 函数覆盖率(Function Coverage)函数覆盖率要求测试用例覆盖到被测程序中的每个函数。

这种方法适用于大型软件系统,帮助确保每个函数都得到了测试。

但函数覆盖率并不能完全保证代码的覆盖率,因为函数内部的所有分支和语句并没有得到充分测试。

eclipse coverage 使用方法

eclipse coverage 使用方法

eclipse coverage 使用方法在软件开发的过程中,对代码进行测试是非常重要的一步。

而测试覆盖率(Coverage)是一种评估测试用例是否足够全面的方法。

在 Eclipse(一款常用的集成开发环境)中,我们可以使用 Eclipse Coverage 插件来进行代码测试覆盖率的分析和统计。

本文将介绍 Eclipse Coverage 的使用方法,帮助开发人员更好地了解和利用这个插件。

一、安装 Eclipse Coverage 插件要使用 Eclipse Coverage 插件,首先需要将它安装到 Eclipse 中。

下面是安装步骤:1. 打开 Eclipse,点击菜单栏的 "Help",选择 "Eclipse Marketplace"。

2. 在弹出的对话框中,搜索框中输入 "Eclipse Coverage",点击 "Go" 按钮。

3. 在搜索结果中找到 "EclEmma Java Code Coverage" 插件,并点击 "Go to Marketplace" 进入安装页面。

4. 点击 "Install" 按钮,按照提示进行插件的安装。

5. 在安装过程中,可能需要重启 Eclipse 才能完成安装。

安装完成后,Eclipse Coverage 插件将在 Eclipse 的插件列表中显示。

二、配置代码覆盖率分析在使用 Eclipse Coverage 插件前,我们需要对项目进行配置,以便插件可以正确地分析代码覆盖率。

下面是配置步骤:1. 打开 Eclipse,选择要进行代码覆盖率分析的项目。

2. 右键点击项目,在弹出的菜单中选择 "Coverage As -> JUnit Test"。

这将运行JUnit 测试并生成代码覆盖率报告。

实验04.使用基本路径测试法求解“自动售货机”问题

实验04.使用基本路径测试法求解“自动售货机”问题

实验04:使用基本路径测试法求解“自动售货机”问题实验学时:2实验类型:设计实验要求:必修一、实验目的●理解并掌握基本路径覆盖测试法,能够实际运用;●使用Eclipse+JUnit+EclEmma进行单元测试。

二、实验要求●开发环境:Eclipse v3.7及以上版本;JUnit v4.10及以上版本;文本编辑软件。

●硬件要求:CPU PIV 以上,256M 内存,1G 硬盘空间。

●系统要求:Windows98/Me/XP/NT/2000,IE 5 以上。

三、实验内容1.下载并安装Eclipse+JUnit+EclEmma实验环境;2.通读自动售货机程序,并在Eclipse环境下运行该程序;3.使用基本路径测试法设计测试用例;⏹绘制程序控制流图;⏹计算环路复杂度;⏹确定基本路径;⏹设计测试用例。

4.完整填写以下表格:5.编写JUnit测试用例,并运行程序,保证所有测试用例通过测试;6.使用EclEmma检测测试用例覆盖率,保证覆盖率达到100%。

四、实验结果检查与评定●提交时间:2013年4月24日之前/2013年5月1日22:00之前●提交地址:学习委员邮箱●文档命名方式:12软件专升本X班_0907052XXX_张三_实验04.doc实验报告实验序号:实验项目名称:附录问题描述自动售货机程序:●若投入5角钱或1元钱的硬币,按下“橙汁”或“啤酒”按钮,则相应的饮料就送出来;●若售货机没有零钱找,则显示“零钱找完”的红灯亮,这是再投入一元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;●若有零钱找,则显示“零钱找完”的红灯灭,在送出饮料的同时退还5角硬币。

程序流程图实验源代码(有缺陷的源代码)public class Sale Mac hine {priv ate in t c ount OfB eer, c o untO fOr ang eJu ice, co unt OfF i veCe nts, c oun tOfO neD oll ar;priv ate St rin g[] typ eOf Goo d s = {"B eer", "Ora nge Jui ce"};priv ate St rin g re sul tOf Dea l;publ ic Sal eMa chin e(){init ial();}publ ic voi d i niti al(){coun tOfBee r = 6;coun tOfOra nge Juic e = 6;coun tOfFiv eCe nts= 6;coun tOfOne Dol lar = 6;}publ ic Sal eMa chin e(i nt fiv e Cent s, int on eDol lar, i nt n umOf Bee r, int num OfO ran ge) //便于测试的初始化函数{coun tOfFiv eCe nts= f ive Cen t s;coun tOfOne Dol lar = o neD oll a r;countOf Bee r = num OfB eer;coun tOfOra nge Juic e = nu mOf O rang e;}publ ic Str ing cur ren tSt ate(){Stri ng sta te = "C urr ent St a te\n" +"Be er: "+ c oun tOf Bee r +"\n"+"Or ang e J uic e: " +co unt Of Oran geJ uic e +"\n" +"5 Cen ts: "+ c oun tOf Fiv eC ents + "\n" +"1 Dol lar: " + cou ntO fOn eD olla r;retu rn sta te;}publ ic Str ing ope rat ion(St r ing typ e, Str ing mon ey)//ty pe是用户选择的产品,m one y是用户投币种类{if(m oney.e qua lsIg nor eCa se("5C")) //如果用户投入5角钱{if(t ype.eq ual s(ty peO fGo ods[0]))//如果用户选择啤酒{if(c oun tOf Bee r>0)//如果还有啤酒{coun tOf Bee r--;coun tOf Fiv eCe nts++;resu ltO fDe al= "I npu t I nfo r mati on \n" +"Ty pe: Be er; Mo ney: 5 Ce nt s; C han ge: 0\n\n" + currentSta te();retu rn res ult OfDe al;}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "B eer Sh ort a ge";retu rn res ult OfDe al;}}else if (t ype.equ als(ty peO f Good s[1]))//用户选择橙汁{if(c oun tOf Ora ngeJ uic e > 0){coun tOf Ora nge Juic e--;coun tOf Fiv eCe nts++;resu ltO fDe al= "I npu t I nfo r mati on \n" +"Ty pe: Or ang eJu ice; M one y: 5 C ent s; Cha nge: 0\n\n" + currentSta te();retu rn res ult OfDe al;}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "T ype Er ror";retu rn res ult OfDe al;}}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "T ype Er ror";retu rn res ult OfDe al;}}else if(mo ney.equ als Ign ore C ase("1D"))//如果用户投入一元钱{if(c oun tOf Fiv eCen ts>0) //如果用户投入一元钱{if(c oun tOf Fiv eCen ts> 0) //如果用户有零钱{if(t ype.eq ual s(ty peO fGo ods[0])&&co unt OfB eer>0)//如果用户选择啤酒而且还有啤酒{coun tOf Bee r--;coun tOf Fiv eCe nts--;coun tOf One Dol lar++;resu ltO fDe al= "I npu t I nfo r mati on \n" +"yp e: Bee r; M one y: 1 Do lla r; Ch ang e: 5 Ce nts\n\n"+ currentSta te();retu rn res ult OfDe al;}else if (t ype.equ als(ty peO f Good s[1]))//如果用户选择橙汁而且还有橙汁{coun tOf Ora nge Juic e --;coun tOf Fiv eCe nts--;coun tOf One Dol lar ++;resu ltO fDe al= "I npu t I nfo r mati on: \n" +"Ty pe: Or ang eJu ice; M one y: 1 D oll ar; Ch ange: 5 Cents\n\n" + curr ent Sta te();retu rn res ult OfDe al;}else{if(t ype.eq ual s(ty peO fGo ods[0])&&co unt OfO rang eJu ice<=0){resu ltO fDe al= "F ail ue Inf o rmat ion \n" +"Be er Sho rta g e";retu rn res ult OfDe al;}else if(ty pe.equa ls(typ eOf G oods[1])&&cou ntOf Ora nge Jui c e<=0){resu ltO fDe al= "Fai lur e Info r mati on \n"+"O ran geJ uice S hor tage";retu rn res ult OfDe al;}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "T ype Er ror";retu rn res ult OfDe al;}}}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "C han ge Sho r tage";retu rn res ult OfDe al;}}else{resu ltO fDe al= "F ail ure In f orma tio n \n"+ "M one y E rro r";retu rn res ult OfDe al;}}resu ltOfDe al = "F ail ure In f orma tio n \n"+ "M one y E rro r";retu rn res ult OfDe al;}}测试用例示例代码:import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;public class SaleMachineTest {SaleMachine saleMachine = new SaleMachine();@Beforepublic void setUp() throws Exception {}@Testpublic void testOperation1() {String expectedResult = "Input Information \n" +"Type: OrangeJuice; Money: 5 Cents; Change: 0\n\n" +"Current State\n" +"Beer: 6\n" +"Orange Juice: 5\n" +"5 Cents: 7\n" +"1 Dollar: 6";assertEquals(expectedResult,saleMachine.operation("OrangeJuice", "5C"));}}。

常用的白盒测试工具有哪些

常用的白盒测试工具有哪些

常用的白盒测试工具有哪些白盒测试是指在对软件功能和业务逻辑进行测试时,通过查看源代码和程序内部结构来进行测试的方法。

白盒测试工具可以帮助测试人员更好地分析程序内部是否满足设计要求,检查程序的结构和逻辑是否符合预期。

1. JUnitJUnit是Java编程语言的一个单元测试框架。

它具有简单易用的特点,可以帮助开发人员编写和运行重复测试。

JUnit支持用于编写白盒测试的Java语言,并提供了丰富的断言、测试运行器等功能。

2. EclEmmaEclEmma是Eclipse IDE的一个插件,用于Java代码的覆盖率测试。

通过EclEmma,开发人员可以很容易地查看代码的覆盖率,并了解哪些代码路径没有被测试到,从而指导后续的测试用例编写。

3. FindBugsFindBugs是一个用于Java程序的静态代码分析工具,可以帮助发现潜在的代码缺陷和错误。

它会检查源码中的Bug模式,包括空指针引用、资源泄露、多线程同步错误等,并提供详细的报告和建议修复方式。

4. CoberturaCobertura是一个用于Java代码的覆盖率分析工具,可以帮助开发人员评估单元测试覆盖的质量。

通过Cobertura生成的报告,开发人员可以了解代码哪些部分被覆盖、哪些部分没有被覆盖,从而指导测试用例的编写。

5. PMDPMD是一个静态代码分析工具,可用于查找Java代码中的一般问题、代码风格问题和性能问题。

PMD提供了许多规则,可以帮助开发人员识别潜在的代码质量和性能问题,并提供提示和建议来改进代码质量。

以上列举了常用的白盒测试工具,它们可以帮助开发人员在编写和测试代码时更加高效地发现问题,提高代码质量和稳定性。

测试人员可以根据实际的项目需求和测试目标选择适合的工具,并灵活运用于项目中。

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

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