语句覆盖、判定覆盖、条件覆盖 - 白盒笔试题解析

597 篇文章 17 订阅
100 篇文章 2 订阅

1. 定义

黑盒测试 - 不关注内部结构的测试/基于输入输出的测试

白盒测试 - 基于内部结构的测试

白盒测试的关键: 覆盖度

2. 白盒相关概念

语句覆盖 - 设计一套测试 让被测对象中所有语句得到测试覆盖

判定覆盖 - 设计一套测试 让被测对象中所有判定得到测试覆盖

条件覆盖 - 设计一套测试 让被测对象中所有条件得到测试覆盖

路径覆盖 - 设计一套测试 让被测对象中所有路径得到测试覆盖
在这里插入图片描述
上图中:
在这里插入图片描述

3. 例题解析

例题1:
在这里插入图片描述
解:

语句覆盖:

语句:以上代码中的每一行都是语句。
注意THEN后面所接语句,是有可能不执行的。
语句覆盖即要设计出测试数据,使得所有语句都被执行。
要满足以上条件,只要让两个IF判定判定为”真“即可。
答:
在这里插入图片描述
分支覆盖:

分支覆盖是判定覆盖的别名。因为判定可以在程序中创造分支,就像一条分叉路口,让程序的执行走向不同方向
他的取值为布尔类型,只有两个可能取值:”True“ 和 ”False“(真和假)。
判定覆盖,即让所有的判定都取到所有可能取值,即每个判定都取到”真“、”假“各一次。
本题中有两个判定,即”IF“语句,则要取测试数据,让两个IF都取到真假最少各一次。

答:
在这里插入图片描述
例题2:
在这里插入图片描述
解:

题中while循环语句构成了本题代码的路径分支
判定解读:当变量i不大于25时,做一件事;当i大于25时,做另一件事。这个判定就是”i是否大于25“.
效力最高的满足判定覆盖,即在最小的循环执行次数条件下,使判定取到”真“、”假“各一次。
取 i = 25的话,第一次循环,while判定为真,循环内部逻辑执行1次。执行1次之后i ++, i的值变为26,while判定为假,循环跳出。

答:

在这里插入图片描述
例题3:
在这里插入图片描述
解:

题中的三个if和一个else组成了所有判定
要满足判定覆盖,需要让所有判定取到”真“、”假“各一次。
直观的想法,取四个值: n = 0 , n = 1, n =2 , n = -1就可以让所有判定都被覆盖到真假所有可能。
但是注意第三个判定后的return语句,返回调用了函数本身。
此即所谓的“递归” ,代入n = 2这样的数据进入这个函数进行运算,return语句演变成以下形式:return fib(1) + fib(0) + fib(-1),相当于取n=1,0,-1各一次

答:
在这里插入图片描述

4. 练习题

最后留几个练习题可以自己尝试解答,欢迎留言写下答案:

1:
在这里插入图片描述
2:
在这里插入图片描述
点赞关注~持续分享,642830685。群内免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值