专栏首页用户6517667的专栏解锁探索式测试:发展阶段、相关类型、优秀实践

解锁探索式测试:发展阶段、相关类型、优秀实践

来源:https://developer.51cto.com/

什么是探索性测试(Exploratory Testing)?

在探索性测试中,测试人员会在没有既定计划的情况下去检查目标系统,以发现用户在浏览网站或使用应用程序时,可能遇到的各种缺陷。此方式应尽量能够模仿最终用户的各种自由选择,也就是说:在该过程中,测试人员可以自行遍历软件的各项功能,以获悉用户的体验质量。因此,探索性测试有助于验证系统是否按照预期进行运作,而且能够保障用户在使用的过程中得到轻松愉快的感受。

探索性测试的阶段

#1对于缺陷进行分类

  • 基于相似的软件,分类常见缺陷(请参见:https://dzone.com/articles/about-the-chances-to-detect-visibility-bugs-in-con)。
  • 分析并记录此类缺陷的根本原因。
  • 开发测试方案以测试这些缺陷。

#2创建测试章程

测试章程应当包括如下方面:

  • 需要测试哪些功能。
  • 如何开展测试。
  • 寻找什么缺陷。
  • 测试时需要记住哪些指标。

#3时间盒(Time Box)

时间盒的重点是测试人员如何测试和处置系统的响应。

  • 测试人员在特定的时间范围内(通常为90分钟)进行上述测试。
  • 在测试时间段内不应出现间断。
  • 如有必要,可以延长或减少时间范围(通常取决于测试的进度)。

#4评审结果

  • 对于已识别的缺陷进行分类。
  • 评估各类缺陷。
  • 记录存在的问题。

#5报告

  • 编译输出结果。
  • 根据测试章程,将实际的测试结果与预期的结果进行比较。
  • 确定是否需要引入其他方面的测试。

有关探索性测试的实用提示

  • 可以将软件分为多个模块,以简化测试的复杂度,并提高测试的覆盖率。
  • 列出所有需要测试的功能清单,以确保不会遗漏任何细节功能。
  • 优先测试基本的用户功能方案。接着扩展性地在测试过程中添加更多的检测点。
  • 根据测试章程中列举的标准,逐一检查产品的图形用户界面(Graphical User Interface,GUI)。
  • 明确地在探索性测试会话中列举出待测任务。
  • 准确记录需要测试的内容,测试原因,同时包括如何评估其运行质量。
  • 记录在测试期间所发现的各项问题。
  • 对接专职的测试人员,以进行有效的测试。
  • 创建尽可能多且详尽的测试相关文档。
  • 如有可能,请运行多种测试,以最大程度地提高测试覆盖率。

探索性测试的类型

(1)自由式(Freestyle)探索性测试

此类探索性测试被视为按需采取的临时性方法(请参见:https://dzone.com/articles/using-ad-hoc-scripts-in-your-automated-database-de),因此它既无固定的规则,也没有对应的结构和组织。通过快速浏览目标应用,测试人员可以验证在其他环节测试人员所获取的成果,调查特定的缺陷,以及进行快速的冒烟测试(smoke test)。

(2)基于场景(Scenario-Based)的探索性测试

这种形式的探索性测试基于实际的用户场景。在此类测试中,测试人员会采用所有可能的方式,来试探软件以匹配不同的场景。可见,此处的重点是:测试尽可能多的场景,以提供最大的测试覆盖率。

(3)基于策略(Strategy-based)的探索性测试

通常,此类测试会被分配给已经熟悉了被测试软件的测试人员。其中包括:边界值分析、等效(equivalence)技术和各种基于风险的技术,以识别那些更具挑战性的缺陷。

在敏捷开发中采取探索性测试的优势

  • 在开发的前期阶段提供了快速、且尽早的反馈。
  • 有助于发现各种现有缺陷。
  • 由于不需要脚本,因此软件项目中的开发人员、测试人员、设计师和任何其他利益相关者,都可以发起并执行探索性测试。
  • 在应用程序的迭代编码过程中,探索性测试非常适合于测试那些新的功能,而自动化测试则专注于回归测试、以及向后的兼容性测试。
  • 如果项目的需求并不确定,那么探索性测试则非常适合在有限的时间内,测试各种新的需求,以快速提供各种实用的结果。

探索性测试的优秀实践

  • 了解您的客户:所有软件测试都关乎于检查产品的质量,以提供最大的用户满意度。因此,为了执行有效的探索性测试,了解客户的专注点是必不可少的。也就是说,我们应当从客户的角度,来开展有意义的探索性测试。当然也请记住:不要狭隘地仅从单个客户的角度去考虑问题。您可以将最终用户根据他们的年龄、性别、经济状况、偏好、以及其他方面分类,以模拟不同的方式使用同一个被测软件。同时,测试人员也必须能够跳出技术人员的角色,以一般用户的心态去体验与试用。
  • 使用真实的浏览器和设备:众所周知,没有一种模拟器能够提供真实的用户环境(请参见:https://dzone.com/articles/real-user-monitoring-vs-synthetic-monitoring-which)。而在实际场景中,用户只会在真实的设备上,而不是在那些模拟器虚拟出的测试设备上使用目标软件。因此,也请您务必在真实的设备上运行探索性测试。当然,如果软件企业由于资金预算不够,甚至无法创建和维护内部实验环境,以供测试人员使用的话,那么请您可能地按需选择那些基于云端的测试服务。
  • 了解竞争对手:俗话说:知己知彼百战不殆。通过了解您的竞争对手及其产品的功能与缺陷,测试人员可以更有针对性的测试手头上的产品。当然,这可能更需要整个团队在开发阶段就引起足够的重视。例如:当我们获悉“友商”的某个竞品应用,经常会被用户投诉购物车功能上的设计缺陷时,那么测试人员就应当着重且谨慎地测试手头产品的购物车功能,并确保不会重蹈覆辙。

其实,探索性测试是每个软件测试过程的重要组成部分之一。我们应当将其纳入测试的整个生命周期中,以确保本团队能够推出功能齐备、且让用户满意的软件产品。

原文标题:Exploratory Testing: A Detailed Guide,作者:Shreya Bose

本文分享自微信公众号 - 软件测试培训(iTestTrain),作者:软件测试培训

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 通过一张图来了解一下敏捷测试和DevOps测试

    现在DevOps已经成了一个非常热门话题,但是又有谁真正理解了DevOps,可能少之又少。上周聆听了茹炳晟老师的在线课程,通过一张图我才发现真正理解了DevOp...

    小老鼠
  • 测试报告如何编写?

    作为一个曾经是测试萌新的我,在首次接收到一个任务时总有一种忐忑慌张激动紧张期望的复杂情绪~~忐忑慌张紧张是怕自己做不好,得不到领导的赏识;激动期望是哇塞,我有任...

    小老鼠
  • 你确定懂什么是敏捷测试?

    早在2009年,Lisa Crispin和Janet Gergory就写了一本书《Agile Testing: A practical Guide for te...

    小老鼠
  • 探索性测试为何如此重要?它能提升测试技能使工作更高效,值得我们继续深挖!

      与其他测试技术不同,探索性测试没有测试人员必须遵循的一组固定方法,但是相反,测试人员拥有发现产品/服务随时间推移不断改进的完全自由。这更像是随着时间的推移以...

    橙子探索测试
  • 探索性测试为何如此重要?它能提升测试技能使工作更高效,值得我们继续深挖!

    随着技术的进步,每家企业都将其业务从实体办公室转移到网站和Web应用程序,从而实现在线发展。这带来了一系列更新的测试技术,以迎合最终用户的最佳产品或服务。在启动...

    八音弦
  • AI 技术讲座精选:如何在时序预测问题中在训练期间更新LSTM网络

    使用神经网络解决时间序列预测问题的好处是网络可以在获得新数据时对权重进行更新。 在本教程中,你将学习如何使用新数据更新长短期记忆(LTCM)递归神经网络。 在...

    AI科技大本营
  • 「敏捷测试」敏捷方法论:理解敏捷测试的完整指南

    事实上,根据VersionOne的敏捷状态报告,截至2018年,97%的组织以某种形式实践敏捷。 然而,受访者表示,这种采用在其组织中并不总是很普遍,这意味着在...

    首席架构师智库
  • 软件测试修炼之道

      初学者面对铺天盖地的资料应该如何选取?应该从哪里入手?如何迅速的掌握各种业务各项测试技能以便开展工作?在保证测试质量的前提下,一日内编写或执行1000个测试...

    张树臣
  • 腾讯TMQ在线沙龙回顾|测试左移实践

    测试左移实践 活动时间:2017年6月28日 QQ群视频交流 活动主题:TMQ在线沙龙第二十三期分享 本次分享的主题是:测试左移实践 共有214位测试小伙伴报名...

    腾讯移动品质中心TMQ
  • 我对敏捷软件测试的理解与实践

    随着敏捷软件研发过程的引入,敏捷测试也开始成为研发团队的重点关注对象。在行业内,有些企业正在做敏捷测试的尝试,有些也取得了不错的效果。

    yuanyi928

扫码关注云+社区

领取腾讯云代金券