前言
2023秋招即将来临,很多同学会问软件测试面试八股文有必要背吗?

我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。

国内的互联网面试,恐怕是现存的、最接近科举考试的制度。

而且,我国的八股文确实是独树一帜。

也许现行的八股文面试不是最优的解法,但的确是最符合当前国内IT环境的做法。

所以,我采访了超过20位资深大厂面试官后,一直在尽量精炼准确的整理一套切实可行的八股文,现在已经有329位粉丝通过这套题走入了理想的岗位,所以分享出来给大伙看看,有什么不足之处欢迎评论补充。

篇幅所限本文就只贴一下题目了,同学们可以自己先看看有哪些题是会的,答案的话我整理的一本《软件测试面试八股文》PDF里都有,获取的方法在文末了哦!

一、软件测试基础 280 道
什么是软件测试?
软件测试的目的?
软件测试的目标
软件测试的原则
测试的工作流程
测试工程师的职责
软件都有多少种分类?
软件的分类
测试的主要方面
软件测试的对象
什么是“测试案例"?
怎么编写案例?
软件测试的两种方法
测试结束的标准是什么?
软件的生命周期
什么是软件的生命周期?
软件测试按过程分为三个步骤
面向对象的设计如何影响测试?
软件带来错误的原因很多。主要的原因有哪些?
做好软件测试的一些关键点
软件测试的步骤是什么?
如何录制测试脚本?
应该考虑进行如何测试的测试方法
怎样估计测试工作量?
测试设计的问题
当测试过程发生错误时,有哪几种解决办法?
测试执行的问题
测试评估的目标
如何提高测试?
C/S模式的优点和缺点

二、Liunx 57 道
说出10个以上的Linux命令
在RedHat中,从root用户切到userl用户,-般用什么命令?
Linux中,一般怎么隐藏文件?
在Linux系统中,一个文件的访问权限是755,其含义是什么?
如何查看CPU信息?
查看占用CPU使用率最高的进程?
如何查看一个文件的末尾 50行?
如何过滤文件内容中包含"ERROR"的行?
查看某端口号?
查看某进程号?
grep和find的区别? grep 都有哪些用法?
查看IP地址?
创建和删除一个多级目录?
在当前用户家目录中查找haha.txt文件?
如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
动态查看日志文件?
查看系统硬盘空间的命令?
查看当前机器listen 的所有端口?
把一个文件夹打包压缩成targz的命令,以及解压拆包.targz的命令?
Xshell工具如果想要实现从服务器上传或者下载文件的话,可以在服务器上安装什么包?
以/etc/passwd的前五行内容为例,提取用户名?
在linux 中find和grep的区别?
linux查看文件用什么命令,查看进程用什么命令
查看日志常用什么命令,主要查看什么内容

三、MySQL基础 87 道
什么是数据库?
什么是关系型数据库,主键,外键,索引分别是什么?
写出表的增删改查SQL语法
SQL的表连接方式有哪些?
表的连接查询方式有哪些,有什么区别?
什么三范式?
SQL的select 语句完整的执行顺序?
说一下Mysql数据库存储的原理?
事务的特性?
简述什么是存储过程和触发器?
什么是数据库索引?
数据库怎么优化查询效率?
你用的Mysql是哪个引擎,各引擎之间有什么区别?
如何对查询命令进行优化?
数据库的优化?
Sql注入是如何产“生的,如何防止?
NoSQL和关系数据库的区别?
MySQL与MongoDB本质之间最基本的差别是什么
Mysql数据库中怎么实现分页?
Mysql数据库的操作?
优化数据库?提高数据库的性能?
什么是数据的完整性?
存储过程和函数的区别?
怎么进行SQL的查询优化? ’
索引的作用,聚集索引与非聚集索引的区别

