QA与开发比率

我们有一个相当复杂的Java系统,其中包括一些后端层,包括数据库和专有的Swing前端。 外部各方可以附加的后端API模仿我们的前端。 我们的组织内共有大约5个孤岛,共享这个系统。 总共有大约15名开发人员维护这个系统。

我们的QA团队的规模应该是一个经验法则吗?

编辑:根据迄今为止在回复中提出的问题添加一些上下文:

  1. 我们每年大约有四个主要版本,其间还有一些小版本。
  2. 我们的平台有转手,因此有一些计算对我们的客户意义重大。
  3. 我们确实使用正式的bug修复系统。
  4. 我们不使用TDD。
  5. 我们使用cruisecontrol等工具进行持续集成。

作为以前的测试团队负责人,我建议尽可能多地进行测试。 听起来您组织中的很多人都依赖于您的软件。 尽早测试并经常测试。

认识到测试是每个人的责任是非常重要的。 开发人员需要编写好的unit testing。 UI开发人员应该手动测试UI。

我尝试鼓励测试驱动开发,关注指标(使用正式的错误跟踪系统,跟踪缺陷密度等),设置持续集成服务,并设计可测试性代码(使用类似Spring的框架进行dependency injection,使用模拟和外部服务的存根等 – 我很乐意更详细地讨论)。 修复错误的成本会在您找到错误后成倍增加,因此在获得正式QA之前最好找到它。

杰夫

从1个QA到5或6个开发人员开始。 然后根据您认为QAs必须做多少工作或无所事事来开始调整它。

事实上,这只是基于我自己的经验,因为涉及太多因素。 您的代码库有多开发或稳定? 它有多大? 测试需要有多全面? 涉及哪种测试和分析工具? 里程碑版本多久发布一次? 你有什么样的开发过程? 手动测试多少以及自动化测试多少?

还有很多问题。 所以从一个任意数字开始,然后从那里开始。

理性QA与dev的比率只能相对于相关应用程序的复杂性得出。

很明显,一个超级开发人员可能会提出一个复杂的应用程序,由于工作流程的复杂性,只有3个QAs全职可以有效地进行测试; 反过来,3个初级开发者可以有1个QA拼凑一个相对简单的输入输出报告应用程序。

因此,您需要的QA人员数量将取决于您所需要的数量和复杂程度,而不是您使用的软件开发人员数量。

很大程度上取决于系统的作用以及缺陷的后果是什么? 你在写财务软件吗? 还是社交网络? 一次失败的可能成本大于另一次失败,因此QA的努力会有所不同。 同样,如果它是一个产品(具有多个已安装的用户群,可能更难修补),则需要它比内部更稳定。

您还需要问,您是否希望他们进行基本的系统测试或批量和负载测试。 听起来你正在研究UI测试和API测试的结合。

让你成为一个起点,假设你正在谈论一个“正常”类型的系统而我们正在讨论基本的系统测试,我所采用的指标是33%的努力应该是测试工作。 从理论上讲,这给你1比2的比例,但假设你的开发人员进行unit testing可能会将其拉伸到1到3.当然我目前运行的是1到4,这还不够(我会尽快纠正它)业务允许我)。

但您也想要考虑软件开发过程的成熟程度以及您的规范是什么样的。 除了拥有合适数量的测试人员之外,您还需要向他们提供正确的测试信息 – 如果他们没有,那么他们就无法完成工作而且可能会浪费金钱。

投入其中的另一个选择 – 听起来产品已经开发了一段时间。 除了常规测试人员的核心,您可能希望使用短期承包商进行初始主要测试。 如果你只是带来测试资源,你不想用主要的积压来启动它们。

这可能取决于代码库的参与程度(是否有大量的集成模块)以及用户体验的参与程度(如果有大量的可视元素和输入控件要测试)。

如果它是一个非常复杂的系统,您可能需要为每5个开发人员考虑2-3个QA工程师。 然而,如果这些function并没有真正改变或涉及的程度较低,我认为每5个开发人员(甚至可能每10个开发人员)只能获得1个QA。

不,没有经验法则。 每个组织都是不同的,因为每个组织都有完全不同的要求,需求,项目等。您只能找到适合您组织的组织。

我不知道自9年前这篇文章后他的观点是否发生了变化,但Joel会推荐每2名全职开发者1名全职QA人。 我会说,随着系统不断发展,定期更新,这个比例相当不错。

再说一次,如果你的系统不经常改变,很少更新,为什么你会有很多开发人员开始? 我已经伪装成自己说服1:2在大多数情况下都是完美的比例。 🙂

每3位开发人员2名测试工程师是一个不错的开始 如果许多测试用例涉及无法自动化的东西(物理插拔东西,UI渲染的眼睛validation),每2个测试工程师增加1个测试人员。