前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >白盒测试 | 用例设计方法之判定覆盖

白盒测试 | 用例设计方法之判定覆盖

作者头像
王大力测试进阶之路
发布2022-03-14 14:16:54
发布2022-03-14 14:16:54
2.1K0
举报
文章被收录于专栏:橙子探索测试橙子探索测试

判定覆盖也被成为分支覆盖(Branch Coverage)是设计足够多的测试用例,使得程序中的每一个判断至少获得一次“真”和一次“假”,即使得程序流程图中的每一个真假分支至少被执行一次。使设计的测试用例保证程序中每个判断的每个取值分支(ture or false)至少经历一次。

使用此准则测试小程序,只需要涵盖路径ace和abd,或涵盖路径acd和abe,就可以使得两个判定为“真”和为“假”的分支都执行一次。如果选择后一种情况,生成的用例及其遍历的路径如下:

用例1:A=3,B=0,X=3 acd

执行用例1 ,判定(A > 1 and B == 0)为真 ,执行X = X / A ,X =3/3=1; 判定(A == 2 or X > 1)为假,不执行X = X + 1 ; 覆盖路径acd,序结束

用例2:A=2,B=1,X=1 abe

执行用例2 ,判定(A > 1 and B == 0)为假,不执行X = X / A ; 判定(A == 2 or X > 1)为真,执行X = X + 1,x=1+1=2 ; 覆盖路径abe,程序结束

我们仅有50%的可能性遍历到X值未发生改变的路径,即,只有我们选择涵盖路径ace和abd的情况,而不是涵盖路径acd和abe时。对应的测试用例如下:

用例1:A=2,B=0,X=2 ace

执行用例1 ,判定(A > 1 and B == 0)为真 ,执行X = X / A ,X =2/2=1; 判定(A == 2 or X > 1)为真,执行X = X + 1 ,x=2+1=3; 覆盖路径ace,程序结束

用例2:A=3,B=1,X=1 abd

执行用例1 ,判定(A > 1 and B == 0)为假 ,不执行X = X / A ; 判定(A == 2 or X > 1)为假,不执行X = X + 1 ; 覆盖路径abd,程序结束

【优点】:分支(判定)覆盖具有比语句覆盖更强的测试能力。同样分支(判定)覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

【缺点】:往往大部分的分支(判定)语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 橙子探索测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档