测试管理 闲聊测试工程师

爱偷懒的QA for 转转QA · 2017年08月02日 · 最后由 zhang 回复于 2017年08月08日 · 2043 次阅读

最近正是一年一度的找工作高峰期,而我作为公司的面试人员,也见了不少应聘者。总体感觉,大家对测试工程师认识不够,不太明白这个工作是做什么的,发展方向以及发展空间什么的。所以今天我们就抽个空,闲聊一下测试工程师。

一,测试工程师的历史

我算是接触互联网测试工作比较早的一批人了,在 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 语言,是主流的框架。
性能测试:
性能测试我不太了解,不过目前主流的工具是 LoadRunner 和 Jmeter。利用这些儿工具来根据需求,录制脚本,进行压力测试。还有需要对 Jmeter 进行二次开发,以完成对自己业务的完美支持。当然,还有其他很多的性能,如:http://www.cnblogs.com/EthanCai/archive/2014/05/11/3721656.html
以后对移动端的性能要求也比较高了,新出的 App 需要支持各种型号的机器。高端的机器需要支持,低端的机器也同样需要支持。以后移动端的性能,应该算是性能测试的新方向。
安全测试:
需要专业技术的东西,应用场景不是特别广泛,表示不了解,需要的同学可以去网上做专项调研。
测试开发:
测试开发是介于测试和开发之间的工种,测试开发是针对测试的开发,也就是说测试人员是测试开发的产品,他们有任何工作中的需求。测试开发人员需要积极响应,通过开发相应的工具,平台来解决他们遇到的问题。
当然测试开发要求也比较高,上述的开源框架都需要深入了解,java,python,shell,ruby 等语言的使用已经不是问题,CSS,jS,HTML 等前端的东西也要熟练使用,接口,服务的开发也是常事。在此阶段各种技术应该就不是问题了,你需要的就是解决问题的能力。
好了,就闲扯到这些儿吧,这是我在工作中得到的一些儿经验吧!现在功能测试已经饱和,自动化测试人员日渐增多,测试开发需求量变大。一个好的测试人员,要有明确的发展方向,有计划地发展自己,不能跟着需要求走,走高消耗的路线!

共收到 21 条回复 时间 点赞

期待楼主再多讲讲 测试开发 +1

了解团队情况,产品需求后,做出最佳方案才是硬道理.
快省好,三选 x.(0<=x<3)

爱偷懒的QA 回复

压力并发测试也就是性能测试哈?

magicyang 回复

确实是这样的,我研二的时候在外企实习,国外的理念是:测试必须比开发牛,否则你怎么能检查出人家代码的问题。我们当时几乎要做所有的工作,由于当时测试的是集群管理相关的软件,所以从服务网络连接,机房部署,到 Linux 操作系统启动改写,搭建集群,测试代码,修改 Bug 都需要做。测试人员可以修改所有开发人员的 bug,而不同的开发人员不能相互修改 bug!

期待楼主再多讲讲 测试开发

顶一下最后一句吧。
上周被一个 10 几年的外企测试 LEADER 教育了,你觉得测试技术含量不高,那是因为你以前没做到位,没有深入到核心的东西。
诸君共勉吧,最近看到很多 7,8 年的能力还不如 3 年的测试,一声叹息,自己又何尝不是这样呢。

爱偷懒的QA 回复

这也要看级别么,那么好吧,这样就可以理解为啥没地位了

笑哼 回复

压力并发测试

围城 回复

谁说不用 python 的,我们没有语言限制,只要你能解决工作中遇到的问题,什么语言都可以。我就在公司用 python,shell 和 java 的,开发平台,服务和脚本!

胖虎 回复

哈哈,那又如何?

围城 回复

这是硬性规定,而且本科院校不好还不行。最好是 211 或是 985 的,学校不好,面试的时候就要求的严格;非本科毕业,几乎不给面试机会,技术能力再牛也不行!

如何对 RD 写的接口做多线程测试呢?用 java 的话

我算是接触互联网测试工作比较早的一批人了,在 2010 年研二实习的时候......
你妹,我 06 年毕业参加工作,公司里已经有一大票资深测试了,你 10 年还没毕业......

而且你们 58 到家 python 都不用,都是用 java,我认识一个就在你们那,给我说的
你们招人,本科、3 年以上工作经验、自动化 or 接口 or 性能测试会一个、linux 系统熟练使用、java or python or php or html+js 会一个
来面试的人一大把,进来的没几个

你们 58 招测试都只要本科😡

熟悉下 markdown 的语法,可读性会更好点。哥

0x88 回复

其实 title 很重要的,一个测试开发工程师和一个普通的测试工程师可能做的工作类似,但是工资待遇就不一样的。必要的时候,我们还是需要追求高的职称,以最好的方法完成自己的工作,换取最好的待遇,必竟我们不是为了工作而工作的嘛!

槽神 回复

如果级别够,能在软件工程的各个阶段进行质量保证工作,当然就可以全面考虑了。在国内测试人员的地位还是不够高的,或是公司的代码太久远了,根本做不到全面考虑了。

不要总关注测试要干什么活,多关注软件开发过程中对质量技术、对生产效率提升有什么需求,这都是目前测试发展的路径

其实也都是 title 而已,都是测试,只是看业务需要什么样的测试,采用最合理的测试方式。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册