软件测试方法之黑盒测试与白盒测试

article/2025/11/1 6:13:24

软件测试方法之黑盒测试与白盒测试
摘要:黑盒测试与白盒测试都是软件测试的重要方法。白盒测试是通过程序的源代码进行测试而不使用用户界面,它主要用于检测软件编码过程中的错误;而黑盒测试是是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的,它主要检测软件的每一个功能是否能够正常使用。他们是相辅相成的。
关键词:黑盒测试;白盒测试;优缺点;软件测试
【1】在这里插入图片描述

1测试的概念
1.1测试的定义
测试的正确定义是“为了发现程序中的错误而执行程序的过程”。这和某些人通常想象的“测试是为了表明程序是正确的”“成功的测试是没有发现错误的测试”是完全相反的[1]。简而言之,找错的活动称测试。而测试的目的是找出软件设计开发全周期中各个阶段的错误,以便分析错误的性质与位置加以纠正。
1.2软件测试的定义
软件测试的定义是:“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别[2]”。这个定义明确的指出了软件测试的目的是为了检验软件系统的是否符合需求,它并不是一个一次性的,而且是软件开发后期的活动,是整个开发流程的一部分。软件测试能够在软件投入运行前,对软件需求分析,设计规格说明和编码实现的最终的审核,它是软件质量得到保证的关键步骤。
2.黑盒测试概念
2.1黑盒测试概念
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。黑盒测试着眼于程序外部机构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
2.2黑盒测试原理
在进行黑盒测试时,测试者把程序看做一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当的接收输入数据而产生正确的输出信息,并保持外部信息的完整性[4]。例如:我们要去使用这个百度,比如说我搜索了诗人李清照,我点击百度一下,我只要得到的结果是有关于诗人李清照这样的词条出现,那么我就认为这个功能是正确的。使用黑盒子测试法不需要看到里面的这个代码实现是什么样子的,也不管里面是用Python实现的用Java实现的还是用其他编程语言实现的,只要管我的功能有没有实现。黑盒测试方法有边界值分析法、等价类测试法、因果图法、决策表法、错误推测法、Use Case法(场景法)、正交实验法等,主要用于确认测试。

2.3黑盒测试的目的
黑盒测试主要是为了发现以下错误:是否有不正确或者遗漏了的功能;在接口上,输入能否正确的接受;能否输出正确的结果;是否有数据结构错误或外部信息(例如数据库文件)访问错误;性能上是否能够满足要求;是否有初始化或终止性错误等。

2.4黑盒测试的优缺点
黑盒测试优点:上手简单,只需关注PRD和业务逻辑,测试者不受任何特定编程语言知识的压力,可以测试应用程序/软件的可靠性和功能性;用户视角,更贴合真实用户使用场景;有助于识别功能规范中矛盾和模糊性。
黑盒测试缺点:测试质量高低受测试工程师经验影响,测试工程师的经验越高,对测试越有利;异常场景比较难覆盖,比较难提供直观的测试覆盖率;用例代码覆盖率低,不能用于测试复杂的代码段;测试所有可能的输入流是不可能的,因为这很耗时,并且最终将使许多程序路径未经测试。
3.白盒测试
3.1白盒测试概念
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部的工作过程,可通过测试产品内部动作是否按照规格说明书说明的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能[5]。其主要用于软件验证。
3.2白盒测试原理
软件的白盒测试是对软件的过程性细节做细致的检查。白盒测试把测试对象看做一个打开的的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对所有逻辑路径进行测试,在程序的不同点检查程序的状态,来判定其实际情况是否和预期的状态相一致。白盒测试的主要方法有代码检查法、静态结构分析法、基本路径分析法、逻辑覆盖法等。

