阿里8年,肝到P7只剩这份笔记了,已助朋友拿到15个Offer....

news2024/11/25 2:22:10

时光飞逝,转眼间在阿里工作了8年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的系统的时候,熬到P7也费了不少心思

我的职业生涯开始和大多数测试人一样,刚开始接触都是纯功能界面测试。那时候在一家电商公司做测试,在这个吃技术的IT行业来说,不断学习是至关重要的。但是我之前做的是最基础的业务工作,随着时间的消磨,让我产生了对自我价值和岗位意义的困惑。

一是感觉自己在浪费时间,另一个就是做了快2年的功能测试,感觉每天过得浑浑噩噩,薪资也从不见涨,岗位也一直得不到提升,身边的许多同事要么升职加薪,要么跳槽去了更好的公司工作,特别觉得自己碌碌无为。

直到在认真思考过后,决心想入职大厂,在经过几个月努力后,成功入职腾讯,到现在已经八个年头了,特别感谢当初自己的决心和勇气,本人也是个爱学习的人,把这几年的工作经验整理成了一份完整的笔记。此笔记已助朋友拿到腾讯,阿里,美团等10个offer !

软件测试所有方向的学习路线

刚开始学习,如果你连完整的学习步骤都没有规划好,基本不可能学会测试。
笔者的成功上岸,也得益于从网上找到了一些优质的笔记、教程和一些大佬的指导
在此,也将学习软件测试所有方向技术点做的一份整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

软件测试学习(工作)技术路线:

软件测试的方向可以选一选,选好方向才能对应去学习内容,先了解下可以从事哪方面工作,这里简单介绍一下,学习软测之后可以做什么工作:

  • 需求的功能测试

参与需求评审会议,制定测试计划,编写测试用例,评审测试用例,执行测试用例,提交Bug,回归验证Bug,发送测试报告,进行线上验证等一系列活动。

  • 自动化测试工程师

利用自动化测试工具例如Robot Framework,Python+unitest/pytest,Selenium等完成页面UI自动化或接口自动化,提升测试效率,尽早暴露问题。

  • 性能测试工程师

根据项目需求,对重要接口制定压测方案,利用Jmeter等测试工具进行压力测试,配合开发同学找到系统瓶颈,并产出压测报告。

  • 测试开发工程师

有些公司有专门的测试平台、测试工具,来完成Bug统计与质量分析,接口自动化统计等等功能,这部分开发工作会由测试开发工程师来承担。测试开发对技术,编码要求更高。

初级软件测试工程师专业技能储备

1)了解计算机以及软件测试相关的基础知识

a.计算机基础知识

计算机组成部分,操作系统分类,常见的系统架构(B/S和C/S),常用的DOS命令

b.软件测试基础理论知识

软件测试的目的、定义、原则,产品质量模型,软件测试的基本流程

2)常用的Linux命令

在软件测试中,有时候需要我们自己去搭建测试环境,或者是在服务器部署自动化项目。而服务器基本都是使用Linux系统的,所有我们需要掌握一些基础的Linux命令

3)SQL语句

在软件测试中,测试结果的校验或者自动化中的测试数据准备,都会操作数据库来完成。所以对于数据库的最基本的增、删、改、查的SQL语句,需要能够独立完成编写

4) 手工测试用例的编写(最重要)

作为一个软件测试工程师,最基本的要求就是用例编写的能力。如何编写出一份高覆盖率,低重复率的测试用例,是初入软件测试行业应该去不断追求的能力。

5 ) 缺陷的管理

了解在团队中,如何管理测试人员提出的BUG,从而保证项目的BUG能够及时被修复

掌握以上的技能,对于一个初入软件测试行业的同学而言,就肯定可以站稳脚跟了。

中级软件测试工程师专业技能储备

1、接口测试相关专业技能

无论是自动化测试还是性能测试,甚至之后往测试开发方向发展,最基础的就是针对接口进行测试。所以要想做好中级软件测试工程师,第一步就是能够完成接口测试。

1)接口以及接口测试相关的理论基础知识

包括接口及接口测试的概念,接口测试的原理,接口测试的流程,http协议,Restful接口风格。这些内容都需要有所了解

