探索式测试的概念提出很久了,国内也有很多人在学习,在研究。但感觉真正被企业认可,被真正使用起来的并不多。
  大部分还处在学习、翻译、新鲜感的阶段。到底什么是探索式测试,探索式测试该怎么做,很多人看完一些书还是感觉困惑,感觉迷茫,在怀疑自己的能力是否有问题。我刚开始也是同感,感觉看完一些专家大牛的定义解释,还是没有理解什么是探索式测试 。看过一个游戏的例子,我豁然开朗。忽然有一种想法“之前的解释不是我们看不懂,而是定义本身不清楚,或者说有些翻译太生硬“。探索式测试是好还是不好,每个人应该都有自己的看法;探索式测试怎么去用,每个团队也应该根据自己的实际情况进行判断;但总的来说,我认为,至少探索式测试里有很多好的方法,好的测试思路是值得我们学习的。好的东西,无论属于哪个派别,只要自己掌握了,都可以融汇贯通,使我们的功力大增。
  首先我举个例子让大家理解一下什么是探索式测试吧。比如我们买了一款新的机器人玩具,但是刚买回来还不知道怎么控制,怎么使用。一般我们会先大概看看说明书,然后会迫不及待的去操作了。这时, 需要我们一边研究说明书,一边实际操作怎么使用并观察使用的结果。如果使用的不正确,我们会继续研究,继续学习思考,直到我们了解了基本的用法,并学会使用。这个学习使用的过程是我们探索的过程;其实这个过程类似于探索式测试的过程。
  1、到底什么是探索式测试?
  探索式测试(Exploratory Testing)
  我认为首先是一种测试类型,然后是采用探索的方式进行测试。
  ”探索“表明对软件还是未知,需要去研究,去学习,去试探。
  探索式测试没有标准的方法或技术,只要有好的经验、好的思路、好的方法,我们可以用来进行探索。
  像James Whittaker总结的探索式测试模型,我们可以作为探索式测试的基本模型,但是探索式测试的方法及思路不仅于此。我们千万不能搞两个凡是:”凡是国外专家的都是对的,凡是国外专家的都是标准。“;连James Whittaker自己都说过,
  我们自己可以通过实际经验来总结自己的探索式测试方法。
  总之,我认为探索式测试是采用新的测试思路,边学习、边设计、边测试、边思考。
  James Bach的定义:Exploratory testing is simultaneous learning, test design, and test execution.
  2、 进行探索式测试的目的?
  James提到了探索式测试适用的场景或目的有很多(下面只是一部分):
  · 需要快速学习一款产品;
  · 需要寻求多样化的测试;
  · 在进行脚本测试后,还想要进行多样化的测试;
  · 想要在短的时间内发现多严重的bug;
  · 想要检查一个测试人员的工作;
  但我认为我们开展探索式测试的目的是进行 缺陷大扫除。
  通过新的思路,新的方法,去发现还未被发现的问题,去扫除漏网之鱼。
  3、探索式测试的条件?
  项目要求:
  · 产品稳定
  · 产品重要
  测试员要求:
  · 有激情感兴趣
  · 掌握探索式测试理论和方法
  4、什么情况或什么时间使用探索式测试?
  我们日常的测试一般都要进行2-3轮,在国内一般都是根据需求编写测试用例,其中会考虑不同的测试类型不同的测试用例设计方法。但是同样的用例执行到后一遍,基本很难发现问题了。这时,如果我们能够换一种测试思路,补充一些新的测试点,也许我们会发现新的bug了。
  所以,我认为探索式测试放在第三轮会更合适。也许有的人会说探索式测试适合在每一个阶段;我觉得好的测试思路、测试方法可以在任何时候使用,但是系统的使用探索式测试,我觉得还是放在后几个阶段会比较合适。
  5、怎么样进行探索式测试?
  《探索式测试实践之路》给出的步骤:
  第一步:  看 PRD 和原型等各种可提供的文档。
  第二步:  确定核心功能模块。
  第三步:与项目组测试人员沟通,确定bug多风险大的模块。
  第四步:制定探索式计划: 测程数、每个测程的任务、每个测程的时间。
  第五步:根据计划执行:
  第六步:根据 计划,边学习、边设计、边测试、边思考;根据具体情况随时修改测试策略。
  第七部:发送缺陷报告。
  其实第四部是否要进行,我觉得可以根据实际情况来。
  我总结的步骤:
  1、阅读需求文档,确定核心模块。
  2、查看bug管理系统或与测试人员沟通,确定问题较多的模块。
  3、根据需求,探索核心模块的功能。
  4、根据启发式测试策略模型和漫游测试模型挑选补充测试策略进行测试。
  5、根据计划,边学习、边设计、边测试、边思考;根据具体情况随时修改测试策略。