大厂测试面试题含答案

174 篇文章 2 订阅
167 篇文章 0 订阅

1、描述一下四次握手?

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

下面是四次握手的过程:

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

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

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

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

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

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,来模拟服务器宕机或断电的情况。

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

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值