探索式测试体系--缘来就是你

 

一、前言  在做了一段的测试工作后,测试人员一般都会遇到这样一种情况:自由测试中往往比执行用例时更加容易...





找工作,挂职位,快来神舟IT直聘网(www.shenzhouhr.com)!

神舟IT直聘网,IT人才专属招聘网站,欢迎企业和个人免费入驻!!!

一、前言

在做了一段的测试工作后,测试人员一般都会遇到这样一种情况:自由测试中往往比执行用例时更加容易发现问题,尤其是在进行过一轮用例测试后,后面的回归和集成测试中通过执行用例能够发现的问题几乎很少("农药悖论"理论)。很多人提议放弃用例执行,改为自由测试。此时问题就来了,已解决的bug又出现了怎么办,自由测试中怎么度量测试质量,不同人执行测试的差异怎么平衡,测试经验如何传承,测试覆盖范围如何保证不遗漏……

带着这些问题,我们来介绍下业界非常火热的探索式测试,并重点阐述我们的测试工作中是怎样运用探索式测试思想来进行实践的。

二、缘定三生

在上个世纪60年代,人们就发现偏离预设的用例进行测试能够发现更多的问题。很多时候,我们称这种行为为自由测试,随机测试,monkey测试。后来发展到一定的阶段,经历了方法论建设,这种行为又被演绎为探索式测试。所有的概念都要先了解形成过程,才能更好的理解现在的发展情况。探索式测试也不是凭空而来,到目前为止,大致经历了四个阶段(下图中2.0,其中ET是Exploratory Testing的缩写)。
  图2.0


 2.1、ET 1.0

【1961-1995】"Put aside your scripts and look at the product! Interact with it! Find bugs!"人们发现在做没有用例的自由测试时能够发现更多和更好的bug。探索式测试作为一种术语和理论的第一次迭代旨在脱离脚本的束缚,给"更好的测试"腾出空间。"把你的脚本放到一边去,观察产品,与它交互,发现错误!"探索式测试的拥护者将探索式测试视为一种技术,直到现在仍然有许多人持有此观点。当然从现在的视角来看这种方式表达探索式测试是错误的,但在当时具有一定的指导意义。

2.2、ET 1.5

【1995-2000】"Compare and contrast the important structures of scripted and exploratory testing and the relationships between them"这个阶段主要是在纯粹的随机测试中加入了引导性因子。启发式探索式测试在此阶段提出。启发式探索式测试为实时测试者提供了全面的底层测试模型作为参考,引导和规范探索式测试活动。人们开始比较脚本和探索式测试的结构及关系,而不是再将其视作感觉上的不同活动。James在此期间还尝试区分随机测试和探索式测试,探索式测试是有技能的,更具备描述性的活动。2000年的时候引入了基于测程的测试管理(SBTM),提高探索式测试在项目上的可管理性。

2.3、ET 2.0

【2000-2010】"This is a sliding bar on which testing ranges from completely exploratory to completely scripted."在这个阶段人们认为所有的测试活动都是在纯探索式和纯脚本测试之间的范围。停止将探索式测试称为一种技术,取而代之的是称之为适用于技术的测试风格。2006年定义了"同时进行学习、测试设计和测试执行"的探索式测试的简单定义。还提出了"检查"是可以自动化的,而"测试"是不可自动化的,以及非智慧"和"智慧"行为的差异性。

 2.4、ET 3.0

【2010-2015】"The differences between mimeo-morphic actions and poli-morphic actions."发展到这个阶段,只要是富有责任感带着思考力的去做测试,那么就是在做探索式测试,在测试过程中利用线索,积极去思考,抛弃固化的思维进行测试。另外一方面,脚本测试可以对测试人员进行帮助,或者将脚本测试视为一种可用的工具或者技术。最终人们做的是一种有脚本化的探索式测试。

看完了探索式测试的前世今生,是不是觉得其实早已相识了?这说明你与探索式测试早已缘定三生呢,值得寻找今世的缘分!

