38

我是一名软件开发人员,今天我与我们的 QA 团队就以下问题发生了争执:

QA 团队成员应该超过开发同一产品的开发人员的数量?

我知道这不是关于如何编程的问题,但我认为这个问题与软件开发非常相关。所以我希望这个问题不会被关闭。相反,我会从在 SW 开发公司工作经验丰富的专业程序员那里得到答案,这样我就可以做出很好的统计。

4

12 回答 12

41

答案非常主观,但这是我的经验。

在 Microsoft,我们拥有强大的测试开发组织。这与传统的 QA 略有不同,因为我们早在设计阶段就聘请程序员进行测试并让他们参与流程。他们的工作是测试,尤其是自动化产品测试。根据我的经验,测试人员测试和自动化功能所花费的时间大约与开发人员编写和修复产品中的错误所花费的时间一样长。这意味着 1:1 映射。这与编写单元测试所花费的时间与编写代码差不多的经验法则非常相似。

这种组合将根据几个标准而有所不同:

  1. 开发人员正在进行多少单元测试。他们做的越多,需要做的测试就越少。
  2. 与利用现有库相比,开发人员从头开始编写了多少。如果有很多预先存在的代码在使用中,并且测试人员也需要验证该功能,那么在 1:1 映射中必须考虑到沉没的开发成本。
  3. 发展的活力如何。如果您正在编写一个 UI,其中相对较小的开发人员调整会导致可测试表面发生较大变化,您将需要更多的测试人员参与。
  4. 该功能的任务关键程度。要编写像 GMail 这样随意使用并且可以在现场容忍和修复错误的东西,需要更少的测试人员。在另一个极端,如果你正在研究医学成像设备,你需要更多的测试,因为错误很难在现场修复,而且一旦发生就会非常糟糕。
于 2009-09-16T18:54:40.313 回答
22

对于我在公司工作的大多数项目,比例是 1:1。但这可能因几个因素而异:

  • 开发输出。我见过一位开发人员,他的输出量很大,并且有 3 位 QA 负责他的功能。
  • 产品质量标准。一个关键任务、高可靠性的系统应该有比内部报告网站更高的质量保证标准,并且需要更多的质量保证人员。
  • 一些项目必须在更多的配置和场景中进行测试。开发人员可能会保持不变,但您显然需要更多的 QA 来覆盖完整的测试矩阵。
  • 测试的自动化程度。如果测试不能轻松自动化,您将需要更多的人来手动通过。
于 2009-09-16T18:50:28.793 回答
7

根据我的经验,有两种主要的 QA 人员:一种是简单地遵循书面脚本并与应用程序交互以努力寻找边缘案例,另一种是实际可以自己编写自动化测试代码,并寻求新的和打破开发团队代码的创新方法(模糊测试、Selenium、编写 API 客户端)。

如果您的 QA 团队主要由第一类人员组成,那么与您的开发人员的 1:1 比例或更好的比例可能是必须的。否则,他们将难以跟上开发团队引入的任何新功能,并且通常会抵制对产品所做的任何更改,因为这会使他们的测试工作流程进一步复杂化。

另一方面,后一种类型(即可以编码的测试工程师)对于任何高效的开发团队来说都是天赐之物。编码人员可以与他们作为同行进行交流,测试人员可以通过编写更智能、更抽象的测试工具和实用程序来找到自动化和改进自己的流程的有用方法。一位真正优秀的测试工程师可能可以支持 2-3 名开发人员的工作,特别是如果这些开发人员已经在自己编写有用的单元和集成测试,测试人员可以将其用作起点。

于 2009-09-16T18:57:41.497 回答
6

我的工作地点目前大约是 8:1 dev:qa。原因是我们非常重视自动化测试。所有工作都需要接近完整的单元测试覆盖率。我们还使用 Fitnesse 进行功能测试(所有用户故事都必须进行 Fitnesse 测试),签入触发使用 CI 服务器的完整测试运行,开发人员经常签入,我们经常发布。

这一切都在一个拥有数千个类和无数场景的巨大应用程序上。优势在于速度、敏捷性,当然还有成本。开发人员(即使是昂贵的)编写测试所花费的额外时间都少于雇用/管理更多 QA 人员或发现生产中的错误(甚至 QA 人员毕竟也是人)的人力资本。

