代码审查是否被视为 QA 的一部分?

软件测试 术语
2022-01-10 15:57:01

我正在与一位开发人员讨论,我们正在讨论 QA 实践。我认为代码审查将是一种 QA 实践,因为您没有做任何事情,而是在检查它。他说这是开发过程的一部分,因为它直接处理代码,而不仅仅是功能或抽象概念。

我可以看到他的观点,现在它让我思考:代码审查是同行审查 - 它们应该由其他开发人员(或至少,具有丰富开发经验的人)完成。所以我可以很容易地看到它会如何被归类为开发过程的一部分。

如果我有两个团队,一个开发团队和一个 QA 团队,让 QA 团队而不是开发团队进行代码审查是否合适?或者也许除了开发团队之外?不同公司有区别吗?这只是语义问题吗?

4个回答

任何人都可以执行代码审查。根据我的经验,我发现让开发人员和测试人员执行代码审查有很大的好处——测试人员倾向于以不同于开发人员的方式看待代码(就像他们以稍微不同的视角看待功能和特性一样。

在更高的层次上,软件创建是一个协作过程——我建议不要担心谁在做什么,而更多地关注工作是如何完成的。

我在这里写了一篇关于我的测试团队的代码审查经验的论文

代码审查属于静态测试类别,它在很大程度上是 QA 活动的一部分。它是能够及早发现SDLC 中的错误的唯一可用方法。它在没有在计算机上实际执行的情况下评估代码和算法的健全性,因此称为“静态”测试。

我相信,如果 QA 在以下审查活动中与 DEV 同步,对组织来说将是非常有利可图的:

  1. 需求审查
  2. 可行性审查
  3. 对照标准审查屏幕布局
  4. 分析程序的控制和数据流
  5. 对预期作为产品一部分的功能进行存在性检查

QA(质量保证)是一个流行词,根据您的环境,它可能意味着多种事情。在某些站点中,QA 等同于软件测试人员及其职责。在使用这种 QA 的网站中,代码审查不是 QA 过程的一部分,因为它们是由开发人员针对开发人员代码执行的,不涉及软件测试组。

在其他站点中,QA 是一个独立于开发人员和软件测试人员的小组,他们监督开发过程的所有部分,以管理和确保高质量的产品。在这种情况下,代码审查是一个 QA 过程,因为 QA 小组会监控并确保在适当的时间执行代码审查。他们自己不进行代码审查,但这是一个 QA 任务,由开发人员执行以满足 SDLC 的 QA 标准。

我与许多开发人员、测试人员和经理进行过这种对话。当您说代码审查实际上是同行审查时,您是对的。我个人认为这些主要是开发人员活动(这与我经常在团队其他成员之前与其他测试人员分享我的测试策略和案例的原因相同)。然而,根据我自己的经验,同行评审往往是进入测试环境之前的入学标准的一部分。

话虽如此,在代码审查期间有一个测试员/QA 分析师有相当大的好处。我们不会经常查看代码本身,有时会问为什么一段代码是用一种方式编写的,而不是另一种(这对我们来说也是一次很好的学习经历)。这也是让某人指出一些开发人员可能没有意识到或没有想到的业务逻辑的好时机。如果在这个阶段发现更多的错误,对每个人来说都会更容易。

但除此之外,我赞同 Alan 关于软件开发是一项协作努力的回应。不要仅限于开发人员或 QA。如果有 BA/PM/UAT/其他任何可以理解部分代码并且可能有一些好的输入的人,请不要排除它们,但不要让它太大以至于不能相对快速地完成。