软件测试之黑盒测试与白盒测试知识小结

🍅 视频学习:文末有免费的配套视频可观看

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

对于很多刚开始学习软件测试的小伙伴来说,如果能尽早将黑盒、白盒测试弄明白,掌握两种测试的结论和基本原理,将对自己后期的学习有较好的帮助。今天,我们就来聊聊黑盒、白盒测试的相关话题。

图片

1、黑盒测试的方法和小结

最常见黑盒测试方法包括:边界值、等价类、错误推测法、场景法、因果图法、判定表组成法、正交实验设计。举几个例子:

边界值测试:边界值测试是一种最基本的黑盒测试方法,它是“等价类划分”这种测试方法的良好补充。但这种方法也存在弊端——大量冗余和漏洞。另外,由于布尔型的内容不存在边界的概念,所以边界值测试对布尔型无效。

等价类测试:等价类测试主要分为【弱等价类测试】和【强等价类测试】。这类测试就是主要用来解决布尔型和逻辑型的问题。在做这类测试时,建议在划分等价类后,对每个等价类进行编号,这样结论和操作步骤看起来可能会更清晰。

图片

因果图法:因果图法主要涉及的是因果关系类内容的测试,在写测试用例时,我们要区分清楚“恒等、或、非”关系,还要区分出各类约束。因果图可以用于描述输入与输出的相互关系。但是其绘制过程比较繁琐。因果图可以转化成决策表。建议在测试过程中,尽量直接绘制决策表。

(比如:E约束(异;异或):a,b最多有一个可能为1,不能同时为1;

I约束(或;包含):a,b,c中至少有一个必须为1,不能同时为0;

O约束(惟一):a和b必须有一个且仅有一个为1;

R约束(要求):a是1时,b必须是1,即a为1时,b不能为0;

M约束:对输出条件的约束,若结果a为1,则结果b必须为0)

决策表测试:仅适合对输入域展开分析,不适合对输出域展开测试。

错误推测法:这种办法优点是可以充分发挥测试人员的经验和潜能,命中率高;缺点也非常明显,就是难以保证覆盖率。

另外,黑盒测试方法设计的测试用例,可能存在漏洞和冗余,但一般情况下,测试人员很难对其进行评估。所以,测试人员还可利用白盒测试的覆盖指标,来衡量黑盒测试方法的漏洞和冗余情况。

2、白盒测试的方法和小结

白盒测试的方法比较简单,主要分为两类。

一类是静态测试。这类测试主要侧重于源代码检查和优化。其基本测试方法都是不需要设计测试用例,直接查看源代码和模拟执行代码就行。通过提出结构设计优化的意见和有关测试重点的建议,就能完成相应的测试工作。

另一类则是动态测试。这类测试主要侧重于关键程序结构的测试,其基本测试方法是通过对导致程序结构复杂度的判定表达式、执行路径和循环结构,来设计相应的测试用例。从而达到某种程度的测试覆盖,确保测试的测试完备性和无冗余性。

图片

那么,这两类测试的典型测试方式是什么呢?

静态测试的典型方法是:同行评审、静态结构分析、代码质量度量和对变量的数据流测试。而动态测试的方法则有很多,包括:基于逻辑表达式覆盖指标的判定测;基于全路径覆盖的独立路径测试;以及基于循环过程覆盖的对循环的测试等等。

3、白盒测试的综合策略

日常生活中,我们一般以黑盒测试方法为主,以白盒测试作为辅助,补充测试和进行代码优化。

这主要是因为白盒测试是针对程序代码展开的测试,需要测试人员了解程序实现的细节,对设计和执行测试的人员技术要求较高。如果测试新手们想要有能力上的提升,可在进入行业后,深入学习白盒测试的内容。

基于黑盒测试的内容相对更容易理解,下面,我们就白盒测试,说说如何使用综合策略,来进行项目测试。这里,我们主要推荐的综合策略有这些:

1)优先进行静态白盒测试

尤其是在进行功能模块核心代码的测试时,一定要定期组织严格的评审,并通过经验总结,不断更新缺陷检查表等测试标准或规范性文档,做到测试严谨。

2)注意结合边界抽取测试数据

在做设计测试用例时,一定要注意结合逻辑判定表达式的边界、循环次数的边界、变量取值范围的边界等,来综合测试,避免漏测。

3)多利用白盒测试方法做补充测试

尤其是黑盒测试检查不到或难以检查的地方(如内存泄漏),尽量使用特殊的白盒测试方法(如内存泄漏测试),进行补充测试。

4)针对关键变量,使用数据流的测试方法确定补充路径测试的重点

5)尽量利用测试工具完成代码结构和质量的相关分析和评估,对代码进行设计评审和优化。

6)借鉴独立路径的测试方法,设计高层次的测试用例,提高测试的覆盖性,降低测试的冗余。

4、写在最后

对于测试人员来说,无论我们处于学习入门阶段、刚入行工作阶段、还是工作有几年的阶段,一定要把黑盒白盒测试的内容学透,同时不断攻克每个细分领域的测试内容,让自己具备更强的专业能力,为自己未来的职业生涯铺好路~

在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看。

字节大佬,一周讲完,自动化测试项目实战,这套教程是怎么称霸B站的?【2024最新版】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Makefile的入门学习

一、Makefile的入门学习 编译工具及构建工具介绍 在之前的课程,都是直接使用gcc对代码进行编译,这对简单的工程是可以的,但当我们遇到复杂的工程时,每次用gcc等编译工具去操作就会显得很低效。因此make工具就出现了,…

MYSQL之主从复制

一,安装MYSQL,两台 二,配置master服务器 vim /etc/my.cnf 在mysqld模块下加入 server-id133 #配置server-id,让主服务器有唯一ID号(让从服务器知道 他的主服务器是谁),建议使用ip最后3位 log-binmysql-bi…

coze扣子自定义插件开发

之前用过阿里云的,阿里云的插件填写的内容有点复杂 今天体验coze,没想到如此简单; 访问地址:扣子,注册对应账户,并创建对应空间; 第一步:点击插件,新建插件 选择不需要…

OpenHarmony嵌套类对象属性变化:@Observed装饰器和@ObjectLink装饰器

上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型。对于多层嵌套的情况,比如二维数组,或者数组项class,或者class的属性是class,他们的第二…

代码随想录算法训练营第四十八天 | 70. 爬楼梯 (进阶)、322. 零钱兑换、279.完全平方数

70. 爬楼梯 (进阶) 代码随想录 解题思路 1.确定dp数组以及下标的含义 dp[i]:爬到有i个台阶的楼顶,有dp[i]种方法 2.递推公式 dp[j] dp[j - nums[i] ] 装满背包有多少种方法一般用这个 3.遍历顺序 完全背包,且…

Java面试——中间件

OpenFeign 1、openFeign是一个HTTP客户端,它融合了springmvc的注解,使之可以用REST风格的映射来请求转发。 2、可以把openFegin理解为是controller层或是service层。可以取代springmvc控制层作为请求映射,亦或是作为service层处理逻辑&#…

《网络安全技术 生成式人工智能服务安全基本要求》征求意见稿

1. 训练数据安全要求 (1)数据来源安全: 采集来源管理: 采集数据前应进行安全评估,含违法不良信息超过5%的数据源不得使用。 采集后需核验,含违法不良信息超过5%的数据不得用于训练。 不同来源训练数据搭…

kafka-集群-主题创建

文章目录 1、集群主题创建1.1、查看 efak1.2、创建 主题 my_topic1 并建立6个分区并给每个分区建立3个副本1.2.1、查看 my_topic1 的详细信息 1.3、停止 kafka-01实例,端口号为 9095 1、集群主题创建 1.1、查看 efak 已经有三个kafka实例 1.2、创建 主题 my_topic1…