2)接口工具的使用:Postman和Jmeter

接口测试,可以使用代码,也可以使用工具。通常情况下,接口测试最多还是使用工具来完成.原因无他,“高效”。

3)抓包工具:Fiddler和Charles

在测试过程中,我们为了定位前后端的问题,就会使用抓包工具,查看接口返回的结果。从而定位问题是前端的,还是后端的。

这两个工具,我们一般二选一去学习就可以了,因为他们的作用都是一样的。

2 . 编程语言学习

自动化测试的实现方式,主要还是依赖代码来完成的。所以要能进行自动化测试,首先需要掌握一门编程语言。目前行业主流的自动化测试的编程语言为python和java。我个人推荐python,因为对于新人而言,上手的难度比较低一些。如果可以全天学习,python也就差不多10天就能入门

3、自动化测试学习

Python学完以后,我们就可以开始自动化测试方面的学习。

自动化测试的目的,主要还是为了降低回归测试的时间。

软件测试中的自动化测试,分为UI自动化和接口自动化。

通过以上的学习之后,我们再来看你具备哪些能力?

SQL语句,Linux常用命令
手工测试用例的编写以及缺陷的管理
使用抓包工具进行前后端问题定位
使用Postman或Jmeter进行接口测试
使用Python进行接口/UI自动化测试

 

高级测试工程师需要掌握的知识点

这一阶段你需要加宽你的知识体系,同时更加深入的了解前段进阶,代码质量,测试架构,微服务及中间件,容器化,自动化测试设计,测试架构,CI/CD,测试左移,测试阶段,测试右移。

测试开发和研发岗的区别,其中一点就是研发更注重深度,而测开更注重广度。

比如:你要了解CI/CD,因为你做的测试平台/工具,可能需要接入到CI/CD的流水线,或者运维的监控系统中

再比如:你做性能测试的时候,如果你对架构设计的核心知识不了解,那么在做全链路压测,服务降级等测试的时候,可能就会遇到很多问题难以解决。

找到一份测试开发JD来对照,也可以看到这个岗位对中间件,性能测试。私有化平台都有了解。

除了加宽你的知识体系,还需精进你的代码能力。

简而言之,大厂Java用的多,如果你想去大厂,基本上就得熟悉Java,不然面试很容易被pass掉。

面试真题分享

个人信息

  1. 自我介绍 项目(重要)
  2. 项目中最大的挑战,花费最长时间的项目,比较有成就感的事情
  3. 项目中印象最深的bug
  4. 有什么想问的吗
  5. 适合业务测试还是技术测试
  6. 为什么选择字节
  7. 分别用3个词描述自己的优缺点

测试

  1. 对测试开发的认识,为什么想做测试开发,测试测开的理解
  2. 软件的分类
  3. 什么是接口测试
  4. 微信红包的测试用例
  5. 微信评论功能的测试用例
  6. 测试一下支付宝付款码,设计测试用例
  7. 黑盒测试的方法
  8. 白盒测试的方法
  9. 软件测试的流程
  10. 登录功能怎么设计测试用例?
  11. 网上银行转账是怎么测的,设计一下测试用例。
  12. 给你一个网站,你应该如何测试?
  13. 一个有广告的纸杯子,请设计测试用例?
  14. 想象一个登录框,包括ID、密码、登录、取消,记住密码(复选框),尽可能的写出你想到的测试点?
  15. 测试淘宝购物车的测试案例
  16. 设计一下抖音上下滑动视频的测试用例
  17. 设计抖音app用户登录测试
  18. 中断测试
  19. 测试在一个场景下,推荐滤镜
  20. 朋友圈点赞评论测试用例

情景问题

  1. 如果抖音一个地区的许多用户无法下载视频的原因
  2. 如果用户收到了银行短信提示已经扣款成功了,但是商家没有收到钱,你觉得会是什么问题
  3. 输入一个url,请问发生了什么?
  4. 如何实现一个用户登录功能
  5. 高并发下减少事务带来的性能消耗?
  6. 如果一个API接口出现一个不稳定出现的bug,如何去确定?
  7. 如果提交bug,开发告诉你不存在,如何处理?
  8. 访问页面加载缓慢的原因以及如何解决
  9. 如何你和你的领导意见不一致,你会怎么做
  10. 如果图片上传失败,分析原因
  11. 针对评论功能,你如何设计接口,主要回答需要传递的参数有哪些?
  12. app页面白屏了什么原因
  13. 全链路压测中,找到了某一个服务器CPU负载率100%,磁盘和内存使用率正常,请问你会怎么去分析可能的原因
  14. 设计买火车票的系统,输入出发站和到达站,返回所有可能的结果
  15. 添加购物车请求后发生了什么
  16. 淘宝用户支付失败的原因

