软件测试面试题 —— 整理与解析(3)
😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。
📡主页地址:🌎【Austin_zhai】🌏
🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。
💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家私信,有空必回。

阅读目录
- 1. 接上回
- 2. 题目解析
- 2.1 你如何进行测试计划的编写和执行
- 2.2 你如何处理软件测试中的复杂业务场景和测试用例
- 2.2.1 何为复杂业务场景
- 2.2.2 复杂业务场景的应对
- 2.2.3 复杂测试用例的应对
- 2.3 简述测试用例的重要性以及应该包括哪些内容
- 2.4 请简述QA和QC的区别及其重要性
- 2.5 什么是回归测试? 为什么要进行回归测试?
- 2.6 请说明压力测试和负载测试的区别
- 2.7 如何对一个系统进行安全测试
1. 接上回
之前有粉丝私信博主,除了之前介绍的高频面试题之外,还想了解一些大厂经常会提出的面试题与答题思路,今天就给大家带来一部分大厂会经常使用的软测面试题,大家可以通过面试题内的一些解析再结合自己的真实工作经验来进行答题思路的提取、整理。友情提示:硬背答案虽可,但容易翻车哦。
2. 题目解析
在介绍之前,首先大家要明白的就是在大厂的此类面试中,会有很多开放性的问题,答案不仅仅局限于一个或几个,除了面试者扎实的基础岗位技能之外,用人单位更加需要的是不拘泥于现状、不易固化的产品测试意识与思维。所以,在诸如此类的面试场合,大家最好是能提前将自己掌握的技能进行总结与输出,结合实际并将彼此之间进行连接,形成自己的测试工作体系。那在面对一些开放性面试题的时候就能更加的游刃有余,而不是脑中一片空白。
2.1 你如何进行测试计划的编写和执行
这题我们需要分为两个部分去进行解答,首先就是编写,其实就最基本的测试计划来说,无非就包含测试范围、测试目标、测试方法、测试策略、测试资源等元素,要快速完成这些内容,那我们就需要从需求分析就开始进行计划的制定,无论是熟悉需求、内容设计、过程讨论、认知统一、计划编写、结果周知都必须有序且明确的说明到。接下来,就是执行。计划的执行阶段贯穿整个测试执行活动中,我们要突出如何有效的按照测试计划执行测试活动,并且对测试计划进行定期的更新与优化,这个动作可以在测试执行中的用例设计、执行、缺陷管理等几个环节进行说明。
切记,在回答的时候一定要根据自己的实际岗位工作经验与项目情况进行说明,最好能在讲到编写与执行方两个方面的时候结合一个例子来展开说明你是如何做这些事情的。这样做的好处就是可以强调你在测试活动中对于测试计划的理解与实践有着很强的经验,另外就是最好辅以一些团队成员与你互动的细节,毕竟测试计划的执行成功离不开团队成员的高度配合,同时也可以展现你的团队协作与沟通能力。
2.2 你如何处理软件测试中的复杂业务场景和测试用例
这一题也是见仁见智的经典题目,相信大家在工作中多多少少肯定会碰到复杂的测试场景和与之对应的测试用例,乍一看这题问得好像挺唬人的,但其实只要将其分解开的话,相对来说还是挺好回答的。为了能让大家看的更为的透彻,我们就将答题思路分解开给大家一一讲解。
2.2.1 何为复杂业务场景
在回答这个问题之间,我们必须先搞清楚到底什么是复杂场景,这里的复杂场景一般是指复杂的业务组合,它通常涉及多个业务流程、多个业务系统、多种用户角色、多个操作步骤、多个数据输入和输出等因素,这些因素会根据业务的需要进行组合,当这些因素组合在一起的情况下就变成了我们所谓的复杂业务场景。
而针对类似这样的复杂业务场景,我们的测试同学就需要考虑更多的测试因素,比如各种异常情况、边界条件、并发访问、数据处理等,这会使得测试变得更加困难和复杂。举个例子,如果你需要测试一款航空公司的订票软件,那么你就会碰到以下的一些复杂业务场景:
1. 被测对象需要能够正确计算各种不同的机票价格,包括成人票、儿童票、学生票、军人票、企业优惠票等,同时还需要配合不同的促销活动、折扣等因素;
2. 被测对象需要在乘客需要预订多个联程航班时,系统需要能够正确处理多个航班之间的转机、行李转运等事项;
3. 被测对象需要让乘客可以通过该系统预订特殊服务,例如残疾人服务、儿童服务、餐食服务等,系统需要能够正确处理这些服务的预订和提供相应的服务。
但实际针对以上的这些因素其实表面不单单是简单的单个复杂场景的功能测试,如果以上的3个因素相互进行组合的话,我们可以创造出更多的复杂业务场景,所以对于测试人员来说,如何处理复杂业务场景的能力也是体现其作为软测工程师的重要核心竞争力之一。
2.2.2 复杂业务场景的应对
首先我们需要先了解其相关业务的产品需求与功能设计,通过分析这些资料来准确的了解被测对象的功能内容与预期行为。对以上这些事项有了比较细致的了解之后,我们就可以在前期阶段对于测试场景的设计有一个比较良好的认知和覆盖情况。接下来我们就需要利用前期设计完成的各类测试场景与需求文档或产品设计进行比较,通过已知事项的排列组合将复杂业务场景尽可能多的筛选出来。然后要制定测试策略,不同的测试场景需要不同的测试策略,包括测试用例的设计、测试范围和测试数据的准备等等。如果需要多个场景进行协作,那我们就要将被测对象的预期行为进行明确的路线划分,确保多条测试业务流不会互相干扰,保证其独立性。除此之外,在执行的后期,我们要高效及时地进行问题管理,对于与之相对应的问题与进度及时追踪。最后客户沟通与相关行业的业务深耕也是必不可少的,随着越发的深入行业内部,相信对于复杂业务场景的理解与发现也会越发的娴熟与简单。
2.2.3 复杂测试用例的应对
对于一些复杂业务场景的测试,我们设计相关的复杂测试用例就需要针对其复杂性来进行一些特殊的处理。一般来说复杂业务场景很难用几条测试用例来进行高度覆盖,那么我们可以对测试用例进行一些额外的设计动作,比如使用场景法+正交法来设计一组测试列表,千万不要拘泥于以往的一些设计形式,一定要用一条条的测试用例来进行,换一种更贴合复杂测试场景的方式可能会有更加意想不到的效果。再一个就是我们也可以利用数据驱动测试的特性,设计一系列的数据驱动用例,这样可以更加高效的快速匹配不同数组集合在复杂业务场景下的测试结果,比起单一的测试用例与之固定的单一测试数据,测试效果要事半功倍多了。对于有自动化测试与代码设计能力的同学来说就更加的简单了,我们可以通过自己对于产品业务的理解来对测试脚本进行设计,比如上面说的三个复杂场景,我们可以将其业务逻辑转化为代码逻辑,利用自动化用例中的测试参数来进行自动化的快速验证。但这里切记不要去直接搬运开发的业务逻辑代码,道理应该也不用博主多说,你的代码逻辑和开发的代码逻辑相同,那不就是测了个寂寞吗?
2.3 简述测试用例的重要性以及应该包括哪些内容
我们先来说说测试用例的重要性,简单来说,测试用例就像是一个执行标准手册,我们通过上面的执行步骤来严格执行测试,并对其结果来进行判断。这个不单单是针对测试人员,现在越来越多的开发人员也在利用测试团队编写的各类测试用例对其负责的功能模块进行验证工作。试想如果没有测试用例,对于测试人员来说简直就是灾难,产品质量保障的过程中可能会有场景或功能项的遗漏不说,对于功能的追溯、测试范围与测试深度也是有着较大的影响。另外从测试管理者的角度来说,测试用例不仅是确保团队有效产出成果的重要手段,还是分配人员执行内容、掌控工作进度的重要参考依据。所以对于产品质量保障活动来说,测试用例绝对是及其重要的组成因素之一。
测试用例的组成内容就不用多说了,还是那老几样,一般情况下会根据每个公司的情况不同,使用不同的载体形式展现不同的用例形式(xmind、excel、word、禅道、jira、TAPD等等等等),万变不离其宗的还是其执行的主旨,所以只要根据自身公司与团队的实际需求来配合使用即可。
2.4 请简述QA和QC的区别及其重要性
要回答这个问题我们就需要先搞清楚QA和QC是什么意思,QA的全称为Quality Assurance(质量保证),一般在项目和软件的开发过程中确保从需求发布到项目上线的整个流程都可以得到质量保证。QC的全称为Quality Control(质量控制),它最主要的职责是检测软件缺陷并进行纠正,一般针对软件测试过程的,以确保软件的功能和性能达到预期的要求。
其实这个也不难理解,在我们的产品项目过程中,QA团队会制定一些编码标准、测试计划和质量指标,以确保整个开发与测试团队在开发过程中能够按照相同的标准和流程进行工作。他们还需要定期检查团队的工作,以确保整体流程的质量得到保证。而QC就更好理解了,QC团队会执行各种测试,包括功能测试、性能测试和安全测试,以确保应用程序的各项功能和性能符合预期,并且尽力确保没有缺陷。
那么说到这里其实两者的区别和重要性也就很明显了,QA关注整个开发流程的可控性和可预测性,QC则专注于测试和发现软件的缺陷。通过这种方式,QA和QC就可以各自负责确保软件的质量得到保证,以确保最终交付的软件符合用户的需求和期望。
2.5 什么是回归测试? 为什么要进行回归测试?
什么是回归测试的这个概念应该也不用博主在这里展开说了,大家只要知道回归测试一般在软件代码修改或更新之后,对软件进行的再次测试,以确保修改或更新后的软件仍然能够正常工作,而且没有引入新的问题或缺陷的一种测试类型就行。那么为什么要做回归测试呢?其实在我们的软件测试过程中,无论是因为需求还是缺陷的缘故,这都会需要开发人员不断进行代码的修改和更新,以使软件更加完善和健壮。然而,这些修改或更新有可能会影响到原有的功能或者产生新的问题,因此需要执行回归测试来让我们及时发现和纠正软件修改后可能产生的问题,保证软件的稳定性和可靠性,同时也因为回归测试大部分执行的内容都是主流程和修改更新的功能模块部分以及与之业务相关的功能模块,所以也可以大大节约测试成本和时间。
2.6 请说明压力测试和负载测试的区别
虽然压力与负载测试都属于性能测试,但无论对于测试目的、场景、策略来说都是完全不同的两类测试活动。简单来说压力测试是通过模拟高负载情况下的各种条件和场景,来测试系统在极限负荷下的性能和稳定性。而负载测试则是通过模拟用户使用软件的真实场景,来测试系统在正常负载下的性能和稳定性。经常会有测试同学把这两个概念混淆在一起,对于所需要的测试性能指标也是云里雾里的,像负载测试的性能指标可以找运维人员去拿,而压力测试的指标一般是由产品人员给出。
这里为了方便大家更好的理解其中的区别,我们举个例子,比如在测试活动中我们需要对一个web产品做压力和负载测试。那么先确认请测试的范围(具体针对哪些业务流和与之相关联的功能模块),在做压力测试时,我们需要模拟大量的用户同时访问产品,例如10000个用户,同时模拟这些用户在同一时刻进行测试前规定的业务操作,以测试产品在高负载情况下的性能和稳定性;而在做负载测试时,我们就需要根据web产品的真实用户访问情况,模拟一定数量的用户访问产品,例如1000个用户,模拟这些用户在一段时间内(比如1小时)内访问产品并做一些测试前规定好的业务操作,以测试产品在正常负载下的性能和稳定性。
2.7 如何对一个系统进行安全测试
在现今的IT行业中,安全测试不一定每个公司都会去做,但他却是一种评估系统、应用程序或网络的安全性和弱点的优秀测试方法。它其实可以帮助测试人员发现系统和应用程序中的安全漏洞和脆弱性,以及评估其安全性能和风险。如果你想让公司的产品拥有强健和稳定的生命周期,那么安全测试一定是每个测试人员都无法回避的测试活动。
这里博主给到大家一个较为主流的安全测试执行流程。首先,确定测试目标和范围,比如这次安全测试需要达成的测试目标是发现系统漏洞?评估系统的安全性?范围很好理解,和黑盒一样,被测对象的哪些功能模块;其次,设计测试计划与测试用例,同黑盒,不展开;第三,针对测试目标的具体内容,开展对应的测试活动,利用各种测试手段(渗透、代码走查、模拟攻击、加密检测、安全评估、社交工程等等);第四,测试过程中收集测试数据,这些数据对于测试结果的汇总与安全性评估报告等的产出有着决定性的作用,一定要保证测试手段的正确;最后就是结果数据分析与问题修复,根据测试报告中的问题和建议,分析和修复系统中存在的安全问题和漏洞,达成最终以提高系统的安全性的目的。
另外很多测试人员习惯使用各类的安全测试自动化工具,但这里博主还是要建议大家在执行自动化检测的同时,最好可以自己动手对被测对象做一些手工的安全测试,因为有些场景可能无法使用自动化工具来达到较为理想的测试效果,比如未授权访问、会话管理问题等。
相关文章:

软件测试面试题 —— 整理与解析(3)
😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:🌎【Austin_zhai】🌏 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能…...

springboot常用的20个注解
Spring Boot方式的项目开发已经逐步成为Java应用开发领域的主流框架,它不仅可以方便地创建生产级的Spring应用程序,还能轻松地通过一些注解配置与目前比较火热的微服务框架SpringCloud集成, 而Spring Boot 之所以能够轻松地实现应的创建及与…...

USB组合设备——带鼠标功能的键盘
文章目录带鼠标功能的键盘一个接口实现报告描述符示例多个接口实现复合设备和组合设备配置描述符集合的实现报告的返回附 STM32 枚举日志复合设备:Compound Device 内嵌 Hub 和多个 Function,每个 Function 都相当于一个独立的 USB 外设,有自…...

数据结构与算法基础-学习-18-哈夫曼编码
一、个人理解在远程通讯中,需要把字符转成二进制的字符串进行传输,例如我们需要传输ABCD,我们可以用定长的字符串进行表示,例如:A:00B:01C:02D:03这样可能就造成空间的浪费,我们多存储了一个0号位。那用变长呢…...

ZMC408CE | 实现“8通道独立PSO”应用场景
一、ZMC408SCAN产品亮点 1.高性能处理器,提升运算速度、响应时间和扫描周期等; 2.一维/二维/三维、多通道视觉飞拍,高速高精; 3.位置同步输出PSO,连续轨迹加工中对精密点胶胶量控制和激光能量控制等; 4…...

