文本

探索性测试现在非常流行,这是理所当然的。如果以正确的方式使用,这种测试技术对任何测试人员都是有趣且有价值的。但是,如果执行不当,就会浪费时间,很快就会得到负面的名声。我想通过在一个地方把我所掌握的或能找到的关于这个主题的所有知识都告诉你,来帮助你避免后者。 在80年代,一个名叫Cem Kaner博士的测试经理创造了“探索性测试”这个术语。詹姆斯·巴赫(James Bach),当时的另一位实践测试员,采用了这个术语并继续使用。从那时起,许多人写了关于它的文章,提供了他们的探索性测试策略。

探索性测试可以很容易地在表面上定义为测试人员即时测试的技术。 没有测试方案,没有测试用例,只是好的习惯而已。 但是,如果您再深入一点,您会发现它也可以成为学习应用程序的工具,并且是设计更好测试的方法。 无论您是否知道它的名称,我们都去过那里,执行一个测试用例,然后对自己说:“哦,我想知道如果这样做的话会发生什么。” 因为面对现实,无论您的要求多么好,或者您计划了多少测试策略,如果您花时间四处寻找,总会发现一块坚如磐石。 探索性测试很有用,因为它为测试技术起了个名字,并允许测试人员从战略上“四处摸索”。 与脚本测试不同,探索性测试强调适应性和学习性。 您在第一步中学到的知识将为您的下一步提供帮助。 这是探索性测试和脚本化测试之间的一些关键区别。 t

脚本测试 探索性测试
从测试用例执行 从章程执行

|定义明确的测试用例|没有定义的测试用例|

|在脚本执行之前,测试的时间不是固定的|有时间限制|

|通常没有测试后的讨论|与测试经理进行会议汇报|

|是不需要动脑筋的——一旦脚本创建好,你就执行|持续学习和思考| 脚本测试与探索性测试 在进行探索性测试之前,有两件主要的事情需要考虑:如何组织你的测试,以及如何跟踪你所覆盖的内容。这两个问题,预先回答,将帮助您构建一致的探索性测试方法,您的组织将成长为有价值的。

构建探索性测试会话的方法

构建探索性测试过程的关键是找到最佳时机。您不希望过度使用结构而只剩下测试场景。您也不希望对您的应用程序进行底层结构和随机操作,因为这将导致高层次的测试,并且可能在发现的缺陷方面增加很少的价值。

这是我进行探索性测试时要遵循的几个运行规则。 它们很简单,但可以为我提供所需的重点:

为您的会话设定时间–通常,我将其保持在30到90分钟之间。 除此之外,我会分心或大脑被炸。 少于此的范围可能太有限。

避免分心–喝咖啡,上厕所,关闭Slack通知,将状态设置为“请勿打扰”或为避免在会议期间分心而需要做的任何事情。 如果出现意外会议,请尽早停止会议。

制定计划–深入研究之前,请确保已详细说明了测试目标以及如何执行它们。 请参阅下面的基于会话的测试部分,以正确制定计划。

好吧,让我们深入探讨一些有效的探索性测试方法,您可以使用这些方法来使会话保持适当的结构。 角色扮演:角色扮演是从不同角度查看应用程序的一种有趣方式。 例如,假设您正在测试消费银行应用程序。 您可能具有用户角色,例如新用户,不同年龄组的用户,进行基本银行业务的用户以及在您的多种产品中进行广泛银行业务的用户,仅举几例。 选择这些用户角色之一,并以您认为该用户会使用的方式使用它来测试应用程序。 请记住是什么使该用户角色具有特定性,并确保您在测试中始终保持专注。 如果您的产品团队创建了角色,则可以获得奖励积分-这些角色可以直接投入到此测试策略中。

自由式特性:你可以一次自由式地使用特定的特性,而不是探索整个应用程序。使用银行示例,您可以将测试限制为仅将资金从一个帐户转移到另一个帐户。记住不要只关注happy path. 设计一部肥皂剧:肥皂剧以戏剧性和夸张著称。有些人在本该发现三角恋的时候,却在一场事故中失忆,这并不罕见。这种方法侧重于测试由合理的情况组成的随机边缘情况。例如,假设您必须年满18岁才能进入(并赌博)一个游戏网站。你12点就满18岁了。如果你在EST,但游戏网站在太平洋标准时间之外,你可以在凌晨12点零10秒进入该网站吗

测试之旅:我的最爱!有这么多的选择,你可以随心所欲地发挥创造力。这个概念基本上是这样的,因为您无法将所有内容都放入一个测试会话中,所以您可以选择一个指南来帮助指导您完成特定的目标。

让我们来探索一些流行的测试之旅,可能会对这个概念有更好的全面理解:

亚马逊测试之旅:亚马逊每年运送25亿个包裹(福布斯2019)。这意味着每天有成千上万的包裹通过他们的仓库,进入他们的卡车,然后送到客户手中。为了确保每个人都按时得到正确的包,数据管理对于这个过程是至关重要的。在本教程中,不是Amazon包在流程中移动,而是考虑数据在应用程序中流动。例如,如果您正在创建一个客户帐户,请确保账单地址被准确地更新到数据库,并在可能显示账单地址的其他屏幕上共享。

垃圾收集者之旅:垃圾收集者有一个主要的工作——拜访附近的每户人家并捡起垃圾。本指南有助于对特性中的每个条目进行抽查。例如,检查菜单列表中的每个项是否将您带到正确的页面。

