既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
一些增删改查笔试题准备
(另起一篇)
**2、**linux操作
linux搭建测试环境,比如web系统服务搭建。
一些常见命令准备
(另起一篇)
3、缺陷方面(有问到)
描述一个你印象最深刻的bug
在做上传视频的测试时,发现华为荣耀V10上传手机自带相机专业模式录制的视频会闪退。而ios上传同个视频提示合成失败。
我将手机自带相机录制的专业模式和普通模式录制的同样时长的视频发到电脑上,用格式工厂软件查看视频的不同之处,之后发现视频编码是不同的。
我继续网上查阅了视频编码方面的知识,发现mp4视频有几种编码,而继续测试验证发现我们的app上传的视频只支持mp4视频中的H.264编码格式。于是提交了视频上传不支持非H.264格式的视频。并补充完善了相关用例。
(因为在公司没有查日志权限,所以其实应该先查日志)
4、用例部分
现场让你设计个用例,比如水杯、凳子怎么测试?
首先说明的是,遇到这样的测试题目,首先应该反问面试官,需求是什么样的,比如是测什么样的杯子。
因为设计测试用例的规则应该是根据需求分析文档设计用例,客户需求什么,就测试什么。
但是在没有需求分析文档的前提下,来设计测试用例,可以考查一个测试人员的基本功,比如考虑问题是否全面,设计测试用例的方法是否合理等。
一般是根据自己的日常经验和测试的思维来设计测试用例。在设计测试用例时一般从以下几个方面进行分析:功能测试,性能测试,界面测试,安全性测试,兼容性测试,可用性测试,可靠性测试,本地化/国际化测试。
例子(另起一篇)
5、软件测试流程
公司严格规范测试流程和测试文档,首先是参与需求评审,编写测试计划、测试方案、测试用例,进行测试方案及用例的测试组内部评审,外部评审。
提取部分一级用例提交研发自测,研发自测通过后开开始执行一轮系统测试。
测试过程中发现并提交、跟踪问题。
问题修复后进行回归测试。
一轮测试完成后对修复包进行冒烟测试,测试通过则进行二轮测试。
二轮测试完成后会进行需求交叉测试。
完成测试编写系统测试报告提交验收测试。验收测试通过输出验收测试报告。
6、网络相关
网络协议,如TCP/UDP的区别?(https://www.cnblogs.com/steven520213/p/8005258.html)
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
三次握手与四次挥手
三次握手通俗版:
第一次握手:客户端要和服务端进行通信,首先要告知服务端一声,遂发出一个SYN=1的连接请求信号,”服务端哥哥,我想给你说说话”。
第二次握手:当服务端接收到客户端的连接请求,此时要给客户端一个确认信息,”我知道了(ACK),我这边已经准备好了,你现在能连吗(SYN)”。
第三次握手:当客户端收到了服务端的确认连接信息后,要礼貌的告知一下服务端,“好的,咱们开始联通吧(ACK)”。
到此整个建立连接的过程已经结束,接下来就是双方你一句我一句甚至同时交流传递信息的过程了。
四次挥手断开连接通俗版:
第一次挥手:双方交流的差不多了,此时客户端也已经结尾了,接下来要断开通信连接,所以告诉服务端“我说完了(FIN)”,此时自身形成等待结束连接的状态。
第二次挥手:服务端知道客户端已经没话说了,服务端此时还有两句话要给客户端说“我知道你说完了(ACK),我再说两句&*…%¥”…
第三次挥手:此时客户端洗耳恭听继续处于等待结束的状态,服务器端也说完了,自身此时处于等待关闭连接的状态,并对告诉客户端,“我说完了,咱们断了吧(FIN)”。
第四次挥手:客户端收知道服务端也说完了,也要告诉服务端一声(ACK),因为连接和断开要双方都按下关闭操作才能断开,客户端同时又为自己定义一个定时器,因为不知道刚才说的这句话能不能准确到达服务端(网络不稳定或者其他因素引起的网络原因)。
所以默认时间定为两个通信的最大时间之和,超出这个时间就默认服务器端已经接收到了自己的确认信息,此时客户端就关闭自身连接,服务器端一旦接收到客户端发来的确定通知就立刻关闭服务器端的连接。
到此为止双方整个通信过程就此终结。
这里要声明一下:断开链接不一定就是客户端,谁都可以先发起断开指令,另外客户端和服务端是没有固定标准的,谁先发起请求谁就是客户端。
三次握手阐述:
在第一次消息发送中,A随机选取一个序列号作为自己的初始序号发送给B;
第二次消息B使用ack对A的数据包进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时B告诉A自己的初始序列号,就是seq=y;
第三条消息A告诉B收到了B的确认消息并准备建立连接,A自己此条消息的序列号是x+1,所以seq=x+1,而ack=y+1是表示A正准备接收B序列号为y+1的数据包。
四次挥手阐述:
由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,
收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。
首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。
(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
7、测试工具
测试工具,无非这几类:
自动化测试工具 (如QTP)
性能测试工具 (如loadrunner)
测试管理类 (如jira)
安全测试工具
渗透测试工具
8、其他概念问题
Beta测试与Alpha测试有什么区别
1、Alpha测试
Alpha测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。开发者坐在用户旁边,这是在开发者受控的环境下进行的测试。由开发者随时记录下错误情况和使用中的问题。
2、Beta测试
Beta测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,这是在开发者无法控制的环境下进行的测试。由用户记录下遇到的所有问题,定期向开发者报告。beta测试是一模拟真实的使用环境从而发现缺陷的一种测试
3、验收测试
验收测试是以用户为主的测试,软件开发和QA人员也应该参加,测试一般在用户所在地进行,由用户验证软件产品是否满足了所有的需求的一系列的验收测试工作。
仅限于做项目的公司,部门内部测试稳定后,根据合同中需求由发包商进行验收测试。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。
区别:两者的主要区别是测试的场所不同。
Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。
而beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户数量相对比较多,时间不集中。
一般地,alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。如果产品通过了beta测试,那么就可以正式发行了。
Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。
Beta测试 当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。
四、你还有什么想问的吗(必答)
我非常希望能够加入公司,所以想请问您觉得我还有哪些地方比较不足,能否给一些建议?以及是否有复试时间呢?
五、最常见的面试题
-
项目测试流程你是怎么开展的?
-
接口测试用例的编写要点有哪些?
-
APP 测试和 Web 测试有什么区别?
-
你是如何做 app 兼容性测试的?
-
get 和 post 方法有什么区别?
-
常用的元素定位方式?
-
怎么定位是前端 bug 还是后端 bug?
-
项目上线后发现的 bug,你们会怎么处理呢?
-
Group by 和 order by 区别?
-
“长连接”和“短连接”有什么区别?
-
linux 查看日志的命令?当 Linux 数据过多时,如何查看自己想看的信息?
-
赋权命令 chmod 777,3 个数字每一个 7 代表的什么权限?
-
测试计划和测试方案的区别?.
-
http 协议有哪些响应状态码?
-
mysql 中的 where 和 having 有什么区别?
-
你知道白盒测试么? 有哪些白盒测试的方法?
-
在 Linux 系统下如何部署测试环境?
-
抓包工具有哪些以及有什么区别?
-
小程序测试和 app 测试有什么区别呢?
-
数据库中的左连接、右连接和内连接有什么区别?
-
说一下 TCP 协议的三次握手过程?
-
项目页面无法访问,如何定位问题?
-
在浏览器中输入一个网页会发生什么?
-
App 出现 crash 原因有哪些?
-
说一下 TCP 协议的 4 次挥手过程?
-
App 测试中 iOS 和 Android 测试的区别?
-
你能说说“抖音直播”怎么测试么?
-
显示等待、隐式等待和强制等待有什么区别?
-
给你一个产品你是怎么开展测试的?
-
为什么会产生 ANR 这种情况呢?
-
TCP 协议和 UDP 协议的区别?
-
编写测试用例的流程.
-
讲下你印象中最深刻的 bug 吧?
-
OSI 七层模型有哪些层以及有哪些代表协议?
-
b/s 和 c/s 架构有什么区别?.
-
怎么判断一个接口是否有 bug
-
fiddler 如何构造弱网测试?
-
fiddler 断点有什么用?
-
局域网中两台 PC 互 ping 不通,可能原因有哪些?
-
Jmeter 的关联,会用到哪些方法去实现?
-
linux 下编辑文件常用的命令有哪些?
-
查看进程的命令 ps,常用参数有哪些.
-
怎么保证测试质量?
-
如何开展项目的性能测试?
-
jmeter、postman 接口测试工具的区别?
-
http 和 https 协议的区别?
-
https 协议比 http 安全,是如何实现的呢?
-
什么叫做对称加密和非对称加密?
-
双十一抢券怎么测?
-
如果让你单独负责一个项目,需要注意什么呢?
2023 年春招 100 道软件测试面试题答案
-
接口测试到底测什么呢?
-
如果页面上获取不到元素该怎么处理?
-
给你一个微信上一个聊天的窗口你是怎么测试的?
-
偶发性 bug,作为测试该怎么处理?
-
Selenium 中如何保证操作元素的成功率?
-
用户反馈功能很卡,要从哪些方面考虑?
-
给你一个魔盒可以实现任何愿望,作为测试怎么设计测试用例?
-
测试计划要素有哪些?
-
你们公司版本上线标准是怎样的?
-
测试进行不下去的时候,怎么办?
-
说一下购物车功能,怎么测试呢?.
-
如果测试时间比较紧的话,你怎么安排你的工作?
-
怎么对含有验证码的功能进行自动化测试?
-
你能说说“支付功能”怎么测试么?
-
你讲一下登录功能,你会考虑哪些测试点呢?
-
说下模块的功能测试点怎么整理的?
-
MD5、AES 和 RSA 加密有什么区别?
-
socket 和 websocket 有什么区别?
-
常见的 HTTP 接口请求方法有哪些.
-
怎么保证测试用例的覆盖率?
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
-
MD5、AES 和 RSA 加密有什么区别?
-
socket 和 websocket 有什么区别?
-
常见的 HTTP 接口请求方法有哪些.
-
怎么保证测试用例的覆盖率?
[外链图片转存中…(img-d60gY727-1715625784341)]
[外链图片转存中…(img-3qMy75I2-1715625784341)]
[外链图片转存中…(img-IFWX64g4-1715625784341)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新