大家好,我是测试奇谭的作者风风。
因太多小伙伴询问风风零基础如何转行软件测试、软件测试该学什么、中级和高级测试需要掌握哪些技能之类的问题。
为了让大家系统的了解软件测试,掌握合理、正确的学习方法和目标,风风决定制作一个学习 & 成长列表,你可以根据该列表制定自己不同阶段的学习 & 成长计划。
tips:
斜体字表示有链接文章,具体可以看我的专栏(更多文章,可在国民社交软件上搜一搜:测试奇谭)
本文长期更新
本文只谈测试工程师路线,管理路线暂时不谈
分级因人而异,因公司而异,根据所需拿取
测试基础
无需多说,必须重点掌握!!!一切技术皆由理论发展而来。
01 学习内容
①职业介绍:IT公司和互联网公司各岗位的工作职责,如开发、测试、产品、设计、项目经理等
②软件流程:研发模型、研发流程、版本迭代、项目需求、需求文档、测试流程、上线流程等
③测试设计:测试计划、测试方法、测试用例、测试管理工具
④BUG:定义、分类、生命周期
02 学习程度
初级-能够理解并说出这些概念,能自己组织语言讲懂给一个不是测试行业的人
中级-完全理解,能够结合工作理解基础,明确每一个概念的真正意义,有自己的反思和总
高级-完全吃透,随着思维和技能的提升,起于基础,又归于基础,以解决问题为导向
03 学习方法
职业介绍百度即可。
其他建议看理论书籍,花一到两周时间系统学习,最好不要百度。
自学软件测试,该读写什么数据?
测试分类
01 功能测试
亦称黑盒测试,常被调侃的点点点工程师,分app测试(手机上的应用程序)、web测试(浏览器访问的网页)、接口测试(访问服务的资源路径)三种。
别管网友如何调侃,如果你能成为业务专家,点点点,未尝不可。
偏题了,害~
初级-根据公司要求,会其一,了解另二,最好了解接口测试
什么是接口测试?这篇文章让你明白
分享一份适合练手的接口测试实战项目
分享一份适合练手的软件测试实战项目
自学软件测试,缺少项目实战怎么办?
中级-三者都通;业务水平在项目组中等偏上
移动端应用测试需要考虑的崩溃场景
高级-三者都精通;业务精英或者业务专家,可怼产品,能给建议;有全局意识,逆向思维,破坏性思维,主人翁意识
全链路测试:容易忽略的上下游超时时间
02 性能测试
初级-无要求,掌握是加分项
中级-熟练使用主流的性能测试工具,如jmeter、loadrunner等,有相关性能压测经验;能手撸压测脚本;了解服务架构设计,了解性能分析,能协助开发调优
高级-另一条专职专岗的技术路线——性能测试工程师,调优、架构、压测平台玩得有模有样。对技术要求特别高,不建议走此路,除非你真的喜欢,有天赋,肯努力
03 白盒测试
重温黑盒、白盒与灰盒测试方法
初级-无要求,简历上写了是减分项,除非你真懂
中级-多少知道一点开发的代码架构设计,会bug定位,了解代码走查,代码诊断,代码审查等
bug定位与总结系列
高级-技术专家,部门带头人。对技术要求特别高,不建议走此路,除非你真的喜欢,有天赋,肯努力
04 安全测试
初级-无要求,简历上写了是减分项,除非你真懂
中级-多少知道一点渗透测试、SQL注入、XSS攻击、暴力破解等
安全测试02:sql绕过认证
安全测试01:探测应用程序
高级-另一条专职专岗的技术路线——安全测试工程师,准黑客或黑客级别
05 自动化测试
具备编码能力,以开发app自动化、web自动化、接口自动化、PC自动化、数据自动化、各类自动化平台项目
初级-无要求。了解常用的自动化框架即可
中级-掌握一种或两种编程语言;熟练编写自动化测试用例和脚本,能够深入到自动化测试框架的方法层;会debug
自动化测试系列
高级-已经掌握各类开发技术,充分了解各编码语言、各自动化框架的优缺点,深入到自动化测试的架构层,具备框架开发能力,能根据工作需求进行设计,能开发自动化测试平台、效能平台等,能独立承担中大型自动化测试项目
为什么你做自动化测试总是难以提升?
测试技术
01 网络协议
初级-初步了解TCP/IP、HTTP、HTTPS等知识,包括但不限于了解一个url访问的生命周期,区分get请求和post请求,知道cookie、session等;会抓包
Fiddler抓包指南02:重要函数和快捷操作
Fiddler抓包指南01:认识Fiddler
Fiddler调试权威指南
中级-结合工作,能在各种复杂场景下的追溯请求;懂抓包;懂mock;懂篡改请求响应数据等高级-掌握网络编程技术
02 Linux
目前,大多数公司的服务器部署在linux系统上,且云服务正盛,故需要掌握该技能
初级-会用常用命令,如查看,复制粘贴、访问日志等
中级-安装软件,搭建服务,会排错;shell初级脚本;能手撸Linux三剑客之一grep;了解云服务知识
高级-会问题排查,熟悉系统指标;shell高级脚本;正则表达式;能手撸Linux三剑客另二之sed、awk;熟悉各类云平台及服务
04 编码能力
同上面讲的白盒测试和自动化测试,有些许相似之处
初级-无要求,了解基本语法。非科班专业,建议学python
极简python教程:赛前说明
中级-独立或部分独立完成一个项目
高级-独立完成一个复杂项目;熟悉常见架构,分布式系统;能实现后端服务,具备全栈开发能力
05 版本交付
初级-无要求,但要知道什么是版本管理和版本交付,知道git和svn工具,了解Jenkins
中级-随着自动化测试的进行,编码技术的提升,自然会掌握该技术
高级-没啥说的,看代码,合代码,控制项目版本,CI/CD
06 数据库
初级-安装、访问、常用的增删查改sql语句,工作中使用最多的是select和update语句
中级-子查询、分表查询,存储过程,索引;mysql、redis
高级-搭建服务,部署系统,问题排查。很多线上问题跟数据库有关
07 其他技术
如缓存,多线程,Docker,k8s,中间件mq、nginx等
初级-无要求
中级-根据公司要求来,懂一些测试方法,出现了相关bug,知道咋回事,而非一脸茫然
高级-熟练掌握各类技术,知道其原理,上手测试毫无压力
软技能
一名软件测试工程师的日常
测试技能决定你的测试职业发展,而软技能会决定你整个职业生涯。
01 项目相关
初级-没啥想的,干好本职测试工作,好好学习
中级-熟悉测试业务,至少是项目负责人,如果一直待在一个行业,对该行业有了解和认识;除开工作,开始思考一些问题,如提升效率等,并注重文档写作、个人总结等
一次线上事故引发的验收测试总结
边提bug边思考
高级-吃透业务,吃透行业,吃透测试的本质,owner独当一面,输出 & 分享,向上汇报……太多了,因人而异
持续进阶系列:高可用测试方案和思维
测试思维进阶:站在用户角度进行测试
02 职场相关
独立思考、逻辑能力、解决问题思维、风险意识、分析能力、执行力、沟通能力、团队协作能力……
这个不罗列了,因人而异,因追求而异,略偏题。
03 面试 & 简历先贴几篇文,后面再更新。
面试资料可戳我获取
简历优化实战案例03:自我介绍篇
简历优化实战案例02:个人技能篇
简历优化实战案例01:工作经历篇