最近和字节跳动的一个老朋友闲聊,感触颇深,据他说公司近期招聘的测试工程师,大多数候选人都有一个“通病”:在工作2-3年的时候遇到瓶颈,而且是一道很难跨越的坎。 为什么会遇到这种情况?因为大部分测试工程师在工作了一段时间后,都可以完成最初的基本知识储备和基础技能积累,技术水平差距不大,通常集中在用例设计、测试执行的掌握程度上。
但如果一个测试工程师只局限于功能测试,只停留在手工点点点,一直沉浸于基础测试技能的熟练度,周而复始他当然会遇到技术瓶颈。 很多人会认为这是一道很难过的坎,却不知,迈过去了,便是海阔天空,你会进入到一个更高的阶段,你会在这个区间继续成长为高端测试人才。迈不过去的人,就可能原地打转,迷茫焦虑,走进瓶颈期,遇到中年危机等
职业发展一阶:
技术技能要求:执行测试用例,记录测试发现的Bug,跟踪Bug生命周期状态,回归Bug,参与项目测试方案与用例设计等的评审。
对象:一般为刚踏入测试行业的新手。
职业发展二阶:
技术技能要求: 以设计模块级测试方案、测试用例、测试代码为工作重点,执行测试用例为辅;组织模块测试设计评审;参与模块级开发设计方案评审,能独立完成规范的测试流程个节点的工作。
对象:一般为有1-3年经验的测试人员。
职业发展三阶:
技术技能要求: 设计某项目总体测试方案,制订测试计划;对项目的某类或某特性进行测试,如自动化测试、内存泄露、性能测试、安全性测试等;对有一定技术深度或难度方面的测试有独当一面的能力,且收到效果;培养测试新人成为合格的测试工程师。
对象:有3-5年项目测试经验者。
职业发展四阶:
技术技能要求: 制定某类产品测试总体策略、测试流程,制定相关测试规范、指南;负责某类产品测试平台建设;指导重点测试方案设计,对测试设计有一定的创新能力,并收到效果;资深测试工程师的导师。
对象:有5-10年的测试经验者。
职业发展五阶:
技术技能要求: 负责某产品先测试策略、测试方法、流程规范的制定;规划、设计和开发测试平台;为了不断降低公司研发成本而进行新测试技术的研究、实践和推广;技术线上测试人才梯队的结构设计。
作为一个过来人,对过程中的困难深有体会。所以我热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、自学方法、心得及踩过的一些坑,记录下来。
更希望想你能通过我的分享可以少走一些弯路,可以形成一条自己的体系,并应用到实际中。当然,也真心的希望你们升职加薪,或许这才是最实际的吧。
我按照薪资的不同大致划分成3个档位:
可能你是刚毕业的学生,也可能你是打算转行进入软件测试这个行业,那么首先以下基本的理论你是必须要掌握的:
软件测试的定义、生命周期、工作流程、需求分析;
测试用例的设计、编写、评审;
bug的基本知识以及禅道的使用;
测试计划、测试报告的编写;
SVN、Git版本控制工具的使用;
搞定上上面的这些基本必备内容,就已经知道可以做具体的实战内容,这个时候最好是先找一个web测试项目去做一下,假如一个项目拿到手之后,按照下面的一套流程跑一遍:
发布项目进行立项,建立项目组进行分工;
需求评审,学会如何看需求文档,进行需求分析,罗列测试点;
整理测试点,编写测试用例,然后进行用例评审;
执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;
分析、总结、编写测试报告;
这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:
Linux、数据库、接口测试、APP测试等
OK,搞定了这些,恭喜你已经可以投出你的简历去寻找一份测试的工作了!
嗯,大概就是以上的内容吧,以上全部都是理论和文档能力、只要你肯背、肯写,都是能独立的掌握的。
会了以上这些内容,只能说是能够获得一份工作,但是现在行业招人的要求原来越高,搞定自动化或者性能测试,才能拿到10k以上的月薪。
先说性能测试,行业内是有很多误区和痛点的:
如果要搞定这些问题,那么性能测试你得这么去学:
性能测试的概念和流程:常见问题剖析、流行工具、方案设计
性能测试工具:jmeter工具的使用、实战;jmeter多协议、拓展与定制;分布式压测与任务调度;
性能监控:性能监控体系与监控数据采集
性能实施:分布式服务压测,场景设计、场景执行;测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析
性能分析与报告:jvm调试与系统调试;性能瓶颈分析
性能测试你能到这个程度,15k那是妥妥的了,如果下面自动化测试的学习内容你能够掌握,那就可以直接冲击月薪25k!
搞定Python或者Java语言,建议先从Python入手,先学习Python的基本语法等。
web端的自动化测试:selenium安装、录制、处理;web控件、JavaScript脚本、PO模式;
移动端APP自动化测试:appium使用、录制、元素定位方法;APP控件定位、交互,参数化用例;appium问题定位分析、源码分析、二次封装;
服务端接口自动化测试:接口自动化测试框架request;接口请求构造、断言;json/xml请求、响应断言;headcookie处理、认证体系;
性能和自动化玩精通,月薪在10k+甚至是20k+都是很轻松的,那如何冲击30k+呢,这就要求往技术专家或者管理层去发展了,但是即使做管理,也必要要求技术水平够硬?说做管理不需要技术精通?你试试底下的人会不会反你?
在测试开发的路线上,就要求更加专精,更加全面:
完善测试技术体系:Linux、docker、shell、SQL、Python/java
打牢自动化测试技术基础:
web自动化测试:selenium测试框架;PageObject设计模式、原则、演练;
APP自动化测试:Android自动化测试框架;appium高级应用于原理剖析;APP自动化测试实战;测试框架封装改造;ios自动化测试;
移动专项测试:健壮性测试、弱网测试、崩溃检测、耗电量分析等;移动端性能测试;移动端安全测试;
接口自动化测试:接口协议与抓包、代理技术与mock;接口自动化测试框架、HTTPrunner测试框架;dubbo接口自动化测试;接口管理工具swagger、接口安全测试
docker容器技术:docker容器、docker镜像;
持续集成/持续交付/devops:jenkins持续集成;Jenkins持续交付;
在这里,我想给想进阶的朋友们一点建议:很多时候,很多事情,并不像你想象中的那么简单,千万不要自认为简单而不愿意去做,很多东西只有你亲手去做了之后,才会发现事情并不像你最初想的那么简单。
其实自动化测试的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点了解的程度。so,出去面试时先看看自己复习到了哪个阶段就好。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)