一、探索式测试的目标
- 理解应用程序如何工作,接口看起来怎样,实现了哪些功能;
- 强迫软件展示其全部能力;(压力测试、负载测试)
- 找到缺陷。
二、漫游测试
- 商业区:位于软件的启动及关闭代码之间,包含用户所要使用的软件特性和功能。
- 历史区:从前版本遗留下的代码,还有曾经出现较多缺陷的特性和功能。
- 旅游区:对新用户有吸引力的功能,老用户不再使用。
- 娱乐区:辅助特性和功能。
- 旅馆区:软件休息时后台运行的功能。
- 破旧区:不常用或不使用的功能,可能存在缺陷。
三、针对漫游测试比喻中不同区域的测试方法
1. 商业区:实现主要业务的功能和特性,是用户购买软件的原因。
- 指南测试法:探索式测试使用的是用户说明书,可以是打印版或在线帮助,建议遵循用户手册,要求测试人员通过阅读手册并严格按钮手册的建议执行操作。
- 博客测试法:遵循第三方的建议来测试。
- 专家测试法:遵循软件使用者的抱怨评论来创建用例。
- 竞争对手测试法:使用竞争对手的手册来测试自己的应用程序,非常适合对手是市场领先者,自己产品紧随其后或希望超越的情况。转移到我们产品的用户习惯于按照从前软件的方式来使用。
- 卖点测试法:找到最能卖钱的特性,销售人员是卖点测试法提供信息的绝佳来源。测试人员可观摩销售演示,拜访客户,在原型演示时发现缺陷。
- 质疑测试法:进行卖点测试时,模拟爱问问题的用户,不断提条件和问题,对于创建最终用户非常在意的测试用例时有效。
- 地标测试法:选择地标,确定先后顺序,从一个地标执行到另一个地标来探索应用程序,直到访问了列表中的所有地标。创建地标覆盖图。
- 极限测试法:向软件提供极限条件或难以回答的问题,运行至设计极限?哪些输入和数据耗资源?欺骗校验程序?
- 找麻烦测试法:只要软件允许的操作,产生了缺陷,都应该处理。测试时应尽力创建用户的复杂文档、订单或数据,能发现真正影响用户使用的缺陷。
- 快递测试法:数据在软件中不断流动,被输入后开始了生命周期,先被存储在内部变量和数据结构中,然后被频繁操作、修改和使用,最后作为输出反馈给用户或目的程序。测试人员专注于数据,跟随数据流转走访软件。
- 深夜测试法:应用程序自动运行,或清晨测试法。
- 遍历测试法:有计划的进行抽查,不追求细节以免影响速度,只检查明显的功能。选定一个目标,使用可以发现的最短路径来访问目标包含的所有对象。
2. 历史区:遗留代码,或老版本存在的特性,或用于修复已知缺陷的代码。
- 恶邻测试法:缺陷横行的代码段,缺陷扎堆出现,值得反复测试,应该遍历一下,验证修复缺陷是否引入新的缺陷。
- 缺陷集中的原因:开发人员按功能特性划分任务,某个特性中的缺陷比例和开发人员的能力相关。较复杂的地方缺陷较多,不容易编码实现的特性问题多,如果某个特性含有很多缺陷,很可能会发现更多缺陷。
- 博物馆测试法:遗留代码,随便翻翻代码库、二进制文件或程序集,查看创建时间,找到近期改过的老代码,如果改动过,或直接放到新环境运行,很容易失效。
- 上一版测试法:如果当前版本的构造是对旧版的更新,必须运行先前版本上的所有场景和用例,验证用户熟悉的功能在新版上依然可行。应仔细检查新版本中无法运行的用例。
3. 娱乐区:比较休闲的功能特性,如正式工作任务是创建文本文件,娱乐任务是美化文本。
- 配角测试法:不是用户使用的主要特性,但与主要特性一同出现,越临近主要特性越容易引起注意。
- 深巷测试法:最不可能被用到的或最不吸引用户的特性(必要性:如果产品包含该功能,则对某些用户在某些情况下是重要的)。测试使用概率最低的特性。
- 混合测试法:把最常用的和最不常用的混着测。
- 特性之间的相互作用:两个特性处理同一个输入,在用户界面上操作同一区域,操作共享的内部数据是读取共享数据还是修改共享数据?
- 通宵测试法:应用程序能多长时间持续运行处理数据不崩溃?不要关闭程序的持续运行,甚至不要存储,连接远程资源但从不断开,访问的同时其他程序访问或移动数据等。
- 对于移动设备来说,不关机是很正常的,这种测试尤为重要。
4. 旅游区:吸引新用户的特性,简短、目标明确的用例,关心快速访问软件的各种功能。
- 收藏家测试法:观察并收集软件的任何一个输出,整合文档。特性有变化需要重新收集。
- 长路径测试法:访问里应用程序开始点尽可能远的特性,指导思想是到达目的地之前尽量多的在应用程序中穿行,把埋在应用程序最深处的界面作为测试目标。
- 超模测试法:关心表面的东西,测试界面,UI是否良好,变化界面时率先呢情况如何?颜色表达如何?按钮与控件是否合理?界面是否违反了惯例或标准?
- 测一送一:只测试同时运行同一程序多个拷贝的情况。
- 酒吧测试法:不容易找到的特性,适用于大规模的复杂应用,如Office。
5. 旅馆区:可能后台运行的特性,或经常忽视的次要及辅助功能。
- 取消测试法:启动操作然后停止它,不要等加载完成再取消,针对耗时操作,如查询能力,进行测试。另外,使用键盘的取消快捷键也行。测试程序的自我清楚能力,确信被取消的操作可以再次执行并成功结束。
- 懒汉测试法:测试人员做尽量少的工作,接受所有默认值,保持输入字段为空,不点击任何按钮等。测试软件处理默认值和空白的能力。
6. 破旧区:不常用或不适用的特性,输入恶意数据,破坏软件。
- 破坏者:强迫软件做一些操作,掌握软件成功完成操作必须使用的资源,在不同程度上移除或限制使用哪些资源。
- 删除文件、改变权限、断开网线、后台运行其他程序耗资源、部署在问题环境上……(故障注入)。
- 反叛测试法:输入最不可能的数据,恶意输入。
- 逆向测试法:每次都输入最不可能的数据,选择和上下文无关的输入值,测试忍耐力。
- 歹徒测试法:如何处理非法输入,非法输入应该产生错误消息,无消息则有缺陷。
- 错序测试法:按照错误的顺序执行程序,选择一组合法行为你,打乱顺序。
- 强迫症测试法:重复输入相同数据,反复操作,比如按钮的多次点击等,开发人员通常认为用户会按照特定顺序做事,有目的的使用软件,而用户只会按照自己的理解来使用软件。