从重庆旅游攻略聊聊“全局探索性测试法”

2017年元旦,我和朋友准备去有名的雾都重庆逛逛,当一回火锅英雄。兴致勃勃,熬了好几个夜晚,翻遍了达人的旅游攻略、定好了路线、买好了车票、预定了酒店。企图以最少的花费、最合理的时间、最短的路径游遍重庆,尝遍重庆美食。下班后,我着急忙慌地打了车,风尘仆仆的赶到火车站。一看时间还早,就悠哉悠哉的吃了顿晚饭,可当我取到车票的那一刻却傻眼了。在西安这么多年,只知道火车站和北站,却不曾想还有个南站。充满期待的重庆之行就在这种尴尬中结束了。

虽然旅行未能实现,但今天我却想用旅游攻略来说说有趣的“全局探索性测试方法”。

去一个城市旅行,通常要在脑子里形成一个活地图,将城市划分为多个区域:商业区、历史区、娱乐区、旅游区、旅馆区和破旧区。游客需要提前设定目的地,制定合理的路线。由于元旦假期有限,我选择了几个邻近且颇具名气的景点:一棵树、解放碑、长江索道、洪崖洞、磁器口、渣滓洞.....


城市的区域划分属于物理地界的划分,同样,一个软件系统可以从逻辑上划分为多个特性,一个特性通常很难完全独立于其他特性,多个特性常常需要共享资源。因此,单独测试某些特性很难发现在特性相互集成时才能表现出来的缺陷。按照漫游测试理论,我们将软件的全局探索式测试法分为如图五个模型,针对每个模型采用具体的测试方法和侧重点。

商业区测试类型 

喧嚣的城市商业区有银行、办公楼、餐馆和各类商店,人们在商业区完成一天的工作。而对于软件,用户花钱买软件就是因为软件的特性使得他们的业务得以完成,它位于软件启动和关闭之间,并包含用户所有要使用的软件特性。市场上的宣传材料会详尽的描述这些特性,要吸引用户使用该软件,就肯定会提及这些特性。商业区测试类型着重于测试软件的主要特性。

(1)指南测试法

旅游攻略中常常包含美丽的景点、干净舒适的旅馆、美味的当地美食餐厅。这些大多都是驴友们常去的地方,攻略会建议大家如何安排最优路线,从而以最少的成本获得最大的乐趣。因此一个城市必须要保持这些景点干净、安全、令人愉快,游客才可能再次光顾或者推荐亲朋好友来旅游观光。和城市一样,测试人员希望用户能够享受测试的过程,因此软件的特性必须向宣传的一样可靠。

指南测试法的指导说明书便是用户手册,测试人员需要严格按照用户手册的操作建议进行测试。这种测试方法不仅验证软件实现了手册上所描述的各种特性,同时验证了用户手册的准确性。一旦发现不一致,就应该立即上报缺陷。

(2)卖点测试法

游客选择去某个城市旅游,必然是因为这个城市有吸引她们的理由。比如,我选择重庆,是为了享受美味的火锅。而软件的卖点,就是指那些能够吸引用户去购买和使用软件的特性,也是销售人员惯于给客户推销的特性。测试人员要模拟销售的操作,来验证是否存在缺陷。

(3)地标测试法

春暖花开的日子,我总喜欢骑着单车,享受在风中的自由。基本上每次都是从家骑到秦岭的某个山脉。我喜欢领略不一样的风景,因此每次会制定不同的路线。状态好的时候,同一天会到达多个峪口。

采用地标测试法,就是选择起止地标,从而选择不同的路径,甚至可以增加新的地标,并设置到达各个地标的优先级

(4)极限测试法

极限测试采用的途径是挑战软件的极限,比如如何使软件发挥到最大程度?哪些输入和数据会耗费最多的运算能力?测试时,要求测试人员设置各种障碍来测试软件如何应对。比如测试一个购物网站,选择最贵的商品,先购买,然后马上退货。这样做并不一定要有什么意义,而是软件要能够允许这样做,毕竟有时候用户的确会进行这样的奇葩操作。

(5)快递测试法

快递从包裹发出到派送到最终目的地,需要经历打包、分发、转运、派送等过程。而在快递测试法中,测试人员关注数据,从被输入就开始了他的生命周期,期间被存储在内部变量和数据结构中,然后在计算中被频繁操作、修改和使用。

(6)深夜测试法

当卖点特性不再运行时,可能还有其他应用程序在工作。比如执行各种维护任务、将数据归档、备份文件等特性。深夜测试法关注的就是这些方面。与之相对的是清晨测试法,关注的是软件启动过程。

(7)遍历测试法

遍历测试法选定一个目标,例如所有菜单项、所有错误消息、或者所有对话框,然后使用可以发现的最短路径来访问目标包含的所有对象。

历史区测试类型 

很多城市都有历史古迹,游客往往为了追寻历史的足迹而来。同样,软件也一样具有前版本的历史遗留代码,这个区域的测试目的就是测试遗留代码和遗留缺陷。

(1)恶邻测试法

随着测试的深入,发现和报告越来越多的缺陷,就可以将缺陷数和产品的特性联系起来,从而发现那些缺陷横行的代码段。那些缺陷扎堆出现的地方,就值得反复测试。事实上,某个区域缺陷多,就建议对邻近功能进行遍历测试,以此来验证已经修复的缺陷是否引入新的缺陷。

(2)博物馆测试法

博物馆展示的古董往往深受游客欢迎,代码中的老古董同样值得关注,代码中的老古董就是指遗留代码。长时间未改动的代码运行到新环境中,很容易发生实效。因此老代码的有效性测试是测试人员必须关注的点。

