什么是探索测试?
![[��ǩ:����] [��ǩ:����]](https://www.xuefen.net//file/upload/img/7/91.jpg)
探索式测试(exploratory testing)是一种自由的软件测试风格,强调测试人员同时开展测试学习、测试设计、测试执行和测试结果评估等活动,以持续优化测试工作。考虑到它所具备的即兴发挥、快速实验、随时调整等特征,其思维方法可以追溯到软件开发的最初岁月。
首先,探索式测试是一种软件测试风格(style),而不是一种具体的软件测试技术(如等价类划分、边界值分析、组合测试等)。作为一种思维方法,探索式测试强调依据当前语境(context)选择合适的测试技术,而不局限于特定的测试技术。
探索式测试强调独立测试人员的个人自由和责任,其目的是为了持续优化其工作的价值(value)。测试人员应该为个人和团队负责,调动所有能量,发挥人的灵活性,在整体上持续优化个人和团队的产出。这段描述和精益生产、敏捷软件开发的理念高度一致,这也是探索式测试受到敏捷团队欢迎的原因之一。
更多实战小技巧可以到网络上找下黑马程序员相关视频,官网更有免费视频库直接看。
探索性测试的探索性测试的四个类型
探索式软件测试一共分为自由式探索式测试、基于场景的探索式测试、基于策略的探索式测试和基于反馈的探索式测试。下面将详细介绍4种类型的应用场景。
一:自由式探索式测试
自由式探索式测试指的是对一个应用程序的所有功能,以任意次序、使用任何如数进行随机探测,而不考虑哪些功能是否必须包括在内。自由式测试没有任何规则和模式、只是不停的去做。很不幸,很多人认为所有的探索式测试都是自由式的,从长远的观点来看,这种看法低估了探索式测试技术的能力,我们在随后将看到这类测试的一些变种。
一个自由测试用例可能会被选中成为一个快速的冒烟测试,用它来检查是否会找到重大的崩溃或者严重的软件缺陷,或是在采用先进的技术之前通过它来熟悉一个应用程序。显然,自由式探索式测试无需也不应该进行大量的准备规则。事实上,它更像是“探索”而不是“测试”,所以我们应当相应的调整对它的期望值。
自由式测试不需要多少经验或者信息。但是,同以下提到的探索式技术相结合后,它将成为一个非常强大的测试工具。
二:基于场景的探索式测试
基于场景的探索式测试和传统的基于场景的测试有类似之处。两者都涉及到一个开始点,就是用户故事或者是文档化的端到端场景的开始之处,那也是我们所期望的最终用户开始执行应用程序的地方。这些场景可以来自用户研究、应用程序、以前版本的数据等,并作为脚本用于测试软件。探索式测试是对传统场景测试的补充,把脚本的应用范围扩大到了更改、调整和改变用户执行路径的范畴。
使用场景作为指导的探索式测试人员经常会修改他感兴趣的输入或者是追寻一些并没有包括在脚本中的潜在副作用。不过,由于最终的目标是完成给出的场景,这些测试上的弯路、最终总是会回到脚本文件记载的用户主要执行路径。
三:基于策略的探索式测试
将自由式测试探索式与具有测试老手的经验、技能和感知融合在一起,就成为基于策略的探索式测试。它属于自由式的探索,只是他是在现有的错误搜索技术下引导完成的。基于策略的探索式测试应用所有的已知技术(如边界值分析或组合测试)和未知的本能(如异常处理往往容易出现软件缺陷),来指导测试人员进行测试。
这些已知的策略是基于策略的探索式测试成功的关键,存储的测试知识越丰富,测试就会更有效率。这些策略缘于积累下来的知识,它们指导软件缺陷隐藏在哪里,如何综合人工输入数据,那些代码路径常常出现故障。
基于策略的探索式测试结合了测试老手的经验和探索型测试人员的随机性。
四:基于反馈的探索式测试
基于反馈的探索式测试缘于自由式测试,但是随着测试历史的形成,测试人员们就会利用反馈来指导今后的探索。“覆盖”就是典型的例子。一名测试人员通过咨询那些覆盖指标(代码覆盖、用户界面覆盖、特性覆盖、输入覆盖或者其中的某一些组合)来选中新的测试用例,以使这些覆盖指标得以提高。覆盖指标只是收录反馈信息的标志之一。我们也会看其他标志,如代码改动数量和软件缺陷密集程度等。
基于反馈的探索式测试时一种“上一次测试”:在上一次我根据应用程序的最后状态选了每某一个输入之后、下一次我就会选中另外一个输入。或者是,在上一次遇到这个界面时我用A属性,这一次我就会用B属性。
基于反馈的探索式测试工具是非常有价值的,它可以是测试人员保存、搜索测试历史并据此采取实时行动。不幸的是这样的工具很少。
软件测试的5个基本流程
软件测试的5个基本流程:
1、需求分析、需求评审。2、编写测试计划。3、编写测试用例、用例评审。4、执行测试、提交bug、回归测试。5、编写测试总结报告。
软件测试模型:
传统:项目计划——需求分析——软件设计——程序开发——软件测试——集成维护
V模型:需求分析-概要设计-详细设计-软件编码-单元测试-集成测试-系统测试-验收测试
W模型:用户需求-需求分析-概要设计-详细设计-编码-单元测试-集成测试-验收测试-单元测试设计-集成测试设计-系统测试设计-验收测试设计-集成-实施-交付
H模型:测试准备-测试就绪点-测试执行-测试流程-其他流程
X模型:程序片段1-测试设计-工具配置-执行测试-编码完成-执行测试-工具配置-测试设计-程序片段N;封版-执行测试-测试设计-工具配置-迭代1...N-探索式测试-执行测试
我28了,想学点软件测试,请问看什么书好
测试入门
软件测试(第2版)
Software Testing (2e),Ron Patton
一本测试入门的好书,较全面地介绍了各种测试领域和方法,为测试新手提供了正确的观念和宽泛的基础。
软件测试工程师面试指导
蔡为东
面向初学者,介绍了软件测试行业、测试工程师素质要求、基本测试技术、求职策略、面试技巧、典型试题,对于测试新手或迈向测试行业的朋友有较高的参考价值。此书还收录了一些对读者来信的回复,内容涉及职业规划、大学生就业、测试学习、测试实践等,针对当前常见的困惑,做出了谨慎且深思熟虑的回答。附文《我在微软做软件测试外包》对于了解微软中国的流程与文化很有参考价值。
软件测试的艺术(第2版)
The Art of Software Testing (2e),Glenford J. Myers,Corey Sandler,Tom Badgett,Todd M. Thomas
一本“久经考验”的测试经典:1979年,第一版面试;25年后,第二版登场。平心而论,有些观点已经不能直接应用在测试实践中,但是仔细品味仍有所收获。毕竟,这是一本需要思考的书,而不是操作手册。
软件测试实战–测试Web MSN
蔡为东
以Web MSN为测试对象,形象生动地介绍了针对图形界面的黑盒测试技术,有很强的实践性。围绕一个实例,全面地的介绍各种测试方法,是此书区别于其他测试书籍的一大特色。附文《胶着》是作者一段开发经历的回顾与小结,有笑有泪,仅凭此文便值回书资。
通用测试技术
探索式软件测试(强烈推荐)
《探索式软件测试》涉及以下重要问题:为什么自动化测试无法消除所有缺陷,如何才能让这些缺陷无处遁形?哪些技术可帮助我不断发现和消除致命错误?如何更高效地进行手工测试,增加些许轻松和愉悦的感觉?对于每个项目,如何确定最高效的高级测试策略?在我无法进行全部测试时,哪些输入是必须测试的?哪些测试用例能提供最理想的特性覆盖率?在结合使用探索测试和传统脚本或场景测试时,如何才能获得理想效果?如何体现来自开发过程的反馈意见,代码更改吗?
计算机软件测试(第2版)
Testing Computer Software (2e),Cem Kaner,Jack Falk,Hung Quo Nguyen
一本值得反复参考的好书,”The bestselling software testing book of all time” 的美誉绝非浪得虚名。作者将多年的实践经验用平实的语言娓娓道来,内容涉及测试技术、测试管理、开发流程、思考方法、实践模式,可谓是一本测试典籍。部分内容看似有些过时,但是其思想和方法仍旧有很高的借鉴价值。
微软的软件测试之道
How We Test Software at Microsoft,Alan Page,Ken Johnston,Bj Rollison
微软的资深测试者审视微软当前的测试方法,并展望软件测试的未来发展。缺点是没有结合Windows或Office这样的著名且复杂的产品,详细讨论具体项目的具体技术。优点是提供了许多小故事,讲述了Windows、Office、Live等产品开发中的点滴。从经验传承、启发思路的角度,这些故事是全书的精华,具有很高的参考价值。
测试有道:微软测试技术心得
梁博,许珊,徐歆恺
内容由一系列技术点组成,每一个点都有精要的描述和作者的心得体会,力图以小搏大,以精粹胜广博。但是没有提供一个理论框架将这些点有机地联系起来,读起来有只见树木、不见深林之感,也缺少“授人以渔”的独到见解。最大优点是介绍了一批免费且实用的工具,可以放在案头备查。
软件测试基础:方法与度量
Software Testing Fundamentals: Methods and Metrics,Marnie L. Hutcheson
以风险分析为核心,讨论了测试计划、测试组织和测试设计。其中,关于“测试价值的可说明性”和“利用Office Suite来撰写、管理测试计划”的内容有启发性。适合有一定工作经验的测试人员参考。
软件测试(第2版)
Software Testing A Craftsmaj’s Approach (2e),Paul C. Jorgensen
将理论与工艺结合在一起的测试教科书。比较严谨地讨论了软件测试的基础理论,适合软件测试研究者研读。
面向对象的软件测试
A Practical Guide to Testing Object Oriented Software,John D. McGregor,David A. Sykes
介绍了面向对象软件测试的基本思路和方法。第7章“测试类的层次结构”比较有启发性,讨论了针对继承的测试设计和组织,相关内容在其他测试书籍中并不多见。
软件测试技术大全:测试基础、流行工具、项目实战
陈能技
该书由多位作者共同撰写,内容涉及测试理念、测试技术、测试开发、测试自动化、测试管理和常见的测试工具,不愧“测试大全”的书名。有些内容失之于粗糙,一些论述也不够严谨,缺乏参考文献更是此书的硬伤。瑕不掩瑜,此书理论和实践结合紧密,仍值得测试工作者学习和思考。
测试管理
笑傲测试–软件测试流程方法与实施
魏伟
以小说为体裁的测试管理书籍。通过令狐冲和风清扬的对话,从一个逐渐成长的新人的角度,介绍了测试管理的点点滴滴。全书轻松幽默,全无技术读本的枯燥乏味。附录所收录的文章“从新鲜人到新仙人”对于行业新人颇有帮助。
步步为赢–软件测试管理全程实践
蔡为东
以“管理就是负责人”为核心,介绍作者担当测试领导的切身经验:自我管理、自我成长、编写测试计划、编写测试用例、执行测试、沟通、测试计划/用例评审、测试总结、员工管理、测试思想等。也适合第一线的测试工作者阅读,所涉及内容皆和他们的日常工作密切相关。
专项测试技术
软件安全测试艺术
The Art of Software Security Testing: Identifying Software Security Flaws,Chris Wysopal,Lucas Nelson,Dino Dai Zovi,Elfriede Dustin
软件安全测试的入门书,用很短的篇幅涵盖了软件安全测试的多个领域,为测试人员提供了模型、方法和工具。对于Threat Modeling的介绍很精彩,为进一步的行动提供了良好的理论与实践基础。
Web安全测试
Web Security Testing Cookbook: Systematic Techniques to Find Problems Fast,Paco Hope,Ben Walther
一本实践性很强的Web安全测试手册。从网络安全的角度,介绍了一批免费的网络通信分析、监控、修改、调试工具;以条目为组织,介绍了的测试方法或策略;以实践切入,穿插介绍理论知识,通过精心选材和组织,降低了Web安全测试的门槛。
实用软件测试指南
How to Break Software: A Practical Guide to Testing,James A. Whittaker
软件测试专家编写的实战指南,指导测试人员从攻击的角度展开软件测试。介绍了一些实用的测试工具,对于压力测试、极限测试有较强的参考价值。
软件测试新技术与实践
于秀山,于洪敏
介绍了组合测试技术在测试中的应用。适合组合测试研究者参考。
Web应用程序性能测试指南
Performance Testing Guidance for Web Applications,J. D. Meier,Carlos Farre,Prashant Bansode,Scott Barber,Dennis Rea
微软模式与实践(pattern & practices)团队的佳作,介绍了性能测试的正确观念、流程和实践。篇幅短小,内容深邃,值得在实践中反复参考和体会。
应用程序性能测试的艺术
The Art of Application Performance Testing: Help for Programmers and Quality Assurance,Ian Molyneaux
经验丰富的软件性能测试专家分享他的经验,内容包含性能测试的架构、模型、典型方法和结果分析。适合有一定经验的测试者参考。
测试自动化
.NET软件测试自动化之道
.NET Test Automation Recipes:A Problem-Solution Approach,James D. McCaffrey
该书讲解了在.NET平台上编写轻量级测试程序的实用技术。作者曾经在微软工作,该书与微软测试开发工程师的培训材料的契合度很高,实践性很强。对于Windows平台的测试工程师而言,此书的参考价值很高。
集成测试框架–用Fit进行敏捷软件测试
Fit for Developing Software: f
ramework for Integrated Tests,Rick Mugridge,Ward Cunningham
Fit是一种编写系统测试的测试框架,作为一种业务交流工具,它深刻地反映出敏捷软件开发的若干特质。此书由Fit之父亲自编写,不但可以了解Fit的方方面面,还能从中体会大师的感悟与实践。
互联网单元测试及实践
陈卫俊,赵璨,周磊,陈洪
介绍了常见的单元测试框架,并结合具体项目讲解了单元测试的基本理论和技术。对于Web测试的新手,有较高的参考价值。
经验总结
软件测试经验与教训
Lessons Learned in Software Testing,Cem Kaner,James Bach,Bret Pettichord
值得反复研读的经典好书。Tom DeMacro的赞美——“这些经验中的任何一个,都抵得上这本书的价钱”,所言非虚。
完美软件–对软件测试的各种幻想
Perfect Software: And Other Illusions a
bout Testing,Gerald M. Weinberg
该书没有介绍具体的软件测试技术,它讨论的是软件开发中的人、他们对测试的认知、软件测试的目的、实现目的的社会学和心理学上的探索。它试图建立正确的软件测试观念、协调的心理情绪和有效的思考方式。这些要素最终会决定在具体的项目中采用何种具体测试技术的组合。
赢在测试:中国软件测试先行者之道
蔡为东
介绍了一批测试先行者的个人经验的书。学习他人经验可以用较低的成本去扩大自己的体验,自然是他山之石可以攻玉,开卷有益。不过,个人经验非批判性地阅读与理解,不能有效,甚至有害,所以该书适合愿意学习且有能力学习的测试爱好者。不足是大部分被采访者都是管理者,没有真正的测试技术专家。
软件测试精要
董杰
作者分享他在测试领域的经验与思考,其热情和思辨跃然纸上。缺点是内容却有些散乱,即便是一章,其系统性也有些不足;对于测试工具背后的测试思想,挖掘得比较浅,没有上升到测试理论的高度。
以上就是小编通过网络搜集整理关于什么是探索测试?的全部内容了,希望能帮助到大家。