出处:http://blog.sina.com.cn/s/blog_68f262210102wr4d.html
最近正是一年一度的找工作高峰期,而我作为公司的面试人员,也见了不少应聘者。总体感觉,大家对测试工程师认识不够,不太明白这个工作是做什么的,发展方向以及发展空间什么的。所以今天我们就抽个空,闲聊一下测试工程师。
我算是接触互联网测试工作比较早的一批人了,在2010年研二实习的时候就开始在一家加拿大的企业做测试开发工程师了。2012年毕业的时候,貌似互联网行业开始有专职的测试人员,而且不少中小型公司还没有专职的测试人员,程序的质量由开发人员保证,产品进行简单的验收。
就算是公司有专职的测试人员,地位还是比较低的,貌似各种人都能来指挥测试人员的。产品来压测试时间,开发也来压测试时间,总感觉到测试人员什么都不会,而且没有什么好测试的。可是一旦出了问题,都会怪测试工程师没有测试到。
随着用户对产品的质量要求越来越高,公司也就注重测试工作了,各个公司开始组建自己的测试团队,对测试人员要求也开始变得越来越高。测试人员在不少公司的地位有所提高,能把控项目进度,提出不同的意见。慢慢的就和国外的企业接轨了,我实习的时候加拿大的公司的测试地位非常高,测试说测试通不过,谁也不能上线了。
二,测试工程师的来源
后来大家看到互联网的测试工资待遇还是不错的,而且门槛比较低,所以很多考虑着转行来做测试;或是其他工种,如泥瓦工,厨师,销售等等都通过上几个月的培训班,来加入到测试工程师这个行业。此处不是说其他的工种不能做测试工程师,只是在说明各个行业目前都有转测试的趋势,竞争压力还是挺大的。
三,测试工程师的分类
网上或是书上我们会看到很多类似于黑盒测试,白盒测试,灰盒测试等等吧,实际上这些儿只是书面上的分类,真正的公司中完全不是这么回事?
在互联网公司中,测试工程师的分类如下:
(1)功能测试工程师
(2)性能测试工程师
(3)安全测试工程师
(4)自动化测试工程师
(5)测试开发工程师
(6)高级测试开发工程师
(7)测试专家
当然,如果按层次来分的话,应该是如下:
第一层:(1)功能测试,按需求检测开发的产品是否符合需求。
第二层:(2)(3)(4),这层的测试人员需要熟悉使用一些儿工具,开源的框架,借助于简单的脚本来完成对被测对象做性能,安全和回归测试工作。
第三层:(5)(6),这层测试工程师需要通过编码,或是对开源的框架,工具进行二次开发,开发测试工具,测试平台等来解决前两层测试人员工作中遇到的问题,提高工作效率。
第四层:(7)测试专家,就是能够发现测试领域问题并解决某个领域的问题的人,同时还需要具有这个领域的系统化的知识体系。这个比较难达到这个级别,需要的掌握的东西还是比较多的。
行情分析:
(一)目前第一层测试人员最多,从12年加入到测试行业,到现在为止已经具有相当一部分人了。而且先前加入的人员,已经工作了三四年了,已经达到了瓶颈,业务比较熟悉,技术上没有提升。同时,不断有应届生或是年轻的小伙伴加入,对老人冲击很大,而想换工作的时候,又没有优势,非常麻烦。
(二)第二层的测试人员,貌似很高大上,借助于一些儿常用的工具,开源的框架,来录制脚本,编写自动化测试用例,然后接于到jenkins中实现持续化集成。好牛的感觉哟,其实不是这么回事,不管我们是使用工具还是开源框架,我们都是在使用工具的。一旦工具出了问题,或是消失了,收费了等不可控制的原因吧,我们就失去了优势。而且入手还算比较快的,通常牛人带你,或是参加一个专项的培训班,一两周就能入手。此类人正在慢慢地变多,而且也渐渐地失去了优势。
(三)第三层人现在的需求量比较大,但是相应的人员比较少。因为这类人需要有一定的编码能力,而普通的测试人员具有编码能力的不太多,计算机专业的人员有了编码能力就去做开发了。结果留下了这个真空地带,这个地带的人待遇相当不错,人员少,建议大家往这个方向发展。
(四)第四层人就比较凤毛麟角了,也是我们所有的测试人员努力的方面,我们就不过多介绍了。
四,目前的测试技术介绍
自动化测试:
(1)WEB UI自动化测试:主流的开源框架是Webdriver2.0,先前还是selenium 1.0,Htmlunit,经过社会上的实践,现在就只剩下Webdriver2.0。而且这个开源的框架支持主流的语言,如python,java,php等,借助于Selenium IDE,Firebug等工具,完成对Web UI的自动化测试。
(2)API或是服务的自动化测试:接口自动化测试主流技术是python的urllib2和requests模块,phpunit也可以用来做接口自动化测试,java在支持接口自动化测试方法有点儿弱,需要做一下二次封装。由于服务出于安全考虑,各大公司都会自己开发相应的服务框架,所以服务的自动化测试则是公司自己开发的框架比较多。如58赶集的SCF服务框架下开发的服务,则需要ATF框架来进行测试,所以就不能列举出服务的自动化测试技术了。
(3)移动自动化测试:移动自动化测试指的是APP UI自动化测试,后端已经由上面的接口和服务自动化来保证了。而APP UI自动化测试主流的框架是Robotium和Appium,因为Robotium只支持java语言,并且只能对Android系统进行测试,所以没有Appium应用的广。Appium支持IOS和Android系统,支持java和python语言,是主流的框架。
性能测试:
安全测试:
测试开发: