黑盒测试,软件测试中的军体拳

news2025/2/24 22:54:23

黑盒测试,软件测试中的军体拳

    • 让我们来讲一个故事
    • 黑盒测试的测试方法
    • 黑盒测试的测试方法
    • 用于黑盒测试的工具:
    • 黑盒测试可以识别什么
    • 黑盒测试的特点:
    • 黑盒测试的优点:

五星上将麦克阿瑟曾经说过“如果把白盒测试比做六脉神剑,那么黑盒测试就是军体拳”

让我们来讲一个故事

今天和女朋友吵架了,(假设你有女朋友)。

今晚又是一个人睡沙发,这天晚上,你躺在沙发上,夜不能寐

因为你需要买礼物给你女朋友,但是你不知道她想要啥

决定。痛定思痛

决定分享一下今天的主题——黑盒测试

在这里插入图片描述

什么是黑盒子测试?

正如前面刚刚提到的,你需要给你女朋友买礼物,但是你不知道她喜欢什么

所以,你只能

1.你试图给女朋友买一份她喜欢的红色连衣裙(输入)。2.你尝试给她买一份她喜欢的音乐会门票(输入)。

以上每一次尝试,你都在观察她的反应(输出)。你并不需要了解礼物的制造过程(算法的内部结构)

就这样,其实以上的动作,就是黑盒测试的测试用例

黑盒测试是一种测试方法,我们不需要了解程序的内部结构或内部功能,只关注程序的输入和输出。类似于你买礼物,你并不需要知道所有礼物的详细信息,你只需要知道你女朋友的信息(输入),然后选择一个她可能会喜欢的礼物(输出)。

在这里插入图片描述

在真实的软件测试环境中,黑盒测试有助于发现输入/输出错误,用户界面的错误,以及在数据结构或操作系统的行为中的初始化和终止错误。说白了,黑盒测试就是最经典的手工测试,测试人员不关心软件的内部知识或实现细节,而是专注于根据提供的规范或要求验证功能。

在真实的软件测试环境中,黑盒测试有助于发现输入/输出错误,用户界面的错误,以及在数据结构或操作系统的行为中的初始化和终止错误。说白了,黑盒测试就是最经典的手工测试,测试人员不关心软件的内部知识或实现细节,而是专注于根据提供的规范或要求验证功能。

黑盒测试的测试方法

今天和女朋友吵架了,(假设你有女朋友)

黑盒测试可以通过以下方式进行:

  1. 语法驱动测试——这种类型的测试适用于可以用某种语言在语法上表示的系统。例如,语言可以用上下文无关语法来表示。在此,生成测试用例,以便每个语法规则至少使用一次。

  2. 等价划分——我们经常看到许多类型的输入的工作原理相似,因此我们可以将它们分组并仅测试每组中的一个输入,而不是单独给出所有输入。这个想法是将系统的输入域划分为几个等价类,使得该类的每个成员的工作方式相似,即,如果一个类中的测试用例导致某些错误,则该类的其他成员也会导致相同的错误。错误。

该技术涉及两个步骤:

等价类的识别 -将任何输入域划分为至少两个集合:有效值和无效值。例如,如果有效范围是 0 到 100,则选择一个有效输入(如 49)和一个无效输入(如 104)。

生成测试用例 - (i) 为每个有效和无效的输入类别分配一个唯一的标识号。(ii) 编写一个涵盖所有有效和无效测试用例的测试用例,考虑到没有两个无效输入会相互掩盖。要计算数字的平方根,等价类将为(a) 有效输入:

完全平方输出的整数将是一个整数。

不是完美平方输出的整个数字将是十进制数。

正小数

负数(整数或小数)。

数字以外的字符,如“a”、“!”、“;”等。

  1. 边界值分析——边界是非常容易发生错误的地方。因此,如果针对输入域的边界值设计测试用例,则测试效率会提高,发现错误的概率也会增加。例如 – 如果有效范围是 10 到 100,则除了有效和无效输入之外还测试 10,100。

  2. 因果图——该技术在称为原因的逻辑输入与称为结果的相应操作之间建立了一种关系。原因和影响用布尔图表示。遵循以下步骤:

确定输入(原因)和输出(结果)。

绘制因果图。

将图转换为决策表。

将决策表规则转换为测试用例。

例如,在下面的因果图中:
在这里插入图片描述
它可以转换成决策表,如下所示:
在这里插入图片描述
每一列对应一个规则,该规则将成为测试用例进行测试。所以会有4个测试用例。

  1. 基于需求的测试——它包括验证软件系统的 SRS 中给出的需求。

  2. 兼容性测试——测试用例结果不仅取决于产品,还取决于提供功能的基础设施。当基础设施参数发生变化时,仍有望正常工作。通常影响软件兼容性的一些参数是:

处理器(Pentium 3、Pentium 4)和多个处理器。

机器的架构和特性(32 位或 64 位)。

后端组件,例如数据库服务器。

操作系统(Windows、Linux 等)。
在这里插入图片描述

黑盒测试的测试方法

功能测试:确定系统的软件功能需求。