金钱之旅:你去的每个城市都有一本旅游指南,上面写着该城市希望你参观的主要景点,即“赚钱的地方”。因此,本教程将带领测试人员探索应用程序的主要特性。

文档指南:一些应用程序为用户提供特定的文档,一步步地指导用户如何完成任务。本指南特别关注该文档,并确保步骤准确且易于遵循。

银行之旅:大多数人使用某种类型的银行进行网上购物,无论是信用卡还是支票账户。本教程主要介绍应用程序的“银行业务”方面。你能买一个产品,保存你的卡信息,更新/删除卡,等等…

疯狂犯罪之旅:顾名思义,这一旅程的重点是测试者试图通过做一些不太诚实的人会做的事情来破坏系统。 基于会话的测试

基于会话的测试是探索性测试的扩展,因为它还包含了责任。这个具体的概念是由乔纳森·巴赫和詹姆斯·巴赫在2000年提出的。还记得我在上面提到的,如果没有正确的结构,探索性测试就会变得很糟糕,几乎没有价值吗?为了确保探索性测试被视为一种合法的测试方法,能够组织测试并向目标受众传达你的发现是一个重要的步骤。

有一些元素使基于会话的测试独一无二:

任务:任务确定会议的目的。根据创建者的说法,这个任务告诉我们正在测试什么,或者我们正在寻找什么问题。

宪章:宪章是你考试的议程。如何写一份有用的宪章这一节将对此进行扩展。

会话:会话是用于测试的实际时间,理想情况下是有时间限制的。

会话报告:会话报告记录测试会话。如何编写会话报告一节提供了一个关于如何完成此任务的模板。

汇报:每次会议都应该导致测试人员和他们的团队或经理之间的汇报。如何进行有价值的汇报这一节将提供更多的建议。 如何编写有用的章程

互联网上漂浮着不同的章程模板。 我认为其中一些过于详细。 章程的目的是确保您概述了测试会话策略。 我最喜欢的模板如下所示:

探索<目标>

使用

发现<信息>

探索:目标可能是特定功能,应用程序区域或API等...

使用:这可以识别测试人员将使用的工具,例如Postman。 此外,它可以定义您将使用的方法,例如特定的测试之旅。

要发现<信息>:您是否要查找菜单是否正确导航? 新功能对用户友好吗? 所有人都可以访问您的网站吗? 提示:请阅读我在辅助功能测试上的博客,以获取一些很棒的想法! 如何写会话报告

现在您已经编写了您的宪章,并且了解了会话的主要目标,现在是准备会话报告以进行测试的时候了。会话报告是测试期间记录的主要位置。

除了注释之外,我建议你也加入屏幕截图,或者更好的是视频录制。这对于跟踪会话期间您正在测试的区域非常有帮助。如果您发现了一个缺陷,那么视频是很有帮助的,因为在探索性测试会话中,重现一个缺陷是很困难的。有了录像,你的每一步,复制变得容易得多。在录音的时候一定要做一个画外音,这样你就知道你接下来要看的是什么了!

会议报告可能会因信息的不同而略有不同,但我建议包括以下内容:

宪章

您的系统设置(OS、设备、浏览器、build#)

地区/功能测试

关于你如何测试的注释-你使用了任何工具,测试技术,如巡回,等等…

发现的错误和重现的步骤的列表

任何未解决的问题/问题(生产问题、悬而未决的技术问题等)

任何视频/截图了

会话开始/结束时间

任何不属于章程的调查时间

如何进行有价值的汇报

在探索性测试中,汇报是一个重要的步骤。它为测试人员提供了一个机会,让您的团队了解您所涵盖的内容以及结果。这是一个机会来展示你的探索会议实际上是结构化的和有价值的。

典型的情况是,测试负责人或经理正在进行汇报,可能会有他们自己的问题。然而,这里有一个很好的起点,你可以在这段时间内涵盖:

你测试了什么-区域或特性

如何进行测试(使用的工具、方法,如使用的特定参观)

发现了哪些bug

你遇到了什么障碍

你的总体印象如何

受规管行业及审计

对于那些在严格监管的行业中经常需要审计的人,我很抱歉!我没有在审计和探索性测试方面的乐趣。因此,我不打算就一些我不太了解的事情提供建议,我将引导你们进入“粘性思维”,Josh Gibbs将在这里讨论他的经验,并提供一些关于这个主题的可靠建议。

结论

探索性测试是测试人员发现普通测试脚本可能会遗漏的问题的一种好方法。如果以结构化的方式执行,它可以允许测试人员使用他们的技能集来扩展他们的测试策略,并且比以前更深入地测试。提前制定计划并在会话报告中记录您的测试将确保您周围的人看到探索性测试的价值,并长期支持这项工作。

author

石头 磊哥 seven 随便叫

company

thoughtworks

大家好,本人不才,目前依旧混迹于thoughtworks,做着一名看起来像全栈的QA,兴趣爱好前端,目前是thoughtworks 西安QA社区的leader,如果有兴趣分享话题,或者想加入tw,可以找我

roles

QA(营生) dev(front-end dev 兴趣爱好)

联系方式

如果想转载或者高薪挖我 请直接联系我 哈哈

wechat:

qileiwangnan

email:

qileilove@gmail.com