黑盒测试,白盒测试与灰盒测试的比较和区别

article/2025/9/28 13:09:52

定义

黑盒测试

黑盒测试是一种软件测试技术,它可以检查软件的功能,而不会窥视其内部结构或编码。黑盒测试的主要来源是客户声明的要求规范。

在此方法中,测试人员选择一个函数并提供输入值以检查它的功能,并检查该函数是否给出了预期的输出。如果函数产生正确的输出,则在测试中传递,否则测试失败。测试团队将结果报告给开发团队,然后测试下一个功能。如果出现严重问题,在完成所有功能的测试后,会将测试结果返回给开发团队进行更正。
在这里插入图片描述

  1. 黑盒测试基于要求的规范,因此在开始时进行检查。

  2. 测试人员通过选择有效和无效的输入值来检查软件是正确还是错误地处理它们,从而创建肯定的测试场景和不利的测试场景。

  3. 测试人员开发各种测试用例,如决策表,所有对测试,等效划分,误差估计,因果图等。 包括执行所有测试用例。

  4. 测试仪将预期输出与实际输出进行比较。 最后一步,如果软件中存在任何缺陷,则将其修复并再次测试。

白盒测试

白盒测试,也称为玻璃盒测试,结构测试,透明盒测试,开箱测试和透明盒测试。它测试软件的内部编码和基础设施,重点是根据预期和期望的输出检查预定义的输入。它基于应用程序的内部工作方式,并围绕内部结构测试。在这种类型的测试中,编程测试用例需要编程技巧。白盒测试的主要目标是通过软件关注输入和输出流,并加强软件的安全性。

由于系统的内部透视,使用术语“白盒子”。透明框或白框或透明框名称表示能够透过软件的外壳进入其内部工作。

在这里插入图片描述

白盒测试的测试用例源自软件开发生命周期的设计阶段。数据流测试,控制流测试,路径测试,分支测试,声明和决策覆盖所有这些技术使用白盒测试作为创建无错误软件的指南。

白盒测试的通用步骤

  1. 设计所有测试场景,测试用例并根据高优先级编号对其进行优先级排序。 此步骤涉及在运行时研究代码以检查资源利用率,而不是访问代码区域,
  2. 各种方法和操作所花费的时间等。
  3. 在此步骤中,将对内部子例程进行测试。内部子例程(如非公共方法,接口)能够适当地处理所有类型的数据。
  4. 此步骤侧重于测试控制语句(如循环和条件语句),以检查不同数据输入的效率和准确性。
  5. 在最后一步中,白盒测试包括安全测试,通过查看代码如何处理安全性来检查所有可能的安全漏洞。

白盒测试的原因

它识别内部安全漏洞。
检查代码中的输入方式。
检查条件循环的功能。
在单个级别测试函数,对象和语句。

灰盒测试

灰盒测试是一种软件测试方法,用于部分了解内部工作结构来测试软件应用程序。它是黑盒子和白盒测试的组合,因为它涉及访问内部编码以设计测试用例,因为白盒测试和测试实践在功能级别作为黑盒测试完成。

在这里插入图片描述
灰盒(GreyBox)测试通常识别属于Web系统的特定于上下文的错误。例如; 在测试时,如果测试人员遇到任何缺陷,那么他会对代码进行更改以解决缺陷,然后再次实时测试。它专注于任何复杂软件系统的所有层,以提高测试覆盖率。它提供了测试表示层和内部编码结构的能力。它主要用于集成测试和渗透测试。

为什么选择灰盒测试?

选择灰盒测试的原因如下:

它提供了白盒测试和白盒测试的综合优势。
它同时包括开发人员和测试人员的输入值,以提高产品的整体质量。
它减少了长时间功能和非功能测试的时间消耗。
它为开发人员提供了足够的时间来修复产品缺陷。
它包括用户观点,而不是设计师或测试者的观点。
它深入涉及用户观点的要求检查和规格确定。

