我们有一个相当复杂的Java系统,其中包括一些后端层,包括数据库和专有的Swing前端。外部各方可以附加的后端API模仿我们的前端。我们的组织内共有大约5个孤岛,共享这个系统。总共有大约15名开发人员维护这个系统。
我们的质量保证团队的规模应该是一个经验法则吗?
编辑:根据迄今为止在回复中提出的问题添加一些上下文:
答案 0 :(得分:9)
作为以前的测试团队负责人,我建议尽可能多地进行测试。听起来您组织中的很多人都依赖于您的软件。尽早测试并经常测试。
认识到测试是每个人的责任是非常重要的。开发人员需要编写好的单元测试。 UI开发人员应该手动测试UI。
我尝试鼓励测试驱动开发,关注指标(使用正式的错误跟踪系统,跟踪缺陷密度等),设置持续集成服务,并设计可测试性代码(使用类似Spring的框架进行依赖注入,使用模拟和存根进行外部服务等 - 我很乐意更详细地讨论)。修复bug的成本会在你找到它的时候成倍地增加,所以最好在它进入正式的QA之前找到它。
杰夫
答案 1 :(得分:4)
从1个QA到5或6个开发人员开始。然后根据您认为QAs必须做多少工作或无所事事来开始调整它。
事实上,这只是基于我自己的经验,因为涉及的因素太多了。您的代码库有多开发或稳定?它有多大?测试需要多么全面?涉及哪种测试和分析工具?里程碑版本多久发布一次?你有什么样的开发过程?手动测试多少以及自动化测试多少?
还有很多问题。所以从一个任意数字开始,然后从那里开始。
答案 2 :(得分:3)
理性的QA与开发比率只能相对于相关应用程序的复杂性得出。
显然,一个超级开发人员可能会提出一个复杂的应用程序,由于工作流程的复杂性,只有3个QAs全职可以有效地进行测试;反过来,3个初级开发者可以有1个QA拼凑一个相对简单的输入输出报告应用程序。因此,您需要的QA人员数量将取决于您所需要的数量和复杂程度,而不是您使用的软件开发人员数量。
答案 3 :(得分:3)
很多都取决于系统的作用以及缺陷的后果是什么?你在写财务软件吗?还是社交网络?一次失败的可能成本大于另一次失败,因此QA的努力会有所不同。同样,如果它是一个产品(有多个已安装的用户群,可能更难修补),你需要它比内部更稳定。
您还需要问,您是否希望他们进行基本的系统测试或批量和负载测试。听起来你正在研究UI测试和API测试的结合。
让你成为一个起点,假设你正在谈论一个“正常”类型的系统而我们正在谈论基本的系统测试,我所采用的指标是33%的努力应该是测试工作。从理论上讲,这给你1比2的比例,但假设你的开发人员进行单元测试可能会将其拉伸到1到3.当然我目前运行的是1到4,这还不够(我会尽快纠正它)业务允许我)。
但您还要考虑软件开发流程的成熟程度以及您的规范是什么样的。除了拥有合适数量的测试人员之外,您还需要向他们提供正确的测试信息 - 如果他们没有,那么他们就无法完成工作而且可能会浪费金钱。
投入其中的另一个选择 - 听起来产品已经开发了一段时间。除了常规测试人员的核心,您可能希望使用短期承包商进行初始主要测试。如果您只是将测试资源带入其中,则不希望以主要积压工作启动它们。
答案 4 :(得分:2)
这可能取决于代码库的参与程度(是否有大量的集成模块)以及用户体验的参与程度(如果有大量的可视元素和输入控件需要测试)。
如果这是一个相当复杂的系统,您可能需要为每5位开发人员考虑2-3位QA工程师。然而,如果这些功能实际上没有太大变化或者涉及的程度较低,我认为每5个开发人员(甚至可能每10个开发人员)只能获得1个QA。
答案 5 :(得分:2)
不,没有经验法则。每个组织都是不同的,因为每个组织都有完全不同的要求,需求,项目等。您只能找到适合您组织的组织。
答案 6 :(得分:1)
我不知道自9年前this article以来他的观点是否发生了变化,但Joel会建议每2名全职开发者有1名全职QA人。我会说,随着系统的不断发展,定期更新,这个比例非常好。
然后,如果你的系统不经常改变,很少更新,为什么你会有很多开发人员开始?我想说服自己1:2在大多数情况下都是完美的比例。 :)
答案 7 :(得分:0)