赞
踩
测试开发学习路线
文章目录
前言
路线大纲
阶段0 : 前言
路线特点
符号标记
学习建议
阶段1 : 入门
目标
Python
Java
学习建议
阶段2 : 基础
目标
数据结构与算法
计算机网络
操作系统
MySQL数据库
Linux
功能测试基础
测试工具
阶段3 : 进阶
目标
Web开发框架
Git
Redis缓存
自动化测试
阶段4: 项目实战
目标
学习建议
知识点
资源
阶段5 : 求职
目标
求职建议
资源
阶段6 : 持续学习
目标
学习方向
前言
在测试行业,一般都听说过这3种岗位:测试工程师(功能测试),自动化测试工程师,测试开发工程师。目前在互联网大厂,基本都只招测试开发工程师,意味着做软件测试也需要具备代码能力
路线大纲
该学习路线一共是7个阶段,循序渐进,学习路线相对比较平缓
阶段0 : 前言
给出目标、学习建议、关键知识点、最优资源以及各类资源推荐(视频、书籍、文档、项目、工具等)
完整的测试开发学习路线,划分阶段并给出持续学习的方向
符号标记
学习建议
了解清楚测试开发的就业前景和工作内容,该岗位的核心目的是做质量保障,也可能会涉及点点点的工作,也可能需要写代码,确定自己是否喜欢
在开始学习之前,确定你的学习目标。是想进大厂还是想找到一份工作就行
了解清楚后,你需要准备一款本地IDE软件(学习python 推荐Pycharm,学习Java 推荐 IDEA,学习Go 推荐 GoLand),或者能在线运行代码的网站,如菜鸟工具 https://c.runoob.com/compile/10,用来运行代码,进行代码练习
另外你还需要准备一款记笔记的软件,用来记录学习上遇到的问题,解决方案以及自己的心得体会,优质的资料等等,推荐笔记软件有Typora、印象笔记、CSDN,再次敲重点,不要太相信你的记性,一定要用笔记软件记录下来。
阶段1 : 入门
目标
该阶段是通过学习编程语言基础,能够了解编程语言的基本语法、使用规则,能编写出简单的程序,为后续学习自动化测试框架、Web开发框架做准备。在这个阶段你可以选择Java或者Python 任意一门编程语言进行学习,有计算机基础建议选择Java作为编程入门语言
Python
知识点
函数
面向对象编程
模块
包
异常处理
文件操作
迭代器/装饰器/生成器
常用库(Requests、openpyxl)
Java
知识点
数据类型
基本数据类型
引用数据类型
枚举
数组
流程控制
判断
循环
面向对象
抽象类
接口
集合类
泛型
注解
多线程
IO流
反射
异常处理
学习建议
对于编程语言学习,需要持续、连续、系统的学习,并且需要根据视频教程或者书籍自己敲代码,这样才能加深印象,遇到问题自己先Debug尝试解决,实在不会可以百度或者请教别人
阶段2 : 基础
目标
本阶段有两个部分,一个是掌握开发的基础知识,另一个是掌握测试的基础知识
在掌握了编程语言以后,还需要巩固计算机基础知识,比如数据结构与算法,基本上公司面试时都会重点考察。
除此之外,操作系统、计算机网络、数据库、Linux这些计算机基础知识也是企业里常用到的知识 ,对你后面学习Web框架之类的知识都有帮助
对于测试基础,需要学会基础的用例设计方法、抓包等测试工具使用,这些都是做软件测试的必备技能
数据结构与算法
常用数据结构
数组
字符串
队列
栈
链表
集合
哈希表
二叉树
常用算法
排序
双指针
查找
分治
动态规划
递归
回溯
贪心
位运算
DFS
BFS
图
计算机网络
知识点
网络分层模型
HTTP / HTTPS 协议
UDP / TCP 协议
网络安全
DNS域名解析
ARP 地址解析协议
Socket
操作系统
知识点
进程、线程
进程 / 线程间通讯方式
进程调度算法
进程 / 线程状态
死锁
内存管理
MySQL数据库
知识点
MySQL 搭建
SQL 语句(重点)
索引
事务
锁机制
设计数据库表
Linux
重点知识
常用命令
常用环境搭建
Shell 脚本编程
VIM 的使用
功能测试基础
知识点
测试用例设计
等价类
边界值
错误推测
测试计划
测试报告
测试工具
抓包工具
Charles
Fiddler
接口测试工具
Postman
用例编写工具
XMind
缺陷Bug管理工具
禅道
Jira
接口管理工具
Yapi
阶段3 : 进阶
目标
该阶段分为开发进阶与测试进阶两个部分,开发进阶主要为Web开发框架学习,代码管理工具Git以及Redis缓存,为后续能开发测试平台做准备。测试进阶则是包含了自动化测试部分,学完此部分应能利用自动化测试框架编写自动化case
Web开发框架
python web框架
Flask
Django
javaweb
SSM框架(Spring、SpringMVC、MyBatis)
SpringBoot
Maven(项目管理)
学习建议
如果你选择的是Python编程语言作为入门,在这个阶段可以选择学习Flask或者Django Web框架。如果你选择的是Java编程 语言作为入门,则可以选择学习SSM框架,或者直接学习SpringBoot
Git
知识点
工作区
分支
代码提交、推送、拉取、回退、重置
分支操作
代码合并、解决冲突
Redis缓存
知识点
数据类型
常用操作
Java 操作 Redis
主从模型搭建
哨兵集群搭建
日志持久化
自动化测试
知识点
单元测试自动化
TestNG:Java 测试框架(https://github.com/cbeust/testng)
JUnit:Java 测试框架(https://github.com/junit-team/junit4)
Unittest:Python单元测试框架
接口自动化
Pytest(测试管理框架,可用来做接口自动化)
Robotframework(测试管理框架,可用来做单元/接口/UI自动化)
UI自动化
Selenium
Appium
阶段4: 项目实战
目标
此阶段分为两个部分,开发实战和测试实战。对于开发实战,希望大家能把前面所学的编程语言,数据库,Linux等知识,开发出测试平台,或者利用自动化测试框架,实现case编写、case执行以及生成测试报告一系列操作。对于测试实战部分,可以通过利用测试工具,如Postman、Charles 完成接口测试,对于遇到的问题,能够通过日志分析,自主排查问题
学习建议
对于测试开发岗位的实战学习,最好能在公司真实环境内部进行,因为只有在公司内部才能体验到完整的项目流程。如果说对于想转行做软件测试的同学实在没有项目经历,可以在阶段3 学习Web框架的时候,开发出一个平台,作为开发的项目经历(测试开发岗位有开发经历会更吃香)。也可以在测试者之家(TesterHome)寻找开源项目进行练习
知识点
测试工具脚本(平台)开发
监控平台
接口自动化测试平台
压测平台
业务测试中台
集成信息查询
环境自动部署
测试数据构造、mock数据
测试实战
客户端测试
Web测试
App测试
服务端测试
接口测试
白盒测试
Mock数据
测试数据构造
HTTP返回数据分析
日志分析与问题排查
资源
测试者之家开源项目汇总https://testerhome.com/opensource_projects
阶段5 : 求职
目标
找到一份好工作
求职建议
精心准备一份简历
尽早做规划,可以通过大厂招聘官网的岗位描述来了解岗位的要求
多读牛客网面经,坚持刷Leetcode算法
多参加面试,面试完成后进行复盘总结
资源
网站
牛客网
Boss直聘
拉勾网
企业招聘官网
面试真题
牛客网测试开发面试真题汇总https://www.nowcoder.com/discuss/experience?tagId=2678
微信公众号:测试开发Guide 回复【面试】
阶段6 : 持续学习
目标
持续学习,提升自己核心竞争力
学习方向
测试效能提升
CI/CD
容器化
测试左移/测试右移
diff 测试
AI 测试
流量回放
测试平台(工具)开发
性能测试
算法测试
大数据测试
专项测试
稳定性测试
测试开发面试题:
Leecode 3 无重复字符的最长子串
链接:21届的挣扎之2022年再毕业社招秋招测试开发or测试面经_牛客网
来源:牛客网
一、阿里lazada测开面经
自我介绍
说一下业务测试的流程
举例说明之前业务测试过程中是否有哪个项目涉及到了刚刚说的完整的几个步骤?
如何保证开发的提测质量
说一下你跟应届生比较的优势
需求评审中测试人员需要做什么?有什么例子可以证明么?
微信登录时的业务逻辑,入参出参分别是什么
App用手机号注册的业务逻辑
商详的业务逻辑
xx平台和xx平台的开发目的是什么?说一下系统架构
Vue和react的区别是什么?
为什么要用vue作为系统的前端开发框架?
还知道哪些前端开发框架么?
UI自动化为什么要用Appium框架?
还知道哪些可用于UI自动化测试的框架么?
反问
二、字节今日头条测开面经(8.1)
自我介绍
介绍一下xx平台
说一下该平台的作用,怎么提升产研效率的?
该平台有多少个页面?
xx这个页面的功能是什么?
该平台的主要功能是什么?举个例子说明
既然有mock平台为什么还要做这个二期功能?
xx平台那个项目是用来干什么的?为什么可以提升产研效率30%?
xx平台可以给qa带来什么?
接口自动化测试和UI自动化测试分别占比多少?
小程序的UI自动化和app端的有何区别?
讲一下UI自动化测试的框架原理
接口自动化测试常用的框架有哪些?
平时在测试过程中你是怎么提升或者保障业务质量的?
Js中怎么实现模块化?
Js中的promise怎么理解?
用例设计:淘宝上搜索商品的用例设计
算法题:两个字符串,竖式加法——讲了下思路
反问
三、字节番茄小说面试记录
1、自我介绍
2、介绍自己的工作
3、说一下自动化测试的流程和设计理念
4、为什么要做自动化测试
5、、讲一下在工作中的测试项目
6、说一下自己在测试过程中的优势
7、输入消息看到消息这个界面的测试点设计
8、平时测试过程中有没有出现过线上事故,怎么解决的
9、如何避免兼容性测试的问题出现呢?
10、从【1,2,3,4,5,5,6,7】中去掉重复的字符
11、讲一下set这种数据结构的底层原理
12、反问
四、富途证券面试记录
1、http协议中有哪些你熟悉的方法?
2、get和post方法的区别是什么?
3、做一个题:时针和分针第一次重合是0点,那24小时内还会重合多少次?
4、7升水和5升水,如何量出6升水
5、一对扑克牌,去掉大小王之后还有52张,那么随机抽出两张为同花色的概率为多少?
6、之前工作主要是什么?介绍一下自己的工作
7、UI自动化测试的目标是什么?如何体现你做的工作的意义?
8、UI自动化测试的工作原理是什么?
9、熟悉的排序算法有哪些?讲一下冒泡排序的基本思想
10、说一下在100个数中找到最小值需要比较多少次?
11、怎样不用第三个变量交换两个变量
12、一个列表,里面包含多个单词和空格,如何找到字符数最大的单词
讲一下算法思路
13、mysql 找出各科成绩都超过80的学生学号
14、反问
五、美团一面测开面经
1、自我介绍
2、说一下之前的工作内容
3、接口自动化用的什么框架写的
4、UI自动化有覆盖兼容性么,平时会怎么考虑兼容性测试
5、UI自动化测试怎么定位元素?
6、UI自动化测试过程中遇到某个框无法定位的时候会怎么排查
7、平时会关注一些客户端的性能测试么?是怎么做的?
8、测试的时候是只偏向于客户端么?还是服务端也涉及呢?
9、xx平台是怎么做的,业务框架是怎样的?
10、说一下http的常见响应码,302代表什么?4xx、5xx分别是什么错误?
11、tcp和udp的区别
12、tcp怎么保障它的可靠传输的?
13、mysql索引 增删改查中用索引,会增加还是减少它的效率
14、算法题 求第一个不重复的字符的位置
15、反问
六、招银网络科技三合一测开面经
1、hr问了几个问题
2、python的深拷贝和浅拷贝
3、python怎么去掉字符串中的空格
4、写一个算法题,将两个合法字符串拼接
5、之前测试过程中接口自动化测试主要涉及哪个模块,是怎么做的,有需要自己特殊进行什么逻辑处理么?接口自动化测试为什么要用这个框架
6、python中主要用过哪些库?
7、mysql中查询用的通配符有哪些?%是用来通配什么符号的?
8、http中的get和post的区别
9、http协议中有哪些方法
10、三次握手和四次挥手
11、自我提升
12、职业发展规划
13、有没有业务类型的偏好
14、怎么了解到招银网络科技的
七、蚂蚁金服测试开发面经(8.14一面电话面)
自我介绍
聊一下xx平台这个项目
该平台的底层搜素逻辑是怎么做的?
该平台和一般的搜索wiki有什么区别?优势在哪里?
为什么说这个平台使得产研效率提升了25%?这个指标是通过什么数据结果计算出来的?
你是怎么负责xx这个模块的质量监控的?有没有线上的一些指标监控?主要是哪些数据呢?
UI 自动化测试框架原理
UI自动化测试的执行机制,有没有通过它发现一些业务质量问题?举例说明
你的模块线上问题一般是哪些?有没有思考过怎么避免这些线上问题?
你认为你这个模块还有哪些质量风险是在之前的工作过程中没有做好的?后续打算如何去改进?
基于python的接口自动化你主要负责哪个接口,写了多少条用例?没有固定的平台来做接口自动化么?
python异常处理是怎么做的?
有用过Java么
python和Java有什么区别
为什么说python这种解释型语言的运行效率更低呢?
python的装饰器了解么?举个例子说明他的应用场景
写一个算法题,输出最长不重复子串的字符个数
八、蔚来一面
自我介绍
说出你负责的xx模块的回归用例
消息队列接触过么?
越权测试怎么测的
同步调用和异步调用的区别?
说一下xx这个模块的业务架构
有没有涉及过空指针异常的情况的测试??
后台的数据是用什么框架搭的,了解rpc么?
UI自动化测试用什么保障成功率达到95%+
接口自动化测试为什么要用flask来模拟后端接口呢?
设计测试用例:微信红包(包括红包信息填写页面、发红包到群里、群成员抢红包这几个场景)
除了基于场景的用例设计方法,平时还会用到哪些其他用例设计方法?
写一个代码题:输出第一个不重复字符
九、哔哩哔哩一面
自我介绍
测试理论相关
项目相关
有用过什么adb命令
adb 闪退的常见类型
写个代码题,最长上升子序列
************************************************************
好像要用到动态规划+二分查找。。。
7、f、如何看待加班
十、哔哩哔哩二面
自我介绍
UI自动化要想检测页面布局的合理性,流畅度,你觉得要怎么做?
当前的测试流程是什么样的?认为哪里不合理?后续可以从哪些角度去改进?
app常见的崩溃类型有哪些?
除了常见的功能测试,还会做哪些专项测试?是怎么做的?
反问
十一、蔚来二面
自我介绍
是否用过java,有自己本地部署过Java服务么?用ide编译构建后,进行调试的快捷键是什么?
测服务端过程中用过哪些工具?是怎么用的
测客户端过程中用过哪些工具?
主要负责的是xx哪一块的业务?测试的重难点在哪里?
服务端你主要是怎么测的?
客户端又是怎么测的?
你发现了一个java的代码的堆栈报错,你觉得是程序的问题,开发说是环境的问题,你要怎么办?
接口自动化测试的数据是怎么存储的?
你觉得目前用的接口自动化测试的框架有哪些需要优化的点?
反问
十二、中兴通讯软件测试技术面
自我介绍
了解哪些通信协议
4G\5G\3G的区别
TCP|IP协议
网络7层传输模型分别对应于通信中的哪些应用
软件测试流程
针对一个具体的需求,你是怎么设计测试用例的?
会哪些编程语言
是否接受996
离职原因
待遇
反问
十三、禾赛科技软件测试一面
http和https的区别
常见的header里面有哪些信息
tcp和udp的区别
软件测试的方法、流程
设计文件上传、下载的测试用例
python中有哪些数据类型
python中列表和元组的区别
python中self的用法
写一个算法题 两数之和
十四、禾赛科技软件测试二面
项目介绍
测试流程
主要负责得业务模块的质量风险点
离职原因
写一个二分查找有序不重复的数组,查找一个特定的数字,可找到的话返回对应的数组下标,否则返回‘’
十五、满帮集团测试工程师一面
python中打开文件,关闭文件怎么写?
python中字典型数据和字符串数据怎么互相转换
接口自动化会新增一个接口就把它封装到框架里面去么?
UI自动化中,appium的底层原理是什么?
UI自动化是怎么做的
压测是怎么做的
全链路压测是在线上做的还是测试环境做的
怎么确保线上数据和测试环境隔离开来?
怎么用测试环境的监测值预测线上环境?
压测一般关注哪些参数?
设计一个文件上传的测试用例
反问
十六、文远知行系统测试一面
项目介绍
xx平台相关问题
xx平台的整体架构
描述一下从提交一个分支到平台上,到后面构建的整个完整链路
构建是用什么代码写的逻辑,怎么写的
自动化测试中主要负责什么
UI自动化测试中,选择哪些模块不跑,哪些模块跑是由谁来修改的?什么方式修改?
设计一下《12306买票》的测试用例
反问
十七、云账户一面
过往经历介绍
测试流程介绍
测试过程中印象深刻的问题
怎么保障业务质量
数据库的索引
自动化测试过程中比较深刻的问题
数据库的主键和唯一索引之间的区别
设计web.jd.com的搜索输入框及搜索按钮的测试用例
弱网需要怎么构造测试呢?
十八、星环科技一面
自我介绍
xx模块业务架构
服务端的业务架构是什么样的
测试重难点在哪里
讲一下appUI自动化测试的过程
反问
一个列表中有字符串,数字,空格,怎么把字符串筛选出来
十九、中兴通讯二面
业务
项目
薪资
等等,不太记得了
二十、云账户二面
项目介绍
负责工作
如果项目测试流程中发现可能要延期怎么办
如果开发不配合你支持测试怎么办
xx平台怎么测试的
为什么你的项目中这些项目都耗时很长
举一个例子说明你在测试过程中协助开发发现问题
mysql查询速度比较慢你知道怎么优化么?
知道哪些排序算法
堆排序讲一下,大堆是什么数据结构?
安全测试怎么做的
一般会做哪些安全扫描
csrf是什么漏洞
讲一下你做的测试开发工作
怎么保证订单不会重复支付?
反问
二十一、禾赛科技三面
项目
测试流程
职业发展规划
写一个排序算法
二十二、文远知行二面
算法题:写一个检查字符串是否合法(括号匹配)的算法
设计一下qq登录这个场景的测试用例
二十三、文远知行三面
算法题:写一个数组顺时针旋转90度的算法
知道业界UI自动化测试的方法么,说有一个可以用来检测UI布局的框架
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。