黑盒测试白盒测试灰盒测试
不需要了解内部工作结构(代码)。测试用例只需要GUI(图形用户界面)。测试需要了解内部工作结构(软件编码)。部分了解内部工作结构。
黑盒测试也称为功能测试,数据驱动测试和封闭盒测试。白盒测试也称为结构测试,透明盒测试,基于代码的测试和透明测试。灰盒测试也称为半透明测试,因为测试人员对编码知识有限。
测试方法包括试验技术和错误猜测方法,因为测试人员不需要知道软件的内部编码。通过验证软件中固有的系统边界和数据域来进行白盒测试,因为不缺乏内部编码知识。如果测试人员具有编码知识,则通过验证软件的数据域和内部系统边界来进行。
输入表的测试空间(用于创建测试用例的输入)非常庞大,在所有测试空间中最大。与黑盒测试相比,输入表的测试空间(用于创建测试用例的输入)较少。输入表的测试空间(用于创建测试用例的输入)小于黑盒和白盒测试。
发现软件的隐藏错误非常困难,因为错误可能是由于黑盒测试未知的内部工作造成的。发现隐藏错误很简单,因为它可能是由于内部工作,这在白盒测试中得到了深入探索。很难发现隐藏的错误,可在用户级测试中找到。
它不适用于算法测试。它非常适合并推荐用于算法测试。它不被考虑用于算法测试。
黑盒测试中的时间消耗取决于功能规范的可用性。由于冗长的代码,白盒测试需要很长时间来设计测试用例。测试用例设计可以在短时间内完成。
测试人员,开发人员和最终用户可以参与测试。只有测试人员和开发人员才能参与测试; 最终用户不能涉及。测试人员,开发人员和最终用户可以参与测试。
这是所有测试过程中耗时最少的过程。在所有测试过程中,整个测试过程是最耗时的。比白盒测试耗时更少。
黑盒测试涵盖了抵御病毒攻击的弹性和安全性。白盒测试不包括针对病毒攻击的弹性和安全性。灰盒测试不包括针对病毒攻击的弹性和安全性。
黑盒测试的基础是外部期望内部行为未知。白盒测试的基础是编码,负责内部工作。基于高级数据库图表和数据流图进行测试。
它不像白盒和灰盒测试方法那么详尽。黑盒和灰盒测试方法之间最为详尽。部分详尽; 取决于基于编码或基于GUI的测试用例的类型。

http://chatgpt.dhexx.cn/article/B0S4dXWv.shtml

相关文章

【测试方法】黑盒测试、灰盒测试、白盒测试这些你确定都会了吗?

根据利用的被测对象信息的不同,可以将软件测试方法分为:黑盒测试、灰盒测试、白盒测试。 1、白盒测试 1)概念:是依据被测软件分析程序内部构造,并根据内部构造分析用例,来对内部控制流程进行测试&#xff…

黑盒测试、白盒测试、灰盒测试的区别

1. 黑盒测试 黑盒测试也称功能测试、数据驱动测试或基于规格说明书的测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测…

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

测试奇谭,BUG不见。 大家好,我是谭叔。 对于黑盒、白盒与灰盒测试方法的理解,几年前我在某乎做过一个概念性的回答,当时提问者询问:如何跟非技术人员解释黑盒、白盒、灰盒测试的区别? 我的回答原文如下&…

白盒测试、黑盒测试、灰盒测试

根据被测对象的不同,软件测试可以分为白盒测试、黑盒测试、灰盒测试三种方式。那么,这三种测试测试方式具体是如何运行的?各有什么特点?下面,跟着小厚一起了解一下吧! 01 白盒测试 ●概念: ➢…

一直没搞懂灰盒测试的我,收藏了这篇文章

在本文中,我们将了解什么是灰盒测试以及为什么要使用它,以及它的优缺点。 在软件测试中,灰盒测试是一种有用的技术,可以确保发布的软件是高性能的、安全的并满足预期用户的需求。这是一种从外部测试应用程序同时跟踪其内部操作的…

拉普拉斯变换学习笔记

目录 1.为什么引入拉普拉斯变换? 2.双边拉普拉斯的定义 3.双边拉普拉斯变换的收敛域 4.单边拉普拉斯变换的定义 5.单边拉普拉斯变换和傅立叶变换的关系 6.常见信号的拉式变换 7.拉普拉斯变换的性质 7.1.线性、尺度变换性质 7.2.时移、复频移特性 7.3.时域、…

MATLAB之拉氏变换

