探索式测试:测一送一法简介

前言

在互联网产品快节奏的迭代情况下,传统的测试方法正在逐步被颠覆,为了能适应当前的产品迭代速度和质量要求,一些新的测试方法和理念正在被业界推广和使用。搜狗测试的小伙伴们目前就在学习和研究《探索式测试》中的一些方法,今天分享下探索式测试中的一个新方法:“测一送一”测试法。。

方法简介

在商场常见的一种促销活动叫"买一送一",探索式测试也借鉴这种思想,测试同时运行同一应用程序多个拷贝的情况。

以上是探索式测试原文中所提的方法,内容介绍很短,不太容易理解。为了便于这种方法的理解,我们通过一些实例来进行方法的总结提炼。

实例

搜狗PC浏览器某版本时曾有这么一个Bug:

Bug描述:多次启动浏览器时,每次启动都会打开关闭前的页面

操作步骤

    1.访问http://www.baidu.com,http://www.sohu.com,http://163.com

    2.直接关闭浏览器。

    3.启动浏览器,此时浏览器会打开关闭前的三个页面

    4.快速再次双击浏览器图标

预期结果

    启动一个新的浏览器进程,不再重复打开关闭前页面,而是打开空白页。

实际结果

    启动一个新的浏览器进程,并且仍然打开关闭前的三个页面。

Bug产生机理

    1.浏览器在关闭的时候,会将已经打开的页面URL保存在注册表HKEY_CURRENT_USER\Software\SogouExplorer\TabSnapshot\URL下。

    2.当浏览器关闭后重新启动时,会读取这个注册表下的URL地址以作为上次关闭时的页面, 提示用户打开。

    3.当按照上述Bug步骤操作时,在步骤3执行之后,浏览器还没有来得及删除注册表中的URL地址,再次启动会错误地认为上次关闭时的页面没有被打开,所以会重复打开。

以上Bug实例与测一送一方法的介绍非常类似,我们将此测试场景进行提炼,得到几个关键词:数据相关的读写操作、多次重复操作

实战演练

带着以上的思路,我们对搜狗手机输入法的快速分享功能进行了实战演练。

被测功能简介

       快速分享是这样一个功能,当在任意编辑框使用输入法打字上屏后,点击搜狗输入法工具栏的放大镜图标进行搜索,输入法键盘区域会显示对应的搜索结果卡片信息(如图)。

探索式测试:测一送一法简介

点击之后会显示如下卡片

探索式测试:测一送一法简介

被测版本:搜狗输入法最新版本8.13(Android平台)

测试时长:15分钟

测试方法:按照测一送一方法中的核心理念:运行多个实例,或者运行同一功能多次,或者运行类似功能多次,构造数据读写可能冲突的场景。

测试结果:发现5个Bug(负责此功能的测试同学,为此紧张了好一阵)

其中3个Bug是通过测一送一方法的理念发现的,它们分别是这样:

Bug1:在已经显示快速分享卡片的情况下,快速多次进行不同tab的切换,当手动切换操作停止之后,输入法仍然会出现卡片类别在切换的情况

Bug2:在编辑框输入词点击放大镜进行搜索之后,立即点击返回,反复进行搜索和返回操作,会出现下方内容不能显示的问题

探索式测试:测一送一法简介

Bug3:在快速分享显示图片栏目时,同时点击卡片中的图片和下方其他类别(例如生活),预期结果是切换到对应的Tab,实际结果会出现内容切换到了对应的类别,但同时弹出了前一类别图片点击后对应的分享弹层。

探索式测试:测一送一法简介

方法的提炼延伸

通过对上述实战演练结果,我们将探索式测试"测一送一"方法进行了提炼和延伸,得到如下方法规则:

  • 了解被测功能中数据存储和传输方式。例如:

  • 有无注册表操作。

  • 有无文件操作。例如:下载文件、保存文件、删除文件、更新文件等。

  • 有无数据库操作。例如:存储数据、查询数据、删除数据等。

  • 有无网络请求操作。例如:发送请求查询数据等。

    以上四类操作都是有时延的,因此在有时延的情况下,数据的互斥冲突容易构造。

  • 反推以上数据读写相关所涉及的各种功能。例如:

  • 在浏览器的示例中:关闭浏览器会写注册表,启动浏览器会读注册表。

  • 在输入法的示例中:切换Tab、点击放大镜都会触发网络请求。

  • 进行重复、快速地相关功能操作,构造数据互斥冲突的场景。例如:

  • 启动多个应用进程。

  • 同一功能执行多次。

  • 反复执行类似相关的功能,混合起来执行。

  • 多个客户端进行功能操作,触发服务端的数据的冲突。

  • 除了在测试技术和工具方面进行改进之外,我们希望在测试设计也有新的突破,最终能够帮助所有的测试同学"脱离苦海",让测试变得更高效、更有效。

    目前在探索式测试的学习方面,还有许多不足之处,欢迎各位粉丝指出交流;同时也欢迎在对此方法有实际成熟经验的同学进行交流学习。

    探索式测试:测一送一法简介