软件工程 白盒测试各种覆盖详解

Sharon

最近在复习软工
今天在这里总结一下白盒测试的各种覆盖~

从覆盖度高到覆盖度低的排序:

1.Path coverage(路径覆盖)
2.Combinatory coverage(多重条件覆盖/组合覆盖)
3.Clause/Branch coverage(条件/判断覆盖)
4.Clause coverage(条件覆盖)
5.Branch coverage(判断覆盖)
6.Statement coverage(语句覆盖)

用一个例子来示范:
这是原有的图

路径覆盖-path coverage

路径覆盖
对于路径覆盖,要把每一条路的每一种组合都走一遍。
在这里我标记了可能出现分叉的abcdef几条路,对于路径覆盖应该把以下路径的情况都走一遍:
acef
bcef
acdf
bcdf

多重条件覆盖/组合覆盖 combinatory coverage

每一个判断中的每一个子句的组合都要覆盖

第一个判断:x>3 and z<10

x>3z<10x>3 and z<10
1TTT
2TFF
3FTF
4FFF

第二个判断 x==4 or y>5

x==4y>5x==4 or y>5
1TTT
2TFF
3FTF
4FFF

一组测试用例:(经检验你会发现可以满足全部的上面8个情况)
1) {x=4,y=6,z=5}
2) {x=4,y=3,z=10}
3) {x=3,y=4,z=5}
4) {x=3,y=6,z=11}

条件/判断覆盖
条件覆盖 clause coverage

在这里插入图片描述
每一个判断中的每个子句的不同true false都要取一次

对于这里一共有四个子句:x>3 z<10 x==4 y>5
x>3 取true false各一次(以及以上)
z<10取true false各一次(以及以上)
...以此类推 就可以满足条件覆盖

一组测试用例

  1. {x=4, y=5, z=5}
  2. {x=3, y=6, z=15}
判断覆盖 branch coverage

在这里插入图片描述
如图上标记,每个判断之后都有T和F的结果。

判断覆盖则是在能够在每个判断取至少一个T和至少一次F的测试用例覆盖。

一组测试用例:

  1. {x=4, y=5, z=5}
  2. {x=2, y=5, z=5}
阅读 1.4k

不要网络暴力

1 声望
3 粉丝
0 条评论
你知道吗?

不要网络暴力

1 声望
3 粉丝
文章目录
宣传栏