QuickJS中JS_SetClassProto方法把JavaScript对象指定为某个类的原型对象
在 QuickJS 中,JS_SetClassProto 方法用于设置一个类的原型对象。这个方法的作用是将一个 JavaScript 对象指定为该类的原型对象,从而定义该类的属性和方法。 具体来说,JS_SetClassProto 方法的第一个参数是指向 QuickJS 引擎执行上下文的指…...

泰克信号发生器特点
泰克信号发生器是一种用于产生各种类型的电子信号的仪器,可以广泛应用于电子、通信、自动化、医疗等领域。泰克信号发生器具有以下特点:多种信号类型:泰克信号发生器可以产生多种类型的电子信号,包括正弦波、方波、三角波、脉冲等…...

贯穿设计模式第四话--里氏替换原则
🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,感谢观赏,大家好呀,我是最爱吃鱼罐头,大家可以叫鱼罐头呦~🥳🥳🥳 从今天开始,将…...

6501: 鸡兔同笼
描述 一个笼子里面关了鸡和免子(鸡有两只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。 输入 一个正整数a(a<32768)。 输出 包含两个正整数,第一个是最少的动物数,第二个是最多的…...

Linux项目自动化构建工具-make/makefile 介绍及使用
使用背景 在工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义一系列 规则来指定什么文件需要先编译,什么文件需要后编译,哪些文件需要重新编译,或者更复杂 的功能操作 makefile带来的好处…...

【云原生|Docker】06-dokcerfile详解
目录 前言 Dockerfile基础示例 Dockerfile简介 1. Dockerfile概念 2. Dokcer镜像分层理解 3. Doker build构建原理 Dockerfile参数解析 1. Dokcerfile组成 2. 指令说明 2.1 FROM引入基础镜像 2.2 LABEL 2.3 ENV 2.4 RUN 2.5 COPY 2.6 ADD 2…...

【SCL】博图——先入先出排序法
使用博图SCL语言来实现先入先出排序 前言 使用SCL完成一个先入先出排序 具体要求:最先输入的一个数值,最先输出出来,下面的数自动向前填充; 注:这里可能有两种理解:一是第一个输入的第一个出来ÿ…...

OSPF----特殊区域
目录 OSPF----特殊区域 第一大类----末梢区域(Stub Area) 完全末梢区域((Totally Stub Area) 第二大类特殊区域----非完全末梢区域(NSSA) OSPF----特殊区域 第一大类----末梢区域(Stub Area)…...

JVM-类加载
1:类加载机制: 加、验、准、解、初、使、卸 加、烟、准、姐、初、湿、鞋 加载、将class 文件转化为二进制流加载 JVM 内存中并生成一个该类的Class对象验证、Class 文件的字节流中包含的信息是否符合当前虚拟机的要求准备、在方法区中分配这些变量所…...

超详细讲解C语言文件操作!!
超详细讲解C语言文件操作!!什么是文件文件名文件的打开和关闭文件指针文件的打开和关闭文件的顺序读写文件的随机读写fseekftellrewind文本文件和二进制文件文件读取结束的判定文件缓冲区什么是文件 磁盘上的文件是文件。但是在程序设计中,我…...

linxu学习之进程
文章目录进程程序和进程产生进程销毁进程多进程高并发设计孤儿僵尸守护进程孤儿进程:守护进程(重点)僵尸进程:进程 程序和进程 操作系统可以运行多个程序,那他是如何运行的?实际上,CPU的执行是很快的,而待…...

蓝桥杯真题2
[蓝桥杯 2013 省 B] 连号区间数 题目描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在 111 ~ NNN 的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间 [L,R][L, R][L,R] 里的所有元素(即此排列的…...

PWM互补输出,以及死区时间计算
本文基于野火例程进行解说 实验内容 本次实验输出一对互补的pwm波,且进行死区时间的计算说明。 代码 互补输出对应的定时器初始化代码: bsp_advance_tim.c /********************************************************************************* fi…...

基于深度学习的海洋动物检测系统(Python+YOLOv5+清新界面)
摘要:基于深度学习的海洋动物检测系统使用深度学习技术检测常见海洋动物,识别图片、视频和实时视频中的海洋动物,方便记录、展示和保存结果。本文详细介绍海洋动物检测系统,在介绍算法原理的同时,给出Python的实现代码…...

C# 计算方差
50,100,100,60,50 计算他们的方差 为了计算这些数的方差,需要进行以下步骤: 1. 计算平均值,即将这些数相加,然后除以它们的数量。 平均值 (50 100 100 60 50) / 5 72 2. 计…...

HJZS电源监视继电器HJZS-E202 AC220V
系列型号: HJZS-E202断电延时继电器 HJZS-E002断电延时继电器 一 应用 HJZS-E202电源监视继电器用于直流或交流操作的各种保护和自动控制的装置中,用以增加触点数量。 二 安装结构 导轨安装9壳体结构,具体尺寸参阅外型尺寸图。 三 产品型号…...

dolphinscheduler 2.0.6 资源中心改造方案二:通过NFS挂载共享目录
目录调度资源中心存储概要安装NFS服务器客户端调度验证关闭SFTP开关(可忽略)重新上传资源文件worker执行任务验证服务器woker客户端worker其它nfs共享目录的配置文件/etc/exports说明调度资源中心存储概要 针对现有的单机存储可以做哪些扩展?…...

基于集成学习的用户流失预测并利用shap进行特征解释
基于集成学习的用户流失预测并利用shap进行特征解释 小P:小H,如果我只想尽可能的提高准确率,有什么好的办法吗? 小H:优化数据、调参侠、集成学习都可以啊 小P:什么是集成学习啊,听起来就很厉害的…...

【Java版oj 】 day17杨辉三角形的变形、计算某字符出现次数
目录 一、杨辉三角形的变形 (1)原题再现 (2)问题分析 (3)完整代码 二、计算某字符出现次数 (1)原题再现 (2)问题分析 (3)完整代…...

智能驾驶芯片赛道混战:如何看待5类玩家的竞争格局?
智能驾驶芯片赛道,一直是业内关注的焦点。 高工智能汽车注意到,针对L0-L2,业内基本采用智能前视一体机(IFC)方案;要实现高速NOA、城市NOA等更为高阶的智驾功能等,则基本采用域控制器方案。从IF…...

vue antd table表格的增删改查(三)input输入框根据关键字模糊查询【后台管理系统 使用filter与indexOf嵌套】
vue antd table表格的增删改查(三)input输入框根据关键字查询【后台管理系统filter与indexOf嵌套】知识回调场景复现利用filter和indexOf方法实现模糊查询1.查询对象为单层的数组元素2.查询对象为多层的数组元素(两层为例)3.查询对…...

【计组】性能指标——速度
衡量计算机性能的指标之一——速度,是指计算机执行完所有指令所耗费时间的长短。 一、概念: 引出了如下概念:机器字长:指计算机一次能处理的二进制位数,也就是我们通常说的32位64位计算机中的位。 机器字长决定了计算…...

【PC自动化测试-4】inspect.exe 详解
1,inspect.exe图解" 检查 "窗口有几个主要部分:● 标题栏。 显示" 检查 HWND (窗口句柄) 。● 菜单栏。 提供对 检查功能 的访问权限。● 工具 栏。 提供对 检查功能 的访问权限。● 树视图。 将 UI 元素的层次结构呈现为树视图控件&…...

比肩ChatGPT的国产AI:文心一言——有话说
🔗 运行环境:chatGPT,文心一言 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好&am…...

【第13届蓝桥杯】C/C++组B组省赛题目+详解
A.九进制转十进制 题目描述 九进制正整数(2022)9转换成十进制等于多少? 解: 2*9^02*9^12*9^321814581478; B.顺子日期 题目描述 小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456等。顺子日期指的就是在日期的yyyymmdd表示法中&a…...