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

发表于:2020-3-04 13:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈峻编译    来源:51CTO

  什么是探索性测试(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)。而在实际场景中,用户只会在真实的设备上,而不是在那些模拟器虚拟出的测试设备上使用目标软件。因此,也请您务必在真实的设备上运行探索性测试。当然,如果软件企业由于资金预算不够,甚至无法创建和维护内部实验环境,以供测试人员使用的话,那么请您可能地按需选择那些基于云端的测试服务。
  · 了解竞争对手:俗话说:知己知彼百战不殆。通过了解您的竞争对手及其产品的功能与缺陷,测试人员可以更有针对性的测试手头上的产品。当然,这可能更需要整个团队在开发阶段就引起足够的重视。例如:当我们获悉“友商”的某个竞品应用,经常会被用户投诉购物车功能上的设计缺陷时,那么测试人员就应当着重且谨慎地测试手头产品的购物车功能,并确保不会重蹈覆辙。
  其实,探索性测试是每个软件测试过程的重要组成部分之一。我们应当将其纳入测试的整个生命周期中,以确保本团队能够推出功能齐备、且让用户满意的软件产品。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号