大家好,我是安酱。
这年头,总会有各种歧视链存在,总会有人觉得难的就是好的。
殊不知,每个岗位都有牛人,适合自己的才是最香的。
今天,我就找了一位测试开发小姐姐,她虽是天坑专业出身,但仅通过两个月的速成,直接拿到了多家互联网独角兽的30w+的的工作。
她告诉我,岗位没有好坏,工作高,自己喜欢不就得了。我们来看一下她的正文:
这是一篇干货文,准备跨行转互联网的同学可以看这里。
今天主要分享软件测试工程师需要具备的一些技能,推荐给想要转行互联网,又没有经验技术的小白,让你有个努力的方向。
测试开发相对来说的确门槛会低一点,我们每个人都可以是「测试」,但却不是每一个人都能成为测试开发。
举个栗子,大家都体验过双十一抢购付款时,付款页面过于拥挤导致刷新不出来崩溃了。
又或者打开一个网站,等了半天只等到页面上显示的404 not found
,这些都可能是BUG
。
是不是觉得测试的工作就是这样,只需要点点点就可以了。
我的回答是,是也不是。说是,是因为初级测试大概率就是在不停的点点点,做一些基本的功能测试,即使没有经验,也可以胜任。
初级测试工程师的薪资大概在4K-8K,根据实际情况会有波动。
说不是,想要月薪过万,可不能只停留在功能测试。
真正优秀的测试开发工程师是不仅能发现Bug,还能分析定位原因,可以熟练利用一些工具代替繁琐的手工测试。
还需要一定的代码能力,可以自主开发自动化测试平台或者工具,实现自动化测试。
不仅如此,测试开发以为着需要对软件的质量负责,因此还需要把握和评估其中的风险,从大局上把控软件开发迭代中的各种未知和异常。
可以说,测试开发工程师在整个工程迭代过程中的重要性不言而喻,大概率直接决定你写出的代码会不会造成线上事故。
可以很确定的说,现在成熟的互联网企业不可能没有测试开发这个岗位。就是这么自信。
说到这里,那测试开发工程师都需要具备哪些技能呢?这里总结了八大模块,建议小白和初级测开可以先掌握1234
点。
1、软件测试基础,掌握测试流程、熟悉编写测试用例;
2、数据库基础。增删改查等SQL
语句,掌握连接查询的操作技巧;
3、Linux模块。熟练掌握Linux
常见命令,文件处理、日志类;
4、项目实战。GitHub
开源项目,体验完整测试流程;
5、Python脚本代码。掌握基本语法函数、文件日志等处理;
6、接口测试模块。熟练掌握HTTP
协议、抓包工具、postman
、Jmeter
等工具的使用。
7、性能测试。性能测试基本概念、服务端的指标、压测脚本;熟悉服务器的监控和性能数据分析;
8、自动化测试。接口自动化、APP
自动化、web
端测试(递进的过程);
初级:1234;中级:123456; 高级:12345678;
1 软件测试基础
万丈高楼平地起,测试先从理论起。
首先你需要知道什么是软件测试,简单来说就是利用一些手段来发现软件中的错误、不合理的地方。
如何发现呢,你需要先知道产品的需求,比如需求说首次打开抖音默认是推荐首页,但你打开却是「我」的页面,这时你就可以勇敢给开发提Bug
了。
如何提呢,直接跑去告诉开发你的代码有问题,我不保证开发会不会打你哦。
这里涉及到Bug
的管理和跟踪,常用的工具有禅道、JIRA
等,功能基本包括项目类型、Bug
所属项目、影响的版本、类型、指派人、优先级、严重程度等等。
一般提交完成bug
后,需要跟踪bug
的状态,如果验证通过了才可以关闭此bug。除此之外,你还需要掌握测试用例的设计和编写。
例如让你测试微信登陆页面,你需要测试哪些方面,如何测试,预期结果如何等等。
测试基础还有很多,诸如,黑盒白盒测试、软件的生命周期、测试报告编写等等。
2 数据库基础
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
常用的数据库有MySQL、SqlServer、Oracle等,但不管是哪种数据库,你都一定要掌握数据库数据的增删改查操作以及连接和查询。
这一块就没啥好说的了,就是作为一个开发的基本修养。
3 Linux模块
需要掌握Linux
常见的命令,尤其是文件处理、日志查看之类的,用到的频率很高。比如cd,mv,pwd,ping啊之类的。
因为在测试的过程中,需要对不同环境进行兼容性的测试。因此对不同的系统的熟悉也有一定的要求。
4 项目实战
项目经历是面试必备问题,对于应届生来说,可能缺乏项目经验,建议可以去GitHub寻找开源项目,跟着项目测试,体验完整测试流程。
从中可以强化理解系统测试项目的实时过程和技术细节。经过一番实操之后,面对面试官的提问才会更有信心和底气,遇到技术细节也不用担心啦。
初级测试满足前面提到的1-4
步,需要进阶的参考1-6
,可能大佬级别的就是1-8
都精通了吧。
5 Python编程基础
掌握Python
的基本语法规则、函数、数据类型等,可以独立进行常用的文件日志处理脚本的编写。
打好基础,为后面的自动化测试做好准备。
6 接口测试模块
首先需要对网络协议有一定了解,一般与网络相关的都离不开协议,接口测试也和HTTP协议等密切相关。
还需要会使用接口测试工具,读懂接口文档,会写接口用例,会去实现接口的脚本,比如说没有文档的时候我们还要会去抓包(Fiddler)。
除此之外,postman
、Jmeter
等接口测试工具的使用也很重要,毕竟工具用的好,涨薪少不了。
7 性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
例如,淘宝双十一有上亿人同时抢购,为避免到时候服务器承受不住如此巨大的用户量出现崩溃,就需要提前测试,那总不能找上亿个人来帮你测试吧,这里就需要用到性能测试工具了。
除次之外,常见的服务端指标要知道,例如平均负载、进程/线程交换率、CPU
利用率等等。此外熟悉服务器的监控和性能数据分析也很有必要。
8 自动化测试
这需要有一定的编程基础以及测试基础,是个循序渐进的过程,需要提升的技术很多,例如接口自动化、APP
自动化、web
端测试逐步递进。
开发能力很大程度上也是为了能够自主编写出自动化测试的工具或者平台。
在大公司,其实测开很多都跟普通的开发没啥区别,只不过是开发测试相关的工具,为普通开发者以及普通的测试服务。
所以测试开发并不是一个简单而无脑的工作,反而更像是开发的子集,能够在一个更专的领域进行代码输出。
不管任何时候,努力提高自己的技术都没有错,尤其是大热的互联网行业,薪资水平还是很香的。
如果你是没有任何经验的小白,并且开发能力稍微弱一点,同时也喜欢找茬,软件测试开发工程师或许是比较合适的选择。
如果你想要去更好的平台,想跳槽互联网大厂,那就持续提升吧。