如果你在软件测试行业有许多的不解的困惑,那么欢迎和我一起在业内的交流群里面沟通探讨。群里面有免费的教程资料以及各阶段测试资源,希望能帮助你突破眼前的瓶颈

Python基础

  1. python的内存池机制
  2. python数组和列表的区别
  3. python你常用哪些包,标准库
  4. 面向过程和面向对象的语言区别
  5. 反射
  6. python的数据结构
  7. dict和list的底层实现
  8. python装饰器,作用,用法
  9. 编译型语言和解释型语言 解释型语言的优点
  10. 垃圾回收机制
  11. GIL锁
  12. is和==
  13. __new__和__init__区别
  14. 用python写出多线程,循环打印123

操作系统

  1. 读写锁,不同点,应用场景
  2. 线程和进程的区别是什么
  3. 什么是死锁,死锁的条件
  4. 如何预防死锁,!避免死锁,死锁发生的检查
  5. 堆和栈的区别以及存储模式有什么区别
  6. 内存泄漏和内存溢出
  7. 多线程和多进程,以及应用场景
  8. 进程通信方式
  9. 多线程如何实现的
  10. 计算机内存管理的方式
  11. 进程调度方法
  12. 什么是Linux用户态和内核态
  13. 进程的状态,进程状态就绪和等待状态的区别是什么
  14. 虚拟内存是干嘛的
  15. 线程池
  16. 线程安全的实现方式
  17. 进程和线程的上下文切换
  18. 协程

计算机网络

  1. TCP三次握手,四次挥手的过程
  2. 为什么客户端要在TIME_WAIT状态等待一段时间
  3. CLOSING状态
  4. 如果server端没有收到第三次ack,但是收到了client端发送的数据,server端会怎么处理
  5. 讲一讲get和post
  6. http状态码
  7. TCP和UDP
  8. 一次HTTP请求的过程(输入URL到返回的全过程)
  9. http和https
  10. 无状态和无连接
  11. OSI七层模型,各层有哪些协议
  12. HTTP协议 请求报文结构
  13. TCP如何保证可靠传输,丢包怎么办
  14. 讲一下滑动窗口
  15. TCP三次握手中SYN和ACK包有什么不同,包含什么
  16. UDP想要可靠怎么实现 RUDP
  17. 半连接攻击
  18. TCP粘包和拆包
  19. cookie和session是什么,为什么要用cookie和session
  20. DNS协议和作用
  21. DNS的查询方式
  22. ARP协议作用、工作方式
  23. 以太网数据包的大小最大为多少
  24. 三次握手过程中是否存在安全问题?描述一下存在什么样的安全问题?针对这样的安全问题如何防御?
  25. web攻击,CSRF攻击
  26. TCP如何进行拥塞控制?拥塞控制如何判断发生拥塞?
  27. TCP快重传如何判断丢失?
  28. https证书在哪存放
  29. 长连接和短连接以及他们分别适用的场景

数据库

  1. sql语句 取一个月内的id分组 取一个年级中每个班级年龄最小的同学名字 成绩表输出前三名的成绩,后三名呢 拷贝A表的数据到B表 查询每门科目都大于80分的学生名字 筛选出每个小时的记录 考察where 考察聚合函数 where和having的区别 一个数据库sql查询重复个数 在学生成绩表中查询平均分不及格(低于60)的学生id及平均分 查询总成绩最高的人的姓名 user表中在一个时间段内登陆三次的用户id limit的用法
  2. 数据库引擎及他们之间的区别 InnoDB MyISAM MEMORY:
  3. mysql的日志怎么查询
  4. (多次)查询速度慢的原因,如何解决
  5. 数据库的事务是什么?怎么使用
  6. 主键、外键、索引的各自的含义以及区别
  7. 事务的特性(ACID),讲一下每个特性的意思
  8. 索引的类型
  9. 什么是聚簇索引、什么是非聚簇索引
  10. 索引的数据结构是什么
  11. 前缀索引
  12. MySQL/MongoDb 端口号
  13. 数据库有几种表之间的连接形式(左连接,右连接,内连接,完全连接)
  14. 说说redis中的数据结构和应用场景
  15. 三大范式
  16. 数据库隔离等级
  17. 为什么要用b+树索引而不用hash

