最近,不少朋友咨询我软件测试学习的事情 ,大多数朋友比较聪明,懂得合理求需,但依旧有不少朋友没有目标,一来就问:
有没有资料?
学会后能赚多少钱?
其实,你只需多想一想,这两个问题便有答案。
有没有资料:关注我后一大堆,想要什么有什么;
学会后能赚多少钱:这个不是跟个人能力挂钩吗,你越优秀当然越高。
相比资料和其他杂七杂八的考虑,作为一名初学者,此时此刻,你最应该关心的应当是——我该学些什么以及我该怎么学。
根据我个人过往经验和身边转行人的分享,我可以明确地告诉你:自学能力强的人,若没有找到合适的方法,仍旧会花费很多时间。
那何为正确的方法?
首先,我得纠正你的一些想法:
1 若没有人指导,单靠自己摸索,有时间成本,如果你计划短期入行,不太现实
2 若有人指导,但你是一位伸手党,被动地学习,不思不总结,依然艰难
你咨询我,我能帮你的也只是告诉你该学些什么以及分享给你正确的学习方法。
比如:
自学软件测试,该读些什么书籍?
自学软件测试,如果没有项目实战怎么办?
如何打开正确的python学习方法?
黑盒、白盒、灰盒测试的区别?
……
今天,我就再补充一点,转行软件测试,一般需要掌握什么技能技术。
你可以先自己去了解,也可以等我后续的持续分享。
一、技能篇:
1 测试的工作流程、测试的职业发展
测试用例设计方法(等价、边界、因果、场景等)
2 常见的测试用例(web、app等)
3 bug分类定义和bug管理
4 测试管理工具
掌握(注意,是掌握)这些知识,另外再合理美化简历,刷点面试题,转行完全够,就看薪水和公司你能否接受而已。
但如果你有更高的追求,想摆脱黑盒测试和点点点的命运,并且以此做跳板,持续发展,高薪稳业,你还需要:
技术篇:
数据库(基本操作、增删改查、常用查询语句)
网络(http协议、网络抓包)
python编程语言(基础语法、数据类型、文件处理、面向对象、常用库、自动化框架等)
linux(环境搭建、基础知识、常用命令等)
软件测试入行门槛很低,但发展门槛依旧很高,毕竟,你得明白社会现实:你有多大的能力赚多大的钱。
二、如何根据自身条件进行职业规划
关于职业的规划,我觉得可以分为三个阶段,分别是:初级测试工程师,高级测试工程师,测试开发/测试主管。
这里说明一下,之前的两个阶段都是一致的,都是对于软件测试技能的积累。当完成最基本的技能以及经验的积累之后,可以有两个选择:
如果你对于代码的兴趣更高,可以往测开方面发展;
如果你对于团队建设、管理,以及项目的把控比较有兴趣,就可以往管理方面发展。
接下来,我就简单介绍一下,各个阶段,应该具备的能力。
阶段1_初级测试工程师及能力要求:
- 能够完成手工测试
能够编写手工测试用例
能够执行手工测试用例
能够使用工具,定位测试过程中遇到的问题 - 能够完成接口测试
编写接口测试用例
使用工具,执行接口测试用例 - 能够使用工具,完成性能测试
阶段2_高级测试工程师及能力要求:
- 能够使用代码搭建自动化测试框架
搭建接口自动化框架
搭建UI自动化测试框架
阶段3_高级测试工程师两条路径
当你对于代码有一定的基础,并且能够在平时的软件测试工作中引入代码来帮忙你更好完成测试工作的时候,你可能就需要考虑,之后的发展了
- 路径一_测试主管:管理方向,独立带队完成项目的测试
- 路径二_测试开发:完成测试平台以及测试工具的开发
附带一张学习规划路线
俗话说,不谈报酬只谈理想,都是耍流氓!!那我们就从下面这个来看一下,你通过不断的努力提升自己之后薪酬的回报情况~
各阶段薪资待遇
三.如何根据规划系统学习测试
我们明确了各个阶段应该具备的能力之后,我们接下来就来看一下,具体这些能力我们需要去学习哪些的技能,以及对应大概需要花费的时间。
阶段1_初级测试工程师
学习最基本的软件测试技能,包括:
- linux基础命令:日志查看,文件操作
- sql的基础语法:增、删、改、查
- 测试基础知识:测试用例的设计方法,风险预警,缺陷管理
- 测试工具使用:Postman,Jmeter,Fiddler/ Charles,ADB
当初我从零开始到掌握这些技能,大概也就是三个月的时间。而且这三个月里面,真正的技能学习linux命令,SQL基础语法,测试工具使用也就是一个月,在工作中一边学习一边使用,很快就掌握熟练了。
真正需要花时间的理解的是,测试用例的设计。这个是我跟了好几次的迭代之后,才越来越熟练的。
阶段2_高级测试工程师
这个阶段学习的重点,就已经放在自动化上面了。而且这个自动化是自己能使用代码搭建自动化框架,完成项目的自动化测试。所以步骤分为两步:
第一步:代码学习
代码学习,我推荐从Python入门。因为对于代码基础为零或者很差的同学,Python的入门相比较Java,要友好很多。我个人就是Python和Java都是自学的。
Python我从入门到能够编写自动化框架,学习了两个月(因为是在职,只能每天下班之后,以及周末学习)。Java的学习,我在有Python的基础上,入门学习就是三个月,然后搭建接口自动化的项目,在团队大佬的指导下小半年才完成。
所以,如果从零基础开始,要使用Java完成自动化框架的完成,没有一年的时间是很难的。
所以,我已过来人的身份,强烈建议代码从Python开始。因为这样,你才能最快完成第二阶段的目标,使用代码完成自动化框架的搭建。
这里有个注意点:就是python语言,是分成两种学习目标的,一种是python开发,一种是自动化测试。当前python开发的学习资料相比python自动化测试多很多,如果是用python开发的学习资料来学测试,就会入“无从下手,且事倍功半”的坑,