测试开发学习路线

测试开发学习路线

HI,大家好,我是Lee
通过某些圈子了解大家对于测试开发这个岗位了解的很模糊,对于技术栈不知道应该学习什么,接下来就通过各方面来说一下测试开发具体是做什么以及需要掌握哪些技术

1、了解测试开发

什么是测试开发?

大家应该都了解过测试工程师,测试工程师主要是通过各种测试方法对程序进行测试,找出程序bug,在程序发布之前,把一些潜在的、严重的bug找出来,提交给开发人员解决,并在bug解决之后进行验证,降低软件研发过程修复bug的成本,对代码的要求比较少或不需要懂代码。
测试开发是测试工程师的其中一个进阶路线,测试的进阶路线包括向自动化测试工程师、性能测试工程师以及高级测试工程师。
测试开发更适合对开发有兴趣的测试,测试开发其实是一个相对小众需求,尤其是大多数中小型互联网公司基本不需要这样的职位,因为有很多开源的测试工具和测试平台供大家使用。
现在大多测试招聘把对“具备自动化技术”的测试也冠以“测试开发”的title。
测试开发应该具有自动化测试的技术,但是不仅于此,也应该具备平台和工具的开发能力。

测试开发每天做什么工作?

不同公司的测试开发工程师做的工作不太一样,有些公司是20%开发+80%测试,某些公司相反,还有些公司是纯开发,为测试开发测试工具或者测试平台,让测试同学使用。

测试开发的薪资

关于测试开发工程师的薪资我相信是大家最好奇的,相对于测试来说测试开发的薪资确实高一点,但是是建立在自己可以进入公司并且胜任这个岗位的情况下,接下来从某招聘网站找了两个测试开发岗位
测试开发学习路线_第1张图片
测试开发学习路线_第2张图片

可以看到薪资相对来说还是可以的,但是测试开发是相对小众的岗位,并不是所有公司都需要这个岗位,所以在转岗时还是慎重考虑。

2、测试开发需要的技术栈

接下来我们说一下做一个测试开发所需要掌握的技术。

1、测试基础

首先作为一个测试开发,测试基础是必备条件。
测试用例设计方法(等价类、边界值等)是必须要会的
测试计划和测试报告的编写
测试工具的使用:
抓包工具:charles、fiddler
接口测试工具:postman、apipost、apifox、jmeter
用例编写工具:xmind
bug管理工具:禅道、jira
接口管理工具:yapi
只想做功能测试的同学,只会这些技能就足够了(标红的都是重点)

2、计算机基础

计算机基础包含的就稍微多一点
数据结构与算法
时间/空间复杂度分析
数据结构(数组、字符串、队列、栈、链表、集合、哈希表、数等)
算法(排序、查找、双指针、分治、递归、回溯、贪心等)
计算机网络
网络分词模型
网络传输过程
IP、端口
Http/Https协议
UDP/TCP协议
App地址解析协议
网络安全
DNS域名解析
操作系统
操作系统的组成
进程、线程
进程、线程间的通讯方式
进程调度算法
进程、线程同步方式
进程、线程状态
死锁
内存管理
局部性原理
mysql数据库
基本概念
mysql搭建
sql命令编写
约束
索引
事务
锁机制
设计数据库表
性能优化
Linux(基本命令、shell脚本)
Linux系统安装
环境变量
常用命令
常用环境搭建
shell脚本编程
VIM的使用
文件管理
用户管理
内存管理
磁盘管理
进程管理
网络管理
服务管理
Linux内核

3、编程语言

编程语言有很多,很多同学不知道该怎么选择,在这里我推荐java和python,首先都是最主流的语言,python相对于java来说更适合小白学习,学习成本较低且语法简单,学习java推荐有语言基础,且大部分服务端都是java编写的,学习后对于服务端测试能力有较大提升。
java基础
数据类型、流程控制、面向对象、数组、枚举、抽象类、接口、集合类、常用类、泛型、注解、多线程、IO流、反射、异常处理
python基础
python安装、开发工具使用、变量、运算符和表达式、流程控制、基本数据结构、函数、面向对象编程、模块、包、异常处理、文件操作、函数进阶、正则表达式、数据库编程、并发编程、网络编程以及三方库使用(requests、openpyxl、nose、faker、datafaker)

4、web框架

首先说一下java的框架所需要掌握的:
maven、spring、spring web、spring mvc、Mybatis、Mybatis plus
spring boot、spring Security

接下来是python的web框架:
Django、flask、FastAPI、Django REST framework
关于开发框架并不是了解就可以,而且可以根据框架来写一些东西,需要明白框架的原理以及了解框架之间存在的联系且学习java框架的时候不推荐开始就学springboot,建议循序渐进的从spring开始学习,没有时间学习的也可以直接学习springboot。

5、开发知识

前面我们已经说过开发框架的学习,这里就不重新说了,接下来说一下关于中间件以及开发常用的一些工具。
git :因为在开发平台或者写自动化或者拉开发代码做白盒测试时免不了从git上拉代码,需要了解git的的工作区和代码的提交、推送、拉取、回退、重置以及分支的操作、代码合并、分支冲突的解决,还要区分git和github。
Redis缓存:现在Redis缓存已经成为各个公司必备的一个缓存中间件,首先需要了解什么是缓存,了解本地缓存和多级缓存以及Redis的分布式缓存,熟悉Redis的一些应用场景,会解决使用Redis时遇到的一些问题(缓存雪崩、缓存击穿、缓存穿透等)。
RabbitMQ消息队列:RabbitMQ消息队列是一个流行的开源的消息队列系统,不是必须掌握,但是也是需要了解,明白消息队列的作用,会搭建RabbitMQ消息队列集群,以及可以使用java操作RabbitMQ。

6、平台开发

在学习完各种基础以及框架和中间件之后可以自己手动搭建平台,包括像监控平台、接口自动化测试平台、压测平台等,下面给大家列举了testerhome的开源测试平台,大家可以去看下。
点击跳转

7、持续学习

学习完上面的这些技术,大家就可以放心大胆的去找工作了,在这里希望大家都可以有一份满意的工作,不过在进入公司之后还是要继续提升自己的,给大家推荐一下学习的一些工具以及技术。
首先是前端,HTML、CSS、javaScript、vue,不需要学习太多的前端技术,熟悉下基础的前端三件套,了解前端是如何向后端发送请求来做数据交互的一般就够了。有时间的话可以学下 Vue ,是比较容易上手的主流前端开发框架,Vue + SpringBoot 还是很香的。
然后是后端,Redis高级操作、kafka、Nginx网关、Dobbo、微服务(spring cloud),学会如何使用中间件并不难,先能够独立使用,了解他们的应用场景;再用 Java 来操作中间件,和项目相结合。学习微服务时,建议先从 Dubbo 学起,对分布式、RPC、微服务有些基本的了解,再去食用 Spring Cloud 全家桶会更香。
最后是测试,可以学习性能测试、大数据测试、算法测试等,测试这方面就不多说了。
总之,再提升测试能力的同时也逐步提升自己的开发能力,希望大家都可以在技术方面提升一个台阶,有什么想法不同的可以在评论区讨论呢!

麻烦大家可以关注下我的公众号:测试开发Lee
以后可以一起讨论技术和生活上的琐事呢
爱你❤️

你可能感兴趣的:(测试开发,学习路线,测试工具,压力测试,单元测试,测试工程师)