大厂测试面试题含答案

1、描述一下四次握手?

TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过 三次握手 进行初始化的。同时由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是 全双工模式 ,所以需要 四次挥手 关闭连接。

下面是四次握手的过程:

  • 客户端发送一个FIN报文,报文中会指定一个序列号。

  • 服务器收到FIN报文后,会发送一个ACK报文,报文中包含了客户端发送过来的序列号+1。

  • 服务器发送一个FIN报文,报文中会指定一个序列号。

  • 客户端收到FIN报文后,会发送一个ACK报文,报文中包含了服务器发送过来的序列号+1。

四次挥手过程中,双方都需要确认彼此的关闭请求和确认请求,以确保数据的完整传输和连接的正常关闭。

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

2、在网页输入一个地址,会发生什么?

当在浏览器中输入一个网址并按下回车键时,会发生以下过程:

  1. 首先,浏览器会解析你输入的网址,判断它是否合法。如果不合法,浏览器会自动进行搜索。

  2. 浏览器会向 DNS 服务器发送请求,以获取该网址对应的 IP 地址。

  3. 浏览器会与该 IP 地址建立 TCP 连接,并向服务器发送 HTTP 请求。

  4. 服务器会响应该请求,并返回相应的 HTML 文件。

  5. 浏览器会解析 HTML 文件,并根据其中的 CSS 和 JavaScript 代码渲染出网页。

3、进程的调度算法有哪些,进程的状态有哪些?

进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。进程有五种状态:创建态,就绪态,运行态,阻塞态,结束态。进程的调度算法有以下几种:

  • 先来先服务(FCFS):按照进程到达的先后顺序进行调度。

  • 短作业优先(SJF):选择剩余时间最短的进程进行调度。

  • 优先权优先(FPF):按照进程的优先级进行调度。

  • 时间片轮询法:将CPU时间分成若干个时间片,每个进程占用一个时间片后就重新排队等待下一次调度。

4、简述下数据库索引

数据库索引是一种数据结构,用于加快数据库查询的速度和性能。索引是对数据库表中一个或多个列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。索引分为单列索引和组合索引。单列索引只包含单个列,一个表可以有多个单列索引。组合索引包含多个列。创建索引时,需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。虽然索引能够提高查询性能,但也需要注意以下几点:索引需要占用额外的存储空间;对表进行插入、更新和删除操作时,索引需要维护,可能会影响性能;过多或不合理的索引可能会导致性能下降,因此需要谨慎选择和规划索引。

数据库---索引

5、TCP和UDP的区别以及应用场景?

TCP 和 UDP 是传输层协议。TCP 是面向连接的、可靠的流协议,UDP 是面向报文的不可靠数据报协议。TCP 保证数据传输的可靠性,UDP 则不保证可靠性。TCP 适用于对数据传输质量有较高要求的应用,如 HTTP、HTTPS、FTP 等传输文件的协议以及 POP、SMTP 等邮件传输的协议。UDP 适用于对数据传输实时性要求较高,但不对传输质量有要求的应用,如视频传输、实时通信等。

6、出现界面白屏,说下排查思路?

当界面白屏时,可以按照以下步骤进行排查:

  • 检查网络连接是否正常,确保 URL 地址正确。

  • 打开控制台,查看是否有报错信息。

  • 检查接口访问是否有请求。

  • 检查路由是否有 path 错误,导致加载了不存在的页面。

  • 从 JS 和 CSS 方面检测,排除网络问题后,如果还是白屏,那一般都是 CSS 和 JS 加载造成的。CSS 和 JS 会造成阻塞渲染。

7、描述下性能测试指标?

性能测试指标是衡量系统性能的评价标准,常用的系统性能测试指标包括:响应时间、并发用户/并发、点击率、吞吐量、TPS/QPS、PV/UV;

Linux服务器常用的性能指标包括:CPU使用率、内存占用率、磁盘IO、系统平均负载等。从以上的性能测试指标可以看出,性能包含多个维度。

8、描述下可变类和不可变类区别?

