第一个:我们称之为测试员/测试工程师
直白一点说,就是干苦力活的。对标过来就是百度的T3、T4,阿里的P5,腾讯的T1-T2。主要的工作就是需求分析,测试方案,测试策略,测试执行,都是业务测试。当然你能够掌握某些领域知识,比如你是测无人车的,无人车的业务是什么,我测AI,AI是什么,我去测大数据,大数据是什么,测的是电商,电商系统的架构是什么,业务知识是要懂的。再一个是带外包团队,可能会有一部分的外包团队交给这一部分人去带。主要是也就是管理这些基础的业务测试工作。
第二个:测试开发工程师
现在第一个level是不怎么招了,多数都是从第二个level开始招。一旦提测试开发,就一定要求你懂研发,懂测试,并且有一定的深入工作的能力。从这个level开始要求你的编程能力了,Java、Python、shell、SQL,这是最基础的,然后是业务测试。
这部分人仍然会负责一部分的业务测试的工作。老大会根据你的能力,给你安排一个比例。你能力很强,80%做技术,20%做业务,如果你能力不强,那就80%做业务,20%参与一部分技术。如果你的技术太low了,那就100%的全部做业务测试。所以这个时候会根据你的能力进行合理的时间划分。这里面的要求就比刚才突然间就拔高了,客户端的UI测试,服务端的接口测试,性能测试,基本上都属于这个范畴。
面试的时候,性能与非功能测试,可能不会做一个主面试点,主要还是在自动化和编程能力。也就是目前大家出去找工作,你们最容易被卡的这一关。所以在这个level里面,也是干活的,也就是既做业务测试,也做技术上的改造,以及去写一些自动化,但是仍然是偏重于业务的。
第三个:高级测试开发工程师/测试架构师
那么到这个level,业务测试已经非常少,甚至完全没有了,这个时候更多的是负责整个团队的流程管理。流程管理体系,白盒测试体系,测试工具与测试平台的开发,再一个是质量监控,还有一个质量管理。通常一个团队里面,会有一个测试的管理,加上1-2个高级的测试开发工程师,或者叫测试专家也行。他会搭建起整个的持续集成系统。持续集成、白盒测试、以及一些平台的开发,主要会交给这些人负责。然后他会带2-3个测试开发工程师,这些测试开发工程师一边跟着他去学习,一边去做业务。然后剩下的活儿,交给外包公司或者校招的人去做。
一个优秀的测试工程师应该具有哪些能力?
1、首先必须一定要具备的就是认真、负责、严谨、耐心的态度,因为软件测试工程师吃的就是这口饭,所以必须对你所测试的产品负责。宁可错杀一千,也不可放过一个,虽然不能做到完全没有Bug,但一定要尽自己最大的努力保证产品质量。
2、要有过硬的技术本领,技术是为测试服务的,无论是测试理论、测试工具、开发知识、数据库、操作系统、网络知识、你都必须精通一门,知晓其它。当然这个做到比较难,什么都会很难,再者多了之后就不会精,什么都会也等于什么都不会,至于最后你选择深度还是广度,都由你自己把控。
3、光有技术,没有业务,再好的技术也很难使上劲,熟练的业务知识会帮助你发现更多的缺陷,进而更好的保证好产品的质量。不懂产品的工程师不是好工程师。测试工程师需要训练自己的用户思维、用户视角,把自己当作真正的用户去感受产品。同时你还可以收集产品数据来做分析,通过数据再量化产品。甚至你还要去研究竞品的相关情况,知己知彼方能百战不殆。
4、沟通能力超级重要。一个优秀的软件测试人员除了经常要与开发打交道外,还需要与产品、运维、售前、售后、客服等不同的人打交道。所以如何更准确、更简洁、更严谨的描述Bug,如何让开发人员接受你发现的Bug,如何让其他人员理解你的想法等都需要沟通,所以良好的沟通能力显的尤为重要。
5、缜密的逻辑思维能力。测试人员不仅仅只是发现问题,找出Bug。更重要的是要去寻找Bug产生的真正原因,精准的找到问题发生的源头,以便协助开发人员更好更快的彻底解决Bug。这个比较考验你思维的灵敏度和推理能力。其实测试人员和刑侦有一些点类似,除了要求有缜密的逻辑思维能力,有时候还需要具备逆向反推能力。
6、测试虽然不像开发那样创造产品,但测试需要保证产品各方面的质量,让用户使用产品时觉得舒服、方便,所以大多数测试工程师都需要有一颗追求完美的心。
未来软件测试将从繁复的手工操作中解放出来,在敏捷开发的基础上,一个测试能够做好的真正价将不在是测试执行,而在于测试分析和设计,比如自动化测试工具的使用,uiautomatorviewer、TestBird等,将手工操作逐渐淘汰,提高测试效率,这才是测试行业未来发展的趋势和净化的方向。