增进敏捷团队中测试和开发人员间的协作

  • Ben Linders
  • 李彬

2013 年 5 月 30 日

话题:语言 & 开发文化 & 方法

敏捷团队往往是跨职能的,这意味着团队成员拥有不同的能力,例如测试和开发人员间就存在着差异。团队成员之间的协作将帮助团队取得成功。让我们看看为了帮助测试和开发人员在敏捷团队中一起工作并增进协作,Scrum 大师会怎么做?

在博客文章《当开发人员与测试人员发生冲突》中,Len Lagestee 分析了团队中二者之间的失调状态。他首先描述了当测试人员加入敏捷团队时将发生什么:

当我们开始在组织机构中引入敏捷的时候,测试团队往往将强烈感受到敏捷的影响。如果发布的产品中存在 bug,测试人员往往会成为首当其冲的责任目标和指责的焦点。有鉴于此,测试团队构建了滞重的流程和审批环节,以保护自己免于陷入已经预见到的未来的困扰中。在测试人员完全参与并与团队自由地交互之前,需要先恢复信任。

为了让敏捷团队得以运转,团队成员必须互相尊重并重视其他人的意见。Len 认为在敏捷团队形成时,Scrum 大师应该采取以下行动:

从小事入手,行动起来。如果在组织机构中,测试和开发人员之间以往的关系很糟糕,那么这种状态不会自己改变,而且在敏捷团队中这种失调状态的影响只会进一步放大。而质量必须成为团队事件。

他建议采取以下若干项行动作为“为测试和开发人员建设(或重建)关系的基础”:

  • 共同了解客户
  • 共同构建故事和验收测试
  • 完善对“完成”的定义
  • 共同创建单元测试
  • 相比工具和流程,更注重围绕着质量和“完成”的对话

ShriKant Vashishtha 在博客文章《以开发人员为主的自动化测试》中描述了为何测试和开发人员在敏捷团队中一同工作非常重要:

敏捷项目的成员正在摆脱“开发人员 vs. 测试人员”(我们 vs. 他们)的对立文化,通过合作以在 Sprint 结束时交付产品。项目成员的主要目标是 Sprint 的成功,而不是开发人员或测试人员某一方的胜利。

他曾经尝试过让测试和开发人员一同编写测试用例:

建议开发人员自行编写用户故事的第一个功能性测试,它将为构建进一步的测试奠定基础并提供全部所需资源。在开发这些测试的过程中,开发人员将发现许多本来会妨碍测试人员的问题。由于这些问题最终由开发人员修订,他们自行发现问题就更有意义了。

基于上述的基础,测试人员将进一步精心制作测试用例并创建更多的自动化测试。对团队来说,这一模式运作得相当好,而且还有助于开发人员理解测试人员在日常面对的问题。

Ole Lensmar 在奥兰多的 StarEAST 大会上的《开发和测试人员,请学习如何相处》中分享了自己的经验。他首先强调了测试与开发人员协作工作的需求:

难道我们不应该一起登台,畅谈测试和开发人员共同构建伟大产品的真实生活经历么?难道我们不应该坐在一起运行测试并调试代码,以创建最美的软件么?

他还提到了在 StartEAST 大会上听到的若干建议,它们可以用来打破测试和开发人员之间的隔阂:

  • 引入测试 - 编程结对
  • 安装并学习彼此的工具
  • 一起参加 Hackathon!
  • 将测试人员与开发人员视作完整的团队

博客文章《测试人员 vs 开发人员:如何使其成为朋友?》描绘了让测试和开发人员之间的关系更友好的一些建议:

  • 分享。与开发人员分享想法和策略,而不要等到木已成舟。
  • 友好、豁达地面对开发人员,不要让他们感觉受伤害。为他们提供分享任何事物的机会。
  • 保持正面的报告风格,并试着变得更委婉。

查看英文原文Improving Collaboration of Testers and Developers in Agile Teams

语言 & 开发文化 & 方法