回归测试:确保新添加的代码与现有代码兼容。换句话说,新的软件更新不会影响软件的功能。这是在系统维护操作和升级之后进行的。
非功能测试:非功能测试也称为 NFT。此测试不是软件的功能测试。它重点关注软件的性能、可用性和可扩展性。

用于黑盒测试的工具:

  • appium

  • Slenuim

  • Microsoft Coded UI

  • Applitools

  • HP QTP.

黑盒测试可以识别什么

发现缺失的功能、不正确的功能和接口错误

发现访问数据库时遇到的错误

发现启动和终止任何功能时发生的错误。

发现软件性能或行为中的错误。

黑盒测试的特点:

独立测试:黑盒测试由不参与应用程序开发的测试人员执行,这有助于确保测试的公正性。

从用户的角度进行测试:黑盒测试是从最终用户的角度进行的,这有助于确保应用程序满足用户需求并且易于使用。

不了解内部代码:执行黑盒测试的测试人员无法访问应用程序的内部代码,这使他们能够专注于测试应用程序的外部行为和功能。

基于需求的测试:黑盒测试通常基于应用程序的需求,这有助于确保应用程序满足所需的规范。

不同的测试技术:黑盒测试可以使用各种测试技术来执行,例如功能测试、可用性测试、验收测试和回归测试。

易于自动化:使用各种自动化工具可以轻松实现黑盒测试的自动化,这有助于减少总体测试时间和工作量。

可扩展性:黑盒测试可以根据被测试应用程序的大小和复杂性来扩大或缩小。

对应用程序的了解有限:执行黑盒测试的测试人员对所测试的应用程序的了解有限,这有助于确保测试更能代表最终用户将如何与应用程序交互。

黑盒测试的优点:

测试人员不需要具备更多的功能知识或编程技能来实施黑盒测试。

它对于在较大系统中实施测试非常有效。

测试是从用户或客户的角度执行的。

测试用例很容易重现。

它用于查找功能规范中的歧义和矛盾。

黑盒测试的缺点:

在实施测试过程时有可能重复相同的测试。

如果没有明确的功能规范,测试用例很难实施。

由于测试不同阶段的输入复杂,执行测试用例很困难。

有时,无法检测到测试失败的原因。

应用程序中的某些程序未经测试。

它没有揭示控制结构中的错误。

使用大量输入样本空间可能会非常耗时且耗费大量时间。

微信公众号搜索【一个正经的测试】,专注于AI与软件测试技术和宝藏干货分享,每天准时更新原创技术文章,每月不定期赠送技术书籍,让我们在测试会所在测试社区这个大家庭一起学习交流。喜欢记得星标⭐我,每天及时获得最新推送,
在这里插入图片描述
后台回复“软件测试基础”、“AI与大模型“,简历与面试”等领取测试资源,回复“微信交流群”、“内推群”一起进群吹水摸鱼。
个人微信llwfancymyself添加请注明来意 😃

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

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

相关文章

vue实现 marquee(走马灯)

