前几篇文章讲了分别讲了《一个杯子测试的故事---基于质量模型的测试策略》、《基于风险的测试策略》、《基于需求的测试策略》文章,今天聊聊基于上下文驱动的探索性测试。探索性测试在前今年还是非常火的一个概念,这几年逐渐没有人怎没提了,但他依然是非常重要的一个测试策略。
探索性测试溯缘
探索性测试的核心理论由Jame Bach在1995年提出,并在数年间由学者和业界的测试人员不断完善而形成的理论。测试大师Cem Caner在02年首次以“Exploratory Testing”(探索性测试)的名称在学界和业界开始相关的演讲和培训。探索式测试的方法论在这10余年期间不断被测试先锋们不断磨炼和修正,终于在11年,担任过微软和Google测试总监的James Whittaker出版了《探索性测试》一书,让探索式测试在业内获得了广泛关注,并掀起了一股学习和研究热潮。
探索性测试的核心思想
测试是一个不断学习,不断探索的创造性过程。测试计划、分析、设计、执行其实是相辅相成,相互交织的。依照传统的测试理论,把这四部分在时间上严格区分会限制人的创造性和,进而影响测试效果。同时静态的测试方案和测试用例不足以覆盖对动态系统的测试。探索性测试强调不断的学习、探索,不断的修正测试方法,十分强调人的能动性是它最大的亮点。
探索性测试实际上是将戴明环方法(PDCA)做到了极致,也可以说做到了时间上的交织和同步---在做测试执行的时候,测试人员也在做测试分析与设计,同时还可能在修改测试计划,这时候我们就会发现我们现在沿用的一些测试文档例如测试计划文档、测试需求、测试用例这些东西就不大好用了,因为修改频繁,全部记录下来代价太大,且强制划分文档类型会打乱思维。因此探索性测试强调灵活的记录测试的产物,而不必循规蹈矩,这在形式上与传统的测试(探索性测试将传统称为依托脚本的测试,Script Test)是有极大矛盾的,这也是探索性测试在业界引起的最大争议。
探索性测试流派
探索性测试大概分为以James Bash和Micheal Boltonl的上下文驱动流派,具体内容点击链接查看和James Whittaker流派,具体内容可参看《探索式软件测试方法》。
邰晓梅老师也是基于测试驱动的探索性测试的信奉者和践行者,她多次公开演讲过这个题目,近年来她坚持的海盗测试派也和james Bash的测试思想一脉相承。作为她的忠实信徒,我当然也是上下文驱动流派的坚定支持者。
基于上下文驱动的探索性测试实践
基于了解到的项目的上下文,用以前的一些测试经验和测试的做法尝试,看是否适合,测试过程中不断反馈,看测试是否有效,同时不断观察,关注上下文是否随着时间改变,上下文的改变将驱动测试方法和实践的加入,不断分析、尝试、应用、反馈。这就是上下文驱动测试。
对于探索性测试一直不明白其精髓,大概在5年前,组织的一次沙龙活动时,投影仪一直调试不好,重复不停启动投影仪,突然邰晓梅老师说,有个亮点。然后所有人围绕这个亮点进行反复测试,终于把投影仪给练好了。当时邰晓梅老师说,探索性测试,就是不断学习,不断试验,根据一个线索,像破案一样,抽丝剥茧,最终找到真相。就在那一瞬间,终于明白了探索性测试的真谛。
其实探索性测试和所谓的传统测试并不是冲突和矛盾的,在实践过程中也不会走两个极端。Micheal Bolton曾经在一次沙龙中说道:“我们可以找两个端点,一端是把人当作生产线螺丝的严格依照脚本进行测试方式,一端是把人比作一个小孩的完全探索性测试,实际工作中,我们肯定是在这两个点连线中的某一个点。具体这个点在哪里,要看它在哪里能够更好的开展测试。”正所谓法无定法,我们其实完全没有必要去恪守、捍卫教条,并非争出个高下来,黑猫白猫,抓住老鼠就是好猫。
特别声明:笔者对于探索性测试没有更多的研究,本文部分内容来源于网络。
2019年连续修心三十七天 土司于北京