一、复数和复变函数 1、复数的三种表现形式: 坐标形式: 三角形式: 指数形式: 2、复变函数: 复数集E内的每一个复数zab*i,都有(唯一确定的/无穷多个/有限个)复数与之对应,可以确定(单…

【拉普拉斯变换】2. 拉普拉斯变换的性质

文章目录 【 1. 线性 】【 2. 时域尺度变换 】【 3. 时移 】【 4. S域平移(复频移) 】【 5. 时域的微分(微分定理) 】【 6. 时域的积分(积分定理) 】【 7. 卷积定理 】【 8. S域微分、积分 】【 9. 初值定理、终值定理 】 【 1. 线性 】 例: 注意ROC的变化 &#xf…

【高数+复变函数】Laplace变换的性质

文章目录 【高数复变函数】Laplace变换的性质一、性质1. 线性性质2. 微分性质3. 像函数的微分性质4. 积分性质5. 象函数的积分性质6. 位移性质7. 延迟性质8. 相似性质 【高数复变函数】Laplace变换的性质 通过上一节【高数复变函数】Laplace变换的学习,我们知道了L…

图像变换 -拉普拉斯变换(cvLaplace)

拉普拉斯变换(Laplace Transform),是工程数学中常用的一种积分变换。 拉普拉斯变换也可以用作边缘检测,用二次导数的形式定义。函数 cvLaplace 计算输入图像的 Laplacian变换,方法是先用 sobel 算子计算二阶x和y差分,…

逆Laplace数值逆变换

01拉普拉斯变换定义 1.变换公式 2. 常见函数的Laplace变换 02 Laplace数值逆变换 根据拉普拉斯逆变换的公式,可以看到,f(t)可以变成如下的公式。 #!/usr/local/bin/python # -*- coding: gbk -*- # # TEST1.PY -- by Dr. ZhuoQing…

Laplace变换

众人推荐的 MIT公开课——拉普拉斯变换简介 用级数来理解 拉普拉斯变换比傅里叶变换多了一个衰减因子,使得不满足绝对可积的信号也能转化为频域信号。 两者都能描述幅值信息和相位信息。 --------------------------------------------------------------------…

信号与系统(Python) 学习笔记 (6) 拉普拉斯变换 Laplace Transform

【总目录】 (1) 简介 Intro(2) 傅里叶 Fourier 常用函数的傅里叶变换汇总 (3) LTI 系统 与 滤波器 二次抑制载波振幅调制接收系统 Python (4) 取样 Sampling(5) 离散傅里叶 Discrete Fourier(6) 拉普拉斯变换 Laplace Transform 文章目录 6. 拉普拉斯变换6.1. 拉普拉斯变换 L…

实验八、拉普拉斯变换

实验八、连续系统的复频域分析 一、实验目的二、实验器材三、实验原理1、用MATLAB进行Laplace正、反变换例1:分别用Laplace和ilaplace函数求 2、用MATLAB进行部分分式展开3、用MATLAB分析LTI系统的特性 三、实验内容1、验证实验原理中所述的相关程序;2、…

Laplace变换笔记(2)

对实域内f(t)的Laplace变换函数如下 对s域 Laplace变换收敛域(边界条件): 拉普拉斯变换乘以衰减因子以后要保证衰减和可积,这样的衰减因子所满足的条件则为收敛域 Laplace变换逆变换: 定义式 线性性质拆分&#xff1…

MATLAB——拉氏变换及反其变换、Z变换及其反变换

一、拉式正反变换 1、拉式变换 【时域转s域】 laplace(F) 2、拉式反变换 【s域转时域】 ilaplace(L) 二、Z正反变换 1、Z变换 【ztrans 时域转Z域】 ztrans(f); ztrans(f,w); ztrans(f,k,w); 2、Z反变换 【iztrans Z域转时域】 iztrans(f); iztrans(f,w); iztrans(f…

【高数+复变函数】Laplace变换

文章目录 【高数复变函数】Laplace变换1. 问题引入及定义2. 存在定理3. 常见Laplace变换 【高数复变函数】Laplace变换 1. 问题引入及定义 上一节:【高数复变函数】傅里叶积分 回顾之前我们讲的傅里叶变换要满足的条件有(也就是傅里叶积分要满足的条件…

[Matlab-5]Laplace变换

[Matlab-5]Laplace变换 Laplace 变换(数学)Laplace 变换和逆变换Laplace 变换与Fourier变换的关系极点(pole)与零点(zero)作3D曲面图(surface plot)标题会用到的函数颜色挑选栗子 给定微分方程求Laplace变换…

拉氏变换

拉氏变换 拉氏变换的理解 一个函数f(t)的Laplace变换定义为 这个式子说的是一件这样的事情:F(s)是实空间函数f(t)在复空间中以为基底的投影。 解释 首先,定义复空间上两个函数f,g的内积为 很容易知道是复空间中的一组正交基。那么根据内积的意义——…

【模拟电路建模与控制系统分析】01Laplace变换

0.若没有拉氏变换会怎样? 根据上述微分方程,求输入输出关系,即求解微分方程。 以上为一个卷积关系,求解设计卷积、微分方程,求解困难。而拉氏变换将微分方程变成代数方程,得出系统传递函数,卷积…