如何最好地将 "regression periods" 纳入 SCRUM 敏捷方法?

How to best incorporate "regression periods" withint SCRUM agile approach?

我们在项目中使用了 Scrum 框架。然而,在这种情况下,我们无法在没有进行大规模回归测试的情况下发布产品。我知道认为将其纳入我们的 Sprint 的最佳方式是什么。目前我能想到两个选项:

  1. 5 次冲刺后进行回归(某种代码冻结)
  2. 将冲刺用于回归和错误修复。
  3. ...也许更好?

当你想练习 Scrum 时,你应该不惜一切代价避免长时间的回归测试。在每个 sprint 期间或结束时不完全测试您的软件违反了 Scrum 最重要​​的规则之一,即您在每个 sprint 结束时交付的增量必须是潜在可发布的。 It must be "done"

理想方案

您可能需要在测试自动化和部署自动化方面投入大量资金才能达到这一点,但这是将回归测试合并到框架中的最佳方式。尽量减少测试工作量。常部署,高频率测试。

如果您还没有做到这一点,请尝试投入大量冲刺能力以减少回归测试所需的时间。您的技术债务很高(在测试中),需要摆脱这种情况。

您还可以使用自动检测编码问题的工具,并培训您的开发人员以提高他们在领域和技术方面的知识。

深入研究以下技术:

  • 结对编程
  • 验收测试驱动开发
  • 持续集成
  • 持续交付

持续改进您的产品、流程和人员的质量。

备选(非最佳)解决方案

这些解决办法可以暂时帮到你,但并不是解决你问题的万灵药。

强化冲刺(不寒而栗) 同时,在短期内,有些做法可能对您有用 运行。专门的冲刺就是通常所说的 "hardening" sprint。许多团队使用这个

缓冲区 或者,让一个单独的团队进行持续的回归测试,并确保将错误放在产品待办列表中,就像其他所有工作一样。开发团队可以在他们的冲刺计划中保留一个缓冲区,以解决之前冲刺中出现的问题。这不是最优的,因为之前被认为 "done" 的工作毕竟有错误。确保开发团队已经完成了大部分测试,并且只有在冲刺期间不可能完成的回归工作才由其他团队完成。 开发团队对产品质量负主要责任。

无论您的团队决定做什么,请确保在每个冲刺阶段检查并调整您的流程和工具

花时间找出这些错误是如何进入产品的,并尝试找到防止这种情况发生的方法。您是否需要在冲刺期间更接近您的最终用户以便您可以更早地捕获这些项目?您是否需要做更多的自动化以在每晚签到后找到这些项目?您是否可以在您的开发环境中启用自动检查来检测持续集成构建中的这些(技术)问题?在接下来的每个 sprint 中,花一些时间来确保填补流程和工具中的漏洞之一,以减少这些事情发生的可能性。

没有人会阻止您带来 'reinforcements' - 来自其他 teams/departments 或外部员工的几个测试人员...(如果产品负责人和 Scrum Master 都比管理层达成共识通常一起玩) 如果您想将冲刺用于测试和调试,那么您需要在您的产品待办列表中完成该任务(与您的产品负责人等聊天)...... 我不知道你在开发什么,但通常测试和调试是常规冲刺的一部分 activity:如果没有完成足够的测试,我猜是你的团队在确定优先级时过于乐观产品积压,您的团队有来自客户的额外要求,并且在将新客户故事添加到 PB 时没有正确分析对其他组件的影响。 无论如何,当出现问题时,最好的办法是停止并重新考虑您的方向 :)