黑盒测试要怎么测

对软件的测试,有着不同的测试方法,而一般的,会分为黑盒测试与白盒测试

黑盒测试要怎么测(什么是黑盒测试)(1)

所谓的黑盒测试,从字面意思理解,好比把一个软件比作是黑色盒子,我们看不到内部是什么样子的,只能从一边输入数据,再从另一边拿到输出数据。黑盒测试,我们并不关心软件内部是怎么处理的,只需要从最基本的需求出发,设计一些特别的测试数据,然后输入,看看软件的处理,是否满足功能要求的预期结果。

而白盒测试,恰恰与黑盒测试相反。白盒测试需要分析函数内部的逻辑结构,包括函数的结构、局部数据的定义与引用、函数内部各个控制语句组成的不同路径等。从技术水平来看,白盒测试是要比黑盒测试要求更高的,需要测试人员对程序的实现语言,架构,逻辑实现有一定的了解,所以白盒测试,一般是由开发人员进行的测试活动。

本文主要讨论下黑盒测试。

(网络盗图,侵权删除)

黑盒测试(Black Box Testing)

黑盒测试是什么

黑盒测试也叫做功能测试,主要关注点是被测的软件的功能是否实现,而不是内部逻辑的处理情况。

黑盒测试是在软件测试中使用的最早,也最广泛的测试方法。在黑盒测试中,被测对象的内部结构,运行情况,这些测试人员都不可见,也并不关心,测试人员对被测试的产品的验证工作主要是根据规格验证与规格的一致性。

就像是取款机,从黑盒测试的角度,我们会插卡,输入密码,然后输入金额,最终取得现金,测试关注这个流程是否正常,金额与实际现金是否匹配等等,而至于取款机内部如何处理,怎么与银行间通信,我们是不关心的,这就是黑盒测试方法。

(网络盗图,侵权删除)

黑盒测试的目的,时发现如下几种类型的错误:

  • 功能错误或者功能遗漏;
  • 界面错误或者UI错误;
  • 数据结构或者外部数据库访问错误;
  • 性能错误;
  • 初始化和终止错误;

为什么要做黑盒测试

可能由朋友会有疑惑,既然技术水平更高的开发人员,已经做过了白盒测试,为什么还要测试人员来做黑盒测试呢?这样不是即浪费了人力也浪费了时间么。

其实不然,白盒测试是比较早期的测试活动,进行白盒测试的时候,可能测试对象仅仅是一个模块,甚至是一个单元、一个循环语句。这时候的测试,确实能够排除掉语句错误,可是一旦模块进行组合,不同模块间势必要进行通信活动,那么这个整体是否还能正确的稳定的工作呢?不见得啦。

黑盒测试主要用于回答如下的问题:

  • 如何测试功能的有效性;
  • 怎样类型的输入会产生好的测试用例;
  • 系统是否对特定的输入值或类型敏感;
  • 如何分隔数据类的边界;
  • 系统能够承受何种数据率和数据量;
  • 特定类型的数据组合会对系统产生何种影响;

(网络盗图,侵权删除)

运用黑河测试方法,可以得到标准的测试用例集,可以设计出能够减少达到合理测试所需的附加测试用例数,能够设计出能够告知某些类型错误的存在或者不存在,而不仅仅与特定测试相关的错误。

一些常用的黑盒测试技术

黑盒测试意味着测试数据的选择和测试结果的解释是以软件的功能属性为基础的。黑盒测试不应该由程序的创作人员来执行,因为这样的测试人员,对程序的内部结构非常了解,在实际测试方法的时候,可能会局限于一些测定的场景或者测试数据。

软件的功能测试,一定是需要第三方根据需求文档或者其他文档说明来进行黑盒测试设计。

尽管黑盒测试是围绕着用户的需求文档来展开的,但是黑盒测试却不一定需要用户来参与测试。在绝大多数没有用户参与的黑盒测试中,最常见的测试由这几种:

  • 功能性测试
  • 容量测试
  • 安全性测试
  • 负载测试
  • 恢复性测试
  • 标杆测试
  • 稳定性测试
  • 可靠性测试

