敏捷测试关键成功因素

参考《敏捷软件测试》第21章 关键成功要素
为了帮助测试人员在敏捷团队中成功并帮助敏捷团队成功地发布高质量产品,现总结出具有敏捷思想的测试人员如何应用敏捷实践和提高工作质量。

1、团队整体参与
  当整个开发团队负责测试和质量问题,会发现学到不同的技能集合和经验等级来处理测试可能发生的问题。在团队中要注重1+1>2。任何人都参与测试任务,团队才会设计出非常完美的可测试case。将测试人员真正成为开发团队的一部分意味着测试人员需要掌握更多的新技能来和开发和客户团队紧密协作。
管理一个敏捷团队,记住敏捷开发和测试的目的是产品质量,不是速度。用户的满意才是对产品和团队的肯定。团队需要产品人员帮助客户理清需求,测试人员进行质量验证,确保测试人员能够把技能和长处应用到项目中,使测试不局限一种角色。
  作为一个测人人员,应该站在用户的角度思考问题,积极和团队其他成员交流,谨慎地提供反馈并帮助客户提供示例,让自己的问题成为团队的问题,让团队的问题成为自己的问题,一起解决。

2、采用敏捷测试思维
  在敏捷团队中,开发人员参与测试,测试人员可以做任何事情以帮助团队生产最优秀的产品。曾经和某公司leader聊天过程中,他指出测试人员不应是对产品的一种简单测试,而是不断的探索新的方法或工具,使产品的测试工作更有效率的完成,也使开发在自我验证的时候更便捷。敏捷测试态度是前瞻性的、创造性的、欢迎新思想、乐于承担任何任务。敏捷测试人员不断磨练自己的技能,随时准备协作,相信直觉,帮助团队和业务成功。在敏捷团队中在注重团队的目标的同时也应该注重团队的每一个成员,使每一个人都有提升,这样才能更好的服务团队。
  使用敏捷准测和价值观。不断尝试最简单的方法满足测试需求。需求帮助和实验新想法。关注产生价值,多沟通,灵活应对变化,享受工作。
  不断探索新方法改进工作。成功的敏捷测试人员会持续地磨练技能,读好书、博客和文章以获得新想法和技能。实验新的实践、工具和技术。鼓励团队尝试新方法。端粒迭代非常适合。

3、自动化回归测试
  测试自动化是团队的工作 ,在开始时很艰苦,需要克服很大的痛苦。如果管理开发或者测试团队,应确保在时间、培训和激励上提供足够的支持。
  自动化回归测试是团队的工作。整个团队应该选择适合自己测试的工具。提前考虑测试将帮助开发人员为了便于测试自动化来设计代码。可使用敏捷测试象限和测试自动化金字塔来帮助自动化各种类型的测试。从简单的入手,会发现一些基本的自动化冒烟测试或者自动化单元测试会发生很大作用。

4、提供并获取反馈
  反馈时敏捷的核心价值,敏捷的短期迭代可以提供持续的反馈以帮助团队正常运转。测试人员通过自动化测试结果、探索性测试的发现和系统实际用户的观察结果的形式帮助提供反馈。敏捷开发的价值不是更快,而是快速的产生足够的价值以帮助业务增长和成功。测试人员在提供反馈达到目标过程中扮演着重要的角色。测试人员应该询问开发人员是否得到了足够的信息以理解需求并且是否能够指导编码。询问客户是否理解质量标准。花时间参与迭代集合会议和回顾会议以讨论这些问题并提出改进方案。

5、构建核心实践的基础
  a、持续集成
    每一个团队都需要代码管理和持续集成。如果不知道自己在测试什么,就无法有效的测试。所有团队成员需要至少每天一次导入自己的工作。每一集成必须通过自动化构建验证。其中包括提供软件态度快速反馈的测试。
实际持续集成过程应该是软件开发团队中优先级最高的事情。如果团队没有每日构建验证的版本,就应停止手上的工作,开始构建。
  b、测试环境
    没有可控的测试环境就无法有效地进行测试。需要制定部署什么版本、使用的数据库模式是什么、其他人是不是正在更新模式、其他进程是否运行在那台计算机上。
    硬件总是越来越便宜,开源软件会越来也多。团队必须投资以有效地执行自动化和手动探索性测试。遇到问题,提出来团队一起解决。
  c、管理技术债务
    即使优秀的软件团队在感觉时间压力之后,也会忽视重构或者快速解决问题修补缺陷。随着代码越来越混乱和难以维护,会出现更多的缺陷。团队必须不断地评估技术债务的数量,并努力减少和避免技术债务。业务需要团队保持持续的生产力。这就要求必须保证足够的时间来进行良好的、测试规范的代码设计和优秀实践。
    自动化回归测试的良好覆盖率是最小化技术债务的关键。如果缺少,那就在每个迭代中拿出时间来构建自动化测试,规划一个“重构迭代”以升级或添加必要的工具。在每个迭代中花时间通过 测试指导代码,重构必要的代码,添加丢失的自动化测试。
  d、增量工作
    敏捷团队能够生产高质量代码的一个原因是他们小规模的工作。故事代表了几天的工作量,每个故事被分解成小增量,按步构建。测试可以针对一小块,并且随着功能聚集再增量测试。
  e、编码与测试
    测试人员必须贯穿整个迭代,整个开发过程,否则就是失败。
    测试人员基于需求提供的示例编写测试,帮助开发人员理解故事并开始编程。测试和示例提供了一种通用语言使所有人都参与到软件理解中。开发人员向测试人员展示编写能力,测试人员向开发人员展示发现的异常行为。测试人员随着编码进行编写更多的测试,开发人员通过测试,使其了解是否生产了正确的价值。每一次迭代包含了若干持续、快速、增量的测试。
    当编码一直由测试指导,编码的同时进行测试,更有可能达到客户预期的行为,提供客户所需的价值。测试是团队的职责。
  f、实践之间的协作
    单个敏捷开发实践能够发挥作用,但是多个敏捷实践的组合比各个比分相加要更大。测试驱动设计、共有代码所有权和持续集成一起促进快速反馈、持续改进代码设计和快速产生业务价值。
    敏捷实践是互补的。应花时间理解各个实践的目的,利用全部优势作出对团队有用的决定。

6、与客户合作
  测试人员对敏捷团队的最大贡献之一是帮助客户理清需求并设定优先级,通过预期行为和用户场景的具体示例描绘需求,并把这些示例转换为可执行的测试。测试人员使用业务的领域语言和开发团队的技术语言,担任优秀的辅助者和翻译。
  多鼓励交流,当需求模糊,客户、开发、测试一起解决问题。

7、保持大局观
  团队的每一个人很容易只关注手边的一个任务或者故事,这是一次只做一块功能的缺点。帮助团队评估当前的故事如何负责业务的大局。不断问自己如何才能更好的产生真正的价值。
  大局观对团队贡献巨大。测试驱动开发,使用敏捷测试象限作为纲领来帮助规划测试覆盖所有范围。使用测试金字塔思想确保测试自动化的良好投资回报率。要勤于重新构建一个生产环境类似的场景。

总结
  测试和质量时整体团队的职责,但是测试人员拥有独特的视角和技能。最为一名测试人员,对发布客户满意产品的追求会帮助自己克服遇到的挫折。成为持续改进的代理人。让敏捷准则和价值指引自己与客户和开发团队一同工作,在每个迭代中生产价值。

猜你喜欢

转载自www.cnblogs.com/wuyazi/p/9237754.html
今日推荐