软件测试理论与经验-第1章(测试员的角色)-第2章(按测试员的方式思考)-阅读笔记

Lessons Learned in Software Testing 
美 Cem kaner、James Bach、Bret Pettichord著
本书的三位作者具有多年的测试经验,知道成功的测试都需要什么。在这本革命性的新书中,他们汇总了293条测试经验建议,阐述了如何做好测试工作,如何管理测试,以及如何澄清有关软件测试的常见误解。读者可直接将这些经验用于自己的测试工作中。这些经验中的每一条都是与软件测试有关的一个观点,后面是运用这条经验的方法、时机和原因的解释或例子。
第1章 测试员的角色
测试人员的角色到底是什么?能够定义的很清楚吗?
经验1-测试员是项目的 前灯
测试就是要找到信息,有关项目或者产品的关键信息决策都需要根据这些信息来决定。
经验2-测试员的 使命决定要做的一切
使命可能决定于行业、公司、项目或者团队的个性,测试项目也是千差万别。 我们的使命是以客户为中心, 明确需求,提高工作效率及降低风险。要经常动态调整自己的使命,不要侧重某一方面而疏忽另一方面
经验3- 测试员为很多客户 服务
测试员提供的服务时至关重要的,客户可以是项目经理、程序员、技术文档编写员、技术支持员、市场开发员、产品经理、管理层和项目相关人员、用户等;
经验4-测试员发现的信息会“ 打扰”客户
根据客户的价值定义,通知客户有关威胁产品价值的任何信息。测试员有责任报告相关问题。
经验5- 迅速找出重要的程序问题
测试员不仅要找出问题,还需要 快速 找出问题
需要对问题进行分类分级考虑:首先测试经过 变更的部分,然后测试 没有变化的部分;首先测试 核心功能,然后测试 辅助功能;首先测试 能力,然后测试 可靠性;首先测试 常见情况,然后测试 少见情况;首先测试 常见威胁,然后测试 罕见威胁;首先测试 影响大的问题,然后测试 影响小的问题;首先测试 最需要的部分,然后测试 没有要求的部分;
经验6-跟着程序员走
为程序员提供 支持,很可能是测试员使命的关键部分。及时 反馈程序情况,马上测试程序,修改代码后及时测试等, 尽快建立 最短 最快 的反馈闭环
理想的情况是, 程序员为了修改测试员找出的程序问题忙的 团团转,使程序员,而不是测试员,成为项目的瓶劲
经验7-询问一些,但不一定外露
经常提问问题,方式要 含蓄内在些,有助于 启发自己的思考,利于测试;
经验8- 测试员关注 失效,客户才能关注成功
测试员关注失效,因为这可以增加发现失效的机会,用自己全部的 创造力和技能,寻找产品中的关键问题。发现问题,使产品做的更好,更具持续性,在市场中才可能成功。
经验9-不会发现 所有问题
找出并报告重要的程序问题,但是不会发现所有的程序问题。
经验10-当心“完备的”测试
不要有完备、完成、结束等,完备的定义并不是在项目一开始就能够最终确定的,随着测试项目的 进展,随着新测试任务的突然出现,需要 重新考虑。
经验11- 通过测试 不能 保证质量
测试员既不能提高质量,也不能降低质量。质量来源于构建产品的人,测试不过是提供了项目质量保证的 信息
经验12-永远别做看门人
测试员永远不要对产品的发布具有 否决权,获得这种权利之后,同时也承担了产品质量的全部责任,其他人倒是可以轻松些。要由控制项目,条件最好的人承担发布的责任。 大多数非常有效的团队,都采用某种方式的 集体决定 是否发布产品;
经验13-当心测试中的不关我事理论
测试员的使命应该是 尽其所能,通知团队可能会对产品的价值产生消极影响的 所有问题
经验14-当心称为 过程改进小组
如果过程改进是整个团队的工作,则测试员可以成功的参与工作,并获得成功
经验15-别指望任何人会 理解测试,或理解测试员什么条件下才能搞好测试
测试员要受管理层和程序员决策的很大 影响,如果他们的计划很不明确,或设计出的产品很难测试,测试工作就会很难进行。他们不理解自己的行动会对测试过程产生的影响。
第2章-按测试员的方式思考
测试员并不抱怨,他们提供的是 证据,测试员并不喜欢征服,他们喜欢 打破产品没有问题的幻觉。按测试员的方式思考意味着实践认识论。测试员的大脑是仔细调谐的推理机器,用精神力量做好事。
经验16-测试运用的是 认识论
认识论研究如何认识所了解的东西,怎么知道软件足够好?如果软件并不是足够好,怎么才能知道?怎么知道已经完成了足够的测试?
经验17-研究 认识论有助于更好测试
研究认识论可帮助测试员设计有效的测试 策略,更好的意识到自己工作中的 错误,理解自己的测试能够证明什么,不能证明什么,并编写出无懈可击的测试报告。
经验18- 认知心理学是测试的基础
研究认知心理学有助于影响测试员工作成绩的因素,以及影响人们解释自己工作方式的因素。
经验19-测试在测试员的头脑中
优秀测试和平庸测试之间的差别在于测试员如何 思考:测试设计的选择,解释观察的现象,分析描述现象的能力
经验20-测试需要 推断,并不只是做输出与预期结果的比较
测试不是简单的比较活动,聪明人 必须设计测试,并确定预期输出。大多数的测试设计都是基于推断,掌握 探索式推断的艺术。意味着要以一种不能实现预测的方式,通过一种思想引出另一种思想,然后再引出下一种思想。
经验21-优秀测试员会进行技术性、创造性、批判性和实用性的 思考
技术性思考,包括相关技术事实和实用工具并预测系统行为的能力;创造性思考,产生思想并看到 可能性的能力;批判性思考,评估思想并进行 推断的能力;实用性思考,想法付诸 实施的能力;
经验22-黑盒测试并不是基于 无知的测试
黑盒测试强调的是有关软件的用户和环境知识, 测试员对产品了解的 越多,了解产品的方式越多,越能够更好的测试
经验23-测试员不只是 游客
测试员 可以浏览产品,看看产品是由什么组成,怎么工作,这样做很有价值
经验24-所有测试都试图回答某些问题
所有测试,都要回答有关现实的产品和应该得到的产品之间的关系的某个问题。主动去发现问题, 一切可能导致现实产品与应该产品之间差距的问题都应该 注意,并主动推动自己评估测试策略
经验25-所有测试都基于 模型
测试都主要基于模型进行,模型要足够 清晰完整。学会一种对产品建模的新方法,就像是学会了观察产品的一种新方法。测试员对建模艺术越 精通,越能够更好地测试。
经验26- 直觉是不错的开始,但又是糟糕的结束
直觉可以用作指南,但不能用作合理性证明。
经验27- 为了测试,必须 探索
即使充分研究了产品,对产品有了很深的了解,仍然要探索问题。因为所有测试都是 采样,而且样本必须也不可能完备, 探索式思考要在整个测试项目过程中,在寻求
最大化测试价值时起作用。所谓的探索,是指有目的的漫游:带着一般使命在某个空间中漫游,但没有预先确定的路线。
经验28- 探索要求 大量 思索
探索就是侦察,是没有边界的搜索,可以把探索看做是在太空中遨游,需要前向、后向和侧向思索。
经验29- 使用 诱导推断 逻辑发现推测
诱导推断又叫做假设归纳。最佳解释的推理。
经验30- 使用 猜想 反驳 逻辑评估产品
虽然我们不能证明猜想是真,缺可以证明猜想是假的。以下三种重要的方式应用于测试:测试的目的是显示产品失效,要比显示正常更有力;有关软件已经形成的信念应该受到质疑;警惕声称以超过测试员所运行的具体测试的方法,检验或确认了产品的测试。
经验31- 需求是需要人物所关心的质量或条件
至于测试,产品应该具备或者满足的任何质量或条件都是需求。
经验32- 通过 会议、推导和参考 发现需求
测试员把项目文档看作是唯一需求来源会影响其测试过程,需求信息到达测试员主要有三种途径:会议,推导,参照;很多项目中,优秀的测试员使用的大多数需求要么来自推导,要么来自隐士规格说明的参照。搜寻测试所需的信息,是测试员的工作。
经验33- 既要使用 显式 规格说明,也要使用 隐式 规格说明
并不是包含测试所依赖重要信息的所有参照都是显式地提供给测试员的.显式规格说明是一个有用的信息来源,经过客户的权威确认;隐式规格说明是没有经过客户权威确认的一个有用的需求信息源。
隐式规格说明包括竞争对手的产品、相关产品、同一产品的老版本、项目团队之间的电子邮件、顾客意见、杂志文章、相关主题的教科书、图形用户界面风格指南、操作系统兼容性需求、测试员自己的丰富经验;客户相信测试员能够使用所需的各种参考资料快速找出重要的问题。
经验34- “它没有问题”真正含义是它看起来在一定程度上满足 部分 需求
经验35-最后,测试员所能得到的只是对产品的 印象
任何时候报告产品质量状态时,都应该用有关测试方法和测试过程的 已知局限 的信息,对报告进行限定。
经验36-不要将试验与测试 混淆起来
测试是任何至少包含以下四种活动的活动:配置,运行,观察,评估;试验可能有很多种形式,要关注执行这些活动的思考者,关注试验是否很好的完成了预想的策略和测试使命。
经验37- 当测试复杂产品时, 陷入与退出
当测试复杂和使人畏惧的功能集合时,可间歇进行,经过几个轮次的陷入与退出,就会开始明白产品的模式和轮廓,很快就会在头脑中更系统、更具体的测试和研究策略。
经验38- 运用 试探 法快速产生测试思路
可能的测试用例数量是无限的,选出面临的时间和预算约束条件下有效的 少量测试用例,一组好的试探方法有助于测试很快的生成。测试 边界,测试所有错误消息,测试与程序员的配置不同的配置,运行比较难设置的测试,避免冗余测试;试探法所能够做的,是为了测试员的思考提出 建议
经验39-测试员不能 避免偏向,但是可以 管理偏向
多样化可以抵御过强的偏向,如果测试员集体谈论测试问题,可以将一个测试员的偏向降低到最低
经验40-如果自己知道自己不聪明,就更难被愚弄
任何时候都要注意其他测试员所发现的自己本来也可以但是没有发现的问题。测试时 谨慎一点,考虑测试策略时 认真一点。
经验41- 如果遗漏一个问题,检查这种遗漏是 意外 还是策略的 必然 结果
出现问题,先检查下测试的策略是否出现了问题,是否因为忠实地执行了好的策略,只是碰巧没有发现那个特定的问题,可以保持原来的方针不变。如果是遗漏程序错误是因为测试策略关注了错的问题类型,可利用这个机会改进测试策略。
经验42- 困惑是一种测试 工具
规格说明不清楚吗?产品不清楚吗?用户文档不清楚吗?内部问题难以理解吗?测试员对产品、技术和一般测试问题了解的越多,自己的困惑就会成为更有的指南针,指出重要问题所在。
经验43- 清新的眼光会发现失效
测试员在理解了产品或功能部件之后,会在头脑中形成映射,并且头脑不再那么努力工作。对于测试员来说这可能是个问题。
经验44-测试员要 避免遵循过程,除非过程先跟随自己
一般来说,测试过程的编写和设计都比较差。
经验45-在创建测试过程时,避免“1287”
过于 详细没有什么好处,当编写测试用例时,要避免与测试概念无关的细化。要让未来的测试员有创造性和判断力地执行。让未来的测试员引入变化以使现在所编写的测试过程新鲜,高效。
经验46- 测试过程的一个重要成果,是更好,更 聪明的测试员
好的测试员永远都在学习,不断加深对产品的了解,提高对产品的反应能力和敏感性。
经验47- 除非 重新 发明测试,否则不能精通测试
不要把自己限制为只是接受智慧的服务者,而应该使自己成为智慧的 创造者。永远使头脑运转,观察其它测试员,研究和不断评估如何筛选自己的思想,如果想善于做到这一点,就必须 实践

猜你喜欢

转载自blog.csdn.net/zimingzim/article/details/80681717