先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
在测试技术方面:比如你的自动化能力/测试开发能力,/比如你比别人多挖掘的严重级别bug等。。
在软技能方面:
做事认真细致 发散思维 软技能 - 沟通能力/总结能力/领悟力和理解力/学习能力
这些点都需要举例说明你的这个能力在工作中的应用。
7、你有什么要问我的吗?
很多学员在有多个offer选择的时候,很纠结不知道选哪个。
主要原因有2个:
一个是对自己下一阶段的工作目标不清晰,或者容易动摇。
比如以薪资为首要目标,或者以职业发展前景为首要目标。
另外一个,是对有offer的公司,不了解自己入职之后的主要工作职责以及未来的发展前景。
这里的发展前景,是指你在这个岗位上的发展前景。
大家需要记住:别人评估你的价值,都是根据你以前的职场工作履历。
所以我们在选择公司时,一定要结合自己自身的需求,以及为下一次跳槽做增值准备。
所以,在这个【你有什么要问我的吗】,就赶紧好好了解了解这家公司是否值得入职
提供以下几个参考选项:
1、了解公司的测试团队、成员比例(功能/自动化/测开/性能等。)
2、了解自己未来会在的项目是什么类型、项目现在所处阶段、测试有多少人等。。
3、了解自己如果入职后,主要的工作内容是什么
4、了解贵公司对测试团队未来的规划是什么。
5、如果是对加班比较介意的,可以问问如果入职后,加班频率是怎样的。。
还有其它,可根据自己个人情况酌情提问 。。
注意提问的态度 。。
其次,如果你的问题比较多,需要解释一下你为什么要问这个问题。因为你问多了,面试官也挺烦的。
二、功能测试面试题
序号 | 测试用例设计 | 微信红包测试用例 |
---|---|---|
1 | 测试用例设计 | 微信搜索功能用例、微信朋友圈功能、微信红包功能 |
2 | 接口测试 | 今天面试被问你们公司是怎样做一个接口测试的? |
3 | http通信 | 3次握手,4次挥手? |
4 | 业务能力 | 介绍一下你的项目 |
5 | 质量体系 | 如何保障测试质量? |
6 | bug定位能力 | 你平常怎么定位问题的? |
参考答案:
1、用例设计类:
微信的功能被问的比较多。比如微信红包功能、微信朋友圈、微信搜索功能的用例设计。
我们在设计用例测试时,一般参考以下2点:
1、产品面向的用户群体、产品的应用场景
2、基于1,考虑以下6点:功能、界面、性能、安全、易用、兼容
以微信红包为例:
群体:中国境内广大人民群众
应用场景:
私发
群发 - 手气/口令/固定 封面红包 视频红包 拜年红包
红包限额、24小时后退回、金额波动、金额精确度、节日祝福词、查看红包记录、添加表情…
如果面试时,问的用例设计题,是你准备了的,那很好回答。
如果面试时,用例设计题是没有准备过的,临场思考,多多少少会漏掉。
实际工作中,咱们也是花了心思和时间去思考如何来设计用例的,比面试时多的多。
所以,如果面试时设计不全,可以向面试官说明一下情况。
现场时间短、面对面紧张,同时举个例子说说实际工作中是如何花时间全面设计的。
2、今天面试被问你们公司是怎样做一个接口测试的?
提供某位学员的回答方式:
我当时就答跟功能测试差不多,也是要考虑它的正常情况,然后其他的测试用例设计也是跟功能测试相似,执行测试用例,对照接口文档 去看它们返回的状态码是否跟接口文档描述的一致
以上回答呢,太泛泛而谈了。没有与你们公司的实际应用结合。
这个流程,你不说面试官也知道,全国接口测试都是这个套路。这个答案说了和没有说,没啥区别。
参考的回答方式:
结合你们公司的业务接口,具体落地的说明:
1、具体用什么工具/框架
2、接口的类型/数据格式
3、接口文档/swagger/yapi/ - 抓包/沟通
4、断言 - 会比对哪些数据
5、数据库校验
6、可以再补充说明一些难点处理方式
3、http通信的3次握手,4次挥手?
网络上有很多文章解释 ,可以自行搜索 。
4、如何保障测试质量?
面试官考察:
1、你对质量的认知;
2、你的过往经验中是如何来保障测试质量的。
参考以下几种维度,最好再结合你曾经的工作案例:
可以从保障产品质量、如何减少漏测等方面说明。
比如从我自己的测试经验里:
1)测试流程/产品交付流程上要规范 – 需求/评审/冒烟/交叉测试/abtest/灰度发布等
2)从测试的维度上来(各种测试维度、测试手段、左移右移、测试效率等):
一是要减少漏测:回归时容易出现 -可适当利用自动化手段
二是要尽量了解客户场景:覆盖用户的使用场景。在功能和非功能测试上都可以更好的设计用例
三是要持续更新用例库:对于出现的未覆盖的,需要更新到下次常规测试中 四是可以展开探索性测试
五是梳理逻辑漏洞,避免隐藏的测试场景
六是加入白盒测试,对于开发代码review,加入代码扫描等。
5、你平常怎么定位问题的?
面试官考察:
1、你是否真的只是点点点而已
2、功能测试基本功深度如何
一般常借用的手段 - F12/抓包工具、看产品日志
马上举例:你工作中最有成就感的一个bug定位和分析
要体现出,你真的不光是点点点,你有深入的去了解产品的业务流、数据流、实现逻辑,可以挖掘深层次隐藏的bug。
三、接口测试面试题
HTTP, HTTPS协议
- 什么是DNS
- HTTP协议
- 怎么抓取HTTPS协议
- 说出请求接口中常见的返回状态码
- http协议请求方式
- HTTP和HTTPS协议区别
- HTTP和HTTPS实现机有什么不同
- POST和GET的区别
- HTTP请求报文与响应报文格式
- 什么是Http协议无状态协议?怎么解决HTTP协议无状态协议
- 常见的POST提交数据方式
- HTTP请求报文与响应报文格式
- HTTP协议学了哪几个版本
- Session和Cookies区别
- HTTPS在哪一层, 会话层在第几层
- 浏览器输入url按回车背后经历了哪些?
TCP, UDP协议
- TCP/UDP协议的区别,TCP如何保证正确,微信基于什么协议,QQ基于什么协议,为什么?
- 你熟悉OSI协议吗?原理是什么
接口用例设计
- 怎么设计接口测试用例?
- HTTPS测试点
- 从HTTP变化到HTTPS协议,测试点
- 购物车模块, 加入购物车接口测试点分析
- http://…?orderId=,**, 接口设计用例
- 设计接口测试用例时,涉及的是电商系统.其中包括很多修改,如商品.商家、店铺 等等,针对这些数据的修改,会涉及到很多参数.如商品的名称,商品的尺码,商品的顔色等等.那在设计实现"修改"接口时,如何确定要传思些参数?是只需要传我要修改的参数,还是全部参数都要传?
- 上传文件测试点
- 根据以下界面设计测试用例
- 一个订单的几种状态如何全部测到,如:未处理,处理中,处理失败,处理成
接口测试
- 为什么要做接口测试
- 你平常做接口测试的过程中发现过哪些BUG
- 平常你是怎么测试接口的
- 平常用什么工具测接口的
- 没有接口文档,如果做接口测试
- 接口测试的流程
- 常用什么接口测试工具, 说一个你在工作中具体怎么做接口测试的实例
- 不可逆的操作,如何处理,比如删除一个订单这种接口如何测试
- 接口产生的垃圾数据如何清理
- 测试的数据你放在哪
- 你们数字签名怎么实现的
- 当一个接口出现异常时候,你是如何分析异常的
- 你们怎么做的参数化
- 如何进行数据清洗
- 如何进行数据检验
- response怎么验证, 参数特别多
- 做接口测试如何分析是前端还是后端的问题
- 在测试接口中怎么知道请求成功还是失败
- 如何模拟弱网测试
- 异步接口怎么测试
- 接口的加密测试中对称加密与非对称加密有什么区别?如何开展测试?请详解
- 请详细阐述接口测试和UI测试在测试活动中是如何协同测试的?
- 目前接口文档是由word格式管理,因迭代快,产生很多文裆,分不滴哪些鼉不用的接口,哪些是正在用的接口,哪些是更新后的接口, 文裆杂乱.另外因是 word格式管理,不方便童询,如何管理?每次查看接口文档需要下截多个word,不能避免下载操作查看,效率不离,如何提离工作效率
接口依赖
- 很多接口都需要登录怎么处理?
- 依赖于登录的接口如何处理 -token 和 session的管理
- 在手工接口测试或者自动化接口测试的过程中,上下游接口有致据依赖如何处理
- 依赖于第三方数据的接口如何进行测试
- 接口测试中依赖登录状态的接口如何测试
- 如果两个请求有严格的先后顺序,需要测试调转顺序的情况
- 在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依
赖如何处理? - 下个接口请求参数依赖上个接口的返回数据
Web Service
- HTTP接口测试和Web Service接口测试区别是什么?
- Web Service接口是如何测试的
接口框架
- 接口测试框架怎么搭建的?
- 你有没有做过框架稳定性优化相关的工作?
- 持续集成怎么做的?
Mock
- Mock怎么使用
- 你们Mock是怎么做的
RPC
- rpc接口怎么测试
- 什么是RPC接口,用Http设计一个RPC接口
- 你有没有自己实现过rpc框架
性能
- JMeter怎么存储变量, 让下一个接口使用
- 如何进行接口压测
- JMeter执行10次
- JMeter获取上一个request的结果
- JMeter完成一个用例
- 做接口测试当请求参数多时tps下降明显,此接口根据参数从redis中获取数据,每个 参数与redfs交互一次,当一组参数是tps5133,五组参数是tps1l69,多次交互影响了处理住能,请详细描述述如何改进增进效果的方案
高能部分
- TCP报头格式
- UDP报头格式
- TCP/UDP区别(不仅是宏观上的,最好能根据各自的机制讲解清楚)
- HTTP状态码(最好结合使用场景,比如在缓存命中时使用哪个)
- HTTP协议(一些报头字段的作用,如cace-control、keep-alive)
- OSI协议、TCP/IP协议以及每层对应的协议
- Session机制、Cookie机制
- TCP三次握手、四次挥手(这个问题真的要回答吐了,不过真的是面试官最喜欢问的,建议每天手撸一遍,而且不只是每次请求的过程,各种FIN_WAIT、TIME_WAIT状态也要掌握)。
- 打开网页到页面显示之间的过程(涵盖了各个方面,DNS解析过程,Nginx请求转发、连接建立和保持过程、浏览器内容渲染过程,考虑的越详细越好)。
- http和https区别,https在请求时额外的过程,https是如何保证数据安全的
- IP地址子网划分
- POST和GET区别
- DNS解析过程
- TCP如何保证数据的可靠传输的(这个问题可以引申出很多子问题,拥塞控制慢开始、拥塞避免、快重传、滑动窗口协议、停止等待协议、超时重传机制,最好都能掌握)
- 地址解析协议ARP
- 交换机和路由器的区别
- HTTP2.0、thrift
- API接口与SDI接口的区别(API是提供给别人的接口)
- dubbo如何一条链接并发多个调用。Dubbo的原理,序列化相关问题
- 你怎么理解http协议
- 说说http协议的工作流程
- http有哪些请求提交方式
- http中的200,302,403,404,500,503都代表什么状态
- 什么是web缓存?有什么优点
- 你怎么理解cookie和session,有哪些不同点
- 什么是https,说说https的工作原理
- 什么是http代理服务器,有什么用
- 什么是分布式系统
- 分布式系统你会考虑哪些方面
- 讲讲CAP理念
- 怎么理解强一致性、单调一致性和最终一致性
- 分布式系统设计你会考虑哪些策略
- 讲一讲TCP协议的三次握手和四次挥手流程
- 讲一讲TCP协议的三次握手和四次挥手流程
- 为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接
- 为什么TCP TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态
- 什么是DoS、DDoS、DRDoS攻击?如何防御
- 为什么说TCP/IP协议是不可靠的
- OSI有哪七层模型?TCP/IP是哪四层模型
四、自动化测试面试题
1、你会封装自动化测试框架吗?
这个问得最多,甚至有很多公司直接写在招聘要求中!
当然可以,自动化框架主要的核心框架就是分层+PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。
2、如何把自动化测试在公司中实施并推广起来的?
1.项目组调研选择自动化工具并开会演示demo案例,我们主要是演示selenium和robotframework两种。
2.搭建自动化测试框架,在项目中逐步开展自动化。
3.把该项目的自动化流程、框架固化成文档
4.推广到公司的其它项目组应用
3、请描述一下自动化测试流程?
1.编写自动化测试计划
2.设计自动化测试用例
3.编写自动化测试框架和脚本
4.调试并维护脚本
5.无人值守测试
6.后期脚本维护(添加用例、开发更新版本)
4、自动化测试用例如何编写?以下答案二选一即可:
1.用例是自动化测试工程师自己设计的,一般刚开始已基本业务流程为主(登录–完成一个业务–退出)
2.从系统测试用例中进行筛选或由业务工程师提供
5、上一个项目中自动化测试的执行策略?
上一个项目中是定时执行的,设置的执行时间是晚上12点,执行完毕后会自动发送邮件通知
6、自动化测试发现BUG多吗?
不多,因为之前项目组是把已经测试通过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试,它主要是保证已经测试通过的功能在新版本更新后没有问题。
7、你觉得自动化测试的价值在哪里?你们公司为什么要做自动化测试?
引用自动化测试之后,能代替大量繁琐的回归测试工作,把业务测试人员解放出来,既而让业务测试人员把精力集中在复杂的业务功能模块上,自动化测试一般是对稳定下来的功能进行自动化,保证不会因为产品的更新导致之前稳定下来的功能出现BUG
8、自动化测试有误报过bug吗?产生误报怎么办?
有误报过,有时候自动化测试报告中显示发现了bug,实际去通过手工测试去确认又不存在该bug。
误报原因一般是:
1.元素定位不稳定,需要尽量提高脚本的稳定性;
2.开发更新了页面但是测试没有及时更新维护!
9、自动化测试过程中,你遇到了哪些问题,是如何解决的?
1.频繁地变更页面,经常要修改页面对象类里面的代码
2.自动化测试偶尔出现过误报
3.自动化测试结果出现覆盖的情况:Jenkins根据时间建立文件夹
4.自动化测试代码维护比较麻烦
5.自动化测试进行数据库对比数据
10、在上一家公司做自动化测试用的什么框架?
可以说出以下自己擅长的一种:
1.python+selenium+unittest+htmltestrunner
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
稳定性;
2.开发更新了页面但是测试没有及时更新维护!
9、自动化测试过程中,你遇到了哪些问题,是如何解决的?
1.频繁地变更页面,经常要修改页面对象类里面的代码
2.自动化测试偶尔出现过误报
3.自动化测试结果出现覆盖的情况:Jenkins根据时间建立文件夹
4.自动化测试代码维护比较麻烦
5.自动化测试进行数据库对比数据
10、在上一家公司做自动化测试用的什么框架?
可以说出以下自己擅长的一种:
1.python+selenium+unittest+htmltestrunner
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-cfYyPUTh-1713250878062)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!