而由用户参与的测试,主要有外场测试和实验室测试。

不同用途的功能测试方法,一种是按照顺序,依次进行每个程序的特性或功能,另一种途径是一个模块一个模块的进行测试,这种测试一般是每个功能最先被调用的模块最先测试。

容量测试的目的是检测软件在处理海量数据时的局限性。容量测试能够发现系统效率方面的问题,比如不正确的缓冲区规模,或者对内存空间的占用过大。

负载测试检测系统在一个很短的时间内处理大量的数据或者执行大量的功能调用的能力。比如双十一的天猫,春运的12306,就要进行非常大规模的负载测试。

(网络盗图,侵权删除)

恢复性测试主要保证系统在崩溃后能够恢复外部数据的能力。系统能够完全恢复还是部分恢复这些数据显得尤为重要,特别是对于需要高可靠性的系统。

标杆测试包含了程序效率的测试。一段程序的有效性很大程度上依赖于硬件环境,因此标杆测试总是考虑软件与硬件的组合情况。然而,对于大部分软件工程师,标杆测试主要关注特定的操作的量化数据,有些也会考虑用户测试,比较不同软件系统作为标杆测试的有效性。

对于包含了用户的测试活动,在软件工程中方法性的考虑是很少的。

一般是在大致的外场测试和实验室测试做出测试报告加以区别。

在外场测试中,观察用户在他们自己的正常的工作地点使用软件的情况。除了一般的与可用性方面的特点,外场测试对评价软件系统的可交互性测试有用,例如系统工作的技术综合性如何。此外,外场测试是阐述系统到已有过程中的综合性能的仅有实际手段。

实验室测试一般用来评价系统的可用性方面的问题。由于实验室测试的成本比较高,所以这种测试一般是大型的软件机构才会考虑进行的活动,如IBM,Microsoft这样的公司。由于实验室测试给测试人员提供了许多技术可能性,因此其数据手机和分析比外场测试要容易得多。

黑盒测试的优缺点

优点:

  • 对于更大的代码单元来说效率要比白盒测试高;
  • 测试人员不需要了解实现的细节,包括特定的框架结构与编程语言;
  • 测试人员与编码人员是相互独立工作的;
  • 从用户的视角进行测试,所采取的方法和方案容易理解和接受;
  • 有助于暴露任何与规格不一致或者有歧义的问题;
  • 测试用例可以在规格完成之后立马执行;

缺点:

  • 能够被选择使用的输入较少,必不可能做到所有的输入流全部覆盖,也就是说,测试会进行的不全面;
  • 没有清晰的、简明的规格或需求说明书,测试用例及方案是很难设计出来的;
  • 如果测试人员不被告知开发人员已经执行过的用例,那么在测试数据上会存在重复,带来时间和人力的浪费;
  • 会有很多程序路径没有被测试到;
  • 不能直接针对特定的程序代码,程序可能会非常的复杂;

(网络盗图,侵权删除)

黑盒测试不需要考虑程序内部的实现,所以比起白盒测试来说,黑盒测试更容易实现,更容易设计。而且因为更贴合用户的使用方式,黑盒测试可以最大限度的模拟出用户会用到的功能及场景。

大部分的测试人员的主要工作,就是进行黑盒测试,也就是对程序或者系统的功能进行测试。这个程序可能功能很简单,仅需要三两测试工程师即可进行,也可能功能极其复杂,需要以组为单位,百千余人的测试团队进行测试。

充分了解黑盒测试的原理与方法,在实际的工作中,设计测试方案及测试用例就会得心应手,而且在功能的覆盖率上,也会考虑的很深刻。

举报
评论(0)
游客的头像
表情
全部评论 只看作者
最新热门
  1. 暂时还没有评论哦