软件测试实战(微软技术专家经验总结)--第九、十章(团队工作、个人管理)读书笔记

第九章 团队管理
本章目标是一线的测试人员,分析测试人员如何面对项目管理的一些挑战。
9.1工作风格
9.1.1测试人员通过服务团队来体现自己的价值
首先,测试人员应该设定正确的工作目标。为了设定工作目标,需要思考一系列问题(公司战略,项目使命,项目团队的目标,我的具体目标,做哪些工作实现自己目标)。
在确定具体工作项时,测试人员应该放宽视野,不必计较工作划分的边界。
其次,设定目标之后,测试人员需要认真完成自己的工作。许多必不可少的工作是比较枯燥的,应对办法是合理理解测试任务,负责的态度去完成任务;使用创新思维来重新思考任务,如编写脚本自动完成等。
9.1.2 测试人员应该正直
对测试人员来说, 正直是客观公正地处理工作并始终诚实地报告质量问题。
专业的测试人员应客观地传递信息,应该报告的是产品需要解决的问题,而不是对任何人的批评。《人件》中指出软件项目的主要问题是社会学问题。
9.1.3 测试人员的影响力来自于出色的工作
一个总是让缺陷得到修复的测试人员,无论他的头衔是什么,总是拥有实质性的影响力,这种影响力的根源来自于测试人员的优秀工作,以及在工作中表现出的技术能力。
9.1.4 信任程序员的努力,并用技术调查检验其工作
9.2测试管理
9.2.1个人测试计划应该是项目测试计划的延伸
将一个概括描述的任务转化为一组明确的工作项。对于每个工作项,测试人员都可以思考以下几点: 测试对象,测试策略,测试资源,测试时限,测试成果
经过细化,测试人员可以将一个里程碑级别的任务分解为一组工作项。以里程碑为测试迭代周期,以周为测试迭代周期,以构建为测试迭代周期。
9.2.2制订个人测试计划时应该综合考虑各种项目元素
可以参考启发式测试计划的语境模型HTPCM,来决定测试任务和测试过程。此外,还可以利用启发式测试策略模型和项目风险列表来多角度的思考项目风险,安排相应地测试活动。
许多时候,测试人员直接与程序员协作。程序员发布构建给测试人员,测试人员测试构建并报告缺陷。
除了与程序员协作,测试人员之间也有许多合作机会。以下是一些启发式问题:集成测试的时限和目标;了解测试合作者和他们的职责;理清测试依赖,并为可能出现的问题制定应对方案;考虑测试人员之间的协作方式;定期报告测试进度。
9.2.3测试需要动态管理
一些常见的原因: 在测试之初,测试人员很难预测产品会具有哪类缺陷,他所拟定的测试策略可能大获成功,也可能无法奏效;测试工作处于整个研发流程的下游,会依赖一些测试人员不可控制的上游因素;一些测试工作对测试环境和资源有较高的要求,会依赖一些项目团队不可控制的因素;开发过程中会有一些突发事件,使得测试人员不得不中断当前工作去紧急处理。
测试过程发生变动是正常情况,是复杂的技术问题和紧迫的开发过程在测试领域的自然结果,测试人员应该主动的面对变化,用动态管理来积极调整测试计划。
第一,在考虑特定测试对象时,测试人员应该为研究与调查预留足够的时间。
第二,测试人员需要动态地调整工作和测试想法的优先级。
第三,测试人员可以借助测试迭代,定期评估项目情况,并调整测试工作项。
第四,测试人员应该关注项目风险,并及时向程序员、产品经理和测试经理报告。
第五,测试人员需要经常自问:“我现在可以测试什么,能够如何测试”。
在某种程度上,动态管理来应对项目级别的风险。也就是说,测试人员需要将项目风险作为驱动测试计划发展的重要因素,持续地监控风险,并制定相应的行动方案。
9.3软件估算
实施有效计划的一个重要前提是准确地估算工作项所需的时间或成本。
9.3.1测试人员应该估算自己的任务
有效估算的第一步是正确理解基本概念
估算是对任务所需的时间和成本的预测;目标是期望完成的任务;计划是实现目标的方案;承诺是许诺在特定日期完成之前完成目标。
为了避免误解,测试人员需要理解关系人的真实意图, 并就所讨论的内容达成共识,以下是交流的要点:
估算、计划和承诺的核心是目标;测试人员需要向关系人询问,他究竟需要什么信息,以及为什么需要这些信息;测试人员应该与关系人协商,确定一个提交正式答案的时间。
总之,估算是测试管理和项目协作的重要活动,是计划和承诺的基础。负责人的测试人员会谨慎的评估工作项的时间,并用估算值来分析工作计划的可行性。
9.3.2用计数和计算作为估算手段
9.3.3历史数据是估算的重要参考
根据历史数据,测试人员可以较方便地估算出一项任务所需的时间。
9.3.4同时估算最差情况和最好情况
当思考最坏情况时,测试人员会更发散地思考;估算只是一种预测,其结果不可能做到百分百准确;即便测试人员需要提供单点估算,他也可以先估算最好情况和最差情况。
9.4度量
9.4.1理解度量方法的基本元素
有效运用一种度量方法的前提是透彻地理解它。核心元素如下:意图;属性;算法;属性与算法的联系;可能的副作用;
9.4.2明确度量的目标
度量的目的是为项目决策提供信息,是为了更合理的行动。测试人员需要了解度量的用途,知道他所服务的用途。
9.4.3掌握属性和算法的关系
因为度量结果总是有偏差的、片面的,所以仅凭数字就做出项目决策是危险的。为了获得全面认识,测试人员会使用多个度量方法从不同角度评估属性。
9.4.4理解度量方法的优点和缺点
严格来说,任何度量方法都是对属性的简化,其结果都丢失了属性的一些重要信息。
9.4.5密切关注度量的副作用
度量的副作用往往来自于管理层制度的开发流程。两点建议,供参考:
第一,测试人员应该坚持原则,以正直的态度来服务团队。
第二,测试人员应该密切关注度量的副作用。
9.4.6注重实效的计算
度量的计算应该力求简单、自动和准确。
首先,测试人员应该有些考虑简单的度量方法,如代码行数统计、缺陷个数统计等。
其次,测试人员应该尽量自动地计算度量结果。
最后,测试人员应该在测试活动结束后立即收集度量所需要的输入数据。
9.5测试小组
9.5.1价值观
正直和互助是团队工作的基础。
测试人员可以在如下领域中做出贡献:测试小组周会;测试小组知识库;定期的测试报告;
9.5.2团队建设
以下活动对团队建设有潜在的帮助:集成测试;结对测试、组队测试和头脑风暴会议;缺陷扫除;
9.6小结
测试人员通过服务团队来体现自己的价值,这要求他设定正确的目标,高质量地完成工作,并乐于助人。
为了对自己负责,测试人员应该建立正确的价值观,其中,正直和互助是核心价值。
测试人员的影响力来自于出色的工作成果和工作中所表现出的能力。
团队成员都在尽力帮助项目,测试人员应该支持他们,并用技术调查检验其工作。
个人测试计划是项目测试计划的延伸,需要考虑各种项目元素,并聚焦风险。
测试活动需要动态管理,通过测试迭代、动态优先级、有效估算、及时报告等实践来适应不断变化的项目语境。
测试人员需要经常自问:”我现在可以测试什么?能够如何测试?“
测试人员应该估算自己的任务,以此为依据拟定计划,然后做出承诺。
计数和计算是估算的基本手段,项目数据是它们的处理对象,因此,准确估算的第一步是妥善地收集项目数据。
同时估算最差情况和最好情况是常有的估算技巧。而定期比较估算值和实际值,分析不准确估算的原因,也有助于提高估算能力。
掌握度量方法,需要了解它的意图、属性、算法、联系、副作用。
所有度量方法都具有局限性,要了解它们的不足,并避免它们的负面影响。
凝聚团队需要小组成员通力协作,成功完成一个单人无法承担的任务。
重视一件事应该体现为花时间和精力把它做好。
第十章 个人管理
10.1时间管理
时间管理本质上是任务管理。对于测试人员来说,时间管理是测试管理的一部分,其目的是在项目期限内完成一组动态变化的测试任务。
10.1.1 利用任务清单记录所有工作项
第一步是维护一份任务清单,用它记录并追踪本周的工作项。
高效工作的第一步是保持专注。
工作清单样例:第一部分是本周的工作项列表;第二部分是本周日程表;第三部分是今日工作安排;
10.1.2 坚持周计划和每日回顾
测试人员使用周迭代作为个人测试计划的基本单元,以此来实现测试活动的动态管理。
为了追踪周计划的实施情况,检查当日工作列表,并制定隔天的工作列表,主要活动如下:
为新出现的任务安排时间;将当天未完成的工作项移到第二天;为第二天安排具体的活动。
10.1.3 专注是高效工作的前提
专注的工作可能是最重要的内部动力
许多时间管理方法建议工作者分配一段时间,在其中排除干扰,专心致志地完成一件任务。建议用一个 时间盒测试一个主题。
另一个提高工作效率的小技巧是充分利用多显示器。
除了个人的努力外,测试小组也可以有意识地创造”安静时间“。
10.1.4 恰到好处的文档化和自动化
关于节省时间,有两点经验:
第一,犯错会浪费时间,认真把事情做对能节省时间。
第二,参考成功的解决方案有助于把事情作对,从而节省时间。
以下是一些常见的文档编写时机:
一边测试,一边记录;在发现错误时,记录正确的做法;当解除疑惑时,记录答案;在集体测试活动之前,编写测试指南。
以下是一些文档编写小技巧:
用操作文档来呈现如何完成一个复杂的任务;用测试想法列表或检查列表来记录测试策略;使用代码片段、屏幕截图、视频录像、超级链接等元素简化文档编写。
测试人员没有时间把所有任务都自动化,而且也不是所有的事情都适合做自动化。
10.2持续学习
10.2.1在工作中学习
确定项目团队或所在领域最需要的技能,然后努力掌握它们。对于此类知识,通过实际工作来掌握是一种比较好的学习方法。这样做可以加速获取知识与应用知识的循环,并让学习成果立即帮助测试过程。成功的应用能够增强测试人员的信心,鼓舞他更深入地研究。
简单介绍接手一个功能时,会做哪些初步的学习:
首先,会实施积极阅读,评审该功能的移交文档;
其次,除了团队内部文档,还会参开外部资料;
最后,通过漫游测试和快速测试来实际操作软件,建立或完善该功能的一批测试模型。
随着测试的发展,会进一步的研究产品和项目元素,并尝试更多的测试方法。在测试过程中,测试人员不但能学到许多与产品相关的知识,还可以循序渐进地学习行业知识、开发技术、测试方法、测试模型等内容。只要他保持学习的积极性,勇于进入新领域并尝试新技术,测试工作就能帮助他持续成长。
10.2.2持续阅读
除了在工作中学习,测试人员还需要超出公司业务和软件测试,拓展自己的职业发展。
10.3 且行且思
经历和经验是两个紧密相关又相互区别的概念:经历是一段工作的过程,而经验是从该过程中学习到的理论和方法。从个人努力的角度,经历只与工作时间和工作内容有关,它会随着工作年限而自然增长,但是 经验则需要主动地积累和反思
且行且思,一方面,它暗示软件人员的职业生涯是漫漫长路,需要 坚持不懈地跋涉;另一方面,它指出持续的努力应该伴随 持续的思考,执行与反思缺一不可。专业人员需要建立对自己工作的反馈回路,通过定期审视其工作,设别出成功的实践和失败的实践,并制定相应的改进方案。
和许多开发者一样,同时使用 两种记录载体,一个是 私人工作日志,用于保存个人想法;一个是 团队知识库,用于分享对团队有价值的知识。
本质上, 且行且思、记录所学和分享所学的核心是持续的反思和积累。这要求测试人员建立反馈回路,通过各种途径来评估自己的行为和方法,并记录下经验教训和改进方案。其功效并非一朝一夕就可显现,但是 集腋成裘的积累会获得丰硕的成果。
10.4 成为专家
首先,测试人员应该成为一名通才。
其次,一名测试新人需要避免的思维误区是用某个职务头衔限制自身能力的发展。
最后,测试人员需要选定一个区域,成为该领域的专家。
专家的一些共性的特征如下:
专家透彻地了解他的领域;专家会持续拓展其专业领域;专家会主动承担领导责任;专家会主动将自己的工作和知识分享给团队。
10.5小结
时间管理的本质是任务管理,即为一组任务制定合理的计划,然后有效地执行,并动态调整计划。
应该把所有任务信息集中在一个地方,以便随时参考和修改。
周计划和每日回顾有助于实施动态计划,以适应复杂且变化的项目情况。
高效工作的第一步是保持专注。
测试人员应该主动创造专注的工作环境,单任务的时间盒是常见方法。
错误会浪费大量的时间,认真把事情作对能节省时间。
恰到好处的文档化和自动化能够用较小的代价呈现切实可行的解决方案,有助于避免错误,节省时间。
学习的本质是知行合一,是吸纳、实践、反思的循环过程。
通过工作来学习项目或领域最需要的技能,有事半功倍之效。
测试人员需要超出公司业务和软件测试,来扩大自己的知识储备。对此,坚持阅读是一个基本办法。
为了从实践中获得更多,测试人员要且行且思、记录所学、分享所学。
测试人员应该同时拓展其技术能力的广度和深度,成为通才和专家。
坚持不懈是职业发展的基础性策略。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值