软件测试开发学习——第四天

黑盒测试(black-box testing)和白盒测试(white-box testing)

黑盒测试(功能性测试或行为测试)

黑盒测试将受测软件视为一个黑盒,无需知道其内部构造。这种测试是通过软件界面进行的,旨在确认它们像预期的那样工作。只要界面的功能未变,测试就应该通过——即便内部构造发生了变化。测试人员只需知道程序做了什么,不需要知道软件是如何运行的、为什么会这样。适用于测试人员不熟悉编程、难以理解代码尤其如此。

用于驱动开发的测试通常是根据验收标准进行的,而验收标准决定了要开发哪些功能。

优点:

  • 可高效测试大块代码段;
  • 无需访问和理解代码,也不需要测试人员知道编写代码;
  • 将用户角度和开发人员角度分离。

缺点:

  • 覆盖率有限,因为只执行部分测试场景;
  • 测试效率低下,因为测试人员对软件内部构造一无所知。
  • 测试缺乏针对性,因为测试人员对应程序的了解有限。

白盒测试(透明盒测试、玻璃盒测试和结构测试)

软件测试员可以访问程序的代码,并通过检查代码的线索来协助测试——可以看到盒子里面。测试员根据代码检查结果判断可能出错的数目,并据此制定测试。要求测试人员了解系统的内部结构,同时具备编程技能。

白盒测试几乎都是自动化测试,且在大多数情况下都是单元测试。

优点:

  • 可高效找出错误和问题;
  • 知道受测软件的内部构造有助于进行详细测试;
  • 能够发现隐藏的错误;
  • 可帮助程序员反省;
  • 有助于优化代码;
  • 由于知道软件的内部结构,因此可最大限度地提高测试覆盖率。

缺点:

  • 可能无法发现未实现或缺陷的功能;
  • 需要对受测软件的内部构造有大致认识;
  • 需要访问代码;
  • 测试通常与产品代码的实现细节紧密耦合,导致重构代码后原本应该通过的测试未能通过。

问题:

软件测试员可以根据产品说明书进行白盒测试吗?

是的。白盒测试就是使用如何设计影响如何测试的概念进行的。测试员可以参加焦点人群、易用性研究和市场会议,了解用于定义功能特性和整个产品的过程。但这存在一定的风险,因为这些信息诱使测试员倾向于假定说明书是正确的。

静态测试(static testing)和动态测试(dynamic testing)

静态测试是指测试不运行的部分——只是检查和审核;

动态测试是指通常意义上的测试——使用和运行软件。

静态黑盒测试——测试产品说明书

测试产品说明书属于静态黑盒测试。产品说明书是书面文档,不是可执行程序,因此是静态。软件程序员利用书面文档进行静态黑盒测试,不需要关注文档内容是通过什么渠道获得的。

动态黑盒测试

动态黑盒测试指不深入代码细节测试软件的方法。它是动态的,因为程序在运行——软件测试员像用户一样使用它。它是黑盒,因为测试时不知道程序如何工作。程序员输入数据、接受输出、检验结果。动态黑盒测试常常被称为行为测试,因为测试的是软件在使用过程中的实际行为。

有效的动态测试需要关于软件行为的一些定义——需求文档或产品说明书。

拓展

审查和测试类似定义软件应注意以下几种方面:

  • 规模。软件功能强大还是单一?代码多还是少?这些差别与测试有关吗?
  • 复杂性。软件简单还是复杂?这回影响测试吗?
  • 测试性。是否有足够的资源、时间和经验来测试软件?
  • 质量和可靠性。软件是否完全满足质量要求?可靠性高还是低?
  • 安全性。竞争对手软件的安全性和自身的比较起来如何?

优秀的产品说明书应具有以下8点属性:

(1)完整    (2)准确   (3)精确、不含糊、清晰   (4)一致    (5)合理    (6)代码无关    (7)可测试性    (8)贴切

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值