四、接口测试 36 道
什么是接口
如果模块请求http改为了https.测试方案应该如何制定,修改?
常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
描述TCP/IP协议的层次结构,以及每一- 层中重要协议
jmeter,一个接口的响应结果如下:
接口产生的垃圾数据如何清理
依赖第三方的接口如何处理
测试的数据你放在哪?
什么是数据驱动,如何参数化?
下个接口请求参数依赖上个接口的返回数据
依赖于登录的接口如何处理
接口测试的步骤有哪些?
接口测试中依赖登录状态的接[如何测试?
依赖于第三方数据的接口如何进行测试?
解释什么是SOAP?
解释什么是REST API?
API测试发现的Bug类型是什么?
我们测试的接口属于哪一类?
Cookie保存在哪里?
HTTP有哪些请求方法?
接口自动化测试的流程?
接口测试用例的编写要点有哪些?
提到UI级别测试和API测试之间的关键区别?
HTTPS的工作原理
HTTPS有哪些优点?
HTTPS的缺点

五、Python基础 248 道
斐波那契数列求N?
字符串反序输出?
判断回文?
统计python源代码文件中代码行数,去除注释,空行,进行输出?
python调用cmd并返回结果?
冒泡排序
1,2,3,4这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
给定一个整数N,和一个0-9的数K,要求返回0-N中数字K出现的次数
请用python 打印出10000以内的对称数(对称数特点:数字左右对称,如: 1,2,11,1…
判断101-200 之间有多少个素数,并输出所有的素数
说一下字典和 json 的区别?
什么是可变、不可变类型?
存入字典里的数据有没有先后排序?
字典推导式?
什么是集合
快速去除列表中的重复元素
交集:共有的部分
并集:总共的部分
差集:另一个集合中没有的部分
对称差集(在a或b中,但不会同时出现在者中)

六、selenium 40 道
什么是Selenium?
什么是Selenium Webdriver
S什么是elenium IDE?
常用自动化测试工具机器运行原理,写出一段元素查找的代码?
如何开展自动化测试框架的构建?
如何设计自动化测试用例:
webdriver如何开启和退出一个浏览器?
什么是自动化测试框架?
Selenium是什么,流行的版本有哪些?
你如何从命令行启动Selenium RC?
在我的机器端口444不是免费的。我怎样才能使用另一个端口?
什么是Selenium Server,它与Selenium Hub有什么不同?
你如何从Selenium连接到数据库?
你如何验证多个页面上存在的一个对象?
XPath中使用单斜杠和双斜杠有什么区别?
如何编写Selenium IDE/ RC的用户扩展?
如何在页面加载成功后验证元素的存在?
你对Selenium Grid有什么了解?它提供了什么功能?
如何从你的Java Class启动Selenium服务器?
Selenium中有哪些验证点?
什么是XPath?什么时候应该在Selenium中使用XPath?
什么是Selenium的CSS定位器策略?用例子来解释。
当有很多定位器时,如ID、名称、XPath. CSS定位器,我应该使用哪一个?
在Selenium中处理多个弹出窗口的机制是什么?
你如何处理使用Selenium的Ajax控件?
Selenium Webdriver优于Selenium RC的优点是什么?
"GET’和"NAVIGATE"方法的主要区别是什么?
隐式等待与显式等待有什么不同?
你将如何处理Selenium WebDriver中的警报/弹出窗口?
七、性能测试 15 道
性能测试有哪些分类
你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
服务端性能分析都从哪些角度来进行?
如何理解压力测试,负裁测试以及性能测试?
如何判断是否有内存泄漏及关注的指标?
描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
简述什么是值传递,什么是地址传递,两者区别是什么?
什么是系统瓶颈?

八、loadrunner 80 道
LoadRunner的工作原理是什么?
LoadRunner分哪三部分?
LoadRunner进行测试的流程?
什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样?
LoadRunner脚本如何录制和编写?
LoadRunner中的Think Time有什么作用?
在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试…
台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
客户交付一个性能测试项目,请阐述你的实施流程。
解释5个常用的性能指标的名称与具体含义。
写出5个Loadrunner中常用函数,并对其中2个举例说明用法。
简述LoadRunner的工作原理?
什么是集合点?设置集合点有什么意义? LoadRunner中设置集合点的函数是哪个?
HTML-based script与URL based script的脚本有什么区别?
如何设置LaodRunner才能让集合点只对一半的用户生效?
LoadRunner的Controller组件中Pacing 参数的作用是什么?
LoadRunner中如何监控Windows资源?
如果让QALoad模拟LoadRunner中只对关注的性能点进行迭代测试,你有什么好方…
什么是负载测试?
什么是性能测试?
说明负载测试过程?
我们什么时候做负裁和性能测试?
什么是LoadRunner的组件?
你用LoadRunner的哪个组件录制脚本?
在多用户模式下你用LoadRunnner的哪个组件来回放脚本?
在多用户模式下你用LoadRunnner的哪个组件来回放脚本?
什么是场景

九、计算机网络 45 道
为什么需要三次握手?两次不行?

为什么需要四次挥手?三次不行?

TCP与UDP有哪些区别?各自应用场景?

HTTP1.0,1.1,2.0 的版本区别

POST和GET有哪些区别?各自应用场景?

HTTP 哪些常用的状态码及使用场景?

HTTP状态码301和302的区别,都有哪些用途?

在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?

HTTP 如何实现长连接?在什么时候会超时?

TCP 如何保证有效传输及拥塞控制原理

IP地址有哪些分类?

GET请求中URL编码的意义

什么是SQL 注入?举个例子?

谈一谈 XSS 攻击,举个例子?

讲一下网络五层模型,每一层的职责?

简单说下 HTTPS 和 HTTP 的区别

对称加密与非对称加密的区别

简单说下每一层对应的网络协议有哪些?

ARP 协议的工作原理?

TCP 的主要特点是什么?

UDP 的主要特点是什么?

TCP 和 UDP 分别对应的常见应用层协议有哪些?

为什么 TIME-WAIT 状态必须等待 2MSL 的时间呢?

保活计时器的作用?

TCP 协议是如何保证可靠传输的?

谈谈你对停止等待协议的理解?

谈谈你对 ARQ 协议的理解?

谈谈你对滑动窗口的了解?

谈下你对流量控制的理解?

谈下你对 TCP 拥塞控制的理解?使用了哪些算法?

什么是粘包?

TCP 黏包是怎么产生的?

怎么解决拆包和粘包?

forward 和 redirect 的区别?

HTTP 方法有哪些?

在浏览器中输入 URL 地址到显示主页的过程?

DNS 的解析过程?

谈谈你对域名缓存的了解?

谈下你对 HTTP 长连接和短连接的理解?分别应用于哪些场景?

HTTPS 的工作过程?

HTTP 和 HTTPS 的区别?

HTTPS 的优缺点?

什么是数字签名?

什么是数字证书?

Cookie 和 Session 有什么区别?

十、逻辑题 32 道
烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?
一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?
12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?
已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

十一、人力资源 16 道
你的测试职业发展是什么?你自认为做测试的优势在哪里?
你找工作时,最重要的考虑因素为何?
为什么我们应该录取你?
请谈谈你个人的最大特色。
一个测试工程师应具备那些素质和技能?
还有问一-下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质…
为什么选择测试这行?
为什么值得他们公司雇用?
如果我雇用你,你能给部i门带来什么贡献?
如何从工作中看出你是个自动自觉的人
你的工作通常能在时限内完成吗. (我想问一下就是她问这 个问题的动机是什么)
通常你对于别人批评你会有什么样的反应
如果明知这样做不对,你还会依主管的指过去做吗?
你在五年内的个人目标和职业目标分别是什么?
你怎样做出自己的职业选择?
离职时候发工资多少?

整份文档一共有400多页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!

总结
PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。【点击文末小卡片免费领取】
记住这份软件测试八股文还怕不能拿offer?你值得拥有-LMLPHP

10-04 17:07