Linux

  1. 常见命令 查看进程ps 查看所有进程长格式ps -ef 打印当前文件夹文件 ls -al a所有文件 l详细信息 软链接 ln -s a target 硬链接 ln 创建目录 mkdir 修改权限 chmod 查看文件: 移动文件mv 也可以重命名 复制文件cp 删除文件 rm -r 递归删除 -f删除只读文件 通配符?单个字符,*多个字符,[a-z]字符集 grep 正则搜索 显示行号-n 查询个数-c 反选-v 查看指定进程 ps -ef | grep pid 查看命令历史 history 查看磁盘空间df -hl 查看文件大小du 查找文件 find [目录] 以名字查找-name “h*”以h开头 终止一个进程 kill -9 pid
  2. 如何防止新人误操作rm -rf
  3. 找进程号为199的进程 ls -ef|grep 199
  4. 某文件中含关键词的行数 grep -c "key" ./file
  5. 该目录下以.log结尾的文件中包含关键词a但不包含关键词b的行数 grep "a" ./file | grep -cv "b"

面试资料

我们进阶学习自动化测试必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 以上资料,对于想要测试进阶的朋友们来说应该会很有帮助,需要的小伙伴可以点击下面的名片免费领取。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616639.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis进阶:分布式锁问题

分布式锁问题 1. 分布式锁问题1.1 问题介绍1.2 解决方案1.2.1 分布式锁主流的实现方案1.2.2 使用Redis实现分布式锁1.2.3 分布式锁需要满足的四个条件 1.3 实现分布式锁 1. 分布式锁问题 1.1 问题介绍 单机单体中的锁机制在分布式集群系统中失效;单纯的Java API并…

Linux快速安装MySQL

文章目录 Linux上安装MySQL1. 安装MySQL1)上传MySQL安装包以及MySQL驱动jar包2)解压MySQL安装包3)卸载系统自带的mariadb4)安装MySQL依赖5)安装mysql-client6)安装mysql-server7)启动MySQL8&…

案例27:基于Java宠物领养系统开题报告设计

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

性能测试之Docker监控

相信很多程序员在进行性能测试时常常会遇到一些问题,比如如何监控Docker容器的运行状态。这时候,Docker监控工具就派上了用场。 我曾经也遇到过这样的问题,不知道如何获取Docker容器的性能数据,直到我发现了Docker监控工具。使用…

干货分享 | TSMaster小功能之实时注释在图形中的使用技巧

今天给大家介绍TSMaster功能之实时注释在图形中的使用技巧,主要通过手动注释、自动化注释、实时注释在记录与回放中的运用等三方面来进行介绍。 一、实时注释的作用 在了解实时注释的使用技巧之前,我们先了解一下实时注释是什么以及它的作用。 实时注释…

算法修炼之筑基篇——筑基二层初期(解决最长回文子串问题,马拉车(manacher)算法模板)

✨博主:命运之光 🦄专栏:算法修炼之练气篇 🍓专栏:算法修炼之筑基篇 ✨博主的其他文章:点击进入博主的主页 前言:学习了算法修炼之练气篇想必各位蒟蒻们的基础已经非常的扎实了,下来…

SpringCloud服务注册中心

SpringCloud 服务注册中心 1.Eureka基础知识 什么是服务治理? Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理 在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间的依赖关系,…

数据库的增删改查(三)

