我是一名软件开发人员,今天我和QA团队就以下问题争吵:
QA团队成员应该超过使用同一产品的开发人员数量?
我知道这不是关于如何编程的问题,但我认为这个问题与软件开发有很大关系。所以我希望这个问题不会被关闭。相反,我会从在SW开发公司工作的具有良好经验的专业程序员那里得到答案,这样我就可以做出很好的统计数据。
答案 0 :(得分:37)
答案非常主观,但这是我的经验。
在Microsoft,我们拥有一个强大的测试开发组织。这与传统的QA略有不同,因为我们聘请程序员在设计阶段就开始测试并让他们参与进程。他们的工作是测试,特别是自动化产品测试。根据我的经验,测试人员需要大约与测试和自动化功能一样长,因为开发人员可以对产品中的错误进行编码和修复。这意味着1:1的映射。这与经验法则非常类似,即编写单元测试只需编写代码即可。
此混合将根据以下几个标准而有所不同:
答案 1 :(得分:22)
对于公司的大多数项目,我的比例为1:1。但这可能因以下几个因素而有所不同:
答案 2 :(得分:6)
根据我的经验,有两种主要的QA人员:那些只是遵循书面脚本并与应用程序交互以寻找边缘案例的人,以及那些可以自己编写自动化测试代码的人,并寻求找到新的和创新的方式(模糊测试,Selenium,编写API客户端)来打破开发团队的代码。
如果您的QA团队主要由第一类人员组成,那么与开发人员的比例为1:1或更高可能是必须的。否则,他们将难以跟上开发团队引入的任何新功能,并且经常会抵制对产品所做的任何更改,因为它会进一步使他们的测试工作流程变得复杂。
另一方面,后一种类型(即可以编码的测试工程师)是任何高效开发团队的天赐。编码人员可以作为同伴与他们进行交流,测试人员可以通过编写更智能,更抽象的测试工具和实用程序,找到自动化和改进自己流程的有用方法。一个非常优秀的测试工程师可能可以支持2-3个开发人员的工作,特别是如果这些开发人员已经编写了有用的单元和集成测试,测试人员可以将其作为起点。
答案 3 :(得分:6)
我的工作地点目前约为8:1 dev:qa。这样做的原因是我们非常重视自动化测试。所有工作都需要接近完整的单元测试覆盖率。我们还与Fitnesse进行功能测试(所有用户故事必须进行fitnesse测试),checkins触发CI服务器的完整测试运行,开发人员经常检查,我们经常发布。
这是一个巨大的应用程序,有几千个类和无数场景。优点是速度,灵活性和成本。无论开发人员(甚至是一个昂贵的人)花在编写测试上的额外时间都少于雇佣/管理更多QA人员的人力资源,或者发现生产中的错误(甚至QA员工毕竟是人类)。
我们所做的小QA员工可以花时间用Selenium编写自己的自动化测试或参与新功能。他们花费相对较少的时间一遍又一遍地重复相同的功能。
答案 4 :(得分:4)
有很多因素可以解决这个问题。
我的工作地点从3:1(QA / DEV)到.5:1(QA / DEV)不等。它归结为为了充分测试产品需要多少质量保证资源,并且没有全面的答案。
答案 5 :(得分:1)
现在,我工作的每个QA人员都有3名开发人员。这有其起伏,因为QA有时会发现问题,但有代码更改之外的解决方案,例如。不要点击没有意义的地方。
有几次没有我工作过的质量保证,有时几乎就像灾难的食谱,因为客户随后成为QA,因为他们的问题会成为开发人员的问题。
答案 6 :(得分:1)
质量保证人员的数量不应取决于开发人员数量。它应该取决于产品的理想质量,而不是其他任何东西。
许多人在这里说“对QA”一个好的开发人员的工作比“QA”更糟糕的开发人员的工作更容易。见鬼,为什么这是真的? “确保质量” - 质量保证是“质量保证” - 意味着设计一个过程,标志产品“质量保证通过”和“质量保证失败”。我只知道两个依赖于代码本身的进程:静态代码检查和同行评审。虽然前者在某种程度上被使用,并且它有时需要QA人员来维护它,但是代码中称为“ quality ”的东西对于没有灵魂的机器来说并不重要。同行评审由程序员完成,而不是QA。我希望这能说服你,QA的数量不依赖于开发人员,不是吗?
在我们公司所在的领域,没有竞争,市场非常狭窄。因此,我们从错误报告和我们没有QA 获取所有必要信息,因此比率为零。所有测试均由开发人员完成。尽管如此,我们仍然活着,因为所需的质量并不需要任何QA人员。
答案 7 :(得分:1)
在我们的组织中,比率为dev:QA为5:2,为此,我们需要了解更多场景,例如
正在进行单元测试,在我们的案例中,一个人完全致力于编写单元测试计划,5个成员的团队正在执行单元测试用例并修复bug 我们的PL完全不参与编码,他只做过程/审查导向的事情
功能测试由兼职测试人员完成,您可以说是开发人员完成的半资源和一个功能测试周期
因此,这取决于项目规模,LOC编写和基于其CMM级别的公司资源
答案 8 :(得分:1)
有很多因素,最重要的是应用程序所需的质量级别,它是一个小型网站吗?还是一种主要的医疗器械?还是金融体系?为航天飞机改变一行代码可能需要数周的测试......
在渐进式开发商店中,QA资源需求(作为开发比率)应随着QA改进的实施而逐渐减少,例如TDD,代码评论等。我认为QA专注于纯手工测试是浪费,QA应该用于改进流程并帮助开发人员感到愚蠢(通过在发布之前删除错误)。
答案 9 :(得分:1)
这取决于正在开发的组织和Web / app。所有公司都根据自己的要求拥有自己的开发:QA比率。
简而言之,它取决于项目规模和组织中可用的资源。
答案 10 :(得分:0)
考虑花费的时间而不是人数。对于经过良好测试和“批准”的应用程序,完全有可能在每个开发时间内,可能需要一个小时的QA工作。我特指技术QA角色,而不是功能测试。 QA团队和开发团队需要能够紧密合作,因此QA团队可以在开发过程中编写测试用例。这意味着需要将所有内容写入实现合同(函数名称,输入参数等)。
答案 11 :(得分:-1)
这取决于当天结束时员工的素质。如果一个程序员完成两个QA的工作量,则比率为1:2,反之亦然。这里的员工质量将是#1。