(3)上一版测试法

如果当前产品构造是对先前版本的更新,则必须运行先前版本上的所有场景和用例。这样可以验证那些用户已经熟悉的功能在新产品上依然能够正常工作。如果新版本重新实现或删除了一些功能,则需要新的用例来确保软件特性得以验证。

旅游区测试类型 

很多城市的旅游区只有游客才回去,而本地人则会尽量避开这些拥堵的地方。对于软件,有些特性更多的对新用户具有吸引力,老用户则很少使用。旅游区集中了大量的纪念品、餐馆、服务和设施,来刺激消费。对于这种地方,很多游客可以采用“到此一游”的方式,走遍清单上的地方、买纪念品、拍照、发朋友圈,就证明自己来过。

(1)收藏家测试法

我有一个习惯,每到一个新的地方,就要收集一小瓶当地的土,用漂流封装起来,放在书柜里。久而久之,走的地方越多,收集的土就越多,有红土、黑土、黄土、和沙土。

收藏家测试法要求测试人员将所有可能达到的输出都记录下来,收集的越多越好。

(2)长路径测试法

朋友在济南某软件公司工作,前不久,他选购房子。我建议他购买软件园附近的房子,上班方便,而且有升值潜力。可朋友却说,出门就上班,回家就睡觉,生活了然无趣。离公司稍微远一点,骑车或是走路都可以锻炼身体,坐车还可以看看风景,从而发现更多的生活乐趣。

长路径测试法与此类似,将起点设置为离终点尽可能远的地方,从而尽可能多的在应用中选择多种路径,发现更多的缺陷。

(3)超模测试法

又一次,朋友约我去旅行,我问她想去哪里,她说,只要能出省,哪里都行。朋友关注的并不是目的地本身,而是因为生活太过平淡,走出去,便是一件很酷的事情。

超模测试法关注的并不是特性本身,而是用户界面。页面看上去是否美观友好?性能是否良好?界面变化时,其刷新情况如何?

超模,即超级名模,人们只关心她美不美。

(4)买一送一测试法

买一送一测试法关注的是同一应用程序多个拷贝的情况。不同拷贝同时打开同一文件,或者在相同网络上进行数据传输。如果一个拷贝发生缺陷,则可能所有的拷贝都会发生缺陷。

娱乐区测试类型 

游客经历了景点和名胜古迹的游览之后,需要在娱乐区休闲放松一下,从而使假期变得张弛有度。软件同样具有这样的辅助特性,补充这个区域的测试,使得测试计划更加完善。比如,一个购物网站的商业区是搜索商品、加入购物车、付款等,而其娱乐区就是指漂亮美观的UI、友好的用户界面等。

(1)配角测试法

在旅行中,吸引游客的往往并不是事物本身,比如目标是找一家美味的餐馆,却往往因店里独特的装修风格而止步。配角测试法鼓励测试人员专注于某些特性,虽非用户使用的主要特性,但往往伴随着主要特性而发生,不容忽视。比如,相机的主要特性是拍照,但美颜功能常常备受关注。

(2)深巷测试法

深巷测试法关注的是最不容易被用到或者最不吸引客户的特性。

(3)通宵测试法

通宵考验的是人的身体极限,能否熬过通宵坚持到最后。对于软件测试,也存在同样的问题,系统能够多长时间持续运行不崩溃?

旅馆区测试类型 

游客经历了繁忙的旅程之后,需要到城市的旅馆区休息,恢复体力。当软件“休息”时,它实际上还是非常忙碌的。旅馆区模型关注的是一些辅助功能。

(1)取消测试法

我酷爱骑行,去年清明节,邀了一伙儿朋友,卯足了劲儿要穿越秦岭,骑行去汉中看那遍地的油菜花。规划好行程、备好干粮和装备、整理好心情。可是刚出门就开始吧嗒吧嗒下雨了。虽说清明时节雨纷纷,可天气预报却谎报军情。无奈之下,只好取消了计划了很久的汉中之行。   

取消测试法的思想是,启动操作、然后停止操作。遇到系统的取消按钮,就实施这种操作。没有取消按钮,就强制中断。比如打印文件,并在打印完成之前取消打印,或者强制断电。

(2)懒汉测试法

懒汉测试法指测试人员做尽可能少的工作,输入尽可能少的数据,点击尽可能少得按钮,接受默认值。如果程序中有多种路径可走,则懒汉测试法一定选择最不费力的路径。懒汉测试法常常能够对系统中的默认值进行有效的测试。

破旧区测试类型 

破旧区是一个城市不受欢迎的地方,可能存在违法乱纪的事情,旅游攻略很少提及。而软件的破旧区测试至于测试人员确实必须要去的地方。这里很可能存在严重的缺陷和漏洞。

(1)破坏者测试法

破坏者测试法企图利用每个机会暗中破快应用程序的正常运行。比如中途断开网络、使用性能极差的设备、强制导致磁盘读取文件失败等。

(2)反叛测试法

反叛者测试要求验证非法输入、恶意的输入、或者错误顺序的输入

(3)强迫症测试法

强迫症测试法要求测试人员不断地重复相同的操作。开发人员往往认为用户应该按照某种特定的顺序来执行操作,有目的地使用软件。单用户往往因为弄错而不得不回头重做。模拟这样的操作就会打破开发人员既有的设定,从而发现隐藏的缺陷。

又到了春暖花开的日子,你的旅游攻略制定好了吗? 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值