专栏首页持续集成软件测试和开发比例

软件测试和开发比例

引言

这篇文章是我从stackoverflow上翻译过来的,如果以后遇到好的文章我还会继续翻译。

问题

我是一个开发工程师,我与我们的测试团队在争论一个问题:在一个产品中测试团队的成员数量应该超过开发人员数量吗?

我知道这不是一道编程题,但是我想这个问题与软件开发密切相关,所以我希望这个问题不要被关闭,以便能得到专业的回答。

回复一:

这是我的个人经验。在微软我们有一只强大的测试开发组织。这和传统的QA有点不同,因为我们雇佣程序员来测试,并且在设计阶段就把他们加入进去。他们的工作是测试,特别是自动化产品测试。根据我的经验,测试和自动化测试一个功能需要测试人员大概多久的时间与开发人员在产品中编码和修复缺陷所需的时间差不多,这意味着他们的比例是1:1,这与编写单元测试所花费的时间和编写代码的时间非常相似。

这一组合将根据不同的标准而有所不同:

1、开发人员进行了多少单元测试,他们做的越多,需要测试的工作就越少。

2、开发者要编写多少代码,而不是利用现有的库。如果有许多预先写好的代码使用,测试人员也需要验证这些功能是否也是正常的,这样开发与测试所需要的比例必须是1:1。

3、开发工作的动态性。如果编写一个UI,相对较小的开发人员会对测试的表面进行大的改动的话,你讲需要更多的测试人员。

4、有多少重要功能。如果是编写GMail,它随意使用,在这个领域bug可以容忍和修复,那么需要很少的测试人员。另一个极端,如果你正在研究医疗成像设备,你需要更多的测试,因为在这个领域很难修复缺陷,而且他们出现bug会非常糟糕。

回复二:

对于大部分我工作的公司项目,他们的比例是1:1,但是可能因为以下几个因素而有所不同:

1、开发效率。我曾经讲过一个开发人员,他有很高的输出量,并且有3个QA忙于他开发的功能上。

2、产品质量标准。一个重要的,高可靠性的系统应该有一个更好的QA,并且需要更多的QA人员。

3、一些项目必须在更好数量的配置和场景中来测试,开发者可能会保持不变,但是你显示需要更多的QA来覆盖整个测试矩阵。

4、测试的自动化程度如何。如果测试不能很容易自动化,你需要更多的人来手工测试。

回复三:

我这里目前开发测试比是8:1。原因是我们非常重视自动化测试。所有的工作都需要接近完整的单元测试覆盖率。我们还使用Fitnesse进行功能测试(所有的用户故事都必须有一个Fitnesse测试),用CI(持续集成)服务器出发完整的测试,开发人员经常检查,我们经常发布。

这是一个巨大的应用程序,有几千个类和无数的场景。其优势在于速度、灵活性以及成本。无论开发人员花在编写测试上的额外时间,都少于人力资本管理部门/管理更多的QA人员,或者在产品中发现的缺陷(甚至QA人员都是普通人)。

我们很少的QA人员会花费他们的时间编写的自动化测试上,用Selenium或参与新的功能。他们花了很少的时间反复地重复同样的功能。

回复四:

根据我的经验,有两种主要的QA人员:1)那些简单地遵循书面脚本并与应用程序交互以发现边界问题,2)以及那些可以自己编写自动化测试程序的人,寻找新的和创新的方法(侦查、Selenium、编写API客户端)来打破开发团队的代码。

如果你的QA团队由第一类的人组成,那么1:1的比例或是正好的开发人员是必须的。否则他们讲难以跟上开发团队引入的任何新特性,并且会经常地址任何对产品的修改,因为这会使他们的测试工作流程变得更加复杂。

如果你的QA团队是后者(可以编写代码的测试工程师对任何有生产力的开发团队来说都是天赐之物)。程序员可以与他们进行交流,而测试人员通过编写更智能的,更抽象的测试工具来找到自动化和改进他们自己过程的有用方法。一个真正优秀的测试工程师可能会支持2~3个开发的工作,特别是如果那些开发人员已经编写了有用的单元测试和集成测试,测试人员可以将其作为起点。

最后:

说说自己看法,国内的软件测试公司的开发测试比一般是3:1,4:1甚至5:1。开发人员一般不愿意做详尽的功能测试,因为有测试人员在,单元测试覆盖率也不高,他们会将写好的程序直接塞给测试,测试人员更多在做功能测试。如果是比较稳定的项目,测试才有时间做自动化测试,以方便日后回归测试减少工作量。

做为一名测试人员,建议每一个软件测试工程师都要提高编码能力,不仅仅只限于自动化,也要了解开发中所用到的技术,在本地运行当前所测试的开发项目,熟悉开发代码,最后可以做到找的bug时知道怎么去改。可以写单元测试,成为开发测试工程师,愿我们共同进步。

Q: 关于“测试开发比例”,你还有哪些问题和想法?

欢迎评论、转发。

本文分享自微信公众号 - DevOps攻城狮(DevOps-Engineer),作者:沈显鹏

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 优秀的软件测试人员有哪些特征?

    1. 保持持怀疑态度。不要相信开发提供的版本质量很好没有缺陷,对任何事情保持疑问,只有当你测试过并未发现缺陷的情况下才是可接受的版本,不要相信任何人不管他们拥有...

    Peter Shen
  • 推荐给测试和开发人员五款好用的测试工具

    这个工具可能绝大数的测试和开发都不太了解,它是一款无需编写的自动化测试工具,它可以创建,管理和运行 Web 应用程序和本机移动应用程序(Android 和 iO...

    Peter Shen
  • 黑盒测试VS白盒测试

    这篇文章是我从stackoverflow上翻译过来的,如果以后遇到好的文章我还会继续翻译。

    Peter Shen
  • 软件测试人员:你们是如何测试需求变动频繁的项目?

    王豆豆
  • 敏捷下的质量保证实践

    对于目前的开发架构来说,一个用户故事,涉及这四个点,可以从这四个点入手来进行质量保证。

    小老鼠
  • DevOps中的测试工程师

    DevOps需要在各个阶段进行协作,因此,使开发人员和测试人员从敏捷孤岛式转变为一个在各个阶段中所有成员不断参与的运营已变得非常具有挑战性。

    八音弦
  • 刚刚,北京正式允许无人车上路路测!准入门槛500万元

    李根 发自 北清路 量子位 报道 | 公众号 QbitAI 历史性的一天! 北京今日正式下发文件,允许无人车在北京进行上路路测。 12月18日,北京市交通委员...

    量子位
  • 测试面试题集-1.测试基础理论

    最常使用的测试用例设计方法包括等价类划分法、边界值分析方法、场景法、错误推测法。其中,最容易发现错误的是边界值法,使用最多的是场景法。以注册为例:首先从需求确定...

    ITester软件测试小栈
  • 如何避免移动测试自动化失败

    顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscr...

    小老鼠
  • 解析《中国互联网软件测试行业2018年度调研报告》

    之前收到了一份TesterHome的调查问卷邀请:2018年度中国测试行业问卷调研。最近问卷的汇总结果出来了,有2000+的测试童鞋参与了问卷调查。从幸存者偏差...

    写博客的老张

扫码关注云+社区

领取腾讯云代金券