本章的内容则是关于测试人员在全局方面所必须做出的各种决定,比如在考虑特性交互、数据流以及在应用程序的用户界面上如何选择不同路径来完成某个实际功能时。探索式测试人员在实际开始测试前,需要建立起这样一个全局目标,用于指导以后的测试过程。在这里,我们借鉴旅游行业的概念,使用传统旅游者的各种工具,比如旅行团、旅行指南、地图和当地信息等,来类比软件探索测试过程中的各种方法。这些方法可以帮助测试人员明确测试的目的,指导他们在测试过程中做出正确决定。
我们想要达到如下目标:使用比喻来指导测试人员选择正确的输入、数据、状态、代码路径和环境设置,从而在其测试时间和测试预算之间获得最大产出。
对于探索者来说,有的放矢肯定远远胜于毫无目地的乱逛。如果一个比喻产生的目标能让测试者做出某些全局或局部的决定,那么测试人员就不会漫无目的的测试本章通篇都在使用比喻的方法,特别是使用游客来类比测试中的一些全局决定,这些全局决定确立了总体探索策略和产品特性的测试方法。
探索式测试有下面几个目标:
-
理解应用程序如何工作,它的接口看起来怎样,它实现了哪些功能
新加入项目的测试人员经常采用这个目标,有经验的测试人员也会使用这个目标来探索应用程序。
-
强迫软件展示其全部能力
它的目的是设法使软件努力运行。
-
找到缺陷
探索应用程序的各种极端情况从而发现潜在的问题是探索式测试的专长。
真正的探险家很少在不制定详细策略和周密计划之前就开始探险;探索式测试人员也一样,对于那些功能比较复杂的特性、用户可能用到的功能以及缺陷最可能存在的地方,测试人员必须要尽可能地覆盖它们。我所想到的最好比喻是把它看成一个旅游者要去新的目的地探险。我把它称为“漫游测试”以纪念阿兰.图灵,是他提出了最初的图灵测试概念。
旅游者比喻
即使用上全世界所有的资金也不能保证可以测全软件的所有方面。
旅游者的目的对实际策略的选用起着举足轻重的作用。
作为测试人员,我们并不是经常能有机会在将来重新测试该应用程序,我们的第一次拜访很可能会成为唯一一次挖掘和探索应用程序的机会。我们负担不起漫无目的的游荡,因为这会导致错过重要功能和缺陷。我们必须使我们的每次访问都有收获。
有组织有目标的旅游和自由风格漫无目的的闲逛紧密地结合起来。
漫游测试
我们这里所说的特定测试通常要求把应用程序的多个特性和功能以崭新的方式组合起来,而且这种组合方式是那些严格以特性为基础的传统测试模式无法做到的。
旅游指南手册通常会把目的地划分成各种区域,有商业区、娱乐区、剧院区和红灯区等。对于软件测试来说,这种分割只是从逻辑上划分了应用程序的特征。软件测试人员应该探索应用程序的运行路径,以不同的顺序执行许多特性。因此,在进行类比测试时,我们对旅游指南做了一些修改。
下面是对所有的区域以及和它们相关的各类测试法的一个概述。
商业区:对软件来说,商业区同样指的是“在那里完成实际业务”,它位于软件的启动及关闭代码之间,并包含用户所使用的软件特性和功能。