探索式测试Exploratory Testing

“任何足够先进的技术,看上去都与魔法无异”,出自英国著名未来学家亚瑟 克拉克,他曾于出版了经典科幻小说《2001天空漫游》。

探索式测试(Exploratory Testing,也称探索性测试)是一种软件测试方法,最先是Cem Kaner 在1983年提出的。这是一种强调个人自由与责任的测试方法,让独立测试人员可以借用不断的学习来改善测试的规划与测试的执行,而在测试的过程中也会同时改善测试案例达到相辅相成的效果。在Nortel和微软的很多项目中,都采用了这一新颖、有趣和富有创意的测试方法。探索式软件测试的实践者,软件测试大师James Whittaker在其新作《探索式软件测试》中,对此方法进行了全面的演绎和创新,呈现了微软内部使用此方法的心得体会。

此方法在很早的时候已经被提出,在我国有很多人也开始学习和研究,但用于企业的却很少,最近一段时间发现此方法渐渐地被人们所接受,不管你是去听分享会或者沙龙等都有所哦涉及,那我们就来了解了解吧。

根据度娘告知:探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。

顶测认为探索式测试就是采用新的测试思路,边学习、边设计、边测试、边思考。

一、探索性测试的基本过程
       a.探索性测试识别软件系统的目的;
       b.识别软件系统提供的功能;
       c.识别软件系统潜在的不稳定的区域;
       d.在探索软件系统的过程中记录关于软件的信息和问题;

二、探索式软件测试类型
       a.自由式探索式测试;
       b.基于场景的探索式测试;
       c.基于策略的探索式测试;
       d.基于反馈的探索式测试;

三、探索式测试的目的
       a.需要快速学习一款产品;
       b.需要寻求多样化的测试;
       c.在进行脚本测试后,还想要进行多样化的测试;
       d.想要在最短的时间内发现最多严重的bug;
       e.想要检查一个测试人员的工作;

四、探索式测试的条件
       a.项目要求;
       b.产品稳定;
       c.产品重要;
       d.测试员要求;
       e.有激情感兴趣;
       f.掌握探索式测试理论和方法;

五、what情况或者what时间使用探索式测试

我们所进行的软件测试通过几轮之后,基本功能相对稳定,根据Test Requirement(测试需求)编写Test Case(测试用例),在过程中必然会出现难以发现的部分问题,测试人员需转换相关思路,补充更多的测试细节。

六、如何进行探索式测试
       a.看 PRD(Product requirements document,产品需求文档) 和原型等各种可提供的文档;
       b.确定核心功能模块;
       c.与项目组测试人员沟通,确定bug最多风险最大的模块;
       d.制定探索式计划: 测程数、每个测程的任务、每个测程的时间;
       e.根据计划执行;
       f.根据计划,边学习、边设计、边测试、边思考;根据具体情况随时修改测试策略;
       g.发送缺陷报告;

七、测试结果总结
       a.阅读需求文档,确定核心模块;
       b.查看bug管理系统或与测试人员沟通,确定问题较多的模块;
       c.根据需求,探索核心模块的功能;
       d.根据启发式测试策略模型和漫游测试模型挑选补充测试策略进行测试;
       e.根据计划,边学习、边设计、边测试、边思考;根据具体情况随时修改测试策略;

八、存在的误区

误区1:探索式测试是一种测试技术。
探索式测试作为一种方法,可以运用于任何用例测试中,如单元测试、功能测试、性能测试、系统测试等等,只要有探索性的思想并贯彻于实践中,探索式测试就会发挥它的重要作用,找到用例测试没有涵盖的危险区域。
      误区2:探索式测试是一种黑盒测试。
探索式测试提倡的原则之一就是“努力深入了解待测产品”。伴随着对产品的了解越来越深入,探索式测试会逐步发现更多的隐藏的潜在风险,通常情况下在白盒状态下的探索式测试更具价值,因为其成果都是建立在坚实的知识和理解基础上,其指向更有针对性。
      误区3:探索式测试就是随机测试。
