代码审查落后于交付/测试周期


14

在我们的敏捷过程中,我们有2周的冲刺。每天(每天一次)交付任务,测试团队会在第二天甚至同一天立即完成测试。

我们也有开发人员代码审查,需要一些时间(1-2小时),因此每周安排3次:星期一至星期三至星期五。开发人员聚在一起,建议如何改进/重构代码。

我们的问题是,在代码审查后提出“行动项目”时,大多数任务已经过测试。测试人员不想重新测试已经通过测试的内容。他们不在乎内部开发人员的变更。

我们误解了敏捷过程吗?代码审查是否与每日发布/测试周期不兼容?我们无法每天进行代码审查,因为它们占用了每个人的时间。


我发现了一些可能有用的建议- 敏捷团队中的代码审查-第二部分(通过非常快速的Google搜索找到-您可能会找到更多信息)。
2015年

1
您的测试人员正在处理“已发布”的任务吗?您的团队对“已发布”的定义是否包括代码审查和操作项目解析?还是代码审核发生在团队的完成定义之外?
肯特A.15年

1
您的测试团队没有自动回归套件吗?
Telastyn

5
您如何进行“代码审查”?这是一个漫长的正式过程,审查者必须通过整个质量指标清单来进行工作(努力:多个工时)吗?还是仅仅是其他团队成员浏览代码并询问是否出现问题(工作量:编码员和审阅者10到30分钟)?为什么要进行代码审查?确保代码质量?抓虫子?在多人之间传播系统知识?您的代码审查机制是否有助于实现这些目标,还是仅仅是一个没人愿意做的官僚主义?
阿蒙2015年

我喜欢所有答案,但让我补充一点,我认为很重要。您是在问您是否误解了敏捷,但您没有说哪种方法。您在关注Scrum吗?最重要:您是否有“完成”的定义?我问是因为我觉得很..很奇怪,您在完成实际工作之前正在考虑“交付”的东西。听起来代码审查只是您“额外”要做的事情。
2015年

Answers:


8

测试人员不想重新测试,就像在说“编码人员不想重构”。它是工作的一部分。可以像下面这样重新定义该过程:创建任务。生成代码。代码经过测试。代码已审查。在代码中发现缺陷。创建新任务以解决这些缺陷(例如,重构代码)。这些新任务需要新测试。


2
+1在每日发布的敏捷方法中,请勿重新打开任务。创建一个新任务来解决发现的问题,并根据团队的优先级安排任务。新任务=新的质量检查操作(这可能意味着再次运行相同的测试)。如果QA不喜欢它,那么还有很多其他职业。
肯特

显然可以,但是效率低下。
usr

7

如果您打算在某个时候审查代码,那么尽早进行审查就不再昂贵。看来您的测试过程很昂贵,所以您不想重复测试。因此,在测试之前复查代码会更便宜。测试后复查代码并不能使工作更快。它会使速度变慢,并会诱使您交付编写质量差但已成功测试的代码。随着时间的流逝,所有这些未经审查的代码都会使工作变得越来越慢。然后,更有效率的竞争对手以更低的成本提供了更好的产品,这一切都结束了。

另外,自动化测试。手动测试大约是1970年。


5

如果您发现很难在当前进行质量检查之前的时间进行代码审查,则应考虑使代码审查更加轻巧,就像@Dukeling发布的《敏捷团队中的代码审查》第二部分所述。

我发现,即使是最简单的事情(可能称为代码审查)也能带来好处:在提交代码(或推入DVCS)之前,请另一位开发人员致电并带他们进行更改。这可能需要五到十分钟。此代码审查的目标是“这对其他开发人员有意义吗?” 我们的目标不是硬要设计实现或完全符合审阅者关于应如何编写的个人想法。它具有以下优点:

  • 增进了有关代码工作方式的共享知识
  • 由于解释代码的行为足以使作者重新思考事物,因此导致代码混乱或潜在错误
  • 帮助逐步发展团队习语和风格,因为它使解释事情变得更加容易
  • 团队很少抱怨

更深入的代码审查绝对可以更好地发现问题。但是您必须能够做到并采取行动以获取价值。您一直可以执行的轻量级流程比不断拖延或仅将事情添加到积压的重量级流程更有帮助。


1

解决此问题的一种方法是,一旦用户故事结束,另一对等方便会对代码进行快速检查,以使代码中不会出现任何基本/明显的错误。

但这必须在测试周期之前发生。然后,当您与所有团队一起进行较大的审核时,测试后的代码更改将减少。


1

从它的声音来看,测试人员不想重新测试,因为测试是一个痛苦/昂贵的过程。

对于试图以敏捷方式工作的团队来说,开发人员和测试人员的测试自动化都是巨大的收获。这样,您可以执行的测试越多,越便宜,越容易且可重现的次数就越多,那么您对测试进行更改的阻力就越小。

根据一些开发人员反馈进行了快速重构吗?按下执行您的回归/烟雾套件的红色大按钮,并进行一次快速手动操作,以检查是否可能出现任何视觉问题。简单!

一旦您处在这样的地方,重新测试就不会繁琐了-这将是第二天性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.