重温黑盒、白盒与灰盒测试方法

news2024/11/26 0:50:10

 黑盒、白盒和灰盒测试方法是软件测试中常用的测试策略,用于评估系统的功能和质量。

对于黑盒、白盒与灰盒测试方法的理解,几年前我在某乎做过一个概念性的回答,当时提问者询问:如何跟非技术人员解释黑盒、白盒、灰盒测试的区别?

我的回答原文如下:

既然是对非技术人员解释,就不能用专业术语。
这样说吧,有个打孔机,类似这样。
 

image.png


纸条从盒子左方插入,从右方出来时,分别打出圆形、正方形、三角形三个样式的孔。

image.png

 

某天,打出来的纸条,只有一种图形。

image.png

 

黑盒测试员只能说:“这个打孔机坏了!”

 

灰盒测试员把打孔机的盖子掀开,发现打孔机的造型原来是这样的。

image.png

 

于是他说:“机器仍能打孔,说明主机没坏;三个桩子也都是好的;但只打印出了圆形,可能因为连接正方形和三角形桩子的地方有问题。”

 

白盒测试员把机器拆开,查看内部的电线、电路、控制器等等,发现连接正方形和三角形的电线烧坏了,于是说:“原因找到了,换根电线吧。”

彼时,我还是一位测试小鸟,在研习了不少理论知识后,回答了这个问题。现在,我算不上测试老鸟,但能算个测试大鸟,在工作中,越发频繁地接触这三种测试方法。

如果你要问我哪种测试方法更好,我不置评价,每个人的口味不一样,别人适合的不一定自己适合。

对于黑盒测试方法来说,是每一位测试的必备技术,没有谁不会:发现问题,抛出问题。

简单、轻松、快速,是黑盒测试的优点,特别是在项目特别赶,测试时间无限被压缩的时候——只需要抛给开发问题,剩下的让开发自个儿玩去吧。

但黑盒测试人员常常被人诟病只知道点点点,抛开此类 “鄙视” 不谈,接着上面继续,我们是不是忽略了一个事实:项目既然赶,那开发的时间亦不充足,如果恰好遇上稍稍复杂的 bug,并搭配不靠谱的开发,一个 bug 的生命周期可能会拉得极长,效率特别低下。

这么说,那用白盒测试方法呗,看代码,查原因,丢给开发后,留下一个高大帅气的背影,让开发心里默念——这个测试不简单。

白盒测试可以,但使用它时,你需要盘算盘算:

  • 是否有充足的时间研究代码以及和代码相关的环境部署、配置设置等?

  • 付出和产出是否成正比,如同自动化测试,能达到高性价比吗?

白盒是一种选择,但同样是一个难题。更别说白盒对于测试技术的高要求。

废话了这么多,你一定会说:风风,你不就是拐弯抹角地推荐灰盒测试嘛。

我不知道该怎么回答你,就像刚开始说的,每个人的口味不一样,适合自己的测试方法,最醇最香。

但说实话,日常工作中我使用灰盒测试方法的场景相对较多,总结来说,就这么一个流程:

发现问题-->我大概知道你是怎么玩的-->初步定位问题原因-->同开发确定问题-->接下来呢?

会分成两类:

1、我定位的原因并不是真正的原因。但我能通过这个过程学习到新知识、新业务,积攒个人经验(很多人往往弃步于此)

2、我定位的问题是真正的原因。就此打住吗?并不是。你能提出问题的解决建议吗?你的建议是否比开发的修改 or 产品给的方案更好,更具有可实施性?

合理地提出解决问题的建议,这才是你关注的重点,而不是因为找到问题原因而沾沾自喜,迷失于他人的赞许中。

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)

相信能使你更好的进步!

点击下方小卡片

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

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

相关文章

UG\NX二次开发 使用exception类,异常处理的方法

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介 异常处理是一种编程中常见的错误处理机制,它允许程序在遇到错误或异常情况时优雅地处理。在C++中,异常类是一种重要的异常处理工具。 当程序发生错误或异常时,我们可以使用excepti…

查看maven包依赖关系,一行命令搞定。

1:以logback-classic包为例,在命令端运行,下面命令 mvn dependency:tree -Dincludesch.qos.logback:logback-classic 2.会出现以下日志,就可以清楚的知道这个jar包,是在谁的下面。

python 批量下载图片(协程)

要下载的图片网站 1、总共多少页,得到每页的 url 列表 2、每页的图片详情的 ulr 列表(因为该高清大图在图片详情页,因此需要去图片详情页拿图片的url) ​​​​​​​ 3、进入图片详情页,获取到图片url 然后下载。 完整代码如下&…

玩转代码|详细盘点JavaScript 数据类型

