软件测试八股文,面试必备,查漏补缺

news2024/11/18 11:17:12

前言

时光荏苒,一转眼已踏入2023年,人员就业市场以往的寒冬也貌似有了转暖的迹象,身边大批的就业人员也开始了紧张的备战之中。近几周也和多家合作公司的HR进行了沟通,发现虽然岗位就业情况较去年有所好转,但整体的需求缺口与候选人的条件选择却比19年的时候稀少与严格了许多。

许多的应聘者投出简历之后经常会遇到根本没有反馈的情况,一方面也是大批的大厂、中厂的竞争者出现,他们有着大厂背景和大项目背书,相对来说公司方面就有了更优解,另一方面经历了去年一整年的变故,许多的优势竞争者只能降低预期,这对用人单位来说性价比就更高了。

也正是因为以上的种种,博主作为一个测试管理者也常年面试各类的测试行业就业人员,也发现了形形色色的面试相关的问题,希望将自己的长久经验积累转化为博文的这种方式来帮助到更多的软件测试应聘者。

大家可以通过面试题内的一些解析再结合自己的真实工作经验来进行答题思路的提取、整理。

友情提示:硬背答案虽好,但容易翻车哦。

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

2023最新【软件测试面试300问】面试八股文教程,涵盖自动化测试/接口测试/性能测试/测试开发等内容

软件测试面试题分享

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

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

总结 

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1109966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何选择适合自己的跨境商城源码

选择适合自己的跨境商城源码是每个想要开展跨境电商业务的企业所面临的重要决策。源码的选择直接关系到商城功能的完整性、运营的便捷性以及未来的可定制性。在众多源码供应商中,我们为您提供以下几点参考,帮助您做出明智的选择。 1. 功能完整性 一个适合…

电脑断电后无法正常启动?这样解决!

“昨天公司遭遇突然的停电,导致无法继续工作,只得提前下班回家。今天回到办公室,电脑却陷入了启动问题。我试图多次重启,希望进入安全模式,但却一直卡在Windows启动进度条,紧接着出现了一个蓝底白字的画面&…

三级等保-linux服务器三权分立设置

安全问题 安全控制点 风险分析 风险等级 标准要求 加固建议 服务器未严格按照系统管理员权限、审计管理员权限、安全管理员权限进行分配管理员账户,未实现管理员用户的最小权限划分。 访问控制 可能存在管理员越权操作的风险 中 d)应授予管理用户所需的最…

如何选择优质的静动态住宅代理IP提供商?

当前,当网络隐私和数据安全备受关注时,住宅代理的使用已成为不可或缺的资源。从网络抓取者和营销人员到安全爱好者和在线安全爱好者,住宅代理在执行任何在线活动时提供基本的匿名性。 然而,并非所有住宅代理提供商都是相同的&…

anaconda中安装pytorch(GPU版)(离线安装)(最简单)

anaconda中安装pytorch(GPU版)(离线安装)(最简单)_anaconda安装pytorch gpu-CSDN博客anaconda里安装pytorch,GPU版本,离线本地安装,新手_anaconda安装pytorch gpuhttps://blog.csdn.…

哪家堡垒机支持国密算法?有哪些功能?

国密算法即国家密码局认定的国产密码算法,即商用密码。最近看到有不少小伙伴在问,哪家堡垒机支持国密算法?有哪些功能? 哪家堡垒机支持国密算法? 行云堡垒支持SM2、SM3、SM4等国产密码算法,同时支持国密…

Kubernetes基础概念及架构和组件

目录 一、kubernetes简介 1、kubernetes的介绍与作用 2、为什么要用K8S? 二、kubernetes特性 1、自我修复 2、弹性伸缩 3、服务发现和负载均衡 4、自动发布(滚动发布/更新)和回滚 5、集中化配置管理和密钥管理 6、存储编排 7、任务批…

突破Java编程的关键:揭示封装、继承和多态的核心原理与实际应用

Java中的封装、继承和多态知识点是学习java必备的基础知识,看似简单,真正理解起来还是有一定难度的,今天小编再次通过实例代码给大家讲解java 封装继承多态知识,感兴趣的朋友一起学习下吧。 封装 所谓的封装就是把类的属性和方法…