3.3白盒测试的目的
白盒测试主要是想对程序模块进行如下检查:对程序模块的所有独立的执行路径至少测试一遍;对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍;在循环的边界和运行的界限内执行循环体;测试内部数据结构的有效性,等等。
3.4白盒测试的优缺点
白盒测试优点:(白盒测试要求对某些程序的结构特性做到一定程度的覆盖,或者说是“基于覆盖率的测试”)迫使测试人员去仔细思考软件的实现;容易自动;用例覆盖率高,可以检查代码中的每条分支和路径;异常场景易发现;对代码的测试比较彻底,可以揭示隐藏在代码中的错误。
白盒测试缺点:投入成本高,昂贵;更多以开发视角出发,容易脱离业务;无法检测代码中遗漏的路径和数据的敏感性错误;无法坚持程序的外部特征;白盒测试也并不验证规格的正确性;即使每条路径都测试了仍然可能有错误。
5结论
软件测试有一个致命的缺陷,即测试的不完全性、不确定性,这是因为任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试。黑盒测试与白盒测试相辅相成,各有所长,两者并不矛盾。且两者都是保障产品质量的不同手段,软件测试需要两者的结合。黑盒测试对于确保系统按照预期实现很关键,而实现黑盒测试并不需要掌握太多的编码知识,因为它检查的是整个软件或者软件功能,而不需要检查代码。这个时候进行白盒测试所需要掌握的了解系统的逻辑过程和工作原理更加重要。

参考文献:
[1]:软件工程导/章海藩,牟永敏编著.-6版-北京:清华大学出版社,2013(2020.6重印)
[2]软件测试技术基础/苟英,中国水利水电出版社,2013
[3]软件测试/郑人杰,人民邮电出版社,2011
[4]软件测试技术/库波,中国水利水电出版社,2001
[5]软件测试教程/贺平,电子工业出版社,2010
图片来源网址:
[1]:https://pic1.zhimg.com/v2-a460bdccc5afe14e3077ecb480271ef8_1440w.jpg?source=172ae18b


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

相关文章

软件测试技术之: 白盒测试和黑盒测试

白盒测试和黑盒测试 目录 1. 软件测试基本分类...1 2. 测试方法...2 2.1 白盒测试...2 2.1.1 语句覆盖...2 2.1.2 判定(分支)覆盖...3 2.1.3 条件覆盖...3 2.1.4 判定/条件覆盖...4 2.1.5 多重条件覆盖...5 2.1.6 路径覆…

黑盒测试VS白盒测试

文章目录 概述一、测试方式不同二、测试目的不同三、测试原则不同四、优缺点对比五、测试用例设计六、结语 概述 白盒测试 白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量&…

什么是黑盒测试,白盒测试,灰盒测试?

一、白盒测试 白盒测试也称为结构测试,主要应用于单元测试阶段,检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。 白盒测试的方法: 强度由低到高: 语句覆盖…

黑盒白盒测试的区别

一.黑盒测试(Black-box Testing) 黑盒测试也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。 不看软件代码,只对功能进行测试 对软件进行操作,观察结果是…

黑盒测试、白盒测试

定义:黑盒测试:黑盒测试(Black-box Testing),黑盒测试又称为“功能测试”,是将测试对象看做一个黑盒,在并不考虑软件产品的内部结构和处理过程的基础上对软件产品进行功能测试。 白盒测试&…

测试技术 --黑盒测试与白盒测试

黑盒测试与白盒测试的区别:黑盒测试不知道内部代 一、测试方式不同 1、黑盒测试:功能测试,是通过测试来检测每个功能是否都能正常使用。 2、白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。 二、测试目的不…

一文带你吃透黑盒测试跟白盒测试的区别

前言 大家好,我是小七,在前面的测试笔记中我们具体聊过白盒测试跟黑盒测试,这些天跟我的一些同事也有聊到类似的一些概念,今天就跟大家分享下我对这两种测试的理解。 黑盒测试 它是根据软件需求和规范创建测试场景/案例,按照需求文档里面定义的行为及规范进行输入并且检查…

黑盒测试AND白盒测试

一.黑盒测试(Black-box Testing) 黑盒测试也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。 不看软件代码,只对功能进行测试 对软件进行操作,观察结果是…

黑盒测试与白盒测试的区别

黑盒测试与白盒测试的区别有哪些? 一、测试方式不同 1、黑盒测试:功能测试,是通过测试来检测每个功能是否都能正常使用。 2、白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。 二、测试目的不同 1、黑盒测试…