我们只有很少的 QA 人员可以花时间用 Selenium 编写自己的自动化测试或参与新功能。他们花相对较少的时间一遍又一遍地重新散列相同的功能。

于 2009-09-16T19:10:21.800 回答
4

有很多因素可以回答这个问题。

  1. 你有自动化测试吗?
  2. 您的发布周期是如何构成的?
  3. 你的单元测试覆盖率是多少?
  4. 您的员工(QA 和开发人员)有多好?
  5. 您是在整个项目生命周期中包括 QA,还是在最后放弃它们?
  6. 您是否正在向 QA 进行增量发布?

我工作过的地方从 3:1 (QA/DEV) 到 0.5:1 (QA/DEV) 不等。它归结为充分测试产品需要多少 QA 资源,并且没有包罗万象的答案。

于 2009-09-16T18:55:43.543 回答
1

现在我工作的地方,每个 QA 人员有 3 名开发人员。这有其起伏,因为有时 QA 会发现问题,但在代码更改之外还有解决方案,例如,不要点击没有意义的地方。

有几次我工作的地方没有质量保证,这有时几乎就像是灾难的秘诀,因为客户然后成为质量保证,因为他们的问题变成了开发人员的问题。

于 2009-09-16T19:01:17.167 回答
1

QA 人员的数量不应取决于开发人员的数量。它应该取决于产品的理想质量,而不是其他任何东西。

这里的许多人说“对 QA” 一个好的开发人员的工作比“对 QA” 一个更差的开发人员的工作更容易。见鬼,为什么是真的?“保证质量”——QA就是“质量保证”——是指设计一个流程,用“QA通过”和“QA失败”来标记产品。我只知道依赖于代码本身的两个过程:静态代码检查和同行评审。虽然前者有些使用,而且有时需要 QA 人员来维护它,但所谓的代码“质量”对于没有灵魂的机器来说并不重要。同行评审是由程序员完成的,而不是 QA。我希望这能让您相信 QA 的数量并不依赖于开发人员,不是吗?

在我们公司从事的领域,没有竞争,市场非常狭窄。因此,我们从错误报告中获得了所有必要的信息,并且我们没有 QA,因此比率为零。所有测试均由开发人员完成。尽管如此,我们确实生活,因为所需的质量不需要雇用任何质量检查人员。

于 2009-09-16T19:28:32.353 回答
1

在我们的组织中,dev:QA 的比例是 5:2,为此我们需要了解更多场景,例如

  1. 谁在进行单元测试,在我们的案例中,一个人完全致力于编写单元测试计划,由 5 名成员组成的团队正在执行单元测试用例并修复错误,我们的 PL 根本不参与编码,他只做流程/审查面向事物

  2. 功能测试由兼职测试人员完成,您可以说由开发人员完成一半资源和一个周期的功能测试

因此,这取决于项目规模、书面语言和公司资源,具体取决于他们的 CMM 级别

于 2009-09-17T08:54:53.993 回答
1

有很多因素,最重要的是应用程序所需的质量水平,它是一个小型网站吗?还是主要的医疗器械?还是金融系统?为航天飞机更改的一行代码可能需要数周的测试......

在渐进式开发商店中,QA 资源需求(作为开发的比率)应该随着 QA 改进的实施而减少,例如 TDD、代码审查等。我认为专注于纯手工测试的 QA 是一种浪费,QA 应该用于改进流程并帮助开发人员感到愚蠢(通过在发布之前消除错误)。

于 2009-09-17T21:04:23.823 回答
1

这取决于正在开发的组织和网络/应用程序。所有公司根据他们的要求都有自己的开发:质量保证比率。

简而言之,它取决于项目规模和组织中可用的资源。

于 2012-04-03T04:37:58.827 回答
0

考虑花费的时间而不是人数。对于经过良好测试和“批准”的应用程序,每个开发小时都可能需要一个小时的 QA 工作。我专门指的是技术 QA 角色,而不是功能测试。QA 团队和开发团队需要能够紧密合作,因此 QA 团队可以在开发的同时编写测试用例。这意味着所有内容都需要写入实现合同(函数名称、输入参数等)。

于 2009-09-16T18:54:13.637 回答
-1

好吧,这最终取决于员工的素质。如果一个程序员的工作量与两个 QA 的工作量一样多,那么这个比例就是 1:2,反之亦然。这里的员工素质将是#1。

于 2009-09-16T18:50:26.467 回答