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

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

特点:

1、程序中每一个语句执行一次
2、对程序执行逻辑的覆盖率低,属于最弱的覆盖方式
3、无需测试程序的分支情况
4、无需测试程序分支判断的输入值以及输入值的组合
5、无需测试程序执行的不同路径

举个非常简单的例子1:

public int foo(int a,int b)

{

return a/b;

}

这是一个求两数之商的函数。如果我们设计如下的测试用例:

TestCase: a = 2, b = 1

这时候我们会发现,该函数的代码覆盖率达到了100%,并且设计的case可以顺利通过测试。但是显然该函数有一个很明显的bug:当 b=0 时,会抛出异常。

再举个例子2:

if A and B then Action1 

if C or D then Action2

语句覆盖最弱,只需要让程序中的语句都执行一遍即可 。上例中只需设计测试用例使得A=true B=true C=true 即可。

再举个例子3:

 

用例编号测试用例覆盖路径预期结果
1A=2,B=0,X=3a-c-eX=2.5

执行编号1 用例,程序从上往下执行,每一行代码都会运行 —— 语句覆盖

执行结果:X=2.5

扫码添加测试微信群

扫码添加测试QQ群

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

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

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…

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…

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请求和响应并即时修改…

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;已经熟练运用起来…

To disable deprecation,,use _CRT_SECURE_NO_WARNINGS

解决方法&#xff1a;ok&#xff0c;也就是加入一个_CRT_SECURE_NO_WARNINGS的问题。 转载自https://blog.csdn.net/guoming0000/article/details/8838810 或者在cpp文件最顶端添加&#xff1a;#define _CRT_SECURE_NO_WARNINGS

测试管理 | 基于风险的测试

基于风险的测试风险是指负面或不希望发生的后果或事件发生的可能性。当引起客户、用户、参与者或干系人对产品质量或项目成功的信心减弱的问题可能发生时&#xff0c;风险就存在。当潜在问题主要影响的是产品质量时&#xff0c;它们被称为质量风险、产品风险或产品质量风险。而…

听说全链路压测已经杀疯了?劝你别盲目!

不知道大家发现没&#xff0c;阿里、京东、字节、美团、饿了么、滴滴、陌陌等大厂的技术文章里&#xff0c;最近频繁提到全链路压测在企业内部的落地。本想抱着拜读一二的心理去看&#xff0c;结果一旦涉及到具体的落地细节&#xff0c;他们却都跟约好了一样三缄其口。不怪我眼…

opencv Hog Demo

需注意此代码要在Release x64之下运行 #include <iostream> #include <stdexcept> #include <opencv2/objdetect.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/imgcodecs.hpp> //Release x64…