好了,言归正传,现阶段比较通用的探索式测试应该还是ET2.0以及之前的内容,ET3.0固然与时俱进,但是在指导现阶段的测试工作来说还是有些务虚的成分。怎么说呢,我们可以从思想高度上达到ET3.0的境界,也即测试就是探索式测试,否则就是没有思考力的机械行为。但是实际指导测试工作,我们可以结合ET2.0之前的方式开展。

 三、初恋的味道

初恋是甜蜜的,与众不同的,只有恋过的人才会知道,就像初识探索式测试一样。在学习探索式测试的过程中,也会有酸甜苦辣,只有了解它的人才知道这种味道。不妨和探索测试一起再回味一下初恋的味道。接下来笔者将详细介绍如何入门探索式测试。

3.1、方法介绍

有些人会觉得探索式测试无异于自由测试,其实不然,探索式测试是有一套成熟的方法论体系,其中的方法就是掌握探索式测试法宝。前人总结的探索式测试方法同样适用于移动互联网测试如下表3-1所示,根据移动APP的实际情况可以重新进行梳理归类。

表3-1
基础类测方法

1)指南法:指南法顾名思义就是按照需求文档、用户手册或是测试建议进行的测试,检查产品功能是否有按照预期实现。

2)反叛法:输入最不可能的数据,或是已知恶意的输入,检查程序对于异常输入数据的处理能力。包括非法输入内容和错误的输入顺序。

3)懒汉法:测试人员做尽量少的工作,接受所有默认值,检测应用处理默认值和空白值的能力

4)保持输入字段为空,或不勾选任何选项。

5)破坏法:破坏应用运行的环境,数据、资源或权限,再去执行相关的操作,检查应用的表现

6)取消法:启动操作后在停止它,针对比较耗时的操作,检查应用的自我清除能力,重新启动操作能正常开始并结束

7)极限法:向软件提供极限条件或难以回答的问题,查看软件的处理能力,包括数据极限,操作极限,时间极限。

8)强迫症法:重复输入相同数据,反复操作同一个按钮

9)测一送一法:用户同时在不同地方操作同一个用户数据对象

深入测试方法

1)地标法:把应用中的功能点当作地标,从一个地标执行到另一个地标来探索应用程序

2)快递法:确认特性所使用的内部数据,通过操作软件得到该数据走遍其相关特性,测试人员使用该方法时重点关注数据的流动是否始终正确。

3)长路径法:1.确定测试目标,到达目的地之前尽量多地在应用程序中穿行;2.埋在应用程序最深处的界面作为测试目标

4)深夜法:卖点特性停止运行后,测试其它维护任务如数据归档、备份文件等

5)通宵法:让程序一直保持运行而不去关闭(重复运行自动化脚本且从不停机)

6)遍历法:最短路径来过完软件的所有明显的功能

7)收藏家法:收集软件的输出,越多越好

分区域测试方法

1)卖点法:产品主打的亮点功能,按照产品演示的步骤执行

2)配角法:找到和主要特性一起显示或运行的特性,从而对这些特性进行额外的测试和关注

3)恶邻法:bug多、相关模块

4)上一版本法:上一版本支持的场景,在新版本的表现

5)深巷法:关注最不可能被使用或最不吸引用户的特性和小功能

3.2、用例设计

ET的测试用例更像一种思维导图,或者思维引导,没有具体的形态,ET需要的就是一种测试思维,测试经验,不需要罗列具体的测试步骤.测试管理者在分配任务的时候,可以指出测试的切入点,以及可能出现的问题点。

测试人员按照ET的思维导图中的测试点进行测试执行,分为检查和探索两个步骤,检查主要是检查产品功能是否有按需求实现,探索主要是按照漫游测试方法探索软件的各种路径和场景,如图3-1所示是探索式测试用例设计。
图3-1
......
(点击阅读原文,即可查看全文)



    关注 博测科技


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册