在计算机编程中,可变类和不可变类是两种不同的类别。可变类是指其实例的状态可以在创建后更改,而不可变类是指其实例的状态不能更改。例如,Python 中的列表是可变的,而元组是不可变的。

以下是可变类和不可变类之间的一些区别:

  • 可变类的实例可以更改,而不可变类的实例不能更改。

  • 可变类的实例通常需要更多的内存,因为它们需要存储状态的历史记录。

  • 不可变类的实例通常比可变类的实例更容易缓存和共享,因为它们具有相同的状态。

  • 不可变类可以更容易地进行线程安全编程,因为它们没有竞争条件。

9、描述下数组和列表的区别?

在 Python 中,列表和数组都是用于存储多个元素的数据结构。它们都支持索引、切片和迭代等操作。但是,它们之间有以下区别:

  • 列表可以包含不同类型的元素,而数组只能包含相同类型的元素。

  • 列表可以动态增加或删除元素,而数组的大小是固定的。

  • 在 Python 中,列表是内置的数据类型,而数组需要通过导入 array 模块来使用。

10、python文字乱码怎么办?

Python 中出现文字乱码的原因通常是编码格式不一致导致的。以下是一些解决方法:

  • 在 Python 文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8,确保文件编码格式为 UTF-8。

  • 在字符串前面加上 u,使用 Unicode 编码存储中文。

  • 使用 decode() 和 encode() 方法将字符串转换为指定编码格式。

  • 在控制台中输入中文时,需要将提示字符串强制转换为 GBK 编码。

11、什么是测试用例?什么事测试脚本?两者关系是什么?

测试用例是一个具体的测试场景或测试情况,它描述了被测系统在特定条件下的输入、操作和预期输出。测试用例通常包括测试目的、测试步骤、预期结果和实际结果等信息,用于验证软件系统的功能、性能或其他质量属性。

测试脚本是一段自动化脚本或代码,用于执行测试用例并验证预期结果。测试脚本通常由测试工程师编写,使用特定的测试框架、编程语言和工具来实现自动化测试。测试脚本可以模拟用户的操作,自动执行一系列测试步骤,并根据预期结果进行断言验证。

两者之间的关系是:测试脚本是测试用例的具体实现,它将测试用例转化为可自动化执行的代码。

12、测试如何模拟404、断网、断电、找不到网页的情况?

  • 模拟404:在测试环境中,可以修改请求的URL地址,将其修改为不存在的地址,从而模拟404错误。

  • 模拟断网:可以使用网络模拟工具,如Network Link Conditioner(Mac)或Clumsy(Windows),来模拟网络连接不稳定或断开的情况。

  • 模拟断电:可以使用硬件模拟器,如Chaos Monkey,来模拟服务器宕机或断电的情况。

  • 模拟找不到网页:可以在测试环境中删除或移动网页文件,从而模拟找不到网页的情况。

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

终于成功上岸字节软件测试岗,多亏刷了这1000+道大厂面试真题,如果你还在面试,建议你试试

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

全套资料获取方式:点击下方小卡片自行领取即可

相关推荐
周小董7 小时前
[1336]python rich库
程序员
摆烂工程师7 小时前
教你如何认证 Gemini 教育优惠的二次验证,薅个 1年的 Gemini Pro 会员
后端·程序员·gemini
c萱10 小时前
软件测试错题笔记
软件测试·数据库·笔记·测试工具·oracle·测试用例
考虑考虑11 小时前
Redis8中的布谷鸟过滤器
redis·后端·程序员
川石教育13 小时前
软件测试中的Bug知识总结
软件测试·bug·压力测试·缺陷管理·bug分类
我要改名叫嘟嘟13 小时前
程序员找“出路”之写作读书满五年
程序员
文心快码 Baidu Comate13 小时前
AI界的“超能力”MCP,到底是个啥?
人工智能·程序员·ai编程·文心快码·comate zulu
周小董13 小时前
[1335]pyperclip模块安装和使用
程序员
摆烂工程师1 天前
Anthropic 停止 Claude 提供给多数股权由中国资本持有的集团或其子公司使用,会给国内的AI生态带来什么影响?
人工智能·程序员·claude