哈哈,n久前就有人跟我说这个文章了,说实话,一直懒得看,今天有时间,咱也搞个辩论,直接copy过来,红色的是个人意见。
(首先什么叫测试团队呢?有独立的测试部门,测试组,测试人员,从来没听说过独立的测试团队,就算是纯粹的测试外包,也是作为项目团队的一部分,项目团队可不是由开发团队和测试团队构成的,是由各个不同的角色构成的,如果你连这个基本概念都混淆,就不用往下看了,何必呢,有着时间干点别的去吧。)
让我们先由2个问题引出今天的话题,第一,为什么选择做测试?第二,做测试的发展又如何?
第一个问题,你为什么要选择做测试,我敢说十个人有九个不会说实话,什么测试能够让我开阔视野啦,测试同样也需要很好的技术啦,,,全是虚伪的借口。真正地答案只有一个,测试的收入高,要求低!(注意是相对你的能力比来说收入算高,因为你要是选择做开发,肯定不如现在的收入)不管你愿不愿意承认你都得承认,这是绝大部分测试入这一行的原因。
(01年开始做测试的,那个时候根本不了解什么叫测试,很多外界人以为就是点点点,所以自己也这么稀里糊涂的加入,倒不是因为钱多,是因为当时的经理说了一句话,开发都是盲目的实现功能,测试是保证开发是盲目而不是盲动,说实话,这句话过了4,5年才真正理解)BTW,那个时候开发是3k,测试是1.5k,哥就是傻乎乎的被人忽悠入行的。
第一个问题的答案决定了一个事实,测试团队的发展永远不可能像开发团队一样,随着公司的发展而发展,为什么呢?成本! 世界上没有傻逼的公司,你的公司之所以能够存在,是因为它善于控制成本。站在管理层来看,测试团队是一个"显著"消耗成本而又不"显著"创造价值的团队。
(这个问题其实已经不是偏激了,纯粹是不懂,测试的目的是保证质量,带来的效果就是减少盲目的开发成本,你要是见识过太极开发了个项目化了2年,为了补bug花了三年就知道了,高质量的测试带来的绝对是最优化的资源成本,你们公司老板连这个都不知道,何必招开发呢,找几个hr mm没事点点点就行了,中软当初就这么干过)
第二个问题,测试的发展如何?既然我们的收入又不低,那么干的就得比人家多,你说是不。人家一天接一个客人,咱就得接三个。作为测试的你,是不是有同感?
(收入跟工作量一定成正比吗?反正我当team member的时候,一直耿耿于怀,我们pm基本上就是陪客户吃吃饭,连C和Java是啥都不知道,完全的关系型的项目经理,人家一个人拿的比我们整个团队都多,这不是更扯淡)
那么,第二个问题的答案是什么呢?答案就是这篇文章的title,测试团队将慢慢死去!就像《黑天鹅》的作者塔勒布所讲的,这个世界是由一系列不可能发生的事件组成的。测试团队死去这件事情随时可能发生,你要做的,是要提前做好准备!
(哈哈,这个我喜欢,理论上软件做的多了,就没啥可干的了,所以IBM自己都当投资公司去了,为啥,利润太低,所以啊,指不定那天,软件行业就拉倒了,甭管测试开发需求美工,一起死而已。现在的情形就是这样啊,为什么离岸外包一塌糊涂,就是客户不舍得花钱升级了,旧的能用,要啥新的啊)
我喜欢描述这样一个场景,一线测试工程师对着电脑在干活儿,左边的高层管理着指着他的鼻子说"别再跟我要head count,我要控制成本!",右边的中层管理着指着他的鼻子说"去给我拓展业务,我要创造业绩!",中间的你,那一脸苦逼的表情,还用我描述吗?
(哈,这个场景,说实话不太明白,一个测试工程师要去控制成本,去扩展业务,难道公司已经堕落到这种地步?这些东西,跟测试这个role没关系,跟你是负责哪方面的管理有关系,说白了是管理成本而已)
我认为,测试团队的发展大概要经过这样三个阶段。
第一阶段,公司快速扩张,不计研发成本,当然测试也不例外,每天都在非常happy的招人中。。。。
(没计划性?产品开始的时候,连测试计划都没有,你们的测试经理估计是编简历进来的吧,面试的也该拉出去打屁股,连最起码的resource plan都没做,玩个蛋啊,乱堆积木,早晚会塌,不管那个行业)
第二阶段,经过第一阶段的快速扩张,你的测试团队积累了大量的高级测试工程师,成本已经开始进入高层的考虑范围,技术部开始考虑适度控制成本,而此时,控制最厉害的,肯定是测试团队,当然裁员首先也会从测试团队开始。如果你幸运的没有被裁掉,不要盲目乐观,还有第三阶段。
(还是那句话,老板太有钱了,没事招一堆高级测试工程师来,最起码的成本cost都没做过预算,看来老板不怕亏本啊)
第三阶段,(我认为我所在的公司正处于这个阶段)严格控制测试成本,老大们开始考虑将测试工作向上游转移。此时大量的词汇开始进入我们的KPI,什么推动单元测试,推动开发自测,控制提交测试质量,等等,等等。
讲到这里,今天的关键就出现了,如何将测试的工作向上游转移呢?答案就是第四阶段,让测试团队慢慢死去。。。。
节省测试成本的最好方式就是把自己干掉!没错!下面我说说方法。
(哈哈,推动单元测试,推动开发自测,控制提交测试质量...这些说不好听,是process的问题,难道现在还有开发,弄完代码直接往code base里扔,我艹,80年的程序员都知道自测了。好的测试保障,无非是将开发的那些盲目的单元测试合理化而已,user story的出现,就是为了更精确的让所有人有个共同的AC可以依据)
测试团队当中,首先应该干掉的是纯手工测试工程师,因为他们的性价比是最低的(有些公司这个时候会选择测试外包)。然后,开发测试工程师当中出色的那部分,会加入开发团队当中,不出色的将被淘汰。他们有一项艰巨的任务,那就是,以开发自测为基础,为开发团队建立起一套完整的基于风险的质量控制体系。开发做测试不是能力问题,而是思想,思想却是最难以改变的。这也是好多人天天说要推动开发自测却没有进展的原因,没有认识到改变别人思想的工作有多难!我提的办法呢一石二鸟。开发测试工程师转入开发团队,既能节省测试成本,又可以帮助开发转变思想,以一带二,以一带三,逐步完成开发团队,全民皆测试的目标!
(首先,干掉什么样的测试人员不依据他们的方式,很多测试本身就是只能纯手工,对于信奉automation可以100%覆盖测试范围的,我只能叹息,你的test scope小,能实现自动化程度高而已,天不是就井口那么大)
(一般来说,测试没有推动开发的质量提高,这个是PM的问题,甚至是公司文化素质的问题,你能直接教会大字不识的人写出李白那种诗吗,什么事都得一步步来,所以,很多问题根源不是做不做,是做的时候是不是太急功近利了,没错,很多时候建立一个高质量交付团队最多的障碍就是急功近利!没等下鸡蛋,这边油锅就热了)
(开发测试,本身就应该是在开发范畴中,是为了提供更好的测试做开发,基本上task都是和开发并行的,让开发轮流做开发测试,本身就是个定规啊)
那么最后,测试团队中还剩什么呢?只会剩测试工具组。他们为全公司提供测试工具,平台和流程方面的支持。极少量的团队会保留纯手工测试工程师。但是,你绝对不应该看到"开发测试工程师"这个title,因为他们已经成为了开发团队中的一员,一起开发,一起测试。。。
(恩,我最讨厌title了,每个人都是不同的role,挂上一个title就不用干别的吗,最起码,一个测试人员,除了测试这个role,还有质量管理这个role,需求人员这个role,文档人员这个role,模拟客户这个role,。。。别提title,sb才觉得自己是什么title就干什么活呢)
插一段说明,我觉得不必说,但有些人会这么想的。有人会说测试团队应该保留一些测试职位,负责集成测试,系统测试和性能测试。这样说的人很多,但绝对没有过实践经验。为什么呢? 没有与开发天天在一起讨论问题,功能测试这个阶段,怎么能做好集成,系统测试呢? 不要妄想了,这些工作也会由开发团队完成。你可能会觉得开发工程师怎么会做呢? 他们为什么不会做呢?别忘了那些转入开发团队的开发测试工程师有一项艰巨的任务,"以开发自测为基础,为开发团队建立起一套完整的基于风险的质量控制体系",其中就包括测试分工这些在测试团队习以为常的工作。我相信,开发暴发出来的测试能力是你想象不到的。
(恩,开发的测试能力确实很好的,对代码逻辑足够了解,覆盖率高,但是,自己给自己当监督,早晚权利腐败,尤其是没有文化的项目团队,内部倾轧,都觉得自己代码好,测试的时候随手改别人的代码,测试覆盖面小,考虑的是功能实现,而不是用户体验,说实话,这样的项目做出来客户用起来不爽的例子,那是太多了,12306就是例子,基本上都是开发吧什么集成,系统啊,性能啊做完了,结果呢,出来就是一狗屎,别以为那个单独的开发牛人能一个人把一个团队带到同一个水平,水桶永远是最短的那个木板来决定容量的)
接下来可能要转换一下角度,站在开发角度来看,他们愿意接受这样一个变化吗?答案是不一定,但只有开发负责人愿意就没问题。我不刻意想学习google,facebook那种模式,但我想说,开发懂测试是一个必然趋势,如果你不想像测试一样被淘汰的话,还是接受吧。
(很多大的公司,本事是测试覆盖少,很多所有用户都当做免费的测试劳工的,小米的miui就是啊,海量的终端反馈,才是它的测试主体活动)
测试是一个矛盾体,我们过去,现在,将来一直会做的事情就是让自己死掉(提升开发测试比,开发自测,等等,这些工作我们不是一直在做吗?)。
(测试不矛盾,矛盾的是测试人员的定位,你的目的不是为了学一个自动化测试工具就是好的测试工程师,什么时候理解项目团队的质量测试体系是全面的质量控制,那就不是一个挂着测试头衔,只会点点点的文档复读机了)
作为测试的你,能做什么呢?如果你不懂开发,要赶紧去学开发,学设计。如果你懂开发,那就还是要学开发,学设计,技术没有止境。有人跟我说"你过于强调技术,其实测试思想才是最重要的",我认可这种看法,但不完全同意。因为技术能力会束缚你的测试思想,同样也会拓宽你的测试思想。试想都不懂tcp/http协议,怎么测试web server呢?
(不错,做好测试,不能只会依据测试文档去覆盖功能,一个好的测试人员,可以当甲方,可以当BA,可以当SA,可以当QA,你需要多方面的知识才行,但是知识是无穷无尽的,所以,知识积累很重要。其实同理也有,你丫不懂java,你怎么给我写个jsp文件出来啊,用C#去写?)
空谈误国,实干兴邦,牢牢把握技术才是王道!
(测试技术和开发技术本事是一体的,技术就是技术,没有开发需要学的技术和只有测试需要学的技术,单元测试也是测试范畴啊,你别那纯粹点点点的入门手工测试工程师,又是title,来代表整个测试水平,就跟没人拿一个刚学了三天java的开发去代表开发的整体水品一个道理)
上面这篇文章是前阶段淘宝前辈邓悟写的,感觉有一定道理,就拿过来跟大家分享下(已得到前辈同意);关于测试团队的前三个阶段发展的论述比较赞同,感觉现在好多大公司的确也有这种趋势;
(说实话,什么叫大,外包这种纯粹堆人头的叫大?还是那些动不动拿自己当50强的it公司觉得自己大,摩托罗拉为啥没落了,那么大的公司,已经不是技术范畴内的问题了,是人的恶性导致的,就是窝里斗,甭管那个国家,人类窝里斗那是人类史的源动力,人就是地球的寄生虫)
对于第四个阶段不发表评论,感觉测试职位只是一种合理分工的产物,如果这种分工方式对于公司来说成本相对较低,公司当然会保留;
(对职位是职位,职责是职责,对于很多混日子的人民公仆也同样道理,只不过,公司老板烦了能开人,我们当家做主的烦了只能自己在家画圈圈。)
对于前辈说的这种可能对于国内大多数公司感觉暂时不太可能(未来就不做猜测了),当然像淘宝这样的公司要另说;对于前辈说的“技术”,我的看法也是多多益善,但是人的精力毕竟有限,要结合实际工作做取舍。
(没有哪个公司能逃过这种社会悲剧的,天下没有不散的筵席,没有不倒闭的公司,与制度有关,与技术无关,技术宅才是希望,瓦咔咔)
原文转自:http://blog.sina.com.cn/s/blog_7d69dc150102x2u8.html