版权归原作者所有,如有侵权,请联系我们

[科普中国]-黑盒测试白盒测试

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。

黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。

黑盒测试概述黑盒测试又名为功能测试,主要目的是发现软件设计的需求或者是软件设计规格说明书中的错误缺陷。软件的开发具有特定性,一般都是为了某种具体特定功能开发的,软件功能的描述依赖于在软件需求阶段的需求规格说明书的分析,软件在设计过程中被分成了一个或者是多个功能,保证这些功能能够正常运行的就是软件测试,从而进一步满足用户的需求与需要。黑盒测试与白盒测试相反,软件设计程序被看做一个打不开的盒子,盒子里的程序代码测试人员不能看到,只能看到软件或者是某些模块的简单功能描述,这种测试方法主要是验证软件或者是功能的实现度。1

测试方法(一)等价类划分法

等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据划分为若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例。测试用例由有效等价类和无效等价类的代表数据组成,从而保证测试用例具有完整性和代表性。使用该方法设计测试用例主要有两个步骤:(1)确定等价类;(2)生成测试用例。

(二)边界值分析法

边界值分析法是对程序输入或输出的边界值进行测试的一种黑盒测试方法。实际的测试工作证明,考虑了边界条件的测试用例比那些没有考虑边界条件的测试用例具有更高的测试回报率。这里所说的边界条件,是指输入和输入等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。

(三)因果图法

因果图法也是较常用的一种黑盒测试方法,是一种简化了的逻辑图。因果图能直观地表明输入条件和输出动作之间的因果关系,能帮助测试人员把注意力集中到与程序功能有关的输入组合上。因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况

(四)错误推测法

错误推测法是基于以往的经验和直觉,参照以往的软件系统出现的错误,推测当前被测程序中可能存在的缺陷和错误,有针对性地设计测试用例。

用错误推测法设计测试用例的基本思想是:列举出程序中可能犯出现的错误或容易发生错误的特殊情况的清单,然后根据清单和已经设计好的测试用例来编写特定的测试用例。例如,程序中出现的输入数据为“0”或者字符为空就是一种错误易发情况;在出现输入或输出的数量不定的地方,数量为“没有”和“一个”也是错误易发情况。特别需要注意的是,在阅读规格说明时联系程序员可能做的假设来确定测试用例,测试人员要站在用户的角度来考虑输入信息,而不必去管这些信息对于被测程序是合理还是不合理的输入。2

白盒测试概述白盒测试又名为结构测试,主要目的是发现软件程序编码过程中的错误。代码编写错误的原因有很多,代码编写过程中,软件代码编写程序员的编程经验、对于开发工具熟悉掌握程度以及代码编写时的精神状态情况,这些情况不佳,都有可能使得他们在编写过程中出现错误。软件程序基本的语法错误在程序调试时,就能够很及时地发现,然后及时进行改正。但是软件程序在运算顺序、逻辑判断以及运行路径上的错误很难发现,在实际的软件程序代码编写上,没有程序员能够保证代码编写结构不出现任何错误,即使是水平很高的程序员也不能保证。白盒测试下,软件程序被看做是一个打开的盒子,盒子里有测试软件的源程序,还能够分析盒子内部的结构,所以这种测试方法能够全面地测试程序代码结构。1

方法步骤白盒测试的方法有三种,一是程序结构分析,根据源代码可以首先绘制程序的流程图,然后根据流程图分析程序的结构。二是逻辑覆盖方测试,根据程序的内部结构,对所有的路径进行测试,是一种穷举路径的测试方法。三是基本路径测试,根据程序的逻辑判断,分析程序中的路径,再进行用例的设计。白盒测试是软件测试中比较重要的一种测试方法,可以分为四个步骤实施,第一步,撰写测试计划。根据需求说明书,制定软件测试的进度,确定人员、范围、技术、风险等,形成测试计划或测试方案。第二步,撰写测试用例。根据源代码及其分析,按照一定规范化的方法进行软件结构划分,并进行测试用例的设计,形成测试用例表。第三步,执行测试用例。按照之前写好的测试用例,进行系统测试的执行,并且记录测试结果,形成缺陷表和缺陷报告。第四步,撰写测试总结。将前期的测试工作做总结,分析用例的数量、发现的高、中、低缺陷数,评价本系统,形成完整的总结报告。3

区别软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序的所有逻辑路径进行测试,通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试。白盒测试主要是想对程序模块进行检查。4

本词条内容贡献者为:

徐恒山 - 讲师 - 西北农林科技大学

评论
中国科普N
太师级
阅读
2023-01-24