软件测试逻辑覆盖相关理解

判定、条件、用例

上述代码意为当 k = 1 k=1 k=1 时,找到 [ 2 , n ] [2,n] [2,n] 区间内 m m m 的第一个因数,以此为例

判定与条件

判定,如、、等判定语句块

条件(逻辑条件),而一个逻辑判断语句就对应了一个基础条件

若干基础条件可以通过与、或、非等逻辑连接词组成复合条件

注意,题目问满足覆盖所需的逻辑条件时,根据题意来自己判断是基础条件还是复合条件

  • 如上述代码的逻辑判断子语句是 和 和

  • 如满足上述代码的100%判定覆盖所需的逻辑条件是 和 和 和

  • 如满足上述代码的100%条件覆盖所需的逻辑条件是 和 和 和 和 和

也就是说,有 n n n基础条件 n n n基础条件构成 m m m复合条件

  • 要满足100%判定覆盖则最多 2m2m 2m 个逻辑条件
  • 要满足100%条件覆盖则最多 2n2n 2n 个逻辑条件

测试用例

测试用例是指一组变量的具体取值,一个测试用例可能可以同时满足多个逻辑条件

需要看清楚题目问的是100%覆盖所需的逻辑条件还是最少的测试用例,一个测试用例可能可以同时满足多个逻辑条件

如满足上述代码的100%条件覆盖的其中一组测试用例是

  • :满足 和 和
  • :满足

如满足上述代码的100%条件覆盖的其中一组测试用例是

  • :满足 和 和 和
  • :满足 和

所需逻辑条件的数量与最少测试用例数量并无直接关系……因为一个测试用例可能可以满足若干逻辑条件

真题例子

  • 判定,记为P1
  • 判定,记为P2
  • 条件,记为C1
  • 条件,记为C2
  • 条件,记为C3

语句覆盖

设计测试用例,是对程序中每条语句至少被执行一次。

对于上例来说100%语句覆盖就是需要语句块1、语句块2、语句块3、语句块4、语句块5、语句块6均至少被执行一次

判定覆盖(分支覆盖)

设计测试用例,使得程序中的每个判断的”真“和”假“都至少被执行一次。即:程序中的每个分支至少执行一次。

对于例子来说100%判定覆盖就是需要P1、P2各自都至少真一次和假一次

可达到100%判定覆盖的其中一组测试用例的满足情况:

  • 测试用例1:同时满足P1真、P2真
  • 测试用例2:同时满足P1假、P2假

条件覆盖

设计测试用例,使得判定中的每个条件至少有一次取真值,有一次取假值。

对于例子来说100%条件覆盖就是需要C1、C2、C3各自都至少真一次和假一次

可达到100%条件覆盖的其中一组测试用例的满足情况:

  • 测试用例1:同时满足C1真、C2真、C3真
  • 测试用例2:同时满足C1假、C2假、C3假

判定-条件覆盖

设计测试用例,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值(真假)也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。

对于例子来说100%判定-条件覆盖就是需要P1、P2、C1、C2、C3各自都至少真一次和假一次

可达到100%判定-条件覆盖的其中一组测试用例的满足情况:

  • 测试用例1:同时满足C1真、C2真、P1真、C3真、P2真
  • 测试用例2:同时满足C1假、C2假、P1假、C3假、P2假

条件组合覆盖

设计测试用例,使得被测试程序中的每个判定中条件结果的所有可能组合至少执行一次。

也就是说,有 n n n基础条件,每个基础条件都有一真一假2种情况,相互组合就会有 2n 2^n 2n 个测试用例

可达到100%条件组合覆盖的其中一组测试用例的满足情况:

  • 测试用例1:C1 真、C2真、C3真
  • 测试用例2:C1 真、C2真、C3假
  • 测试用例3:C1 真、C2假、C3真
  • 测试用例4:C1 真、C2假、C3假
  • 测试用例5:C1 假、C2真、C3真
  • 测试用例6:C1 假、C2真、C3假
  • 测试用例7:C1假、C2假、C3真
  • 测试用例8:C1 假、C2假、C3假

路径覆盖

设计测试用例,覆盖程序中所有可能的路径。

对于例子来说就是需要路径a、b、c、d、e、f、g、h、i、j、k均至少走一次

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月18日
下一篇 2022年5月18日

相关推荐