黑盒测试与白盒测试的最大区别(黑盒测试与白盒测试的区别)

1.6软件测试的分类

黑盒测试与白盒测试的最大区别(黑盒测试与白盒测试的区别)(1)

  软件测试技术最普遍采用的划分即是黑盒测试技术和白盒测试技术以及灰盒测试技术。三者说明如下:

  黑盒测试:已知产品的用户需求规格,可以通过测试证明整个软件系统是否符合用户的最终需求,

  白盒测试:已知产品的详细设计过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经通过检查。

  灰盒测试:已知产品的接口文档,可以通过接口来验证软件给服务器发送的各项请求和返回值的正确性,可以脱离可视化界面进行测试,大大提高工作效率。

  黑盒测试与白盒测试各自不同的优缺点,使得它们对于软件测试都是非常重要,都是不可或缺的 下面我们还把黑盒测试与白盒测试做一做对比:

黑盒测试

白盒测试

测试依据 根据用户能看到的规格说明,即针对命令、信息、 根据程序的内部结构,比如语句的控制结构,模场

报表等用户界面及体现它们的输入数据与输出数 对控制结构以及内部数据结构等进行测试

据之间的对应关系,特别是针对功能进行测试。

0 站在用户立场上进行测试 能够对程序内部的特定部位进行覆盖测试

不能测试程序内部特定部位 无法检验程序的外部特性

指吸 如果规格说明有误,则无法发现。 无法对未实现规格说明的程序内部欠缺部分进行

方法举例 等价类划分 语句覆盖

边值分析 判定覆盖

因果图 条件覆盖

数据准确性 判定/条件覆盖

路径覆盖

场景法

从上面的对比可以看出,黑盒测试出发点是用户需求,而白盒测试出发点是程序实现。所以,最好

独立的组织来做黑盒测试,这样结果会更客观;白盒测试一般由开发人员完成,因为开发人员更熟悉编程

内部实现

下面我们会对黑盒测试和白盒测试分别介绍;

1.6.1

黑盒测试与白盒测试的最大区别(黑盒测试与白盒测试的区别)(2)

  黑盒测试技术

  黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时。程序看作一个不能打开的黑盒子,在能过时来和内部特性的情况下,测试者在程序口行测试它只检查程序功能是否按照需求规精速明字内结常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

  “黑盒”着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试,

  黑盒测试的检查点一般包括:

  根据需求说明书,检查是否有不正确或遗漏了的功能?是否忽略了用户的隐含需求?

  在软件外部接口上,输入能否正确地被接受?能否输出正确的结果?

  是否有数据结构错误或外部信息(例如数据文件)访问错误?

  性能上是否能够满足要求?

  易用性和其他功能特性是否能够得到满足?

  是否有初始化或终止性缺陷?是否会出现用户不能接受的缺陷?

白盒测试技术

  白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码

1.6.2

黑盒测试与白盒测试的最大区别(黑盒测试与白盒测试的区别)(3)

  代码、分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

  “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。

  第一:穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。

第二:穷举路径测试不可能查出程序中因遗漏路径而出错。

  第三:穷举路径测试可能发现不了一些与数据相关的错误。

  执行白盒测试时,一般要:

  对程序模块的所有独立的执行路径至少测试一次;

  对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次;

  在循环的边界和运行界限内执行循环体;

  测试内部数据结构的有效性,等等。

  1.6.3

黑盒测试与白盒测试的最大区别(黑盒测试与白盒测试的区别)(4)

  灰盒测试技术

  灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。

  灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。

  灰盒(Gray Box)是一种程序或系统上的工作过程被局部认知的装置。灰盒测试,也称作灰盒分析,是基于对程序内部细节有限认知上的软件调试方法。测试者可能知道系统组件之间是如何互相作用的,但缺乏对内部程序功能和运作的详细了解。对于内部过程,灰盒测试把程序看作一个必须从外面进行分析的黑盒。

  灰盒测试相对白盒测试更加难以发现并解决潜在问题,尤其在一个单一的应用中,白盒测试的内部细节可以完全掌握。灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在接口层面体现。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页