黑盒测试的底层逻辑

什么是黑盒测试

它是把程序看作一个黑盒子,在不考虑程序内部结构的情况下,检查程序功能是否按照PRD的规定正常使用,程序是否能适当地接收输入数据,产生正确的输出。

这其实就是黑盒测试的定义,也是黑盒测试的底层逻辑;一般人不会重视定义,但往往就是定义会告诉你真理。

工作中有很多人在习惯了一种类型的系统测试,然后换一个新的业务类型,忽然就不知如何下手了。

也许是新的总要有一个适应的时间,但其实万变不离其宗,只要掌握了黑盒测试的底层逻辑,就能够让你很快上手不再需要适应调整。

我们大部分做的都是黑盒测试,所以无论什么类型的系统,我们的测试方案都是“ 检查程序功能是否按照PRD的规定正常使用,程序是否能适当地接收输入数据,产生正确的输出” 。

我们的测试依据是PRD,首先必须对PRD了如指掌,然后分析他的输入有哪些、输出有哪些,这些都覆盖到了,你基本就可以做到80分了,也就是你拿下这个项目已不成问题。

最后,我还是想再啰嗦强调一下, 就怕我讲的大家还是没有看懂,因为上面讲的大家都懂,第一天了解测试,就知道什么时候黑盒测试,什么输入输出了。但是往往真理就藏在平凡之间,记住他的定义!

当你遇到项目不知如何下手测试时,把定义拿出来认真读三遍,一定会找到答案。

强调

实际当中纯黑盒的其实并不多,除了了解输入、输出,中间的处理逻辑也一定要清楚,这样对测试更有帮助。

另外更重要的就是:必须熟读PRD,必须对PRD里的内容分析透彻,不放过任何一段文字,一个词,其实PRD里和设计文档里也会有很多的漏洞等你挖掘。

黑盒测试底层逻辑详解

即输入输出测试模型。这里的输入,并不是简单的界面输入框才算是输入,任何只要能够触发系统运行的都是输入。按照代码架构分层,输入也可以做到如下分类:

1、界面操作的输入

正向操作

单一操作

正常的操作:输入框、按钮、单选复选框、按钮、下拉框等的规定操作异常的操作:输入框的异常值、超长输入等、按钮的多次点击、快速连续点击(很容易就会发现数据重复提交,或者系统反应缓慢等各种问题,说不定系统就此而崩溃)。

复杂操作

组合操作:一般系统的功能都是各种操作的组合,另外一种跟业务场景相关,也就是各种业务场景同时组合进行操作。

并行操作:多人对同一功能点的并发操作,或者多人对同一个数据进行的操作,比如两个人同时对一条单价进行修改、删除等操作。

逆向操作

逆向操作

回退操作:通过浏览器或APP进行的回退操作。

取消操作:正常操作突然取消,例如用户填写很多表格内容,突然操作了取消,是否需要保存或提示呢?

删除操作:通过系统提供的功能对数据进行删除。

2、服务层的输入

接口服务:对外提供的接口,对于系统来说也是很常见的一种输入,这种输入也是最容易出问题的。

文件上传:有些系统功能是通过获取ftp服务器上的excel、xml等文件来触发系统运行的,所以这时候的输入就变成了文件。

MQ消息:也是京东最常见的一种输入形式,MQ里也可能会包含文件地址等,这种输入就更加灵活了。

强调:对于接口上游的输入,无论何种形式,都要分析上游数据的每一个字段,了解上游各种输入的可能。

有些字段还必须从业务【源头】了解这个字段的含义,可能的枚举值,可能的结果等。

另外由于历史原因,源头的数据就可能存在各种想像不到的数据。

对于输入的分析非常重要,这时候你就可以使用【等价类】方法进行分析。

3、数据层的输入

数据的变化:有很多后台处理的任务就是监控是否有新数据的插入或删除等。

数据字段的变化:后台处理任务监控数据状态的变化,或组合字段的变化等。

缓存数据的变化:除了数据库的变化,有的是缓存数据的变化。

