解锁探索式测试

发表于:2020-03-09来源:51cto作者:Shreya Bose点击数: 标签:
在探索性测试中,测试人员会在没有既定计划的情况下去检查目标系统,以发现用户在浏览网站或使用应用程序时,可能遇到的各种缺陷。此方式应尽量能够模仿最终用户的各种自由选
什么是探索性测试(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)技术和各种基于风险的技术,以识别那些更具挑战性的缺陷。

在敏捷开发中采取探索性测试的优势
在开发的前期阶段提供了快速、且尽早的反馈。
有助于发现各种现有缺陷。
由于不需要脚本,因此软件项目中的开发人员、测试人员、设计师和任何其他利益相关者,都可以发起并执行探索性测试。
在应用程序的迭代编码过程中,探索性测试非常适合于测试那些新的功能,而自动化测试则专注于回归测试、以及向后的兼容性测试。
如果项目的需求并不确定,那么探索性测试则非常适合在有限的时间内,测试各种新的需求,以快速提供各种实用的结果。
探索性测试的优秀实践
了解您的客户:所有软件测试都关乎于检查产品的质量,以提供最大的用户满意度。因此,为了执行有效的探索性测试,了解客户的专注点是必不可少的。也就是说,我们应当从客户的角度,来开展有意义的探索性测试。当然也请记住:不要狭隘地仅从单个客户的角度去考虑问题。您可以将最终用户根据他们的年龄、性别、经济状况、偏好、以及其他方面分类,以模拟不同的方式使用同一个被测软件。同时,测试人员也必须能够跳出技术人员的角色,以一般用户的心态去体验与试用。

原文转自:http://developer.51cto.com/art/202003/611800.htm