您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 《赢在测试2――中国软件测试专家访谈录》学习笔记汇总汇总
《赢在测试2——中国软件测试专家访谈录》学习笔记汇总这是一本传承软件测试经验和职业、人生经验的书。第一章勤奋是一条通往成功的路——阿尔卡特-朗讯测试架构师郑文强不懂怎么办?我能做的只能是比其他同事更加勤奋努力、主动加班已获取更多的学习时间。刚毕业学生的优势:有冲劲、总想学习、没有家累,这些能够弥补工作经验的不足。时间都是挤出来的。机会来自能力,而能力来自与日常的学习和积累。合格测试人员需要具备的技能——(1)深入了解你的测试对象,他的架构、功能,以及客户是如何使用他们的业务知识的;(2)深入了解软件开发流程、测试流程与项目管理方面的知识(除了了解你的测试对象之外,你需要深入了解软件产品是如何开发出来的,开发与测试之前的关系是什么,主要的测试活动与测试任务等等);(3)不管多好的测试理念、测试技术与方法,我们都需要和实际测试工作结合起来,不断提高测试效率和有效性,不断提升测试质量。对软件产品了解到什么程度,测试才能做到什么程度。产品知识=业务领域=流程学习选技术方向还是管理方向,由自己的兴趣爱好决定。一个人最珍贵的资源是什么?时间。能够看清自己的兴趣在哪里,看清自己擅长的在什么地方,真是幸事。让理论经过实践的检验,落地,形成适合自己公司和团队的做法和经验。坚持去做自己喜欢的工作,不断积累、总结和分享,相信每个人都可以成为领域内的专家。兴趣+坚持+积累+总结+分享+不断学习伟大是熬出来的(知识和技能的持续积累)。面对面沟通是非常重要的。面对面沟通对于项目转移非常重要,面对面沟通事项:(1)深入学习产品相关的功能和业务知识;(2)需求文档+开发文档+测试文档(之前的经验教训等)+熟悉软件环境的搭建和配置。毫无保留地做分享(毫无保留地将自己学到的知识和技能分享给团队中的每个人)。功能的工作原理,如何搭建测试环境,如何执行测试步骤,如何判断测试结果等。如何选择合适的回归测试测试用例?答:(1)客户最经常使用的功能;(2)对客户最重要的功能;(3)以前版本Bug最多的功能;(4)新增、修改模块对旧模块影响最大的相关模块或模块集。回归测试不应该是流于形式的,应该制定严格的回归测试过程,包括:(1)软件变更分析;(2)软件变更影响分析;(3)定义回归测试策略;(4)定义回归测试套件;(5)执行回归测试套件;(6)报告回归测试结果。常见的做回归测试的几条依据:(1)按照功能的重要性来做;(2)按照Bug来做;(3)按照新功能(即变化量)来做。这几条标准往往是同时运用的。我们需要对每个增加的功能、升级修改的功能进行详尽的需求文档化,作为后续开发测试活动的参考和基线。项目成功转移的关键点是:沟通、分享、合适的测试过程、开发与测试的紧密合作。表面上开发和测试为了Bug会有争执,其实两股力量和目标是一致的,都是想做出好产品,所以紧密合作是有可能的,也是应该的。如何成为优秀的测试工程师呢?答:优秀的测试工程师,不仅需要时间的积累,也需要测试知识、技能和测试经验等的持续积累。要想成为优秀的测试工程师,至少需要从下面几个方面不断地充实自己。第一,深入了解测试对象,即测试人员需要深入了解被测产品的架构、功能与业务知识。第二,熟悉研发流程,即知道在什么时候应该做什么事情。测试人员需要了解每个开发阶段的输出是什么,测试的主要活动与任务有哪些,只有对测试过程中的各种活动与任务了然于心,测试人员才能主动去完成任务,而不是每次被动地等着测试经理给你分配任务。另外,了解每个阶段可能存在的问题,可以提前制定应对计划。第三,除了知道测试过程中我们需要做什么之外,测试人员需要掌握如何有效地去做,因此需要测试人员深入了解各种软件测试技术与方法。第四,培养各种软技能,如沟通与合作。新人如何学习软件测试?答:第一,了解你的测试对象。你首先要知道软件产品是干什么的,其实现的主要功能是什么,其工作的基本原理和流程等。第二,多向有经验的人学习。在刚刚入门的时候,我们应该抱着向各位前辈学习的态度,通说各种形式向有经验的人员学习,例如,参加培训、个人交流等。根据测试的特点,学习主要从两个方面入手:(1)我们应该积极参加项目团队中的领域知识培训和交流,也可以直接向系统人员和开发人员询问产品是如何工作的,具体如何实现等问题,以更快地熟悉和掌握产品知识。(2)测试人员向测试团队中的前辈学习,包括他们在产品知识、测试过程、测试技术与方法等方面的经验。他们是测试新人学习的最直接的对象,看看他们是如何掌握产品知识的,如何快速有效地找到Bug的。(3)多实践,不要怕失败。不管是测试领域的知识,还是测试技能,或者是测试思想和方法,测试新人都需要勇敢地去实践,许多经验、思想和收获来自于失败的经验教训。【如果真是要丢脸的话,越早越好,越晚越被动。】(4)勤奋。【只要你设定的方向是正确的,想要达到目标,勤奋将是不可或缺的基础。天道酬勤】软件测试有前途吗?软件测试有技术含量吗?将来是做技术还是做管理?我几乎每天都会反省自己当天的工作,有了那些收获,有了什么总结,多少时间又被浪费了等。通过这样的形式,不断提升自己的自信心,提高学习的效率和有效性(能够做到每天反省和总结,不简单,值得学习)。做自己喜欢做的事情,勤奋加坚持,你会发现你可以逐步走向成功,不管是做技术还是做管理。测试人员的优势是:对软件产品的工作原理、工作环境与客户最关注什么等有充分的了解(因此,产品经历是你可以努力的一个方向)。某公司的发电机出现了故障,请了以为经验丰富的工程师进行维修,他在机器上东敲敲、西敲敲,在某个地方画了一个圈,将其中的一个线圈换掉后发电机就正常工作了。收取了1000美元的费用。公司老总觉得费用太贵,不就是换了一个线圈吗?维修工程师回答说:“换个线圈只要1美元,找到那里的线圈更换需要999美元”。很多人只是看到了表象,测试人员坐在那里点点鼠标,提交了一个缺陷。但是技术含量不是技术人员点点鼠标,而是测试人员为什么点鼠标,鼠标点在那里,要点几次,即测试人员是如何思考的、如何分析的。这才是人与人之间最大的不同,也是测试人员真正的价值所在。优秀的测试人员与平庸的测试人员之间最大区别在于前者更懂得如何思考和分析,如何做好测试用力的设计呢?答:明确参考输入(做好测试用例设计,需要首先明确它有那些参考输入。);关注功能之间的交互(做好测试用例设计,除了考虑被测对象功能之外,也需要关注被测功能与其他功能模块之前的交互。);采用合适的设计技术与方法(有了测试用例设计的输入与交互分析之后,采用合适的测试用例设计技术与方法,有助于做好测试用例的分析)。做好评审(在测试用例设计过程中,发挥团队的力量分析和评审测试点,其得到的效率和有效性会更好【思维导图】)。测试用例设计过程中面临的挑战:挑战1:被测对象的逻辑组合和输入数据的组合非常庞大,而穷尽测试是不可能的。挑战2:软件产品的不同利益相关者对产品的质量要求是不一样的,如何满足他们各自的质量要求?挑战3:测试时间与测试资源总是非常有限的,如何平衡测试时间、成本与质量之间的关系是每个测试人员都需要考虑的。挑战4:测试人员面对的需求经常是不完善的、经常变更的。如何做好测试用例的评审呢?答:合适的评审团人员;管理层的支持;做好准备;宣传评审的价值。如何成为测试牛人?答:第一步,制定目标;第二步,技能要求:要达到所制定的目标,你需要具备那些方面的技能?(1)深入了解测试对象的背景知识与业务功能;(2)深入了解公司所采用的开发模型与测试流程,即需要清楚地知道在测试生命周期中,什么阶段需要做什么事情,有那些输入与输出。(3)测试人员要深入了解各种软件测试技术与方法。(4)培养测试人员的各种软技能。第三步,立即行动。(没有行动,在好的目标也仅仅是纸上的目标)第二章保持经营意识和忧患意识——广联达质量部经理彭月踏实做好眼前的工作。世上最轻松的事情是这山看着那山高,这个公司看到那个公司好,做这份工作的时候看到那份工作好。工作没有轻松的,因为工作总是有责任的。一定要了解客户。做软件测试,一定要了解客户,知道客户是怎么用我们的软件的,比客户更专业,这是必须要做到的。软件测试人员要站在客户的立场上去思考和使用软件,这个道理大家都懂,问题的关键在于如何做到。从多种渠道得到用户的反馈,是一个办法。特殊的客户使用场景。专业知识的深度不够。测试实验室与客户实际环境的差异。程序异常推出前数据都在,不需要重新输入。软件测试工程师要注意软件各方面的质量属性,方便客户。我们在实验室里的理解和客户的实际场景之间往往存在差异。软件测试工程师想要真正站在客户立场上并不容易,需要多积累经验。回顾,梳理,总结,提高。要挨打、挨骂都在家里,别到现场丢人。大爱似无情。为了你将来站在台前不被别人羞辱,现在必须对你要求严格。日常测试中严把质量关,在客户哪儿就能从容面对。一定要把自己的命脉掌握在自己手里。当一个团队有好的氛围时,不管是安安静静,还是热好朝天地工作,工作量大一些仍然不觉其苦,甚至乐在其中。即使是一起加班,也仍然意气风发。人在什么时候最容易觉得累?觉得不公平、气不顺的时候。一定要把自己的命脉掌握在自己的手里,不受制于人。自己掌握自己的命脉,换句话说,就是要有核心竞争力。产品如此,公司如此,个人的职业发展也如此。数据丢失是个非常严重的错误。老版本程序不能支持新数据格式,这是很正常的。但是如果没有做好防护,使得客户在正常使用场景中出现数据丢失的问题,就是大问题。把个人或者团队的经验整理出来,甚至形成规范,这对于个人的提高和团队的发展都是好事情。以身作则,率先垂范。严格要求,练好内功。具备一定的成本意识的确是有必要的,能够让我们站在更高的角度来看问题。花时间做调研是值得的,磨刀不误砍柴工。做事情的时候,难就让他难在前面,让困难提前暴露出来,提前应对他,这是管理上的一个好方法。优秀的测试工程师对质量有强烈的欲望。测试工程师要站在质量和产品的高度来看问题。任何工作都是如此。只有对工作有强烈的责任心和欲望,自我驱动,才有可能做到优秀,根据指令按部就班的顶多只能混个中等。软件测试可以从两个维度去做,首先是要验证我们的软件产品是否达到了设计的预期,其次是在满足第一点的基础上,再去通过另外的方法找到更多的缺陷,看产品还能做那些优化。技术人员要具备市场意识。团队里做事情要有创新,但是不能太多的“新”聚到一起,那样风险太大。(新人,新技术,新方法,新项目)我做你看——我协助你——你做我看多实践,把知识转化为技能。其实,我们并不缺乏知识,而是缺乏知识的运用。在如何提升测试能力上,我认为还是要多实践,把学到的知识转变为技能。专家型的人才只有团队成功后,才有成功的个人。对自动化的9条建议:1.保持向程序员学习的心态;2.验证代码和逻辑代码要分开;3.初始化代码和回到初始状态(清除数据)的代码要分开;4.单个测试用例不能超过5分钟;5.自动化测试也应该有编码规范并遵循它;6.应该有做静态检查的工具。自动化测试代码的质量也很重要。7.测试用例之间不要有依赖。8.多加调试代码和注释,方便维护时定位问题。提供尽可能多的信息,方便做分析的人做决定。9.测试结果报告应该简洁易懂。做了两三年测试以后,如何提高呢?答:保持危机意识。第一,要有危机意思。我也经常问自己:失业了怎么办?我是否可以在不同的公司、不同的行业保持自己的竞争力?如果从头做起,一份什么样的薪水能够养家糊口?我如果被人代替怎么办?我的核心竞争力是什么?我们都要认清自己。第二,实现专业生存。在一个公司里要做好,也要具备在同行业的公司之间自由切换的能力。第三,保持开放的心态。如果你功能测试做的不错,那么性能测试、安全测试呢?保持开放的心态,接触和学习各种技术。一个人不要停留在舒适区,舒适区虽然舒服,但是迟早是要被淘汰的。第三章人是软件测试的中心——独立测试咨询顾问邰晓梅从职业发展的角度来说,长期在一家公司工作和服务于不同的公司各有好处。换多家公司,可以解除到不同的项目和不同团队,见多识广。长期在一家公司服务,有利于经验和人脉方面的积累,增加获得更高职位的可能性。从测试执行,到测试设计,再到团队管理,是一个逐步提升的过
本文标题:《赢在测试2――中国软件测试专家访谈录》学习笔记汇总汇总
链接地址:https://www.777doc.com/doc-4136333 .html