时间的变化:定时任务除了数据是输入,时间也是他的输入。

输出分为可见输出和不可见输出:

看得见的输出:就是我们常见的系统操作反馈,用户能直接看到的变化;比如弹框、提示、跳转、数据的新增、修改、删除后的变化,图片、视频等操作后的变化等等。

看不见的输出:看不见的输出是最容易忽略也是最容易出问题的;【看不见的输出】包括:数据库的变化、缓存的变化、系统文件的变化、发送给下游接口的数据等。

【看得见的输出】虽然能够帮我们验证基本90%以上的功能,通过界面展示的数据也能验证我们新增或修改的数据,是否新增成功了或正确的被修改了。

但是我们看到的只是一部分,还有很多字段是没有被展示的,有的可能只是给下游或其他系统使用的,也有可能是留给未来使用的。这些不可见的部分,经常就会引起系统的异常,也是隐藏在系统中最大的坑。

所以测试,除了站在用户的角度去测试系统,还要站在设计者的角度去测试,更应该站在整个产品的角度去思考。

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

【无线传感器】基于matlab遗传算法GA无线传感器网络中聚类以增强网络寿命【含Matlab源码 14848期】

💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞&#x1f49…

解析 ‘Progressive Revelation’:如何在图执行过程中,分阶段向用户展示 Agent 的思考进度?

尊敬的各位同仁、技术爱好者们: 大家好! 今天,我们聚焦一个在构建智能体(Agent)系统时至关重要,却又常被忽视的议题——渐进式揭示(Progressive Revelation)。特别是在复杂的图执行…

直接上干货!这个通信信号调制识别数据集生成工具能让你摆脱数据荒,咱们从核心代码开始拆解。先看信号生成器的核心逻辑

通信信号调制识别所用数据集生成代码 Matlab自动生成数据集,打标签,绘制不同训练策略和不同训练样本数量的对比曲线图,可以绘制模型在测试集上的虚警率,精确率和平均误差。 可以绘制不同信噪比下测试集各个参数的直方图。 注释非常…

深入 ‘Steering the Agent’:利用输入反馈实时改变正在运行中的 Graph 权重,实现‘人机共驾’

尊敬的各位技术同仁,大家好!今天,我们将深入探讨一个激动人心的主题——“Steering the Agent”,特别是如何利用实时输入反馈来动态调整正在运行中的图(Graph)的权重,最终实现真正意义上的“人机…

基于SpringBoot和Vue的公司文档档案借阅管理系统设计与开发应用和研究

文章目录摘要项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 公司文档档案借阅管理系统基于SpringBoot和Vue技术栈开发,旨在提升企业文档管理…

LangGraph之State的定义

在 LangGraph(LangChain 生态中的一个用于构建状态机和有向无环图工作流的库)中,State(状态) 是整个工作流的核心数据结构。它用于在节点(Node)之间传递信息、维护上下文,并驱动整个…

【后端开发面试高频场景题设计题】深度解析(万字干货)| 面试通关必备

文章目录目录一、 前言:场景题&设计题的面试考察逻辑二、 高频场景题深度解析2.1 缓存三大问题:穿透、击穿、雪崩(面试最高频)问题描述分析思路参考答案面试考察点面试追问2.2 分布式事务的解决方案及适用场景问题描述分析思路…

基于MATLAB Simulink Simscape的倒立摆仿真控制器文档详解

MATLAB倒立摆仿真 simulink simscape 控制器 有文档刚上手倒立摆仿真时总觉得这玩意儿像在钢丝上跳舞——明明物理模型不复杂,但控制器稍微不听话整个系统就翻车。好在MATLAB的SimulinkSimScape组合给咱们配了把瑞士军刀,今天咱们边拆解边实操。先打开Si…

c盘红了怎么清理垃圾而不误删,教您一套安全又效率的清理方法!

“这是怎么回事啊?我的电脑C盘怎么爆满了?我记得自己没往C盘放过东西啊?怎么自己就红了啊?我想自己清理一下C盘,但是又不知道该从哪里入手,害怕删错了东西,那可就完犊子了,有谁知道C…