探索式测试会存在文字记录,会做覆盖率分析,比随机测试更为有序和可控。
      误区4:探索式测试阶段在用例测试之后。
探索式测试应用于测试的各个阶段,尽可能最大化它的价值。
    误区5:探索式测试需要老手来做。

敏捷测试专家Lisa Crispin总结了必要的技能:
  小心的观察者:观察不正常和不期望的结果,并对正确性的假定很小心,能够细微的观察软件特征或模式。
  认真的思考者:在运行中检查测试并将其改到非预期的方向上,能够解释寻找缺陷的逻辑并提供清晰的测试状态。
  系统的叛逆者:思维严密、系统化,同时还要具有多样化的观点。
  资源的挖掘者:探索测试人员应该发掘更多他们可以使用的工具、技术、测试数据、朋友和信息源。

探索性测试在游戏中应用也是有指导性的意义。连续多次使用探索性测试可以将你的对应方法的测试思维熟练化;同一种思路发现的方法在测试类似功能的时候很容易借鉴。
      最近一次参加的测试沙龙中,有一位老师这么比喻的:ST 相当于跟团游,ET相当于丛林探险
      通过资料的整理,相信大家也比较明确了。

Smpidus发表一下个人观点:
       1.学习能力弱的新手,无法第一时间达到需求所要求结果,但就因为他们过于简单的思路却让我们更看清了本质。(唉,分明在说我,我就是这一类的)
       2.学习能力强的新手,通过新鲜的事物更好地去发掘。
       3.经验丰富的老手,将原有的事物更细化、更完善。
       衡量一个人是否适合使用ST,是用我们的技能去探索的,而不是新手还是老手。处于产品比较稳定,进一步作出补充,覆盖系统测试所不及的场景。

既然我们从事于某个行业,就没有适不适合一说,而是我们应该站在什么角度去考虑问题。整理的不是很完善,希望大家可以提出不足和自己的观点。

时间: 2024-09-30 14:48:47

探索式测试Exploratory Testing的相关文章

软件测试培训 探索式测试分析

软件测试培训探索式的概念已经提出来有一段时间了,各位同学你们知道这个概念吗?目前在国内有一部人人士在学习和研究,但是还没有真正的被运用起来.今天小编就给大家普及一下关于这方面的知识! 很多人看完一些书还是感觉困惑,感觉迷茫,在怀疑自己的能力是否有问题.我刚开始也是同感,感觉看完一些专家大牛的定义解释,还是没有理解什么是探索式测试 .看过一个游戏的例子,我豁然开朗.忽然有一种想法"之前的解释不是我们看不懂,而是定义本身就不清楚,或者说有些翻译太生硬".探索式测试是好还是不好,每个人应该都

探索式测试中的几种误区

探索式测试(Exploratory Testing)是敏捷测试中的重要组成部分,其价值与一般性测试如用户故事测试或者自动化测试不同,它所关注的是“意料之外”的软件缺陷,探索式测试作 为一个研究性.启发性和严肃性并存的测试方法,是一般性测试的重要补充.随着敏捷测试的推广,探索式测试逐渐受到大家的关注和重视.本文主要探讨了测试工 程师在探索式测试方面的一些误区,并尝试纠正这些问题. 误区1:探索式测试是一种测试技术. 探索式测试本身不是一种测试技术,相反,它是一种可以应用于广泛测试技术的方式或态度.

源码时代软件测试干货分享|什么是探索式测试?

? 探索式测试(Exploratory Testing)是一种自由的软件测试风格,强调测试人员同时展开测试学习.测试设计.测试执行和测试结果评估等活动,以持续优化测试工作.考虑到它所具备的即兴发挥.快速实验.动态调整等特征,其思维方法可以追溯到软件开发的最初岁月.? 探索式测试有丰富的内涵,以下文字定义了探索式测试的核心.探索式测试是一种软件测试风格,它强调独立测试人员的个人自由和职责,为了持续优化其工作的价值,将测试相关学习.测试设计.测试执行和测试结果分析作为相互支持的活动,在整个项目过程中

