在一些软件大会上,人们常常会问这样一个问题:测试人员与开发人员的比例究竟多少是合理的?而这样的问题,很难直接给出一个答案。为什么会有这样的问题,可能来自于两方面的压力:

  • 许多公司领导总是希望得到一个合理的比例,然后按这个比例分配招聘的名额,或者设法缩小测试队伍,减少开发成本。
  • 多数情况下,测试人员工作量大,比开发人员忙,所以想寻求一个数据,来说服其公司,多招些测试人员。

有些专家说,根据调查结果发现通常的比例是1个测试人员对3个开发人员。实际上,这样的比例毫无意义。测试人员与开发人员的比例会受到很多因素的影响,因不同的业务、文化和产品而不同。如果不管公司的文化、产品的类型和责任定义等,一定要按照某个比例来分配测试人员与开发人员,这是武断的做法,缺乏科学性。有两个典型的例子能说明这个问题:

  • 微软公司的测试人员与开发人员比例一般为1:1,甚至在Windows 2000开发团队中,有1800个测试人员,900个开发人员,测试人员与开发人员比例为2:1。
  • 在Google (谷歌)公司,则测试人员与开发人员比例则很低,据谷歌公司的测试经理介绍,为1:10.

那为什么呢?这里主要是测试人员与开发人员工作范围的定义,在这两家公司差别挺大,在微软,单元测试由测试人员(Software Development Engineer in Test, SDET)做, 相当于SDET再写一套代码来测试开发人员写的产品代码,其工作量不比开发人员低,另外,微软开发的产品都是比较复杂的操作系统、服务器软件等,自然就需要很多的测试人员。而Google的单元测试和功能测试一般都是由开发人员自己来完成,测试人员主要提供自动化测试工具的支持。软件开发人员进行了足够的单元测试,单元测试的覆盖度高达85%以上,软件在交给测试人员时,在功能上基本没有缺陷,这样测试人员主要集中精力进行性能测试、负载测试、安全性测试等,而这些都是自动化工具来完成的,自然需要较少的测试人员。

另外,测试人员与开发人员还受所开发的产品类型、企业文化、项目环境、质量要求水平、开发人员或测试人员的自身素质等影响。例如:

  • 所开发的产品是操作系统、基础平台,和一般的客户端软件、简单的Web应用系统,其测试需求、范围和工作量都是不同的。如Windows操作系统要支持第3方各种应用程序、支持大量的API和各种硬件驱动程序等,还有兼容DOS、32位/64位等应用程序,系统非常复杂、用户操作也非常灵活,所以测试的工作量也大得多,需要大量测试人员的付出。
  • 软件设计、代码的质量,也就是企业文化、开发人员的素质和能力等直接影响了软件的阶段性成果的质量,如果软件构造质量很高,其回归测试范围有限、重复测试的次数只有1~2次,而不是4~5次,结果,测试的工作量大大降低,测试人员数量随之降低。
  • 例如,许多免费的网络应用产品总是将自己定位在Beta版,那么,会降低质量水平,让用户试用,并帮助发现一些缺陷(因为免费,用户也不能抱怨什么),这样的话,公司内部测试的努力会少多了。
  • 测试人员素质高,精兵强将,那么人数就会少些;如果测试人员定位低、待遇低,就可能靠人海战术,那么人数就会多。
  • 在敏捷方法中,开发人员的主导作用比较明显,测试人员对开发人员的比例会低些。如果采用测试驱动开发,测试人员对开发人员的比例会更低。这时,测试人员和开发人员的界限也变得模糊些。

当然,针对一个具体公司,流程、产品和文化等都定型了,可以根据自己的经验、历史数据等,定出一个合适的比例,如1:2、1:3等,都是可以的。如果一个软件公司,硬要参考微软、谷歌或其它某个公司的做法,也许就不合理。一定要找相似的公司,那家公司又做得很成功,那就可以直接参考。

也许将来某一天,测试人员和开发人员会合二为一,并没有明显的区分,只是每个人的任务会有所不同,大家都能胜任、完成某个任务中的测试和开发的工作。所以,作为测试人员,掌握良好的技术也是必要的,包括编程能力。

[新发现的文章 4/14/2010] google v. microsoft, and the dev:test ratio debate

Google 测试工程师职责:

  • Developing test strategies.
  • Automating tests using test frameworks.
  • Write moderately complex code/scripts to test systems.
  • Take responsibility for monitoring product development and usage at all levels with an eye toward improving product quality.
  • May create test harnesses and infrastructure.

微软SDET的责任:

  • Hire developers to write code to test code. Our goal is to have engineers writing robust, reliable and repeatable tests that find issues early and cover the surface area of the component under test thoroughly.
  • SDETs are in the source code for the product as much as they are working with test source and our SDETs build the framework used for testing.
  • Build programmatic tests that are self-verifying, that are easily extensible and that are not simply comparing “data in” to “expected out”.
  • A successful SDET derives pleasure from building lasting designs, implementing robust maintainable code, and being a partner in the design of the components while advancing the technologies and approaches for testing software

