白盒测试各种覆盖详解

今天在这里总结一下白盒测试的各种覆盖~

从覆盖度高到覆盖度低的排序:
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>3 z<10 x>3 and z<10
1 T T T
2 T F F
3 F T F
4 F F F
第二个判断 x==4 or y>5

x==4 y>5
x=4 or y>5

1 T T T
2 T F F
3 F T F
4 F F F
一组测试用例:(经检验你会发现可以满足全部的上面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各一次(以及以上)

…以此类推 就可以满足条件覆盖

一组测试用例:
{x=4, y=5, z=5}
{x=3, y=6, z=15}
判断覆盖 branch coverage

如图上标记,每个判断之后都有T和F的结果。

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

一组测试用例:
{x=4, y=5, z=5}
{x=2, y=5, z=5}
收藏 纠错
推荐文章
1 . 面向全球的应用的系统架构
2 . 一个规则引擎的可视化方案
3 . 数据库-三范式优化与不推荐使用外键
4 . 反制 Webdriver - 从 Bot 到 RCE 进发
5 . 深入浅出 WebRTC AEC(声学回声消除)
6 . Julia语言程序基础

最后&资源分享

下面是我收集的一些视频资源包

白盒测试各种覆盖详解

对于软件测试的的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你!大家也可以加群qq(**644956177)**群里有技术交流和资源分享。

关注我的微信公众号【程序媛木子】免费获取

上一篇:C# 输入日志文件方法


下一篇:都100%代码覆盖了,还会有什么问题?