`
mixer_a
  • 浏览: 344355 次
社区版块
存档分类
最新评论

神奇的曲线:探索式测试与基于脚本的测试之关系

阅读更多

来准备在上海MPD上和大家分享以前在新浪微博(查看原文:http://t.cn/zOSXmst)提到的 神奇的曲线:探索式测试与基于脚本的测试之关系,结果上周接到培训任务,去成都做了一场培训,和学员做了简单分享。

探索式测试(Exploratory Test)经常被简称为ET,由 Cem Kaner 1983年建立的测试概念,这几年随着敏捷方法而大行其道。敏捷方法的迭代频率很快,每个迭代时间很短,自然想到如何减少文字工作,避免写测试用例,ET自然是一个很好的选择。ET简单理解为测试设计与执行同步进行,如果想了解更多内涵,可以参考:

 

 

 


 

 

不过,我们以前熟悉测试中的错误猜测法、Ad hoc测试等方法,不管Cem Kaner承认不承认,ET概念很有可能来源于这些先前的概念,在这些概念的基础上丰富它,试图给ET建立一个比较系统的体系,例如引入基于上下文驱动(Context-driven)、基于session的测试等。想当初,我们用错误猜测法、Ad hoc测试方法时,一定也会考虑业务或功能的上下文关系,没有上下文还做什么测试?也会考虑某些场景,更多会考虑一些特别的场景,如人们常说的corner case,right? 当然,ET和错误猜测法、Ad hoc测试是有区别的,可以参考下面两篇文章:

 


James Bach:What Is Exploratory Testing?And How It Differs from Scripted Testing

 

 

 

 

 

史亮:探索式测试:基本概念

 

 

 

 

 

回到正题,谈谈探索式测试与基于脚本的测试(Script-base Test 或 Scripted Testing,ST)之关系,不论是在传统测试流程还是在敏捷测试中,这两者是相辅相成的,谁也不能代替谁,正如James Bach也谈到“Balancing Exploratory Testing with Scripted Testing,... two approaches to testing are fully compatible” 。而且在不同的场景有各自的优势,例如:

 

  • 从发现问题来看,探索式测试效率会更高些,甚至高得多;
  • 从测试乐趣看,也会优先选择探索式测试;
  • 在敏捷中新功能测试会选择探索式测试;
  • 探索式测试不易实现自动化,所以自动化测试先需要脚本,然后执行;
  • 回归测试比较确定,需要不断运行,自然会选择基于脚本的测试(ST);
  • 从产品线来看,开发周期长,复用会大大提高效率,ST也具有很大优势。

 

 

 

 

所以,在一个项目中,经常是同时采用这两种方法——ST和ET,而且不同的组织环境或项目环境,随时间的投入是不一样的,这就是那两条神奇的曲线:



当初我没有在线上标ST和ET,就是因为每根线都可能是ET或ST,例如:

 

  1. 如果自动化测试水平低或没有自动化测试,就需要在前期有更多的ET,在发现产品问题的同时学习产品、更深地理解产品,并通过发现问题来完善测试用例。而为了降低产品质量风险,后期需要进行更系统的测试,特别是要完成大量回归测试、对产品质量有一个完整的评估,需要执行ST。由于自动化水平低,这时人力都投在ST上,就没有经历做ET,而且也不必要。
  2. 如果自动化水平高,前期需要开发脚本,ST的投入自然大。但自动化执行时,虽然会运行大量用例,但解放了生产力,测试人员有更多时间投入ET。

 

 

 

 



实际环境所处的场景会更多,不管怎样,先要清楚自己测试工作中有什么问题,然后采用合适的方法来解决问题。或者说,要清楚自己的目标,是让团队获得激情还是让公司处在稳定的不败之地、还是为了尽快发现Bug还是提高产品的质量,方法何时使用、如何使用、谁使用等都可能不同。即先问Why?What?,然后才考虑How、Who、Where?

分享到:
评论

相关推荐

    释放ESG潜力:探索ESG与企业估值的关系.pdf

    释放ESG潜力:探索ESG与企业估值的关系.pdf 释放ESG潜力:探索ESG与企业估值的关系.pdf 释放ESG潜力:探索ESG与企业估值的关系.pdf 释放ESG潜力:探索ESG与企业估值的关系.pdf 释放ESG潜力:探索ESG与企业估值的关系...

    人工智能课程:探索智能的未来 课程脚本设计,可用于大学课件制作

    人工智能课程:探索智能的未来 课程脚本设计,可用于大学课件制作 人工智能课程:探索智能的未来 课程脚本设计,可用于大学课件制作 通过本课程的学习,您将能够: 1. 理解人工智能的定义、历史和基本概念。 2. 掌握...

    探索式软件测试.pdf

    探索式软件测试 自动化测试 手工测试 局部探索式软件测试法 全局探索式软件测试法 混合探索式软件测试技术 漫游与测试中的棘手问题

    探索式测试实践之路

    探索式测试实践之路

    探索式测试方法

    探索式软件测试方法,主要是android 方面的一些资料

    探索式软件测试的四个类型简介

    探索式软件测试的四个类型、探索式软件测试一共分为自由式探索式测试、基于场景的探索式测试、基于策略的探索式测试和基于反馈的探索式测试。下面将详细介绍4种类型的应用场景。■一:自由式探索式测试  探索式软件...

    淘宝探索式测试白皮书.pdf

    淘宝探索式测试白皮书.pdf

    学习探索式测试的问与答

    本文摘录自《探索式测试实践之路》第1.3节,用对话的形式讨论探索式测试的概念与实践。提问者是本书的一位虚拟读者,回答者是本书的作者们。问:探索式测试中的“探索”该如何理解?  本文摘录自《探索式测试实践之...

    ChinaTest 2012演讲稿_探索式测试四象限和实践

    ChinaTest 2012演讲稿_探索式测试四象限和实践

    探索式测试:基于测程的测试管理

    为了使探索式测试满足软件开发团队对可管理性的要求,Jonathan Bach和JamesBach提出了基于测程的测试管理(Session-BasedTestManagement,简称SBTM)[Bach2000]。本文将介绍SBTM的概念与方法。在翻译Session时,我...

    探索式测试:肥皂剧测试(SoapOperaTesting)

    其特征和方法对于基于情景(Scenario)的探索式测试很有启发性,是探索式测试者值得研究的工具。本文将简介肥皂剧测试的基本方法和特征,详细论述请参考Han  肥皂剧测试(SoapOperaTesting)是HansBuwalda(CTO,...

    探索性测试方法

    探索性测试方法:什么是探索性测试、二、探索性测试的种类

    探索式测试:基本概念

    探索式测试(exploratorytesting)是一种自由的软件测试风格,强调测试人员同时开展测试学习、测试设计、测试执行和测试结果评估等活动,以持续优化测试工作。  什么是探索式测试?  探索式测试(exploratorytesting)...

    探索式软件测试的四个类型

    探索式软件测试的四个类型、探索式软件测试一共分为自由式探索式测试、基于场景的探索式测试、基于策略的探索式测试和基于反馈的探索式测试。下面将详细介绍4种类型的应用场景。  一:自由式探索式测试  自由式...

    深入理解JavaWeb开发技术:探索基于主流框架的最佳组合

    资源名称:深入理解JavaWeb开发技术:探索基于主流框架的最佳组合内容简介:《深入理解JavaWeb开发技术:探索基于主流框架的最佳组合》内容新颖、知识全面、讲解详细,可以帮助读者深入理解javaweb开发技术的基本...

    如何正确理解敏捷测试中的探索性测试的含义

    探索式测试(ExploratoryTesting)是敏捷测试中的重要组成部分,其价值与一般性测试如用户故事测试或者自动化测试不同,它所关注的是“意料之外”的软件缺陷,探索式测试作为一个研究性、启发性和严肃性并存的测试方法...

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

    探索式测试实践之缺陷大扫除和结对测试.探索式测试的定义在我的blog都做了较多说明,其中也谈到了探索式测试在项目的实践方式,接下来会详细的说明其中来亮个实践方式的具体实施过程。探索式测试四象限  探索式测试...

    敏捷开发模式下的利刃:探索性测试(ET)--测试用例如何设计?

    本文来自于51testing,文章主要探索式软件测试是什么以及探索式测试的两个前提等相关内容。探索式软件测试是一种强大的黑盒测试思考方法,但却被广泛误解。在某些情况下,它可以比自动化测试更加有生产力。它是一种...

    探索式测试之语境驱动测试7原则

    探索式测试之语境驱动测试7原则。本文系《探索式测试实践之路》第1.2节,简要的讨论了“语境驱动测试”(ContextDrivenTesting)的7条原则。所引用文献的详细信息可以在这里找到。  本文系《探索式测试实践之路》第1....

    互联网司法研究:探索、践行与发展——基于考察三家互联网法院的研究进路.pdf

    互联网司法研究:探索、践行与发展——基于考察三家互联网法院的研究进路.pdf

Global site tag (gtag.js) - Google Analytics