记住这份软件测试八股文还怕不能拿offer?你值得拥有
2022秋招即将来临,很多同学会问软件测试面试八股文有必要背吗?
我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。
国内的互联网面试,恐怕是现存的、最接近科举考试的制度。
而且,我国的八股文确实是独树一帜。
也许现行的八股文面试不是最优的解法,但的确是最符合当前国内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 道
1. 为什么需要三次握手?两次不行?
2. 为什么需要四次挥手?三次不行?
3. TCP与UDP有哪些区别?各自应用场景?
4. HTTP1.0,1.1,2.0 的版本区别
5. POST和GET有哪些区别?各自应用场景?
6. HTTP 哪些常用的状态码及使用场景?
7. HTTP状态码301和302的区别,都有哪些用途?
8. 在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?
9. HTTP 如何实现长连接?在什么时候会超时?
10. TCP 如何保证有效传输及拥塞控制原理
11. IP地址有哪些分类?
12. GET请求中URL编码的意义
13. 什么是SQL 注入?举个例子?
14. 谈一谈 XSS 攻击,举个例子?
15. 讲一下网络五层模型,每一层的职责?
16. 简单说下 HTTPS 和 HTTP 的区别
17. 对称加密与非对称加密的区别
18. 简单说下每一层对应的网络协议有哪些?
19. ARP 协议的工作原理?
20. TCP 的主要特点是什么?
21. UDP 的主要特点是什么?
22. TCP 和 UDP 分别对应的常见应用层协议有哪些?
23. 为什么 TIME-WAIT 状态必须等待 2MSL 的时间呢?
24. 保活计时器的作用?
25. TCP 协议是如何保证可靠传输的?
26. 谈谈你对停止等待协议的理解?
27. 谈谈你对 ARQ 协议的理解?
28. 谈谈你对滑动窗口的了解?
29. 谈下你对流量控制的理解?
30. 谈下你对 TCP 拥塞控制的理解?使用了哪些算法?
31. 什么是粘包?
32. TCP 黏包是怎么产生的?
33. 怎么解决拆包和粘包?
34. forward 和 redirect 的区别?
35. HTTP 方法有哪些?
36. 在浏览器中输入 URL 地址到显示主页的过程?
37. DNS 的解析过程?
38. 谈谈你对域名缓存的了解?
39. 谈下你对 HTTP 长连接和短连接的理解?分别应用于哪些场景?
40. HTTPS 的工作过程?
41. HTTP 和 HTTPS 的区别?
42. HTTPS 的优缺点?
43. 什么是数字签名?
44. 什么是数字证书?
45. Cookie 和 Session 有什么区别?
十、逻辑题 32 道
- 烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
- 你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
- 如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?
- 一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?
- 12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
- 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?
- 已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
- 已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
- 已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
十一、人力资源 16 道
- 你的测试职业发展是什么?你自认为做测试的优势在哪里?
- 你找工作时,最重要的考虑因素为何?
- 为什么我们应该录取你?
- 请谈谈你个人的最大特色。
- 一个测试工程师应具备那些素质和技能?
- 还有问一-下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质...
- 为什么选择测试这行?
- 为什么值得他们公司雇用?
- 如果我雇用你,你能给部i门带来什么贡献?
- 如何从工作中看出你是个自动自觉的人
- 你的工作通常能在时限内完成吗. (我想问一下就是她问这 个问题的动机是什么)
- 通常你对于别人批评你会有什么样的反应
- 如果明知这样做不对,你还会依主管的指过去做吗?
- 你在五年内的个人目标和职业目标分别是什么?
- 你怎样做出自己的职业选择?
- 离职时候发工资多少?
- ...
由于文章篇幅问题,面试题和答案也放不上来,需要全部的面试题或者要答案的可以转发+关注后私信【软件测试】获取哦