黑盒测试和白盒测试

一、黑盒测试和白盒测试

以下定义取自维基百科,个人认为不如百度百科的解释更加形象。

黑盒测试,软件测试的主要方法之一,也可以称为功能测试、数据驱动测试或基于规格说明的测试。测试者不了解程序的内部情况,不需具备应用程序的代码、内部结构和编程语言的专门知识。只知道程序的输入、输出和系统的功能,这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。测试案例是依应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确的输出。通过测试来检测每个功能是否都能正常使用。

白盒测试(white-box testing)又称透明盒测试(glass box testing)、结构测试(structural testing)等,软件测试的主要方法之一,也称结构测试、逻辑驱动测试或基于程序本身的测试。测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑盒测试)。在白盒测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。测试者了解待测试程序的内部结构、算法等信息,这是从程序设计者的角度对程序进行的测试。

 1. 简单分析:

  黑盒测试

测试特点:测试功能;

测试依据:需求规格说明书

方法举例:等价类划分、边界值测试、因果图法、场景法、

优点:能站在用户的立场上进行测试

缺点:不能测试程序内部特定部位,如程序有误,则无法发现。

白盒测试

测试特点:测试程序接口与结构

测试依据:软件程序

方法举例:逻辑覆盖、静态结构分析、基本路径测试法、循环覆盖

优点:对程序内部特定部位进行覆盖测试。

缺点:无法检验程序外部特性。

 2.直观地理解:

  黑盒测试把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,针对“软件界面”和”软件功能“进行测试,只检查功能是否符合需求规格说明书能正常使用。因此黑盒测试又叫功能测试或数据驱动测试。

  白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看作一个打开的盒子,他允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为”结构测试“或”逻辑驱动测试“。白盒测试是按照程序内部的结构来测试程序,通过测试检验产品内部动作是否按照设计规格说明书的要求正常进行,检验程序中的每条通道是否都按照规定正常工作。

  3. 作用:

  黑盒测试主要是为了发现以下错误:

 (1)是否有不正确或者遗漏了的功能;

 (2)在接口上,输入能否正确的接受?能否输出正确的结果?

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

 (4)性能上是否能够满足要求?

 (5)是否有初始化或终止性错误?

黑盒的测试用例技术设计有三种:  边界值分析、等价类划分、错误推测法。

 白盒测试主要是想对程序模块进行以下检查:

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

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

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

 (4)测试内部数据结构的有效性,等等;

 (5)静态白盒测试  :即代码审查,正式审查和检验设计和程序代码;

 (6)动态白盒测试 利用查看代码功能和实现方式得到的信息来设计和执行测试,也叫结构测试;

 白盒的测试用例技术包括逻辑覆盖和基本路径测试。

  逻辑覆盖:是以程序内在逻辑结构为基础的测试用例设计技术,这一方法要求测试人员对程序的逻辑结构有清楚的了解。

 基本路径测试:在程序控制流程图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。


部分内容参考自:http://blog.csdn.net/ningmeng2010/article/details/8114530

建议读者直接参考百度百科词条,不建议参考维基百科

黑盒测试:https://baike.baidu.com/item/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95

白盒测试:https://baike.baidu.com/item/%E7%99%BD%E7%9B%92%E6%B5%8B%E8%AF%95


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑盒测试白盒测试是软件测试中两种常见的测试方法,它们用于验证软件系统的功能和质量。下面是对黑盒测试白盒测试的介绍: 1. 黑盒测试黑盒测试是一种基于软件外部行为的测试方法,测试人员只关注软件的输入和输出,而不考虑内部实现细节。在黑盒测试中,测试人员不需要了解软件的内部结构和代码,只需根据需求规格说明书或功能规范来设计测试用例。黑盒测试主要关注以下几个方面: - 功能测试:验证软件是否按照需求规格说明书中的功能要求正常工作。 - 边界值测试测试边界值情况下软件的行为,例如输入的最大值、最小值等。 - 错误处理测试测试软件对于错误输入或异常情况的处理能力。 - 性能测试:验证软件在各种负载情况下的性能表现。 2. 白盒测试白盒测试是一种基于软件内部结构和代码的测试方法,测试人员需要了解软件的内部实现细节。在白盒测试中,测试人员可以查看源代码、设计文档等来设计测试用例,并通过代码覆盖率等指标来评估测试的完整性。白盒测试主要关注以下几个方面: - 语句覆盖:测试用例能否覆盖到软件中的每一条语句。 - 分支覆盖:测试用例能否覆盖到软件中的每一个分支。 - 路径覆盖:测试用例能否覆盖到软件中的每一条可能路径。 - 数据流覆盖:测试用例能否覆盖到软件中的每一个数据流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值