美文网首页
2018-09-10代码覆盖率

2018-09-10代码覆盖率

作者: 流注 | 来源:发表于2018-09-10 23:58 被阅读0次

在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标。需要注意的是,覆盖率只能用来做参考,不能当做测试的法宝。

代码覆盖率 = 代码的覆盖程度,一种度量方式。

以下面的代码来分析

1、    if (A>0 && B==0)

2、    x = X / A;

3、    (A==2 || X>1)

4、    x = X+1;

从覆盖源程序语句的详细程度的不同,有以下一些覆盖标准。

1、语句覆盖:选择足够多的测试数据,使被测程序中每个语句至少执行一次。

测试用例:A=2,B=0,X=4,执行了所有语句,但不能保证程序无错,比如 A==2 || A>1 写成 A==2 || X<1.。

2、判定覆盖:又叫分支覆盖,不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,即每个判定的每个分支都至少执行一次

测试用例:A=3,B=0,X=3;A=2,B=1,X=1

判定覆盖比语句覆盖强,但是对程序逻辑的覆盖程度仍然不高,比如上面的测试用例就只覆盖了程序全部路径的一半。

3、条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。

上面的代码共两个判定表达式,每个表达式中有两个条件,在第一行代码处,有几种情况:A>1,A≤=1,B=0,B≠0;在第3行代码处,有几种情况:A=2,A≠2,X>1,X≤1。

测试用例:A=2,B=0,X=4(满足A>1,B=0,A=2,X>1的条件);A=1,B=1,X=1(满足A≤1,B≠0,X≤1的条件)

条件覆盖通常比判定覆盖强,因为它使判定表达式中每个条件都取到了两个不同的结果,判定覆盖却只关系整个判定表达式的值。

满足条件覆盖不一定满足判定覆盖,条件覆盖也不一定包含判定覆盖。如:A=2,B=0,X=1;A=1,B=1,X=2,满足条件覆盖,但不满足判定覆盖。

4、判定/条件覆盖:使判定表达式中的每个条件都取得各种可能的值,且每个判断表达式也取到各种可能值。

上面的代码共两个判定表达式,每个表达式中有两个条件,在第一行代码处,有几种情况:A>1,A≤1,B=0,B≠0;在第3行代码处,有几种情况:A=2,A≠2,X>1,X≤1。

测试用例:A=2,B=0,X=4(满足A>1,A=2,,B=0,X>1,不满足A=2 || X>1,满足A>1&&B==0);A=1,B=1,X=1(满足A=2。A≠2,B≠1,X≤1,满足A=2 || X>1,不满足A>1&&B==0)。与条件覆盖用例相同,说明判定/条件覆盖并一定不比条件覆盖更强。

5、条件组合覆盖:每个判定表达式中条件的各种可能组合都至少出现一次。

上面的例子有8种组合:1、A>1,B=0;2、A>1,B≠0;3、A≤1,B=0;4、A≤1,B≠;5、A=2,X>1;6、A=2,X≤1;7、A≠2,X>1;8、A≠2,X≤1。

测试用例:A=2,B=0,X=4,针对1和5;A=2,B=1,X=1,针对2和6;A=1,B=0,X=2,针对3和7;A=1,B=1,X=1,针对4和8。

条件组合覆盖是上面几种覆盖标准中最强的,满足条件组合覆盖的一定满足判定覆盖、条件覆盖、判定/条件覆盖。但是满足条件组合覆盖的不一定使程序中的每条路径都执行到。

6、路径覆盖:使程序的每条可能路径都至少执行一次。

相关文章

  • Web端PHP代码函数覆盖率测试解决方案

    1. 关于代码覆盖率 衡量代码覆盖率有很多种层次,比如行覆盖率,函数/方法覆盖率,类覆盖率,分支覆盖率等等。代码覆...

  • 当谈论覆盖率时我们在谈什么?

    代码覆盖率 vs. 测试覆盖率 代码覆盖率通常指跑完测试后, 由工具自动统计的在跑测试的过程中被测代码的覆盖率, ...

  • 25-覆盖率概述

    ​ 可以添加定向测试,来填补那些覆盖率漏洞, 代码覆盖率 代码覆盖率在编译仿真的时候设置,即可自动收集信息, 功能覆盖率

  • 代码覆盖率-JaCoCo

    代码覆盖率 在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至,用代码覆盖率来考核测试任务完成情况,...

  • 使用JaCoCo统计java代码覆盖率

    代码覆盖率 在白盒测试中,主要使用代码覆盖率来评判白盒测试完成的程度。代码覆盖率是指:在测试中,所执行的源代码占全...

  • jacoco-java测试覆盖率工具

    1 为什么要关注测试覆盖率 覆盖率是程序编程的最后一环,单元测试验证代码,而覆盖率验证测试用例。 代码覆盖率...

  • 翻译:使用Xcode测试(六)——代码覆盖率(Code Cove

    代码覆盖率是Xcode7的功能,可以在视觉上看到和衡量你的代码测试覆盖率。有了代码覆盖率,你可以确定测试是否符合你...

  • 代码测试覆盖率(JaCoCo)

    测试进行代码单元测试时,都应该执着于实现100%的覆盖率。代码覆盖率越高,并不能说明质量就越好,但是代码覆盖率很低...

  • 2018-09-10代码覆盖率

    在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标。需要注意的是,覆盖率只能用来做参考,不能当做测试的法宝...

  • Flutter线上代码覆盖率解决方案——FlutterCodeX

    Flutter线上代码覆盖率解决方案——FlutterCodeXFlutter线上代码覆盖率解决方案——Flutt...

网友评论

      本文标题:2018-09-10代码覆盖率

      本文链接:https://www.haomeiwen.com/subject/hpaegftx.html