工具及方法 - TagSpaces

如今电子资料实在太多,每个人都可以访问和存储到大量的数据,可如何整理却是个伤脑筋的麻烦事。 我以前用过Canto的Cumulus,是一个local的digital asset management (DAM)软件,但现在已经变成云端的了,本地客户端的新版…

MySQL 主从复制原理

文章目录 1.主从复制方式1.1 异步复制1.2 半同步复制1.3 全同步复制 2.主从复制原理3.主从复制时推还是拉?参考文献 主从复制是 MySQL 高可用(备份)和高性能(读写分离)的基础,有了这个基础,MySQ…

微信小程序自定义组件及投票管理与个人中心界面搭建

14天阅读挑战赛 人生本来就没定义,任何的价值都是自己赋予。 目录 一、自定义tabs组件 1.1 创建自定义组件 1.2 tabs.wxml 编写组件界面 1.3 tabs.wxss 设计样式 1.4 tabs.js 定义组件的属性及事件 二、自定义组件使用 2.1 引用组件 2.2 编写会议界面内容 …

【迎战2023双十一】小白也能玩转!手把手教你实时获取多平台店铺数据,轻松实现数据大屏展示

要实时获取多平台店铺数据进行数据大屏展示,需要进行以下步骤: 确定数据采集方式:通过爬虫程序(如Python的BeautifulSoup、Scrapy等爬虫框架)或API接口来实现数据的获取,确定该方法所需的数据格式和调用方…

如何搭建远程控制家中设备的Home Assistant智能家居系统【内网穿透】

文章目录 前言1. 安装Home Assistant2. 配置Home Assistant3. 安装cpolar内网穿透3.1 windows系统3.2 Linux系统3.3 macOS系统 4. 映射Home Assistant端口5. 公网访问Home Assistant6. 固定公网地址6.1 保留一个固定二级子域名6.2 配置固定二级子域名 7、结语 前言 Home Assis…

冰蝎默认加密的流量解密

破解冰蝎的默认加密 流量包分析 上传的冰蝎流量包 POST /web-zh/DVWA/vulnerabilities/upload/ HTTP/1.1 Host: 192.168.197.111 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0 Accept: text/html,application/xhtmlxml,a…

逐字稿 | 8 视频理解论文串讲(上)【论文精读】

目录 1 自从 Alexnet 之后,对视频理解的研究就从这种手工特征慢慢转移到卷积神经网络了。 ​编辑 1.1Deep video——深度学习时代,使用卷积神经网络去处理视频理解问题的最早期的工作之一 1.2如何把卷积神经网络,从图片识别应用到视频识别…

深度学习YOLOv4环境配置

软件安装 1、什么是CUDA CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 CUDA下载地址为CUDA Toolkit Archive | NVIDIA Developer 版…

Python数据挖掘项目实战——自动售货机销售数据可视化分析及销售额预测

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

凉鞋的 Unity 笔记 202. 变量概述与简介

202. 变量概述与简介 想要用好变量不是一件简单的事情,因为变量需要命名。 我们可以从两个角度看待一个变量,第一个角度是变量的功能,第二个是变量的可读性。 变量的功能其实非常简单,变量可以存储一个值,这个值是特…

Leetcode—137.只出现一次的数字II【中等】

2023每日刷题&#xff08;二&#xff09; Leetcode—137.只出现一次的数字II 没有满足空间复杂度的Map题解 class Solution { public:int singleNumber(vector<int>& nums) {unordered_map<int, int>count;for(int iter: nums) {count[iter];}int ans 0;for(…

混凝土板材及砌块生产线数字孪生可视化管理系统,实现智慧工厂车间智能化数字化管理

混凝土板材及砌块生产线数字孪生可视化管理系统&#xff0c;实现智慧工厂车间智能化数字化管理。随着国家智能制造的高质量快速发展&#xff0c;生产线数字孪生可视化管理系统已成为企业管理中不可或缺的一部分。巨蟹数科利用数字孪生平台开发建模和VR虚拟仿真技术&#xff0c;…