先简单介绍一下自己。本人最早在上海一家外资企业做程序员,后来部门发展需要组建测试团队,可能我平时比较注重一些细节所以老板找我谈话要我去搞这个事情。其实一开始我是拒绝的,毕竟自己还是对开发更有兴趣。后来过了不久换了个老板,结果这个老板也让我做这一行。那我就想了是不是自己的确更适合转测试,于是就答应了,然后就做了三四年的测试,所做的事情基本覆盖到了测试领域的所有角色。所以我觉得还是有资格来谈谈测试的。对了,我现在又做回开发了。
如果记得没错,测试在2008年那阵是很火的。我们公司那时候也从国外分部请了有几十年经验的测试专家来授课,当时自己也是好像发现了新大陆一样对测试充满热情,各种讲座各种资料不停,理论知识前所未有的扎实。然后就回到了现实中来:
1. 如果是开发API的,那做测试其实是很开心的。从自己搭建整个测试平台到写完全套测试框架,这个成就感完全不亚于做开发的。甚至来说更有优势感,因为程序员大多只知道局部,而你测试是要知晓所有的需求细节,对于产品的理解你应该是不会比产品经理差的。但是,现实生活中有更多的软件是有人机界面的,作为一个正常的软件工作者来说肯定不愿意手动测试啊,说实话在我眼里手动测试是直接和浪费生命划等号的。
2. 不想做手动测试,那就争取自动测试吧。试验了市面上几个比较有名的自动测试框架。典型的理想很丰满现实很骨感。自动测试主要是为了解决回归测试问题的,但这世界上基本没有需求不变的项目。需求的变化往往贯穿整个项目的生命周期,前端又不幸是变化最频繁的一块,所以想用自动化测试测人机界面的想法其实是很不靠谱的,而且以往的经验也告诉了我这种情况下手动测试效率更高。我们公司那时候最终是从外包公司雇了一批人来专门做手机端和pc端的界面测试,场面颇为壮观。
3. 很多书上都说软件测试多么重要,但实际情况大家可能都知道。你再有道理,也比不过项目deadline. 我过去有一个项目在做最终测试报告里指出了VOIP的通话质量问题,并明确说明质量不达标不予接受。但又怎么样?最终还是老板一句话。虽然最终客户也没接受这个交付,但对我的触动还是很大的。
4. 软件测试人员对于项目的成功与否说实话没有什么太大的帮助。软件开发的好,就不会有太大的问题。一般没有什么主要问题的软件以我的经验客户都不会有太大的意见。软件开发的烂,你测试爆出一大堆问题也没什么卵用。底子做的不好不管你怎么改都不会好到哪里去。
5. 什么公司需要专职测试?我想了一下也就是一些大公司了。这一点国内做的还算是比较正规的了。像我现在在国外,大公司也有但哪里有那么多测试职位出来?更多得中小企业需要的就是开发。软件开发出来了自己内部测试一下就行了哪有什么资源去单独找测试啊。我想这也是敏捷开发就行起来的一个原因,未来更多的我相信还是这个走向。
我没做测试相关工作也有四五年了,不知道现在国内测试搞得怎么样。我其实很庆幸当时做测试的那几年没把开发扔下。测试很美好,但无奈现实没那么理想,一想到手动测试,或是看着软件设计的一塌糊涂而无能为力的场景,我想我是不会再回去做测试的了。