肖sir__设计测试用例方法之_(白盒测试)

白盒测试技术
一、定义:
白盒测试也叫透明盒测试,检查程序内部结构及路径一是否符合规格说明,二是否符合其代码规范。
因此,也叫结构测试或者逻辑驱动测试。

二、白盒测试常见方法:
a、语句覆盖;
b、判断覆盖(也称“分支覆盖”);
c、条件覆盖;
d、判断、条件覆盖;
e、条件组合覆盖;
f、路径覆盖;(独立路径或z路径)
以上6个是按照程序结构覆盖的强度由弱到强依次排列的。前面5个属于“逻辑覆盖测试”范畴。

三、详解
(1)语句覆盖:
指设计若干个测试用例,使得程序运行时,每个可执行语句至少被执行一次。
分析:据语句覆盖要求,需要对程序的4个语句都被执行一次。那么满足条件的测试数据x,y,z分别有哪些?
如: x=101,y=501
x=1000,y=500
(2)判断覆盖(分支覆盖):
指设计若干个测试用例,使得程序运行时,每个判断条件的真假分支至少被执行一次。
分析:据分支覆盖要求,程序的3个真假分支都被执行一次。那么满足条件的测试数据x,y,z分别有哪些?
如:
abc:x=101,y=501,z=all(如5001);
adef:x=101,y=500,z=5001;
adg:x=100,y=500,z=5000;
(3)条件覆盖:
指设计若干个测试用例,使得程序运行时,每个判断条件中的每个判断式的真、假值至少被执行一次。
分析:据条件覆盖要求,4个判断式(x>100,y>500,x>=1000,z>5000),那么4个判断式就共有4*2=8种真假值的情况,但
是由于程序中有2个x变量,所以要覆盖x,y,z这3个变量值的真假情况,至少需要3组数据。

(4)判断、条件覆盖:
指设计若干个测试用例,使得程序运行时,每个判断条件中真、假值分支至少被执行一次,且每个判断条件的内部判断式的真、假值至少被执行一次。

(5)条件组合覆盖:
指设计若干个测试用例,使得程序运行时,每个判断条件的内部判断式的各种真假组合都至少被执行一次;是逻辑覆盖测试
中“覆盖能力”最强的。

(6)路径覆盖:旨在保证程序中每一个特定的路径方案都能正常运行。
常见的路径覆盖方法:2种
A:独立路径覆盖
定义:独立路径覆盖:即覆盖所有的独立路径的测试,所谓独立路径应至少包含一条在其它路径中从未有过的边。
B:Z路径覆盖
定义:是一种将实际项目中复杂的程序减少其循环次数的路径覆盖方法,
即:不考虑循环体实际需要执行多少次,只考虑通过循环体0次和1次这两种情况

Z路径覆盖:
0次循环:直接跳过循环体,从循环体
入口直接到出口
1次循环:通过一次循环体即可

==============================================
白盒测试方法
优点:
1.深入程序内部,测试粒度较细。
2.是测试用例设计方法的组成部分,也是黑盒测试方法的有力补充。
3.为自动化测试与性能测试奠定基础。
缺点:
1.过分关注代码本身,容易偏离SRS实际需求
2.对相应的编程语言要求较高,人力成本较大

==============================================
黑盒测试+白盒测试+基于经验的测试

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

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

相关文章

虚拟机扩容

系统环境centos8,分两步,第一步先在vmware扩容,第二部在虚拟机内部扩容 1.vmware分配磁盘空间 2.虚拟机内部扩容 查看当前磁盘信息,这个是扩容之前的,扩容完成才会显示新的 df -h查看系统分区信息 fdisk -l查看目录…

C语言基础知识理论版(很详细)

文章目录 前述一、数据1.1 数据类型1.2 数据第一种数据:常量第二种数据:变量第三种数据:表达式1、算术运算符及算术表达式2、赋值运算符及赋值表达式3、自增、自减运算符4、逗号运算符及其表达式(‘顺序求值’表达式)5…

Spring Boot日志基础使用 设置日志级别

然后 我们来说日志 日志在实际开发中还是非常重要的 即可记录项目状态和一些特殊情况发生 因为 我们这里不是将项目 所以 讲的也不会特别深 基本还是将Spring Boot的日志设置或控制这一类的东西 相对业务的领域我们就不涉及了 日志 log 初期最明显的作用在于 开发中 你可以用…

深入浅出了解BeanFactory 和 ApplicationContext

一.区别 BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。 1.依赖关系 BeanFactory:是Spring里面最底层的接口,包含了各种Bean的定义,读取bean…

Mac 手动安装 sshpass

1. 下载安装包 https://sourceforge.net/projects/sshpass/ 解压并进入到安装包目录 tar -zxvf sshpass-xx.xx.tar.gz cd sshpass-xx.xx2. 检验环境,编译源码安装 ./configuremake&&make install3. 检测安装是否成功 ▶ sshpass Usage: sshpass [-f|-…