C语言(数据存储)

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记,在这里撰写成文一…

windows上安装jdk1.8

这篇文章详细地介绍如何在windows上安装jdk1.8 目录 准备工作 第一步 第二步 第三步 第四步 第五步 最后的效果 查看JDK版本 准备工作 下载jdk:通过官网或者以下百度网盘链接下载jdk1.8 链接:https://pan.baidu.com/s/1zuMl0B-S6SDgiu1evw-IPQ?…

React useContext源码分析

React 框架中 useContext Hook 用于数据的传递,组件的数据传递有几种方式,通过 props、状态管理 和 useContext。本文将讲述useContext 在 React 是如何工作的,创建一个简单的 Context 例子并根据源码进行 Debug: 创建 context …

subline text3安装numpy,scipy,matplotlib,pandas,sklearn,ipynb

1,numpy(基础数值算法) 安装,要是在cmd直接安装到最后会报错, import numpy as np ModuleNotFoundError: No module named numpy 直接进入python环境,输入python -m pip install numpy就不会报错…

《科技与健康》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《科技与健康》期刊万方网可查吗 答:万方、维普可查 问:《科技与健康》是正规期刊吗? 答:万方维普收录的正规期刊。主管单位:长江出版传媒股份有限公司 主办单位:湖北科学技术…

调用阿里云智能云实现垃圾分类

目录 1. 作者介绍2. API3. 阿里云API垃圾分类业务4. 实验过程4.1 接入阿里云4.2 创建并获取AccessKey ID和Secret4.3 登录阿里云官网,搜索垃圾分类技术文档4.4 配置环境变量4.5 代码部分 1. 作者介绍 孙作正,男,西安工程大学电子信息学院&am…

【计算机毕设】基于SpringBoot的图书进销存管理系统设计与实现 - 源码免费(私信领取)

免费领取源码 | 项目完整可运行 | v:chengn7890 诚招源码校园代理! 1. 研究目的 本研究旨在设计并实现一款基于SpringBoot的图书进销存管理系统,旨在解决图书馆或书店在图书采购、销售和库存管理等方面的问题&#xff…

扩散模型的技术原理和应用价值

引言 一、扩散模型的基本概念 扩散模型(Diffusion Models)是一种基于概率论的生成模型,最初源自物理学中的扩散过程理论,比如墨水在水中的扩散过程。在机器学习领域,这一概念被创造性地应用于数据生成任务,特别是图像和声音的合成…

文件上传题目练习

[HNCTF 2022 Week1]easy_upload 先尝试上传一个php文件,发现直接就成功了 用蚁剑测试连接成功 找到flag [NISACTF 2022]bingdundun~ 白名单上传 这里因为尝试了很多绕过方式都不成功,去搜索了一下wp,发现要用到Phar://伪协议 补充&#xff…

Overleaf(Latex)论文里插入高清matlab图像,亲测有效!!

如何在论文里插入高清的实验结果是个令人头疼的问题,这里以overleaf对matlab结果为例进行了测试,亲测有效。 在matlab图像结果的左上角选择"文件"->“导出设置” 选择“渲染”,分辨率调至600; 字体和线条粗细视个人…

聊聊限流的一些事儿

一、背景 最近几年,随着微服务的流行,服务与服务之间依赖越来越强,调用也越来越复杂,服务间的稳定性变突显出来。特别是在遇到突发请求时,常常需要通过缓存、限流、熔断降级、负载均衡等多种方式保证服务的稳定性。其…

PhpSpreadsheet表格导出

个人笔记记录 使用PhpSpreadsheet 导出excel。 多重表头生成excel 表 //读取数据库public function demo1(){// 连接spc数据库$config Config::get(databaseedc);$db Db::connect($config);$data $db->name("xxxx")->alias(a)->field(main_header, sub_…