什么是黑盒测试和白盒测试,有什么区别?

目录 一、黑盒测试 二、白盒测试 三、黑盒测试和白盒测试的区别和联系 一、黑盒测试 黑盒测试(Black Box Testing)是一种软件测试方法,它关注于对被测试系统的功能和接口进行测试,而不考虑内部实现细节。在黑盒测试中&#xf…

软件测试用例的优点和缺点,浅析黑盒测试和白盒测试各自的优缺点

软件测试是为了发现程序中的错误而执行程序的过程,常用黑盒功能测试法和白盒结构测试法进行测试,那黑盒功能测试法和白盒结构测试法到底是什么样的测试方法?它们有哪些优劣势呢? 所谓黑盒功能测试法,就是把要测试的软件看成一个黑盒子,不管其内部结构如何以及用什么算法实…

黑盒测试和白盒测试的概念和区别你知道吗?

目录 前言 黑盒测试 黑盒功能测试 非功能黑盒测试 回归黑盒测试 白盒测试 出于安全原因 解决性能问题 检查链路 需要黑盒和白盒测试的结合 前言 软件测试是软件开发过程中的基本活动。黑盒测试和白盒测试是两种不同类型的软件测试策略,它们具有同样强大的…

笔记~【软件测试基础知识】——黑盒测试和白盒测试

这里写目录标题 一、黑盒测试二、白盒测试 一、黑盒测试 黑盒测试概述 黑盒测试也称功能测试或数据驱动测试。它已知产品所应具有的功能,通过测试来检测每个功能是否能够正常使用,主要针对软件界面和软件功能。在测试时,把程序看作一个不能打…

白盒测试和黑盒测试的区别

白盒测试和黑盒测试的区别白盒测试和黑盒测试都是计算机领域行业用以检查程序的状态,确定实际运行状态与预期状态是否一致的重要环节,来看看他们有什么不一样吧。 白盒测试技术 (White Box Testing) : 深入到代码一级的测试,使用这…

测试用例设计方法——黑盒测试和白盒测试

目录 一、黑盒测试 1、什么是黑盒测试? 2、黑盒测试用例设计方法 ☆等价类划分 ☆边界值分析 二、白盒测试 1、什么是白盒测试? 2、白盒测试用例设计方法 三、灰盒测试 一条完整的测试用例应包括: 用例编号、项目名称、用例标题、优…

DNF游戏多开虚拟机,过TP过三方,过制裁,DNF虚拟机同步

DNF虚拟机游戏交流群:5448030(群内免费虚拟机使用) 虚拟机下载https://pan.baidu.com/s/169VvEyZ0zIGfrCjAUcRCjw 提取码: ruax

dnf游戏多开虚拟机,过检测过制裁,dnf同步

dnf虚拟机交流群372834206(群内安装虚拟机) **dnf虚拟机交流群372834206(群内安装虚拟机)

DNF源码2020-10-26

1.源码如图 2.源码链接 源码链接 3.编译和运行所需文件如下 4.其他问题请私信我 5.效果视频 百度网盘链接:https://pan.baidu.com/s/1qat846REsxwPxIIkmrHIgw 提取码:4em4

DNF脚本完整源码编辑可用

DNF脚本完整源码编辑可用 1.以下是源码相关截图,完整的,不缺东西,编辑可用 源码属于未开发完的,只有钢铁之臂和特伦斯可用 由于各种原因,此源码不再继续开发,后续会不断分享新的DNF源码 2. 3. 4. 5. …

Linux系统之dnf包管理器的基本使用

Linux系统之dnf包管理器的基本使用 一、dnf工具介绍1. dnf工具简介2. dnf的功能 二、DNF的安装1. 检查本地操作系统版本2. 安装epel3. 检查本地yum仓库状态4. 安装dnf包 三、dnf的使用帮助1. 查看dnf版本2. 查看dnf命令的帮助信息3. dnf命令的选项解释 四、dnf命令的基本使用1.…