1、查询 1.1、聚合查询 1.1.1、聚合函数 数据库提供了很多函数,其中就包括聚合函数,常见的聚合函数如下表 函数说明COUNT([IDDINCT] expr)返回查询到的数据的数量SUM([DISTINCT] expr)返回查询到的数据的总和,不是数字没有意义AVG([IDSTI…

一篇长文教你进行全方位的使用appium

随着移动应用的日益普及,移动应用的测试成为了软件开发的重要组成部分。Python,作为一种易于学习,功能强大的编程语言,特别适合进行这种测试。本文将详细介绍如何使用Python进行APP测试,并附带一个实例。 Python 和 Ap…

CVE漏洞复现-CVE-2021-2109 Weblogic Server远程代码执行

CVE-2021-2109 Weblogic Server远程代码执行 漏洞背景 2021年1月20日,Oracle官方发布了漏洞补丁,修了包括 CVE-2021-2109 Weblogic Server远程代码执行漏洞在内的多个高危严重漏洞。CVE-2021-2109 中,攻击者可构造恶意请求,造成J…

多媒体库SDL以及实时音视频库WebRTC中的多线程问题实战详解

目录 1、概述 2、开源跨平台多媒体库SDL介绍 3、开源音视频实时通信库WebRTC介绍 4、在国产化Linux桌面系统中遇到的SDL多线程问题 5、在给WebRTC新增外部音频插件库时遇到的多线程问题 6、最后 VC常用功能开发汇总(专栏文章列表,欢迎订阅&#xf…

【云原生】创建容器的方法

1)基于现有镜像的创建 先使用现有镜像创建容器 docker run 再进入容器进行内容更新 docker exec 最后提交成新的镜像 docker commit 2)基于模板创建 可以从本地容器导出模板文件 docker export 或者从网上下载现成的模板文件 http://openvz…

C++继承相关内容(二)

目录 一.拷贝构造函数 第一种情况:基类没有拷贝构造函数,派生类也没有拷贝构造函数 结果: 原因: 第二种情况:基类没有拷贝构造函数,派生类有拷贝构造函数 结果: 原因: 第三种情况…

【文生图系列】 Stable Diffusion v2复现教程

文章目录 xformersbug 记录 txt2imgdiffusers参考 基础环境承接Stable Diffusion v1, 详情请见我的博文【文生图系列】 Stable Diffusion v1复现教程。然后更新pytorch和torchvision的版本,因为要使用GPU和xformers,需要下载gpu版本的pytorch。再下载ope…

学习笔记之微服务(一)

一、了解微服务 1、服务架构演变 **单体架构:**所有业务功能都集中在一个项目中开发,打成一个包部署。 优点:架构简单、部署成本低 缺点:耦合度高 分布式架构:根据业务拆分系统功能,每个业务模块独立项…

微信小程序map 之个性化地图(日出日落主题)

微信小程序map 之个性化地图(日出日落主题) 个性化地图之根据日出日落时间动态变换地图主题个性化前的准备进入腾讯地址服务官网小程序开发html 代码. layer-style 编号为样式名称js代码. 注意的是,layer-style只能定义一次,所以值…

Yarn【常用命令】

1、yarn application 查看Application运行情况 1.1、列出所有Application yarn application -list 可以通过Web UI端来查看: 1.2、根据Application状态过滤: yarn application -list -appStates (所有状态: ALL 、 NEW 、 NEW…

Spring Cloud Alibaba 同时兼容dubbo与openfeign

一、前言 dubbo与springcloud都可以单独作为微服务治理框架在生产中进行使用,但使用过springcloud的同学大概了解到,springcloud生态的相关组件这些年已经逐步停更,这就导致在服务架构演进过程中的迭代断层,以至于一些新的技术组…

聚合/组合

谨慎使用继承的方式来进行扩展,优先使用聚合/组合的方式来实现。 Father类里有两个方法A和方法B,并且A调用了B。子类Son重写了方法B,这时候如果子类调用继承来的方法A,那么方法A调用的就不再是Father.B(),而是子类中的…

使用kali里的dnschef进行DNS欺骗

1. 前言 DNSChef是针对渗透测试人员和恶意软件分析师的高度可配置的DNS代理。它能够精细配置哪些DNS回复以修改或简单地代理真实响应。为了利用该工具,您必须手动配置DNS服务器以指向DNSChef。 2. 执行参数 选项参数: -h,--help显示帮助信息并退出--f…