探索式测试实践之缺陷大扫除和结对测试

探索式测试的定义在我的blog都做了较多说明,其中也谈到了探索式测试在项目的实践方式,接下来会详细的说明其中来亮个实践方式的具体实施过程. 探索式测试四象限 探索式测试是一种测试风格和思考方式,它强调的是学习在测试过程中的作用.无论测试人员在做功能测试.性能测试.安全测试或其他类型的测试,都可以使用探索式测试的思维方法,来帮助自己找到初始测试设计未考虑到的危险区域. 探索式测试不只是在脚本测试后才开始,它可以应用于软件测试的各个阶段.作为一种测试风格,探索式测试可以使用适合当前情景的任何测试技术

探索式测试随笔

探索式测试,个人理解是根据产品,制定一些测试策略,并完成测试工作,根据自己对软件的理解,动态的去实施,即时性,边设计边实施测试工作 局部的探索式测试是表单的一些测试,只关注于细节,比如输入框(测试用例:所有的输入框都进行输入测试) 懒汉法:比如所有页面不输入提交是否保存成功 重复提交法:比如所有提交的按钮重复提交,数据是否重复 破坏者法:比如所有输入字段输入非法字段 全局测试方法:不同场景的组合,场景做不同的组合,替换,比如登录(不同用户登录的场景) 地标法:所有的功能做一个覆盖,从某个功能切换

探索式测试-概述

1.什么是探索式测试? 通俗的讲:探索性测试就是在完全不熟悉项目业务需求的理解上,采用边学产品知识边测试,通过一些手段来操作产品,使其暴露出一些隐含的问题.特点是测试设计和测试执行是同时进行的. 2.探索式测试的测试范围? 探索式测试的测试范围一般是主要的功能实现,再加上主要的功能中隐含的一些潜在的风险.例如超长输入引起的系统错误等. 3.为什么要进行探索式测试? 目前测试人员的功能测试手段太单一:越往后的测试发现的Bug率会逐步降低及投资回报率很低:行业内已经有了比较成熟的理论和实践. 4.什

【转载】探索式测试基础系列—生活进阶曲

在探索式测试落地实践中奏出了协奏曲后进入到高级阶段,如何在问题定位和经验积累中发挥作用,也可以理解为在生活达到非常和谐后,如何孕育一个后代并为其提供良好的环境,因此本章的名字叫做生活进阶曲,表明在本章内容结束后生活将发生了质的改变,有了良好的传承. 1.反馈跟踪 前面讲的都是开发迭代过程,在实际中我们还有很重要的一个环节就是上线后的用户反馈跟踪.通过各种渠道,我们可以收集到各种用户反馈,能否将用户反馈复现出来直接影响到问题的定位和解决,另外一方面,随着用户反馈问题的复现,我们可以回顾反思漏测问题

探索式测试实践之路

背景: 第一阶段:问题暴露... 4 第二阶段:各种方案探索... 6 第三阶段:思考...... 8 第四阶段:推广... 11 第五阶段:变化着推广... 14 总结... 16 背景: 记的看过一篇文章,<在效率这件事上,保守者谈"变革",而激进者说"革命">,当时,文章中提的很明确,之所以要"革",是因为目前的方式,无法满足要求了.如果什么都不变,必死:如果变的方向不对,或过大,也必死: 所以,文中建议,对于保守和激进两种方式

&lt;&lt;探索式软件测试&gt;&gt;第二章 手工测试

第二章 手工测试 1.软件缺陷的根源 本书讨论两种缺陷: a.程序员引入 b.运行环境导致 2.缺陷预防和检测 (1)缺陷预防 缺陷预防技术一般是从开发角度来说的,包括: a.更好的设计规范 b.是时代码审核制度(code review) c.运行代码静态分析工具(static analysis tool) d.运行单元测试(unit testing) 所有缺陷预防技术都有以下根本问题: a.开分人员是糟糕的测试者 b.处于静止状态的软件 c.缺乏数据 (2)缺陷检测 测试人员一般使用两种形式的