15.探索吧!深入理解探索式软件测试

1)

测试的很多思维不仅适用于工作也适用于生活,而那一刻,在她的面前,我却退缩了。Elisabeth则以她的热情和专业积极推动着敏捷测试,而这也为她赢得了2010年度的敏捷联盟Gordon Pask奖,该奖的设立正是为了表彰像她一样对敏捷实践做出了卓越贡献的人们。

2)探索式测试很重要。 尽管,将此方式运用于任何种类的开发均能产生价值,然而,它最适合于那种快速循环和突发变化很常见的敏捷开发。开发和测试的方法有很多共通之处.

3)

太让人失望了,不管我们写多少测试,也不管我们执行多少测试用例,都没用,最严重的缺陷都只有在偏离脚本执行时才能找到。”

4)

探索这件事,它的结局可能是完全开放式的。如果不使用一些机制对工作进行安排和组织的话,那你很可能就是拿着软件瞎折腾,花掉了数小时或数天的时间,结果却找不到任何相关或有用的信息,无从分享。 Jon Bach和James Bach提出了基于探测会话的测试管理(SBTM)实践来解决问题。该实践以限时探测会话序列的形式安排时间,提前为探测会话确立重点。(第2章介绍了如何确定并捕获此重点。)贯穿整个探测会话期间,你畅快淋漓地探索着,设计并执行测试,从一个试验再到下一个,没有停顿。

5)

探测会话进行过程中,你需要做记录,这样才能知道自己都探索了些什么,又找到了些什么信息。当然,你的记录你自己用就行了。跟干系人做简短汇报的时候,你就可以参考使用这些记录,但它们与传统测试或测试报告可不一样。这种原生态记录对别人来说价值很有限,主要是为了辅助记录测试思路、问题、风险、惊喜和你想要探索的其他领域,以及bug。 探测会话结束后,你得捕捉那些需要转达给他人的信息。你可以把自己所观察到的已探索区域的能力和局限写下来,或者干脆坐到干系人旁亲口告诉他们你的发现。如果你发现有bug需要报告,那就报上去。如果你心中尚有疑问,那就把可以回答这些问题的人找出来。探测会话提供了定期歇脚点,让你可以总结提炼调查所获,仔细考虑接下来应该探索的最佳区域是哪里。

6)

探索这件事,它的结局可能是完全开放式的。如果不使用一些机制对工作进行安排和组织的话,那你很可能就是拿着软件瞎折腾,花掉了数小时或数天的时间,结果却找不到任何相关或有用的信息,无从分享。 Jon Bach和James Bach提出了基于探测会话的测试管理(SBTM)实践来解决问题。该实践以限时探测会话序列的形式安排时间,提前为探测会话确立重点。(第2章介绍了如何确定并捕获此重点。)贯穿整个探测会话期间,你畅快淋漓地探索着,设计并执行测试,从一个试验再到下一个,没有停顿。

7)

探测会话进行过程中,你需要做记录,这样才能知道自己都探索了些什么,又找到了些什么信息。当然,你的记录你自己用就行了。跟干系人做简短汇报的时候,你就可以参考使用这些记录,但它们与传统测试或测试报告可不一样。这种原生态记录对别人来说价值很有限,主要是为了辅助记录测试思路、问题、风险、惊喜和你想要探索的其他领域,以及bug。 探测会话结束后,你得捕捉那些需要转达给他人的信息。你可以把自己所观察到的已探索区域的能力和局限写下来,或者干脆坐到干系人旁亲口告诉他们你的发现。如果你发现有bug需要报告,那就报上去。如果你心中尚有疑问,那就把可以回答这些问题的人找出来。探测会话提供了定期歇脚点,让你可以总结提炼调查所获,仔细考虑接下来应该探索的最佳区域是哪里。

8)

一个简单的三段式模板: ·目标:你要探索何处?它可能是一个特性、一个需求或者一个模块。 ·资源:有什么资源是你需要带着用的?一切皆资源:某个工具、数据集、技术、配置或者某个相互依赖的特性。

10)

一个简单的三段式模板: ·目标:你要探索何处?它可能是一个特性、一个需求或者一个模块。 ·资源:有什么资源是你需要带着用的?一切皆资源:某个工具、数据集、技术、配置或者某个相互依赖的特性。 ·信息:你希望找到哪种信息?你是想描绘系统在安全性、性能、可靠性、容量、可用性或其他各方面的特征吗?你想查验其设计的一致性情况或某标准的违规情况吗?

11)

 优质探测章程 一个优质探测章程能提供方向,同时又不会过度地细化了测试行为。

反过来看,探测章程若是太过宽泛也有风险,可能无法提供足够的关注。如果目标太大,你就很难分辨自己是否已经完成了探索。

一个优质探测章程即是一个提示信号:它指出了灵感之源,又避免了对行动或结果做出事无巨细的规定。

12)

旧习难以破除有两大原因:你可能根本就没有意识到自己是出于习惯行事,而且就算已经意识到习惯的存在,也会觉得这样很舒服。然而,想要能探索地有成效,就得去往那些未曾踏足之处。有一种方法可以打破习惯性的冲动,那就是要允许自己接受随机性的引导。“名词和动词”技术就提供了一种可以将随机性引入软件交互过程的方法。 采用此技术的第一步,是要把系统中的名词和动词识别出来。设想一下,你要测试的是某个邮件客户端。那么,系统的名词或者说事物可能包括有“邮件、附件、联系人、账户和文件夹”等在内。而相应的动词或者说动作可能包括了“创建、发送、编辑、转发、复制、删除、移动。”

随机组合测试

