基于场景进行探索性测试

在引入自动化测试,大大减少了测试重复劳动力的情况下,测试员有了更多的时间做有价值的事情,而探索性测试就是很重要的一方面。下面基于场景测试方面,来讲怎么做好探索性测试。

基本的场景测试即从用户的角度设计端到端的场景,从用户的角度发现产品缺陷。由于用户可能采用的操作方式是复杂多变的,单一的场景测试的覆盖较为有限,很难保证产品质量。将探索性测试的理论加入场景测试可以给场景注入变化,大大的丰富场景内容,更加真实的模拟真实用户。在这个基础上的整理反思,不仅可以提高产品的可靠性,更能大幅度的提高工作效率,对于我们的测试工作具有极其重要的意义。

基于场景进行探索性测试

一般而言,待测产品的基本场景是固定的。而探索性测试则是一种强调个体的主观能动性的测试思想。将场景和探索性测试方法结合,可以为现有的场景注入大量的变化,实现结构化和自由度的统一。

一、场景和探索

有价值的场景会满足以下要求的部分或者全部:讲述用户故事、描述需求、演示产品功能、演示集成场景、描述设备和安装、描述警告和出错情形。

作为测试人员,我们根据场景的要求应尽可能多的收集场景,并给收集到的场景加入变化。测试的结果最终是否具有探索性,取决于如何添加变化。

场景测试的优势就在于真正的模拟了用户的行为,可以发现那些已经逃过其他测试却可能给用户带来麻烦的bug。但是用户往往不会按照场景的描述使用软件,用户会根据自己的喜好,随意的更改步骤来变换场景,预料这些变化并加以测试就显得至关重要,这也正是在场景测试中加入探索性测试的意义。

给场景注入变化的过程主要使用了两种技术:场景操作和漫游测试。接下来本文会就这两个技术进行阐述和使用。

二、场景操作模型

场景操作模型就是通过场景操作引入变化,对于要求用户采取某些特定动作的场景,需要改变这些动作的顺序,用于测试不同的状态和代码路径;对于描述一般性活动的场景,需要在可能的选项中进行选择,使用更加系统更加策略的方式完成探索。

场景操作模型的构想是对场景的步骤加以操作,给场景注入变化。得到的新场景被称之为‘衍生场景’,我们可以针对最初指定的场景操作也可以针对衍生的场景进一步加入变化,衍生出更加丰富的场景。

给场景添加变化的方法主要包括以下的六类,一共十一种方法,具体的名称,分类和定义如下:

1、插入步骤

①增加更多数据 分析场景中需要用到的数据,给场景添加更多有意义的数据量。

②使用附加数据 测试与场景中功能相关的附加功能。

③访问新界面 访问场景内的界面时,调用与当前测试功能相关的界面。

2、删除步骤 逐步减少可删减的步骤,用于测试产品在缺少信息或从属功能时的正确性。

3、替换步骤 删除某些操作步骤,再加入新的操作步骤,用于测试不同选项和功能。

4、重复步骤 重复操作单个或一组步骤,用于测试新的代码路径,寻找和数据初始化相关的缺陷。

5、替换数据 修改或替换数据源,测试功能在不同环境下的兼容性。

6、替换环境

①替换硬件 使用不同的机器,内存大小,CPU处理能力等,测试兼容性

②替换容器 使用不同的操作系统,浏览器,运行平台或者插件配置,测试兼容性

③替换版本 使用容器的不同版本,测试主要使用的容器版本,说明支持的容器版本

④修改本地设置 修改产品依赖的本地设置,如Cookies,注册表,配置文件等

需要注意的是,无论使用什么方法变换场景,最终都需要保证衍生场景可以尽量接近原来的场景,我们的目的是加强场景,而不是彻底改变场景的基本目标。

三、漫游探索模型

漫游探索模型就是通过漫游测试引入变化,这种方法类似于“顺路游”。这种方法的就是要求测试人员在需要做决定或者有逻辑分支的地方,先往不同的方向走,然后再返回按照指定的路径走。

场景操作和漫游操作的关键不同在于,漫游通常比场景操作产生更长的顺路游。场景操作侧重于场景中小的、逐渐增加的变化以及可有可无的步骤,而漫游测试可以创建出相当长和范围更广的衍生场景。

漫游测试的方法很多,下面将选取一部分比较适合场景测试的方法进行说明和使用,本文共选取了是一种方法,方法名称和定义如下所示:

  • 卖点测试 在现有场景中加入不在场景中但是更重要的功能;
  • 地标测试 测试过程中增加、减少地标,或改变地标访问顺序;
  • 极限测试 修改场景使软件运行更有压力,也就是给软件增加挑战;
  • 深巷测试 类似于卖点测试,不同的是加入最不可能用到的功能;
  • 强迫症测试 重复场景中的每个步骤两到三次;
  • 通宵测试 选择可以使原件满负荷运行的场景,不断消耗资源;
  • 破坏测试 在需要调用测试人员可以访问的资源时,人为的阻止资源调用;
  • 收藏家测试 收集尽可能多的不同结果/输出,测试所有可能到达的路径;
  • 超模测试 忽略功能和交互,把注意力放在界面显示上;
  • 配角测试 不去执行场景中指定的功能,而是执行“临近”功能;
  • 取消测试法 对于一切可以取消的功能执行取消操作,包括取消按钮、开关等;

值得说明的是,场景操作和漫游模型都可以为场景的探索引入变化,但是两者并不是互相重叠的方法。在实际的使用中可以分别从场景操作模型和漫游模型出发进行探索,往往可以有更加丰富的收获。



留言