测试人员与开发人员的比例究竟多少是合理的?相关推荐

  1. 测试开发人员与开发人员_如何升级为开发人员

    测试开发人员与开发人员 by Will Hughes 威尔休斯(Will Hughes) 如何升级为开发人员 (How to Level up as a Developer) Being a prod ...

  2. 对测试人员或开发人员来说相互沟通有多重要?

    要开始讨论的话题之前,我想举一个实际生活中的例子: 丈夫和妻子住在同一所房子里,且不与对方沟通.或者说他们之间没有什么可以说的.他们只是用短信告知对方如果有什么重要事要注意.否则,两人都是在忙自己的生 ...

  3. 测试人员与开发人员之间的关系如何?

    测试人员和开发人员是对立统一的关系. 说对立,是因为测试人员需要专门挑出开发人员做出来的功能模块的毛病.发现其考虑不周的地方: 说统一,这两个角色需要努力协同工作,把负责的模块做好. 转载于:http ...

  4. 通过有用的反馈改善测试人员与开发人员的关系

    摘要 测试人员和开发人员之间的关系常常很紧张. 各方对另一方应该知道和做的事情有一定程度的期望,而对另一组必须工作的约束,条件和要求知之甚少. 但这不必是这种方式. 做出一些更具体和有用的反馈的努力可 ...

  5. 测试如何与开发人员进行沟通

    ** 测试如何与开发人员进行沟通 ** 作为测试工程师,在日常工作中接触最多的就是团队中的开发工程师,如何和开发工程师进行有效的沟通是测试工程师面对的重要问题. 1.耐心和细心.细心是测试工程师的一个 ...

  6. ctf web必备工具_设计人员和开发人员的必备Web工具和服务

    ctf web必备工具 I cannot imagine that in 2018 there are people who don't use daily several web tools and ...

  7. web项目开发人员配比_Web设计人员和开发人员使用的前25个资源

    web项目开发人员配比 Great designers and developers are looking every day for resources that can help them ac ...

  8. 30个为Web设计人员和开发人员准备的Opera浏览器扩展

    Opera网络浏览器是可靠的跨平台上网冲浪的绝佳选择.它通常比Firefox更快,比Chrome浏览器更长的开发历史.同样拥有丰富的附加功能.以下是30个为Web设计人员和开发人员准备的Opera浏览 ...

  9. foss测试_FOSS – Java开发人员的最好朋友

    foss测试 开源软件的使用已成为当今大多数人的生活方式. 对于大多数人而言,对开源项目的贡献使我们能够将视野扩大到日常工作之外的开发团队,并提供一种参与新的有趣领域的方式. 新项目每天都在开始:一些 ...

最新文章

  1. 权限表管理之更新权限表数据
  2. python合并两个有序列表_合并两个有序链表(Python3)
  3. WCF常见问题及解决方案
  4. 使用mysql备份工具innobackupex进行本地数据备份、恢复操作实例
  5. jdk 流合并_JDK 12,合并的收集器和命名的挑战
  6. java解析bmp文件
  7. 链表在STM32中的应用
  8. SpringCloud入门之Maven系统安装及配置
  9. GANs(生成对抗网络)初步
  10. 瞥一瞥AI,撩一撩算法
  11. ES6 里面的 Promise
  12. 新建网站的长尾词应该如何去做优化
  13. 用vue开发的h5商城小程序,thinkphp5开发拼团、砍价、秒杀、优惠券、积分、分销等功能
  14. FusionChartsFree用法简介
  15. hbase的快速下载
  16. 交换机、路由器 以及 路由器工作模式:桥接模式、路由模式、中继模式
  17. 为什么软件开发周期总是预估的2~3倍?
  18. 2021-2027全球及中国远红外桑拿行业研究及十四五规划分析报告
  19. C语言正数和负数循环右移,左移,把某正数的第m位(从0开始)到n位取反
  20. 一只小蜜蜂...(递推求解)

热门文章

  1. 国家开放大学2021春2623中医药学概论题目
  2. 【报告分享】小红书品牌营销手册2021-小红书(附下载)
  3. MGC Group大公司已布局区块链食品供应链技术领域
  4. 题9.5:有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人10个 学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓 名、3门课程成绩、平均分数)。
  5. uniapp跨域设置
  6. 数电票试点扩围 百望云一体化解决方案助力企业数字化升级
  7. 什么是期权股权?什么是期权股权原始股?
  8. 算法一(python)
  9. puzzle(1024)帐篷、星之战
  10. chi2inv函数 matlab_matlab函数与指令大全 a——h (转载)