前言
这是一件有意思的事,我曾在同一家公司先做了一年测试岗,再做了两年开发岗,相信这样干的人并不太多 : ) 这三年也是我工作生涯中最开心的一段。现在回头看,那是一家很努力的公司,做微软本地化和惠普离岸测试起家,2010年过了cmmi5,现在也发展得挺好,希望他们能百尺竿头更进一步。
在测试岗的一年时间里,我们测试组10-15人左右,开发团队在国外,除了每天一封memo(和圣诞节的礼物)外没有多余的沟通,大家在QC上自己干自己的活,有条不紊。要知道这个项目除了软件,还包括固件层面。这件事也使我一直坚定地相信:结构化和持续性的流程,是产品开发成功的关键基础。
对于很多公司来说,研发和测试之间存在着巨大的内耗,这个内耗带来的风险不仅是项目延期,产品失败,质量低下,拒绝验收等,而且对团队自身也是很大的伤害。在上家公司,整理好自己部门的事情之后,曾短暂地兼职负责过测试部门的训练,尝试从公司层面将测试体系搭建起来,可惜那时舍不得丢开CMI,所以最终并没有成功。如果当时能全职转到测试部门,相信有很大几率能走出个结果。
综上所述,一直希望能系统地总结下对测试的想法,形成一个能从0开始,逐步建设完善的黑盒体系。当然这个总结一定是低级可笑的,因为搭建体系最快捷的手段就是先请一批牛人,再给他们一大笔钱,可惜绝大部分情况下,都没有这么顺风顺水的条件,那我们只好在难搞的日子里也尽量笑出声吧。
大纲
黑盒测试金字塔 人员人员-至关重要的第一个高级测试工程师
“请便宜的人或者毕业生过来随便点”,“不要按正常逻辑点”,这样的说法很常见,反应出人们还是认为测试是个力气活。我觉得测试门槛确实不高,同时需要花很多力气在枯燥的工作上,但即使抛开自动化,黑盒手工测试也绝对是个技术活。同一个产品,有技巧的工程师,三五个case就能找到bug,没经验的工程师一天跑了两百条case没发现bug,还搞得PM很开心,结果交付之后就傻眼了。这种现象屡见不鲜。
同时,很多公司不愿意,或者不觉得应该在测试上投入成本。在PMBOK里质量成本分为一致性成本和非一致性成本。一致性成本包括测试,文档建设和培训等,非一致性成本可以理解成各种形式的返工。从静态的角度来看,一个项目或一个团队的质量成本是固定的,你减少了一致性成本,必然导致非一致性成本的升高。而非一致性成本还隐性地影响着进度,士气等。所以表面上看似省了,实际是亏大了。
我认为对于测试团队,第一个高级测试工程师至关重要。这句话包含两层意思,第一层是指测试团队一定至少需要一个高级测试。第二层是指这个高级测试的水平,直接决定了整个测试团队能走到什么程度。
第一层意思说测试团队一定至少需要一个高级测试,那是因为测试是个可以一拖一百的工作,就是说只要有一个(真)高级坐阵,另外即使配一百个初级,这个团队都是高级团队,如果缺了那一个高级,瞬间就退回初级团队了。这个套路跟开发团队的组建几乎背道而驰。其中的道理在于,开发的设计出来后,是需要每个工程师去实现的,实现过程的质量就是最终产品的质量,而测试的case设计出来后,谁执行都是一样的。所以一定要一个高级工程师设计出高质量的case。比如我在测试岗的时候,公司用QC作为质量平台,里面的case库没统计过,保守估计在60到80万条,由专人管理,经过了四五年的验证,写得很精辟,这就直接导致了招测试岗的时候,只有1个条件:1能读写英文。对于这家公司,case库和项目经理是保证项目稳定的利器,至于测试人员,跟着case走,如果fail了,把case转成bug,加一个actual result完事了。如果哪天测试人员全体辞职都不要紧,分分钟招一堆大学生来跑case。而这些case,从另一角度来看,也在起着人才培养的作用,就像初级程序员每天都在看高手写的代码一样,是种潜移默化的学习。当然也不是上来就要维护case库,根据实际情况裁剪,人最关键。
第二层意思说这个高级测试的水平,直接决定了整个测试团队能走到什么程度。这里有几个因素,是否有培养团队的想法,因为有些人确实不太喜欢操心团队的事情;是否有项目管理的想法,因为可能后期需要承担测试流程的设计和优化;
测试人员是金字塔的最底层基础,而高级测试又是测试团队的基础,所以高级测试岗对于测试体系建设来说至关重要,几乎是首要解决的问题。
人员-一个萝卜一个坑
八年前的一天,快下班了,Marshall跟我说:你记住我一句话,一个萝卜一个坑。我当时并不太理解,这句话现在是我挑测试人员最关键的标准:是不是足够踏实,有没有侥幸心理。
测试是个细致活,当测试人员心存侥幸,或者做事不带脑子的时候,或者随便应付工作,一些后面的方法,规范都无从谈起了。当然挑人还有一个很重要的标准,就是有没有总结经验持续改进的想法。
网友评论