13)

古高尔指自然数10(100),也即1后面有100个0,于1938年由美国数学家爱德华·卡斯纳的侄子米尔顿·西罗蒂所创造,主要是为了勾画出一个不可想象的大数和无穷大之间的区别。可参考https://zh.wikipedia.org/wiki/ 古高尔。——译者注

14)绘制一个状态模型和使用启发法以暴露那些跟时间相关的惊喜

你有否曾经碰到某个故障极难重现的情况?或许,你看到的是一个极偶然发生的灾难性错误,也或者是你无意间踩到了受损数据,所以无法追查其根由。 这种缺陷被触发,往往是凑巧碰上了一个短暂的脆弱期,那一刻万事俱备只待事情出错。软件要执行写操作,文件却已被锁住。恰恰在你试图访问安全内容的时候,会话出现了超时。当系统某部分试图更新某条记录、另一部分却仍未完成创建记录时,就会出现极少见的竞争条件的情况。 这些情形通常都很短命且很难发现。你可能不知道怎样才能有意识地触发它们,或是因为不知道怎么分辨它们出现与否而无法加以利用。如果感知不到这段脆弱期,想发现或重现相关缺陷就会变成是一件令人沮丧的屡试屡败的事情。 幸运的是,有种系统化方式可以借助状态模型发现并利用这些脆弱期。在本章中,你将学到如何绘制一个状态模型和使用启发法以暴露那些跟时间相关的惊喜。

时间: 2024-10-01 03:59:31

15.探索吧!深入理解探索式软件测试的相关文章

《探索式软件测试》读书笔记(上)

<探索式软件测试>读书笔记(上) 2015-05-12 一.局部探索式测试 1.如何测试用户输入  1)合法输入和非法输入    输入筛选器   输入检查   异常处理代码  2)常规输入还是非常规输入  3)默认输入或用户提供的输入  4)使用输出来指导输入选择 2.如何测试软件状态 3.代码路径 4.用户数据 5.运行环境二.全局探索性测试 分类 方法 商业区 指南测试法 卖点测试法  地标测试法  极限测试法  快递测试法  深夜测试法  遍历测试法  历史区 恶邻测试法  博物馆测试法

探索式软件测试

探索式软件测试: 在敏捷测试中应用非常广泛 没有固定的测试用例,有一些测试思想和固定的框架以及一些测试场景,来完成测试工作. 即不同的测试思想,不断的应用这些测试思想,本身就是一些策略 自动化测试 手工测试 局部探索性测试 全局探索式测试 混合探索式软件测试 漫游与测试中的棘手问题 手工测试 软件缺陷的根源: 来自软件开发本身! 两种缺陷: 程序员引入缺陷 运行环境导致的缺陷 测试环境和上线环境相差很大 缺陷预防和检测 1.设计更好的设计规范 2.实施代码审核制度 (代码review) 3.运行

[ 测试思维 ] 探索式软件测试

非常不错的关于探索式软件测试的学习资料 1.探索式测试简析 作者:微软 史亮 http://pan.baidu.com/s/1c2D4tAo 2.探索式测试白皮书 作者:淘宝 季哥 http://pan.baidu.com/s/1qYFNG3y

理解契约式编程

重要概念 抽象类: 当类中有一个方法为抽象方法,该类即为抽象类.继承一个抽象类时,应该实现其所有的抽象方法. <?php abstract class car{ protected $name; protected $speed; public function __construct($name, $speed) { $this->name = $name; $this->speed = $speed; } abstract function run(); public functio

15款帮助你实现响应式导航的 jQuery 插件

对于我们大多数人来说,建立一个负责任的布局中最困难的方面是规划和导航的实现.由于没有真正经得起考验的通用解决方案,您可以使用的菜单设计风格将取决于正在建设的网站类型. 无论你正在建设什么类型的网站,在这篇文章中我们将向推荐一批制作响应式导航的 jQuery 插件,为您提供方便快速的解决方案. 您可能感兴趣的相关文章 Web 开发中很实用的10个效果[源码下载] 精心挑选的优秀jQuery Ajax分页插件和教程 12个让人惊叹的的创意的 404 错误页面设计 让网站动起来!12款优秀的 jQue

12.探索式软件测试

又是James的大作.相见恨晚,可惜出版5年之后才发现这本书.书中的大部分内容都在微软内部的大型项目上成功应用过. 不论是测试还是开发,都应该仔细读读,对提高自己的程序设计大有益处. 在微软公司,通过使用指南测试法和卖点测试法,可以提前确定那些关键的软件特性,也就是这里的地标.在选择地标后,要确定他们的前后顺序,然后从一个地标执行到另一个地标来探索应用程序,直到访问了列表中的全部地标.在这个过程中,需要记录使用过了哪些地标,并创建一个地标覆盖图来标识工作的进展(可以考虑使用思维导图). 1.全局

&lt;&lt;探索式软件测试&gt;&gt;第四章 全局探索式测试法

第四章 全局探索式测试法 1.探索软件 探索式测试有以下几个目标: a.理解应用程序如何工作,他的接口看起来怎样,他实现了哪些功能 b.强迫软件展示其全部能力 c.找到缺陷 2.旅游者比喻 (1)商业区测试类型 a.指南测试法(The Guidebook Tour) 旅游手册--用户说明书 指南测试法要求测试人员通过阅读用户手册并严格遵照手册的建议执行操作. 这个测试法不仅可以验证软件确实实现了手册所描述的各种特性,同时也验证了用户手册的准确性. 这个测试法的变种: *博客测试法(Blogger

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

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

探索式软件测试--第二章 手工测试

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