您的位置: 首页 > 业务知识 > 正文

初、中、高级测试工程师成长指南

发表于:2021-04-08 作者:风风 来源:博客园

因太多小伙伴询问风风零基础如何转行软件测试、软件测试该学什么、中级和高级测试需要掌握哪些技能之类的问题。

为了让大家系统的了解软件测试,掌握合理、正确的学习方法和目标,风风决定制作一个学习 & 成长列表,你可以根据该列表制定自己不同阶段的学习 & 成长计划。

测试基础

无需多说,必须重点掌握!!!一切技术皆由理论发展而来。

01 学习内容

①职业介绍:IT公司和互联网公司各岗位的工作职责,如开发、测试、产品、设计、项目经理等。

②软件流程:研发模型、研发流程、版本迭代、项目需求、需求文档、测试流程、上线流程等。

③测试设计:测试计划、测试方法、测试用例、测试管理工具。

④BUG:定义、分类、生命周期。

02 学习程度

初级-能够理解并说出这些概念,能自己组织语言讲懂给一个不是测试行业的人。

中级-完全理解,能够结合工作理解基础,明确每一个概念的真正意义,有自己的反思和总。

高级-完全吃透,随着思维和技能的提升,起于基础,又归于基础,以解决问题为导向。

03 学习方法

职业介绍百度即可。

其他建议看理论书籍,花一到两周时间系统学习,最好不要百度。

自学软件测试,该读写什么数据?

测试分类

01 功能测试

亦称黑盒测试,常被调侃的点点点工程师,分app测试(手机上的应用程序)、web测试(浏览器访问的网页)、接口测试(访问服务的资源路径)三种。

别管网友如何调侃,如果你能成为业务专家,点点点,未尝不可。

偏题了,害~

初级-根据公司要求,会其一,了解另二,最好了解接口测试。

中级-三者都通;业务水平在项目组中等偏上。

高级-三者都精通;业务精英或者业务专家,可怼产品,能给建议;有全局意识,逆向思维,破坏性思维,主人翁意识。

02 性能测试

初级-无要求,掌握是加分项。

中级-熟练使用主流的性能测试工具,如jmeter、loadrunner等,有相关性能压测经验;能手撸压测脚本;了解服务架构设计,了解性能分析,能协助开发调优。

高级-另一条专职专岗的技术路线——性能测试工程师,调优、架构、压测平台玩得有模有样。对技术要求特别高,不建议走此路,除非你真的喜欢,有天赋,肯努力。

03 白盒测试

初级-无要求,简历上写了是减分项,除非你真懂。

中级-多少知道一点开发的代码架构设计,会bug定位,了解代码走查,代码诊断,代码审查等。

高级-技术专家,部门带头人。对技术要求特别高,不建议走此路,除非你真的喜欢,有天赋,肯努力。

04 安全测试

初级-无要求,简历上写了是减分项,除非你真懂。

中级-多少知道一点渗透测试、SQL注入、XSS攻击、暴力破解等。

高级-另一条专职专岗的技术路线——安全测试工程师,准黑客或黑客级别。

05 自动化测试

具备编码能力,以开发app自动化、web自动化、接口自动化、PC自动化、数据自动化、各类自动化平台项目。

初级-无要求。了解常用的自动化框架即可。

中级-掌握一种或两种编程语言;熟练编写自动化测试用例和脚本,能够深入到自动化测试框架的方法层;会debug。

高级-已经掌握各类开发技术,充分了解各编码语言、各自动化框架的优缺点,深入到自动化测试的架构层,具备框架开发能力,能根据工作需求进行设计,能开发自动化测试平台、效能平台等,能独立承担中大型自动化测试项目。

测试技术

01 网络协议

初级-初步了解TCP/IP、HTTP、HTTPS等知识,包括但不限于了解一个url访问的生命周期,区分get请求和post请求,知道cookie、session等;会抓包。

中级-结合工作,能在各种复杂场景下的追溯请求;懂抓包;懂mock;懂篡改请求响应数据等高级-掌握网络编程技术。

02 Linux

目前,大多数公司的服务器部署在linux系统上,且云服务正盛,故需要掌握该技能。

初级-会用常用命令,如查看,复制粘贴、访问日志等。

中级-安装软件,搭建服务,会排错;shell初级脚本;能手撸Linux三剑客之一grep;了解云服务知识。

高级-会问题排查,熟悉系统指标;shell高级脚本;正则表达式;能手撸Linux三剑客另二之sed、awk;熟悉各类云平台及服务。

03 编码能力

同上面讲的白盒测试和自动化测试,有些许相似之处。

初级-无要求,了解基本语法。非科班专业,建议学python。

中级-独立或部分独立完成一个项目。

高级-独立完成一个复杂项目;熟悉常见架构,分布式系统;能实现后端服务,具备全栈开发能力。

04 版本交付

初级-无要求,但要知道什么是版本管理和版本交付,知道git和svn工具,了解Jenkins。

中级-随着自动化测试的进行,编码技术的提升,自然会掌握该技术。

高级-没啥说的,看代码,合代码,控制项目版本,CI/CD。

05 数据库

初级-安装、访问、常用的增删查改sql语句,工作中使用最多的是select和update语句。

中级-子查询、分表查询,存储过程,索引;mysql、redis。

高级-搭建服务,部署系统,问题排查。很多线上问题跟数据库有关。

06 其他技术

如缓存,多线程,Docker,k8s,中间件mq、nginx等。

初级-无要求。

中级-根据公司要求来,懂一些测试方法,出现了相关bug,知道咋回事,而非一脸茫然。

高级-熟练掌握各类技术,知道其原理,上手测试毫无压力。

软技能

01 项目相关

初级-没啥想的,干好本职测试工作,好好学习。

中级-熟悉测试业务,至少是项目负责人,如果一直待在一个行业,对该行业有了解和认识;除开工作,开始思考一些问题,如提升效率等,并注重文档写作、个人总结等。

高级-吃透业务,吃透行业,吃透测试的本质,owner独当一面,输出 & 分享,向上汇报……太多了,因人而异。

02 职场相关

独立思考、逻辑能力、解决问题思维、风险意识、分析能力、执行力、沟通能力、团队协作能力。

这个不罗列了,因人而异,因追求而异,略偏题。