测试管理 闲聊测试工程师

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

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

一,测试工程师的历史

我算是接触互联网测试工作比较早的一批人了,在 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 条回复 时间 点赞

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

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

槽神 回复

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

0x88 回复

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

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

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

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

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

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

围城 回复

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

胖虎 回复

哈哈,那又如何?

围城 回复

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

笑哼 回复

压力并发测试

爱偷懒的QA 回复

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

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

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

magicyang 回复

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

爱偷懒的QA 回复

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

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

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

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