目录 什么是JavaScript JavaScript 拥有动态类型 JavaScript 字符串 JavaScript 数字 JavaScript 布尔 JavaScript 数组 JavaScript 对象 Undefined 和 Null JS 中如何判断 undefined JS 中如何判断 null 声明变量类型 什么是JavaScript JavaScript(简称…

“nacos is starting with cluster”之nacos启动报错问题

下载并解压nacos后,通过点击startup.cmd启动nacos,出现nacos is starting with cluster的错误,导致nacos未能启动成功。 这是因为,通过startup.cmd命令启动nacos,默认是以集群的方式进行启动的,我们可以改…

为3.7亿用户提供优质服务的微众银行,如何保障应用安全、及时上线

微众银行成立于2014年,是国内首家数字银行。作为银行业改革创新的产物,开业八年多来,微众银行积极把握数字经济时代发展新机遇,运用科技手段为小微企业及普罗大众提供特色化、差异化的优质金融服务,在以数字普惠金融服…

地下供水管漏水监测-供水管道漏水监测设备

地下供水管道作为城市供水系统的重要组成部分,承载着为居民和企业提供清洁饮用水的重要使命。然而,由于管道老化、施工质量、外力损伤等因素,地下供水管道泄漏问题时有发生,这不仅造成了宝贵的水资源浪费,还会导致供水…

流程编排及可视化

写在前面 这里只介绍liteflow的简单基础使用以及作者对liteflow进行可视化扩展的相关阐述 一、背景及意义 背景:对于拥有复杂业务逻辑的系统承载着核心业务逻辑,这些核心业务逻辑涉及内部逻辑运算,缓存操作,持久化操作&#xf…

LiveQing视频点播RTMP推流直播功能-点播拉转在线资源拉转转推到鉴权直播间云端录像集中录像存储

LiveQing点播拉转在线资源拉转转推到鉴权直播间云端录像集中录像存储 1、基本功能2、拉转直播2.1、点播资源拉转2.2、在线资源拉转2.3、服务器本地文件拉转 3、拉转直播如何录像?4、RTMP推流视频直播和点播流媒体服务 1、基本功能 LiveQing RTMP直播点播流媒体服务…

Electron运行报错: Failed to fetch extension, trying ...

Script: "electron:serve": "vue-cli-service electron:serve", 运行 npm run electron:serve 时报错: 解决方法: 检查你的electron配置文件也就是 vue.config.js 中的 mian 的文件 注释其中关于开发工具安装的部分:…

搭建zyplayer-doc个人WIKI文档管理工具,问题记录及简单使用

目录 项目简介各模块介绍项目部署准备工作修改配置及数据库初始化 编译部署编译后文件前后端在同一个部署包当中(无需单独部署前端) 环境部署目录规划启动脚本编写登录 部署问题记录错误: 找不到或无法加载主类Failed to instantiate [javax.sql.DataSou…

Linux--标记位:flag

我们知道&#xff0c;标记位赋予的值不同&#xff0c;就会生成不同的选项。那么如何给一个变量的位置赋予多个值呢&#xff1f; int整型有32个比特位&#xff0c;故我们可以通过改变位的方式改变值的大小 示例&#xff1a; #include <stdio.h> #include <unistd.h&…

Pandas数据分析库详解

概要 Pandas是一个基于 NumPy 的非常强大的开源数据处理库&#xff0c;它提供了高效、灵活和丰富的数据结构和数据分析工具&#xff0c;当涉及到数据分析和处理时&#xff0c;使得数据清洗、转换、分析和可视化变得更加简单和高效。本文中&#xff0c;我们将学习如何使用Panda…

ABeam News | 聚智同行,制胜未来,ABeam Consulting出席2023思爱普中国峰会

News 6月14日&#xff0c;2023思爱普中国峰会在北京盛大召开。本届峰会以“创新赋能高质量发展”为主题&#xff0c;现场汇聚了业界大咖、行业专家和众多客户伙伴&#xff0c;聚焦数字化加速、全球化出海、可持续发展等主题。ABeam Consulting作为SAP金牌合作伙伴及本次峰会的…

MDK版本坑error: A1167E: Invalid line start

移植threadx时对于.s的汇编文件报了大量错误&#xff0c;到文件里查看是汇编文件中的注释使用的C的注释方法&#xff0c;导致大量报错 MDK官网查到原因&#xff0c;一个是版本问题&#xff0c;一个是设置问题&#xff0c; https://developer.arm.com/documentation/ka002247…

mac端好用的多功能音频软件 AVTouchBar for mac 3.0.7

AVTouchBar是来自触摸栏的视听播放器&#xff0c;将跳动笔记的内容带到触摸栏&#xff0c;触摸栏可显示有趣的音频内容&#xff0c;拥有更多乐趣&#xff0c;以一种有趣的方式播放音乐&#xff0c;该软件支持多种音频播放软件&#xff0c;可在Mac上自动更改音乐~ 音频选择-与内…

刷个宇宙题:剑指 Offer II 006. 排序数组中两个数字之和、 007. 数组中和为 0 的三个数

题目 006. 排序数组中两个数字之和 方法1&#xff1a;哈希表的方式 class Solution { public:vector<int> twoSum(vector<int>& numbers, int target) {//存一个key-value (值&#xff0c;index)unordered_map<int, int> ValueMap;int i 0;for(auto nu…

【内网自制无需密码的SSL证书--适用与IP或者localhost】

内网自制无需密码的SSL证书--适用与IP或者localhost 前言步骤确认是否安装openssl自制CA私钥自制csr文件免除密码自制CA证书 验证 前言 搞半死&#xff0c;原来这么简单&#xff0c;今天就把教程分享给大家&#xff0c;本文基于CentOS7环境的openssl生成SSL自制证书&#xff0…

项目实战Qt网盘系统

背景&#xff1a;随着时代的发展&#xff0c;业务数据量的剧增及移动办公需求&#xff0c;人们对内存的需求越来越强&#xff0c;传统的存储产品&#xff0c;在容量及携带型日益不能满足人工的工作需求&#xff0c;网盘再此背景下应运而生。网盘是能够提供文件同步&#xff0c;…

python用scrapy框架爬取双色球数据

1、今天刷到朋友圈&#xff0c;看到一个数据&#xff0c;决定自己也要来跟随下潮流&#xff08;靠天吃饭&#xff09; 去百度了下&#xff0c;决定要爬的网站是https://caipiao.ip138.com/shuangseqiu/ 分析&#xff1a;根据图片设计数据库便于爬取保存数据&#xff0c;时间&am…