Junit入门到掌握-19-JUnit集成-代码覆盖率

这篇来学习一个单元测试领域中很重要的一个概念,代码覆盖率,这个术语,早起是在航空航天方面的软件里提出来的一个测试方法,100%代码覆盖率是一个不可能完成的任务,只是一个理想的目标。本篇先来学习代码覆盖率和周边几个名词,然后介绍一款能够给出代码覆盖率的插件,简单来学习和使用下这个插件。代码覆盖率是一个很容易在面试中被问到的问题,通过本篇学习,你起码有一个普,不会乱扯,不懂装懂。

 

1.代码覆盖率

在设计测试用例的时候,需要参考不同覆盖率准则进行设计测试数据,以下是常见的覆盖率准则。

函数/方法覆盖率(Function coverage):代码中覆盖测试调用每一个方法/函数。
指令/语句覆盖率(Statement coverage): 程序中每一行代码都覆盖,其实就是全路径覆盖。
判断覆盖率(Decision coverage):(和分支覆盖率不同)覆盖到各种分支可能
条件覆盖率(Condition coverage):也称为谓词覆盖(predicate coverage),每一个逻辑运算式中的每一个条件(无法再分解的逻辑运算式)都覆盖
条件/判断覆盖率(Condition/decision coverage):需同时满足判断覆盖率和条件覆盖率。

起码要保证针对一个方法的单元测试用例,要保证覆盖这个方法里面的不同行代码,参考我在前面文章中,对于二分查找算法设计的单元测试用例方法。 https://blog.csdn.net/u011541946/article/details/93631967

 

2.EclEmma插件

我们在写好单元测试用例之后,然后执行完单元测试,我们并不知道覆盖了多少代码,还好有一些免费的工具可以帮助我们实现,跑完单元测试就得到代码覆盖率的简单报告,接下来介绍一个Eclipse上插件 eclemma

2.1在eclipse市场上搜索并安装

2.2 运行得到覆盖率报告

安装完之后,菜单栏有以下这个图标

我们打开测试类:TrackingServiceTests.java,然后根据上图,选择Coverage as - Junit Test

上面红色表示没有被覆盖,绿色表示覆盖,Instructions是指令的意思,也就是语句覆盖。这里根据这张图来解读下我们这个被测的项目覆盖情况:语句覆盖率是80.6%, 已经覆盖了100行代码,还有24行代码没有覆盖到。下面我们来看看24行代码是只哪些,所以我们需要打开被测项目。

红色没有覆盖,说明我们还需要补充这两个方法的单元测试用例。当然,我看了被测项目全部3个java文件,没有数出来24个语句没有覆盖,这个24怎么来的却是不清楚,只能找到方法中标红的就是未覆盖的语句。

以后在写某一个class文件中方法的单元测试用例的时候,利用这个插件,可以帮我们提高覆盖率,写出更好覆盖率的单元测试用例。很好用,红色表示没有被覆盖,绿色表示覆盖,连分支和判断覆盖都给你指出来没有覆盖到,特别方便的一个工具。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值