【问题标题】:QA to dev ratio [closed]质量保证与开发比率[关闭]
【发布时间】:2009-07-14 02:48:47
【问题描述】:

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

对于我们的 QA 团队的规模是否有经验法则?

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

  1. 我们每年大约有四个主要版本,中间还有一堆次要版本。
  2. 我们的平台有货币易手,因此计算对我们的客户来说意义重大。
  3. 我们确实使用正式的错误跟踪系统。
  4. 我们不使用 TDD。
  5. 我们使用 Cruisecontrol 等工具进行持续集成。

【问题讨论】:

  • 您的回归测试需要多长时间才能完成?肯定应该以此为基础吧?
  • 我不同意任何想要关闭它的人。虽然与编程无关,但它与软件质量和软件开发生命周期密切相关且绝对至关重要。
  • 回归需要一周以上才能完成

标签: java qa


【解决方案1】:

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

意识到测试是每个人的责任,这一点非常重要。开发人员需要编写好的单元测试。 UI 开发人员应该手动测试 UI。

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

杰夫

【讨论】:

  • “UI 开发人员应该手动测试 UI”?我们不应该为开发人员投资自动化 UI 测试,还是浪费时间/金钱?
  • 自动化 UI 测试在工作时很好,但很难做到正确。 UI 需要为测试而设计,理想情况下它应该是一个非常薄的层——这意味着使用模型-视图-控制器等模式并确保 UI 中没有业务逻辑。如果您可以进行自动化测试,我也会这样做。我的意思是 UI 开发人员也应该手动测试他们自己的更改,而不一定要手动进行完整的回归测试。 QA 测试人员不可避免地也会手动进行部分或全部 UI 测试。
  • 由于您使用的是 Swing,我推荐 FEST easytesting.org/swing/wiki/pmwiki.php 测试框架 - 它允许您编写 Swing GUI 的功能测试。
  • 要记住的另一件事是,好的工具不会造就好的测试人员。您需要优秀的测试人员开始 - 那些对测试充满热情并想成为测试人员的人,而不仅仅是一些被选中进行测试的开发人员。他们应该渴望每天都来破坏软件,以意想不到的方式(当然还有预期的方式)使用它。由于用于测试的脚本语言,编程背景也有帮助。
【解决方案2】:

从对 5 或 6 名开发人员进行 1 次 QA 开始。然后根据您认为 QA 必须做或无事可做的工作量开始调整它。

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

还有很多问题。因此,只需从任意数字开始,然后从那里开始。

【讨论】:

    【解决方案3】:

    只能根据相关应用程序的复杂性得出合理的 QA 与开发人员的比率。

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

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

    【讨论】:

      【解决方案4】:

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

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

      给您一个起点,假设您说的是“正常”类型的系统,而我们说的是基本系统测试,那么我要采用的指标是所有工作的 33% 应该是测试工作。从理论上讲,这给了您 1 比 2 的比率,但假设您的开发人员正在进行单元测试,可能会将其扩展到 1 比 3。当然,我目前正在运行 1 比 4,这还不够(我会尽快纠正它)业务允许我这样做)。

      但您还需要考虑您的软件开发流程有多成熟以及您的规范是什么样的。除了拥有正确数量的测试人员外,您还需要为他们提供正确的测试信息 - 如果他们没有这些信息,那么他们将无法完成工作,并且可以说是浪费金钱。

      另一种选择 - 听起来该产品已经开发了一段时间。除了常规测试人员的核心外,您可能还想使用短期承包商进行初始主要测试。如果您只是引入测试资源,您不想以大量积压开始。

      【讨论】:

        【解决方案5】:

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

        如果这是一个相当复杂的系统,您可能需要为每 5 名开发人员考虑 2-3 名 QA 工程师。但是,如果功能并没有真正改变太多或涉及的内容更少,我认为您可以只为每 5 名开发人员(甚至可能每 10 名开发人员)提供 1 次 QA。

        【讨论】:

        • 如果“功能并没有真正改变太多”,这 10 位开发人员会是怎样的产品?
        • 我是在命名一个比率,并不是项目真正需要的开发人员数量。
        • 一个系统上 5 个开发人员的 1 个 QA 非常薄,10 个开发人员的 1 个 QA 简直是荒谬的。即使有良好的 TDD,你也应该有大约 1 个 QA 对 3 个 Devs 的良好比例。
        • 如果“功能并没有真正改变太多或涉及更少”,那么是的,与系统“非常复杂”相比,我认为您的 QA 资源会“非常薄弱”。当你想要“非常瘦”时,我有资格。在我的两个场景之间显然有一个中间地带,你需要 1 个 QA 到 3 个开发者。
        【解决方案6】:

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

        【讨论】:

        • +1:不知道为什么这被否决了,有很多因素会做出这样的决定,每个公司都是独一无二的。
        【解决方案7】:

        我不知道自 9 年前this article 以来他的观点是否发生了变化,但 Joel 会推荐每 2 名全职开发人员配备 1 名全职 QA 人员。我想说,对于一个不断发展、定期更新的系统,这个比例相当不错。

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

        【讨论】:

          【解决方案8】:

          每 3 名开发人员 2 名测试工程师是一个不错的开始。如果许多测试用例涉及无法自动化的东西(物理插入/拔出东西,UI 渲染的视觉验证),则每 2 名测试工程师添加 1 名测试员。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-05-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-04
            • 1970-01-01
            相关资源
            最近更新 更多