web自动化测试窗口框架与验证码登录处理

前言 selenium的作用域切换 selenium在处理元素时遇见新窗口、网页嵌套网页、网页的原生弹窗,无法进行直接处理作用域里元素的内容,需要通过切换作用域来处理此类问题。 selenium三种作用域切换: ①、window窗口切换 ②、iframe切换 ③、al…

探秘AI应用架构师的智能营销AI决策系统数据分析能力

探秘AI应用架构师的智能营销AI决策系统数据分析能力 1. 引入与连接:智能营销的变革与数据分析的核心作用 1.1 开场故事:营销困境与AI破局 场景: 2023年,某快消品牌市场总监李明正面临一个典型的营销困境——公司投入了数百万营销预算,却无法准确追踪哪些渠道带来了实际…

编程语言最核心的方面是什么?

编程语言最核心的区分要素及原理 编程语言的核心区别主要体现在以下几个方面,每个方面都有其独特的机制和原理: 一、核心区分要素 1. 编程范式 这是最根本的区别,决定语言如何组织和表达逻辑。 实例对比: # Python(多范…

rdd的持久化

在Apache Spark中,RDD(弹性分布式数据集)的持久化(Persistence)是一种优化技术,用于将RDD的计算结果存储在内存或磁盘中,避免重复计算。以下是关键要点:核心作用避免重复计算&#x…

[Windows] 局域网共享精灵v2025.11.10绿色版

[Windows] 局域网共享精灵v2025.11.10绿色版 链接:https://pan.xunlei.com/s/VOiI2bKifFbU2d-SbBTjWrfPA1?pwdpsbj# 局域网共享精灵是一款Windows环境下助力于局域网环境文件共享和打印机共享,帮助您快捷高效的在局域网内实现文件共享和打印机共享的操作&#xf…

强烈安利!继续教育必用TOP10 AI论文工具测评

强烈安利!继续教育必用TOP10 AI论文工具测评 2026年继续教育AI论文工具测评:为何需要这份权威榜单 在当前学术研究日益数字化的背景下,继续教育群体面临着前所未有的挑战。无论是撰写高质量论文,还是高效完成科研任务,…

介电强度试验仪解决材料在高压环境下的绝缘性能评估问题

介电强度试验仪主要解决材料在高压环境下的绝缘性能评估问题,具体包括以下几个方面:1. ‌评估材料的绝缘性能‌核心功能‌:通过施加直流或交流电压,模拟高压环境,测试材料在电场作用下的击穿电压,从而评估其…

UTS API插件,助力uniapp开发者快速实现人脸识别活体检测

HelloKitty-FaceAIFaceAI人脸识别,活体检测UTS API插件,支持iOS,Android 双端,助力uniapp开发者快速实现人脸识别活体检测。 后面我们会支持主题色定制等功能,更多可根据原生工程项目修改升级插件原生工程:…

【Linux命令大全】003.文档编辑之nl命令(实操篇)

【Linux命令大全】003.文档编辑之nl命令(实操篇) ✨ 本文为Linux系统文档编辑与文本处理命令的全面汇总与深度优化,结合图标、结构化排版与实用技巧,专为高级用户和系统管理员打造。 (关注不迷路哈!!&#…

【Linux命令大全】003.文档编辑之od命令(实操篇)

【Linux命令大全】003.文档编辑之od命令(实操篇) ✨ 本文为Linux系统文档编辑与文本处理命令的全面汇总与深度优化,结合图标、结构化排版与实用技巧,专为高级用户和系统管理员打造。 (关注不迷路哈!!&#…

小迪安全2023-2024|第12天-扩展整理:信息打点-Web应用企业产权指纹识别域名资产网络空间威胁情报_笔记|web安全|渗透测试|网络安全_2023-2024

小迪安全2023-2024|第12天:信息打点-Web应用&企业产权&指纹识别&域名资产&网络空间&威胁情报_笔记|web安全|渗透测试|网络安全_2023-2024 一、信息打点概述 在渗透测试和安全评估中,信息收集是整个…