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

判定覆盖也被成为分支覆盖(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,程序结束

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

白盒测试 | 用例设计方法之语句覆盖

语句覆盖,顾名思义就是针对代码语句的嘛。它的含义是我们设计出来的测试用例要保证程序中的每一个语句至少被执行一次。通常语句覆盖被认为是“最弱的覆盖”,原因是它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支,因此在实际…

一套完整的Selenium自动化测试框架设计实战,这次38K, 妥了

金九银十,大家都铆足干劲想抓住机会涨薪进大厂。结合这几年的行业趋势,想要挑战大厂面试,首先必须吃透Selenium自动化测试框架设计。这里说一下原因:首先,一线互联网大厂无一例外,全都要求测试人掌握Seleni…

4天搞定Docker和k8s核心架构,稳拿35k不是问题?

随着云原生时代的到来,各大厂纷纷上云,甚至有人说,未来的软件就是生在云上,长在云上的。在这种云原生时代大势下,衍生出来的 Kubernetes 工程师、云原生工程师的薪资也水涨船高,大厂不惜花重金聘请优秀的云…

1元解锁 | Python万能代码模板 |10大必学实用技巧

内容摘要你要悄悄学 Python,然后惊艳所有人。一听到 Python 或编程语言,你可能条件反射会觉得“很难”。但今天的 Python 课程是个例外,不需要你懂计算机原理,也不需要理解复杂的编程模式,只需替换成你想要的网页链接、…

C++ 递归函数返回值理解

首先看代码&#xff1a; #include <iostream> using namespace std; int main() {int digui(int i);int i;cin>>i;i digui(i);cout << "main函数最后结果&#xff1a;"<<i<<endl; } int digui(int i) {int j 0;if (i 0)return 1;j…

二叉树---树的深度递归理解

int Dep(Bianary *root) {if (root NULL){return 0;}int depth 0;int leftD Dep(root->lchild);int rightD Dep(root->rchild);depth leftD > rightD ? leftD 1 : rightD 1;return depth; } 递归理解&#xff1a; depth的值与是否初始化无关&#xff0c;因为…

升级锦囊 | 测试开发核心技术46讲

课程背景我是思寒&#xff0c;在测试圈里摸爬滚打了十年有余。我从外包功能测试做起&#xff0c;后进入阿里、百度等公司做了测试开发工程师、测试架构师。我发现几乎每个测试工程师都和我一样&#xff0c;职业理想都是从事测试开发的工作。尤其是近几年来&#xff0c;互联网的…

软件快捷键

Pycharm快捷键 折叠某一点&#xff1a;ctrl- 展开某一点&#xff1a;ctrl 展开一个整个函数&#xff1a;ctrl alt 折叠一个整个函数&#xff1a;ctrl alt - 所有代码折叠&#xff1a;ctrl shift- 所有代码展开&#xff1a;ctrl shift 注释代码&#xff1a;alt / visual s…

血的案例告诫 | 模拟大批量数据测试边界上限

Fiddler响应拦截数据篡改&#xff0c;实现特殊场景深度测试&#xff08;一&#xff09;利用Fiddler抓包调试工具&#xff0c;实现mock数据特殊场景深度测试&#xff08;二&#xff09;利用Fiddler抓包调试工具&#xff0c;实现神奇特殊场景深度测试&#xff08;三&#xff09;F…

Monkey稳定性测试初探(二)

记得 关注转发~~~之前写过一篇关于稳定性测试的文章&#xff1a;Monkey随机性能压测初探&#xff08;一&#xff09;01什么是稳定性测试稳定性测试&#xff0c;是在一定压力的情况下&#xff0c;对系统或某个模块持续进行长时间的操作&#xff08;一般遵循7*24小时原则&#xf…

水平方向的算子检测竖直边缘理解

-1 0 1 -1 0 1 -1 0 1 这种算子称为水平方向的算子。 是因为利用它可以检测出图像在水平方向上两侧是否存在差异 如果在水平方向上存在差异则可能是竖直边缘

Fiddler抓包 | 竟然有这些骚操作,太神奇了?

一、双击Session时&#xff0c;使请求页始终显示到“webform”tab页&#xff0c;使响应页始终显示到”json”tab页在QUICK EXEC命令执行窗口&#xff0c;执行&#xff1a;PREFS SET fiddler.ui.inspectors.request.alwaysuse "WebForms"PREFS SET fiddler.ui.inspect…

卷积核旋转180度理解

卷积中卷积核旋转180 相关中不旋转 其实在我们计算卷积时&#xff0c;对应元素相乘再相加为中心元素的致之前。这是基于对卷积核已经旋转180的前提。 为什么要旋转&#xff0c;是与公式相关的。 如果直接看推导公式。应该是卷积核未旋转前和图像的运算。

pycharm连接sqlite

进行创建上了一个Django项目之后&#xff0c;进行点击 菜单中的view 菜单。 进行点击了view菜单之后&#xff0c;进行点击下拉菜单选中为tool windows的选项。 弹出了下拉下一级菜单选中为 database 的选项。 弹出了database的选项之后&#xff0c;进行点击 添加 按钮。 弹出了…

抓包工具mitmproxy | mitmweb基本用法(二)

上一篇&#xff1a;我们分享了抓包工具mitmproxy环境配置使用&#xff08;一&#xff09;这一篇我们主要介绍下mitmweb抓包工具的基本用法一、mitmproxy介绍mitmproxy是Python编写的一款功能完善的代理工具&#xff0c;mitmproxy是一款支持拦截HTTP和HTTPS请求和响应并即时修改…

opencv Mat push_back

Mat::push_back 将元素添加到矩阵的底部。 C: template<typename T> voidMat::push_back(const T& elem) C: void Mat::push_back(const Mat& elem) 参数 elem –增加的一个或多个元素。 该方法将一个或多个元素添加到矩阵的底部。他们是模拟相应的 STL 向…

mitmproxy抓包 | Python实时生成接口自动化用例

抓包工具mitmproxy环境配置使用&#xff08;一&#xff09;抓包工具mitmproxy | mitmweb基本用法&#xff08;二&#xff09;前面已经给大家分享了mitmproxy的环境配置和基本使用&#xff0c;文章浏览量很高&#xff0c;相信对抓包工具感兴趣的朋友&#xff0c;已经熟练运用起来…

mitmproxy抓包 | Python实时生成接口自动化用例(三)

抓包工具mitmproxy环境配置使用&#xff08;一&#xff09;抓包工具mitmproxy | mitmweb基本用法&#xff08;二&#xff09;前面已经给大家分享了mitmproxy的环境配置和基本使用&#xff0c;文章浏览量很高&#xff0c;相信对抓包工具感兴趣的朋友&#xff0c;已经熟练运用起来…