eclipse代码测试覆盖率小工具---coverage

1.什么是代码测试覆盖率?
基于代码的测试覆盖评测测试过程中已经执行的代码的多少,与之相对的是要执行的剩余代码的多少。代码覆盖可以建立在控制流(语句、分支或路径)或数据流的基础上。控制流覆盖的目的是测试代码行、分支条件、代码中的路径或软件控制流的其他元素。数据流覆盖的目的是通过软件操作测试数据状态是否有效,例如,数据元素在使用之前是否已作定义。
覆盖率等于覆盖面积/总面积
2.coverage如何安装?
1.在eclipse工具栏点击help->Eclipse Marketplace。
在这里插入图片描述

2.输入“coverage”搜索,点击install。

在这里插入图片描述
3.当eclipse工具栏出现如图的图标即为安装成功。在这里插入图片描述
3.coverage如何使用
首选选择你要测试的Test测试类,右击,右键菜单里面多了一个Coverage as的选项,选择JUNIT,这时测试程序会在JUNIT中执行一遍,如果代码有多种情况,可以多次执行,吧多次统计的测试代码覆盖路进行整合,生成覆盖率统计结果。(java application 程序也可以直接用 coverage as 执行)

实例
百度中看到一个很好的例子,这里借用一下:

public class HelloWorld {

    public static void main(String[] args) {
        new HelloWorld();
        int rand = (int) (Math.random() * 100);
        if (rand % 2 == 0) {
            System.out.println("Hello, world! 0");
        } else
            System.out.println("Hello, world! 1");

        int result = rand % 2 == 0 ? rand + rand : rand * rand;
        System.out.println(result);
    }
}

按照上面说的coverage使用,执行一下, 可以看到如下截图
在这里插入图片描述

绿色:代码被执行过
黄色:代码部分被执行过
红色:代码没有被执行过

在下面的Coverage视窗中,可以看到代码测试覆盖率。看代码,是取得随机数,if判断可能出现不满足,可能满足的情况, 需要多次执行该代码,得到多次的代码覆盖率,然后吧多次得到的覆盖率合并,得到这个类总的代码测试覆盖率。
(其中有一句:new HelloWorld(); 该行代码是为了调用,该类默认的构造器。我认为:每个类都有默认的构造器,只是没有显示的代码而已,如果这里不写,代码覆盖率会降低,第一行public class HelloWorld 绿色也会变成红色 )
总的统计如下:
在这里插入图片描述

箭头所指为合并多次执行后的覆盖率百分比

4、总结
1.coverage 可以测试java application程序,也可以测试JUnit 测试类
2.如果要测试整个项目中代码的测试覆盖率,可能比较麻烦,至少需要吧所有代码的测试类执行一遍,并且把所有代码执行的路径都考虑到才准确。
3.别忘记测试异常情况,空指针,或者其他异常后,执行异常代码,也会增加代码测试覆盖率的。
4.如果得到代码测试覆盖率比较高,显而易见能看出代码安全性会比较能保证。

  • 6
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叮叮当当0543

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值