1、软件测试团队组成应该是技术背景的人员为基础
现在大部分的国内软件公司测试人员基本对于编程的了解非常的浅显,像专业性很强的软件产品可能更多的是业务人员组成的测试团队,比如我目前的ERP产品测试团队大部分人以往都是从事财务、供应链和生产制造的从业经验,他们在业务流程以及行业知识上较为丰富,但对于软件开发基本都没有概念。专业的公司例如google,微软等他们的测试人员都是由开发人员转入的,测试人员甚至能力强于开发,因为开发不会测试,但测试会开发。业务人员主导的团队和技术人员主导的团队截然不同,从思维还是方法上都有较大的差异。业务主导的测试会从业务的角度去验证产品,但他们可能选择的是“最笨”的办法去一遍又一遍去验证业务流程,当业务流程有成千上万或者网状业务流的时候就傻眼了,因为你永远不可能完成所有的业务验证。技术主导的测试就不一样了,技术人员的天性决定了,他们从测试的第一步开始就想着如何能够使用最为简单,更为聪明的方式去验证业务流程,他们甚至会绞尽脑汁的去设计测试脚本,通过最高效的技术手段去使用最为聪明的方式来全面验证业务流程,因为他们有良好的技术。很多深层的缺陷从黑盒的角度可能是永远无法发现的,但对于技术测试人员来说可能就是轻而易举的事情。测试团队的构成应该更加合理,技术测试和业务测试的结合是非常必要的,这也是目前国内软件公司最为欠缺的,这也是为什么现在测试在国内无法得到足够的尊重的重要原因,因为缺乏技术含量!
2、开发人员对于产品质量的保证是核心关键
当我们的测试人员每天随随便便就能轻松发现数十上百的缺陷,并甚至以此为优秀测试人员评价标准的时候,google的测试人员却在为每天能发现2个缺陷而高兴,甚至为了这2个缺陷还要编写大量的测试脚本和测试模型。因为他们在前段编码环节就已经做到了良好的质量控制,对于测试已经是精益求精的。现在国内的很多软件公司开发人员管的就是开发,好一点的公司可能会要求一些单元测试,但要求的深度缺乏衡量的标准。老师问了我,我们公司编码的效率,我说人均200行/天,他非常的惊诧,因为他们公司的编码效率是40行/天。因为他们每天除了编码,还要做好多质量保证的事情,首先开发人员要对需要编码的功能做设计分析,思路清晰后才开始编码,编码完成后要花将近一半的时间去做单元测试,来保证编码的质量。所以到了测试环节,每天就只能发现零星的几个bug。这个太让我吃惊了。对于我们经常会以任务紧,没时间等客观因素压缩设计和单元测试的时间,短期的效率换取的是长期的痛苦,甚至是用牺牲品牌的价值而换取的。
3、自动化测试要做前后端分离的测试,UI的自动化测试不可取
听到这个其实对我是一种打击,因为我们风风火火的自动化目前较多还是基于UI的测试,确实由于业务的复杂度以及更新的频度对于我们自动化的测试冲击非常大,用例更新维护的成本甚至超过了自动化测试本身带来的价值。对于功能、界面频繁变动的产品不太适合大量使用UI自动化测试。但产品的现状又不可能为了自动化测试的需求而进行大幅的更改。这个问题还在冥思苦想中。自动化测试4年了,从无到有,取得了突破性的进展,但目前却是一个转折点,如果最大化体现自动化测试的价值任重道远。从UI自动化到底层自动化突破是扭转自动化测试的关键。
突然好想去微软、谷歌、甲骨文、IBM这样的卓越企业,想去接受高成熟度的IT公司的洗礼。相信能从他们那里学到很多很多。唉,可惜只怪自己英文太烂!进这样的跨国企业没什么机会。