uniapp 使用mqtt 报错 socketTask onOpen is not a function

1. 报错的解决方法 在man.js文件添加这个 // #ifndef MP // 处理 wx.connectSocket promisify 兼容问题,强制返回 SocketTask uni.connectSocket (function(connectSocket) {return function(options) {console.log(options)options.success options.success ||…

Golang专题精进

Golang专题精进 Golang单元测试Golang错误处理Golang正则表达式Golang反射Golang验证码Golang日期时间处理库CarbonGolang发送邮件库emailGolang log日志Golang log日志框架logrusGolang加密和解密应用Golang访问权限控制框架casbinGolang使用swagger生成api接口文档Golang jwt…

Vue + Element UI 实现权限管理系统 前端篇(十四):菜单功能实现菜

Vue Element UI 实现权限管理系统 前端篇(十四):菜单功能实现 菜单功能实现 菜单接口封装 菜单管理是一个对菜单树结构的增删改查操作。 提供一个菜单查询接口,查询整颗菜单树形结构。 http/modules/menu.js 添加 findMenu…

2分钟讲清楚C#的委托, C语言的函数指针,Java的函数式接口

很多小伙伴学习C# 的委托时往往一头雾水, 不明白委托是什么, 有什么作用, 今天我就用2分钟讲清楚 这是一个C# 的控制台程序 定义一个最简单的委托 delegate int Calculate(int a, int b); 这相当于定义了一个Calculate类型, 只不过这个类型需要传入2个int类型的参数 返回值也…

uniapp 解决跨域的问题

uniapp 解决跨域的问题 我真的是个 沙雕 找对了解决办法 写错了地方 "h5" : {"devServer" : {"disableHostCheck" : true,"https": false,"proxy" : {"/app" : {"target" : "https://192.16…

MRI多任务技术及应用

目录 一、定量心血管磁共振成像(CMR)的改进方法二、磁共振多任务三、磁共振多任务的成像框架四、磁共振多任务的图像模型和采样和重建策略五、利用MR多任务进行快速三维稳态CEST(ss-CEST)成像5.1 利用MR多任务进行快速三维稳态CEST(ss-CEST)成像介绍5.2 …

LeetCode 2605. Form Smallest Number From Two Digit Arrays【数组,哈希表,枚举;位运算】1241

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

Java调用Web Service接口

方法1. 用IDEA生成相关代码调用方法。 在IDEA插件商店下载插件 然后新建一个Java项目 创建一个包来存放生成的代码,(点击一下)选中这个包,点击Tools 填入接口url,记住后面拼接“?wsdl”,选择生成方法,然后OK即可生…

超详解| Yolov8模型手把手调参 | 配置 | 模型训练 | 验证 | 推理

YOLOv8是一款前沿、最先进(SOTA)的模型,基于先前YOLO版本的成功,引入了新功能和改进,进一步提升性能和灵活性。 然而,要充分发挥Yolov8的潜力,合理的参数配置是至关重要的。本文将带您深入了解…

stable diffusion实践操作-VAE

系列文章总目录 stable diffusion实践操作 文章目录 系列文章总目录一、 前言1 定义功能全局介绍2 模型全局介绍2.1 后缀以及存放位置2.2 查看大模型是否有VAE 二、正文1 原理1.1 基础原理 2 使用2.1 增加饱和度2.2 增加细节 3 下载3.1 自动下载3.2 手动下载 三 、总结 一、 前…

掌握逻辑漏洞复现技术,保护您的数字环境

环境准备 这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。 1、支付逻辑漏洞 攻击相关介绍 介绍: 支付逻辑漏洞是指攻击者利用支付系统的漏洞,突破系统的限制,完成非法的支付操作。攻击者可以采…

『力扣每日一题06』字符串中的第一个唯一字符

今天是学习新知识的一天,String 类中有太多细枝末节,需要我去学习跟掌握了。 话不多说,今天给大家带来一道字符串的题目~ 一、题目 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在&…

软件测试/测试开发丨Selenium Web自动化测试 高级控件交互方法

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27045 一、使用场景 使用场景对应事件复制粘贴键盘事件拖动元素到某个位置鼠标事件鼠标悬停鼠标事件滚动到某个元素滚动事件使用触控笔点击触控笔事件&am…

从0到1构建界面设计系统思维

用户界面(UI)是人与机器之间发生交互的载体,也是用户体验(UX)的一个组成部分。用户界面由两个主要部分组成:视觉设计(即传达产品的外观和感觉)和交互设计(即元素的功能和…

AI如何实施本地化

人工智能artificial intelligence 是计算机互联网信息技术多年积累和不同互联网公司共同构造的产物。人工智能和大数据领域联系很大。每个软件公司都有公司的业务数据和目标客户。中央仓库和私有仓库保存着公有数据和私有数据。Java应用开发中的Maven是对实体本地jar包的一种互…