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

什么是黑盒测试和白盒测试?
任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

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

1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?

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

1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。

以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。

时间: 2024-08-29 22:12:04

黑盒测试与白盒测试的区别的相关文章

黑盒测试比白盒测试技术要求更高吗?

  几个月前我还在谈论黑盒测试不一定比白盒测试技术含量低,现在我却可以比较肯定地说,黑盒测试比白盒测试更难,技术要求更高.道理其实非常简单,黑盒,白盒测试的本质区别在于源代码的访问权利,白盒测试具有这种权利,因此也就具有更多的资源和信息进行测试,当然事情就会变得容易很多,而黑盒测试由于不能看到源代码,就使得对于白盒测试人员发现的bug,你要花更多的时间,并且具有更高的技术才有可能发现. 我做黑盒测试已经4年多了,是一个地地道道的黑盒测试人员,可是我具有源代码访问的权利,也就是说,虽然我是做黑盒测

论黑盒测试与白盒测试在软件测试中的不同作用

摘要:黑盒测试着眼于外部结构,不考虑内部结构,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明:而白盒测试着眼于内部结构,对软件的过程性细节做细致的检查. 关键词:黑盒测试:白盒测试:测试用例 一.引言 随着软件市场的成熟,人们对软件作用的期望值也越来越高,我国的软件企业已越来越意识到软件测试的重要性,逐渐加大软件测试在整个软件开发的系统工程中的比重. 软件测试并非传统意义上产品交付前单一的"找错"过程,而是贯穿于软件过程的始终,是一个科学的质量控制过程.而对于任何工程产

百度无人车团队测试开发面试

百度无人车测试开发面试总共分为三轮,前两轮是技术面试,第三面是部门经理面试.前两轮面试一轮一小时,第三轮面试采用电话面试. 第一轮面试:刚开始让写一下基础的数据结构:队列.栈.堆:其次写一个自己最熟悉的排序和查找算法.我写的是快排和二分查找,期间还出现了错误,针对这两个算法优缺点进行对比:接下来问的python里基础的数据结构,dict.list.tupple.set的特点和区别,以及适应场景,python装饰器:OSI七层模型以及对应的协议,强调网络层和数据传输层:对测试的理解,常见的软件测试

iOS面试题总结 一

1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding;  + (id) stringWithCString: (c*****t char*)nullTerminatedCString               encoding: (NSStringEncoding)encoding  {    NSString  *obj

渗透测试的8个步骤—转载

渗透测试的8个步骤 展现一次完整的渗透测试过程及思路 发布时间:2017年10月25日 15:11    浏览量:1104   渗透测试这个事情不是随便拿个工具就可以做了, 要了解业务还需要给出解决方案 .之前安全加介绍了金融行业 实战微信银行渗透测试, 运营商 渗透测试实战 ,今天让我们来说说 渗透测试 的流程及渗透测试相关概念. 渗透测试流程 渗透测试与入侵的最大区别 渗透测试:出于保护系统的目的,更全面地找出测试对象的安全隐患. 入侵:不择手段地(甚至是具有破坏性的)拿到系统权限. 一般渗

《精通软件性能测试与LoadRunner最佳实战》—第1章1.4节软件测试的分类

1.4 软件测试的分类 精通软件性能测试与LoadRunner最佳实战 软件测试按照测试阶段.是否运行程序.是否查看源代码以及其他方式,可以用图1-1所示来描述软件测试的各种分类. 黑盒测试.白盒测试与灰盒测试 1.黑盒测试 黑盒测试(Black-box Testing)是软件测试的主要方法之一,也可以称为功能测试.数据驱动测试或基于规格说明的测试.测试者不了解程序的内部情况,只知道程序的输入.输出和系统的功能,这是从用户的角度对程序进行的测试.软件的黑盒测试意味着测试要在软件的接口处进行.这种

非计算机专业的人如何进入软件测试领域

在给学员做入学评估的时候,经常会遇到很多人对职业规划是相对迷茫的.不知道如何选择"适合"自己的职业.凡事预则立,不预则废.人在职场"混",怎么能不职业规划!那么如何进行个人的职业规划?怎么样才能实现个人事业蓝图?下面的四个选择您可以来排一下顺序: 其一,"择世所需",也就是说我们选择这个时代所急需的行业?从这一点来看,软件测试行业应该是目前众多行业里面最符合这个条件的一个行业之一.因为随着人们对生活质量的高要求,对软件质量的要求也越来越高,而软件

《Kali Linux渗透测试的艺术》目录—导读

版权声明 Kali Linux渗透测试的艺术 Copyright Packt Publishing 2014. First published in the English language under the title Kali Linux – Assuring Security by Penetration Testing All Rights Reserved. 本书由英国Packt Publishing公司授权人民邮电出版社出版.未经出版者书面许可,对本书的任何部分不得以任何方式或任何

《Kali Linux渗透测试的艺术》—第2章2.节本章总结

2.7 本章总结Kali Linux渗透测试的艺术本章详细介绍了多种渗透测试方法论,以及渗透测试的基本术语.相关类型,还有这些术语和业内其他术语之间的区别.本章的重点内容如下. 渗透测试可分为黑盒测试和白盒测试.黑盒测试也称为外部测试,在黑盒测试中,审计人员事先不了解目标系统的内部结构或任何技术.白盒测试也叫内部测试,在白盒测试中,审计人员了解目标系统的全部细节.结合黑盒测试和白盒测试的测试类型,称做灰盒测试.脆弱性评估和渗透测试最基本的不同点在于:脆弱性评估旨在找出目标系统中存在的安全漏洞,并