样式 代码 <div class"marquee-prompt"><div class"list-prompt" refboxPrompt><span v-for"item in listPrompt" :title"item" class"prompt">{{item}}</span></div> </div>data() {…

快速入门Torch构建自己的网络模型

真有用构建自己的网络模型 读前必看刚学完Alex网络感觉很厉害的样子&#xff0c;我也要搭建一个可以看着网络结构实现上面的代码你已经很强了&#xff0c;千万不要再想实现VGG等网络&#xff01;&#xff01;&#xff01;90%你能了解到的模型大佬早已实现好&#xff0c;直接调用…

【python】16.Python语言进阶

Python语言进阶 重要知识点 生成式&#xff08;推导式&#xff09;的用法 prices {AAPL: 191.88,GOOG: 1186.96,IBM: 149.24,ORCL: 48.44,ACN: 166.89,FB: 208.09,SYMC: 21.29 } # 用股票价格大于100元的股票构造一个新的字典 prices2 {key: value for key, value in prices…

推荐几个Github高星GoLang管理系统

在Web开发领域&#xff0c;Go语言&#xff08;Golang&#xff09;以其高效、简洁、高并发等特性逐渐成为许多开发者的首选语言。有许多优秀的Go语言Web后台管理系统&#xff0c;这些项目星星众多&#xff0c;提供了丰富的功能和良好的代码质量。本文将介绍一些GitHub高星的GoLa…

07-微服务getaway网关详解

一、初识网关 在微服务架构中&#xff0c;一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢&#xff1f;如果没有网关的存在&#xff0c;我们只能在客户端记录每个微服务的地址&#xff0c;然后分别去调用。这样的话会产生很多问题&#xff0c;例…

设计模式之依赖倒转原则

在软件开发的世界里&#xff0c;设计模式一直是提升代码质量、确保软件稳定性以及优化软件可维护性的重要工具。而在这其中&#xff0c;依赖倒转原则无疑是其中最具代表性的设计模式之一。那么&#xff0c;什么是依赖倒转原则&#xff1f;它又为何如此重要&#xff1f;让我们一…

鼎捷软件获评国家级智能制造“AAA级集成实施+AA级咨询设计”供应商

为贯彻落实《“十四五”智能制造发展规划》&#xff0c;健全智能制造系统解决方案供应商(以下简称“供应商”)分类分级体系&#xff0c;推动供应商规范有序发展&#xff0c;智能制造系统解决方案供应商联盟组织开展了供应商分类分级评定(第一批)工作&#xff0c;旨在遴选一批专…

Python--GIL(全局解释器锁)

在Python中&#xff0c;GIL&#xff08;全局解释器锁&#xff09;是一个非常重要的概念&#xff0c;它对Python的多线程编程有着深远的影响。GIL是Python解释器级别的锁&#xff0c;用于保证任何时刻只有一个线程在执行Python字节码。这意味着即使在多核处理器上&#xff0c;Py…

[HTML]Web前端开发技术13(HTML5、CSS3、JavaScript )横向二级导航菜单 Web页面设计实例——喵喵画网页

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;佬佬会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

离线数据仓库-关于增量和全量

数据同步策略 数据仓库同步策略概述一、数据的全量同步二、数据的增量同步三、数据同步策略的选择 数据仓库同步策略概述 应用系统所产生的业务数据是数据仓库的重要数据来源&#xff0c;我们需要每日定时从业务数据库中抽取数据&#xff0c;传输到数据仓库中&#xff0c;之后…

探索Redis特殊数据结构:Bitmaps(位图)在实际中的应用

一、概述 Redis官方提供了多种数据类型&#xff0c;除了常见的String、Hash、List、Set、zSet之外&#xff0c;还包括Stream、Geospatial、Bitmaps、Bitfields、Probabilistic&#xff08;HyperLogLog、Bloom filter、Cuckoo filter、t-digest、Top-K、Count-min sketch、Confi…

一文掌握SpringBoot注解之@Async知识文集(1)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

手把手教你搭建一个数据可视化看板

前言 俗话说的好&#xff0c;“字不如表&#xff0c;表不如图”、“有图有真相&#xff0c;一图胜千言”。 数据可视化就是用图的形式把基础数据直观&#xff0c;简洁的&#xff0c;高效的展示出来&#xff0c;今天为大家介绍一下如何使用葡萄城公司的嵌入式BI工具——Wyn商业…

Unity3d C#实现场景编辑/运行模式下3D模型XYZ轴混合一键排序功能(含源码工程)

前言 在部分场景搭建中需要整齐摆放一些物品&#xff08;如仓库中的货堆、货架等&#xff09;&#xff0c;因为有交互的操作在单个模型上&#xff0c;每次总是手动拖动模型操作起来也是繁琐和劳累。 在这背景下&#xff0c;我编写了一个在运行或者编辑状态下都可以进行一键排序…

Day12 C基础(指针进阶)

文章目录 指针修饰1.const 修饰2.void 大小端二级指针指针和数组1.指针和一维数组直接访问&#xff1a;间接访问&#xff1a; 2.指针和二维数组直接访问&#xff1a;间接访问&#xff1a; 数组指针 指针修饰 1.const 修饰 1)const int num 10; const int num 10;num 3; i…

【面试合集】说说微信小程序的实现原理?

面试官&#xff1a;说说微信小程序的实现原理&#xff1f; 一、背景 网页开发&#xff0c;渲染线程和脚本是互斥的&#xff0c;这也是为什么长时间的脚本运行可能会导致页面失去响应的原因&#xff0c;本质就是我们常说的 JS 是单线程的 而在小程序中&#xff0c;选择了 H…

Mac系统下,保姆级Jenkins自动化部署Android

一、Jenkins自动化部署 1、安装jenkins 官网&#xff1a;macOS Installers for Jenkins LTS 选择macOS brew install jenkins-lts 安装最新: brew install jenkins-lts 启动jenkins服务: brew services start jenkins-lts 重启jenkins服务: brew services restart jenkin…

YOLOv5改进系列(27)——添加SCConv注意力卷积(CVPR 2023|即插即用的高效卷积模块)

【YOLOv5改进系列】前期回顾&#xff1a; YOLOv5改进系列&#xff08;0&#xff09;——重要性能指标与训练结果评价及分析 YOLOv5改进系列&#xff08;1&#xff09;——添加SE注意力机制 YOLOv5改进系列&#xff08;2&#xff09;——添加CBAM注意力机制 YOLOv5改进系列&…

Netty-Netty源码分析

Netty线程模型图 Netty线程模型源码剖析图 Netty高并发高性能架构设计精髓 主从Reactor线程模型NIO多路复用非阻塞无锁串行化设计思想支持高性能序列化协议零拷贝(直接内存的使用)ByteBuf内存池设计灵活的TCP参数配置能力并发优化 无锁串行化设计思想 在大多数场景下&#…

如何用GPT进行论文润色与改写?

详情点击链接&#xff1a;如何用GPT/GPT4进行论文润色与改写&#xff1f;一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析&#xff0c;AI画图&#xff0c;图像识别&#xff0c;文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Claude2二…