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

阅读目录
- 1. 前言
- 2. 题目解析
- 2.1 请先做下简单的自我介绍
- 2.2 请介绍一下你们的测试流程
- 2.3 请你介绍一下你们公司的XXX产品/项目
- 2.4 请讲讲工作中你遇到过哪些印象深刻的Bug
- 2.5 请介绍一下日常你们是如何设计测试用例的
- 2.6 如果给你一个XXX,你准备怎么测试
- 2.7 请说一下APP产品与WEB产品测试的区别
- 3. 一些后话
1. 前言
时光荏苒,一转眼已踏入2023年,经历过去年一整年的大环境折磨之后,新的一年我们仿佛看见了一些新的希望。随着国内YQ的情况好转,人员就业市场以往的寒冬也貌似有了转暖的迹象,身边大批的就业人员也开始了紧张的备战之中。近几周也和多家合作公司的HR进行了沟通,发现虽然岗位就业情况较去年有所好转,但整体的需求缺口与候选人的条件选择却比19年的时候稀少与严格了许多。许多的应聘者投出简历之后经常会遇到根本没有反馈的情况,一方面也是大批的大厂、中厂的竞争者出现,他们有着大厂背景和大项目背书,相对来说公司方面就有了更优解,另一方面经历了去年一整年的变故,许多的优势竞争者只能降低预期,这对用人单位来说性价比就更高了。
也正是因为以上的种种,博主作为一个测试管理者也常年面试各类的测试行业就业人员,也发现了形形色色的面试相关的问题,希望将自己的长久经验积累转化为博文的这种方式来帮助到更多的软件测试应聘者。大家可以通过面试题内的一些解析再结合自己的真实工作经验来进行答题思路的提取、整理。友情提示:硬背答案虽好,但容易翻车哦。
2. 题目解析
2.1 请先做下简单的自我介绍
每个应聘者面对的第一个问题,相信大家都不会陌生。关于这个详细的博主已经在之前的《2022金九银十》文章内有解析了,这里只说几个重点,自我介绍一定要事先准备,在有效的时间内(保持在1-2分钟左右)将自己之前的职位、大致职业经历、能力特长进行描述。另外一个比较有意思的是,许多应聘者在面试刚开始的时候相对会比较紧张,但只要面试进行的比较顺利,后期的紧张感也就会渐渐消失,这就导致一开始的自我介绍往往会表现的窘迫、结结巴巴,那么给到面试官的第一印象就会打折扣。
2.2 请介绍一下你们的测试流程
对于以上这题,能给到比较标准的答案就是需求分析 → 概设详设测试 → 单元测试 → 集成测试 → 系统测试 → 验收测试。但博主不建议按部就班的把这个记下来用来回答,那最多就是一个框架,这里推荐结合自己公司的真实测试活动内容来进行描述。千万不要觉得少了其中的某一步会怎么样,也千万不要为了使流程听起来比较丰满而刻意的去编造一些自己从来没参与过的测试环节,就比如概设详设测试这块,很多公司是不会有的,你在面试过程中背了这一个流程框架,将其加入其中,一旦面试官问起无疑就是给自己挖坑,这个是面试中的大忌。
我们在日常的工作中可以进行刻意练习,身为执行人员在测试活动的整个过程中可以将每个阶段自己、团队成员、上级在做的事情进行观察与大致的记录,如果能有输出物那就最好了。一般面试官在听到你介绍完一整个测试流程大致后,都会针对某个环节来对你进行细致提问,比如你们的测试用例评审是怎么执行的?集成测试环节中你的主要职责是什么?测试活动前期你在团队中具体负责哪些工作?等等等等。无论问题如何五花八门,只要不脱离整个流程的大致范围,相信平时如果有良好的经验累积和刻意练习,这些类似的问题都可以应付自如。
2.3 请你介绍一下你们公司的XXX产品/项目
这题的出现率也是高的可怕,其实对于面试官来说,检验一个测试人员的业务是否合格的其中一个标准就是应聘者是否可以完整、全面、系统的介绍清楚自己的经手的产品或项目。这里还是奉劝大家不要抱着侥幸的心理,觉得反正不是用人单位的项目,随便说说,就算说错应该也没什么大问题。一般来说面试你的无论是一面还是二面,都会是你的直属领导,只要不是太水,面试官的技术力与业务力都会在你之上,如果是同一行业的就更不要提了。千万不要只是宽泛的将公司产品的相关介绍与功能描述出来,最好可以将软件架构+应用场景+解决痛点+负责模块与亮点功能进行系统的介绍。
对于自家产品与项目的了解,除了在日常的测试工作中进行累积之外,可以多与项目组内的其他角色多多进行沟通,软件架构与基础功能逻辑可以找开发、产品需求与业务可以找产品、软件的弊端与一些问题可以找售后。通过多方位的了解与信息收集,将自身对于产品业务与功能的理解进行优化,可以最后的输出物简洁的表现在简历的项目经历内。另外有条件的话可以与团队内的其他软件测试人员进行互相的练习或在某些内部分享会进行刻意练习。重要的在就如何通过多次练习来进行语言的组织与表达。
2.4 请讲讲工作中你遇到过哪些印象深刻的Bug
这一题博主也曾经向许多面试者询问过,但大家通常都会把注意力放在“印象深刻”这个点上,描述出来的内容也大多是某个Bug有多难解决,定位分析了好几天都没有进展,然后通过自己的不懈努力或灵光乍现,提供了线索让开发最终解决了问题😅。那么该如何回答这个问题呢,其实以博主自身的感受来说,面试者所说的这个Bug是否极为复杂、困难重重,真的一点也不重要。大家要知道共情这个东西是很难的,你想要告诉面试官的并不是你调查这个Bug有多辛苦,对不对?我们还是要搞清楚面试时,对方提问的本质大致是什么?他真正想要考察的是什么?其实这个面试题的本质是想要考察你作为一个测试人员,在这个Bug的全生命周期中,做了哪些工作和具体的一些内容体现。
那为什么要是印象深刻的Bug呢?印象深记忆才会保持长久,也是借此希望面试者可以完整的说出这里面的来龙去脉。那么拉回来继续说刚才的话题,对于测试人员来说日常的Bug定位能力相较于执行才更有价值,定位Bug其实是需要我们的测试人员拥有更加全面的技能广度。同样是一份Bug单,一份是有准确调查线索与自我推断的,另一份则是只有现象描述与期望结果的,相信广大的开发同学也是更希望拿到的是第一份Bug单。当然除了定位肯定是不够全面的,作为测试人员,一旦发现了Bug,那基本操作就是复现 → 分析 → 记录 → 跟踪,所以日常工作中Bug的全生命周期管理是每个测试人员都需要刻意练习的内容。同样的,在开发同学进行Debug的时候,也可以适当的去旁观一下,看看他们是如何进行Bug定位的,平时多和开发同学进行交流,学习一些相关的定位技能。当你能把这些简洁完整的描述出来,相信Bug是否复杂,是否惊艳也已经不是什么问题了。
2.5 请介绍一下日常你们是如何设计测试用例的
这一块可以根据自己公司的实际情况进行描述,就不另行开坑了,另外也推荐看下博主之前的两篇关于测试用例设计的博文。
《测试用例该怎么设计?—— 日常加更篇(上)》
《测试用例该怎么设计?—— 日常加更篇(下)》
2.6 如果给你一个XXX,你准备怎么测试
又是一个万年不变的面试题,虽然乍一听起来好像挺简单的,但在这题上翻车的面试者还真的不在少数。其实这一题考察的是面试者对于被测对象的整体质量保障认知与业务快速上手能力。无论这个XXX是任何物体,这里都有一个万能的公式去套,那就是从不同类型的测试活动去进行质量保障,这个也是遵循了软件测试的一贯理念。举个例子,如果被测对象是一个电子秤,那么我们可以从功能性的角度去确认他的基础功能是否OK,从设计性的角度确认外观与规格是否符合需求说明,从性能的角度确认规定使用次数内是否功能是否OK,从安全性的角度确认基本的材质是否合格,切角设计是否安全,从易用性的角度确认液晶屏亮度与数字字体是否OK等等等等。这里只提及了大致的回答思路,真正的面试过程中碰到了这题,我们需要在这思路的基础上对每个类型的测试项进行细分,可不能粗略的回答大概用什么测试类型去确认。
2.7 请说一下APP产品与WEB产品测试的区别
这题我们可以从以下几个方面去进行切入,首先从软件架构来说APP为C/S架构,WEB为B/S架构。针对不同的架构形式,我们的测试方式与关注点也是不同,APP因为需要投放应用市场,迭代的速度与频率不会像WEB这样频繁,相反由于WEB的自身特性,无论是任何的代码改动都可以快速的通过前端代码发布进行迭代,也正因为这样,如果是在正式环境中进行回归,WEB产品的回归要求与时效性要远高于APP。同时区别与其两者的软件架构,APP需要验证客户端侧的安装与升级、卸载等功能方面,而WEB则无需。从兼容性方面来说,APP注重各类主流机型的适配,WEB注重各类浏览器的适配。性能方面的关注点也大不相同,APP需要对手机的功耗、网络流量、CPU、内存进行关注。WEB则需要对页面响应速度、FCP、LCP、FID、 TTI等各类指标进行观察。至于弱网相关的测试其实更倾向于APP产品侧。
3. 一些后话
鉴于行业类似的面试题数不胜数,博主之后会在该专栏内进行定期更新,后期数量到达一定规模之后,如果有需要的话也会将这些文章进行一个整合,方便大家阅读。
另外也收到一些粉丝的私信,对于面试、简历与一些其他的相关前期准备抱有一些疑虑。这里博主也给大家提供了免费的简历修改建议与在线模一对一拟面试的服务,如果需要的话可以私信博主。也祝愿大家可以在新一年中找到各自心仪的工作。
相关文章:

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

深入浅出C++ ——红黑树模拟实现STL中的set与map
文章目录一、红黑树二、用泛型红黑树模拟实现set三、用泛型红黑树模拟实现map一、红黑树 红黑树作为set和map的底层容器,既要实现插入key又要实现插入pair,所以做了稍许的改动,使其成为一颗泛型结构的红黑树,通过不同的实例化参数…...

自动化测试框架设计
大数据时代,多数的web或app产品都会使用第三方或自己开发相应的数据系统,进行用户行为数据或其它信息数据的收集,在这个过程中,埋点是比较重要的一环。 埋点收集的数据一般有以下作用: 驱动决策:ABtest、漏…...

【虚拟仿真】Unity3D中实现鼠标的单击、双击、拖动的不同状态判断
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 这篇文章分享一下虚拟仿真项目中经常碰到鼠标事件控制代码。 …...

【2023】Prometheus-相关知识点(面试点)
目录1.Prometheus1.1.什么是Prometheus1.2.Prometheus的工作流程1.3.Prometheus的组件有哪些1.4.Prometheus有什么特点1.5.Metric的几种类型?分别是什么?1.6.Prometheus的优点和缺点1.7.Prometheus怎么采集数据1.8.Prometheus怎么获取采集对象1.9.Promet…...

英语二-电子邮件邀请短文写作
1. 邮件模板 Dear 邀请人, Hope you have a great day. I am writing this email to invite you to attend 主题. Please kindly find the following information for your reference: Time: 时间 Address: 地点 We hope that nothing will prevent you from coming, as…...

如何快速一次性通过pmp考试?
我们就从三个方向进行了解 1.PMP考试难不难? 2.PMP如何备考? 3.考试过程中需要注意什么? 一,PMP考试难不难? 首先关注的问题是,PMP考试难吗?我想全球55%的通过率和学会这边93.9%的通过率&a…...

1-Linux 保存kernel panic信息到flash
在系统运行过程中,如果内核发生了panic,那么开发人员需要通过内核报错日志来进行定位问题。但是很多时候出现问题的时候没有接调试串口,而报错日志是在内存里面的,重启后就丢失了。所以需要一种方法,可以在系统发生crash时&#x…...

linux基本功系列-top命令实战
文章目录一. top命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示进程信息3.2 显示完整的进程命令3.3 以批处理的形式展示3.4 设置信息更新频次3.5 显示指定进程号的信息3.6 top面板中常用参数3.7 其他用法四. top的相关说明4.1 交互命令介绍4.2 top面板每行信息的含义4.2.…...

6.5 拓展:如何实现 Web API 版本控制,同时兼容无版本控制的原始接口?
第6章 构建 RESTful 服务 6.1 RESTful 简介 6.2 构建 RESTful 应用接口 6.3 使用 Swagger 生成 Web API 文档 6.4 实战:实现 Web API 版本控制 6.5 拓展:如何实现 Web API 版本控制,同时兼容无版本控制的原始接口? 6.5 拓展&#…...

Springboot依赖注入Bean的三种方式,final+构造器注入Bean
文章目录Springboot依赖注入Bean的方式一、Field 注入/属性注入二、set注入三、构造器注入Springboot依赖注入Bean的方式 一、Field 注入/属性注入 Autowired注解的一大使用场景就是Field Injection。 Controller public class UserController {Autowiredprivate UserServic…...

【java】Spring Cloud --Spring Cloud Alibaba 微服务解决方案
文章目录1、Spring Cloud Alibaba 是什么先说说 Spring CloudSpring Cloud Alibaba和Spring Cloud 的区别和联系Spring Cloud Alibaba2、Spring Cloud Alibaba 包含组件阿里开源组件阿里商业化组件集成 Spring Cloud 组件3、Spring Cloud Alibaba 功能服务注册与发现支持多协议…...

CSS 6种选择器(超详细)
CSS6大种选择器(超详细) 一、常用的css基本选择器(4种) 1、标签选择器 结构: 标签名{css属性名:属性值} 作用:通过标签名,找到页面中所有的这类标签,设置样式 注意:1.标签选择器选择的是一类标签&#…...

mysql8.0.32-手动配置安装-具体流程步骤
文章目录1.下载mysql压缩编译版2.修改配置文件3.数据库初始化,安装windows服务,启动服务4.修改root密码5.作者答疑1.下载mysql压缩编译版 作者从官方下载:https://download.csdn.net/download/m0_67316550/87485720 2.修改配置文件 修改my…...

【项目】Vue3+TS 退出登录 menu header搭建
💭💭 ✨:【项目】Vue3TS 退出登录 menu header搭建 💟:东非不开森的主页 💜: 今天永远比昨天更好💜💜 🌸: 如有错误或不足之处,希望可以指正&#x…...

LoRaWAN模块在车辆跟踪定位中的应用
目前 GPS已经在资产的管理中得到了越来越多的运用,如车辆跟踪、车队跟踪、资产监控等;人员跟踪,宠物跟踪,等等。在所有追踪装置中,最重要的是它的电池期望和监视距离。鉴于 LoRaWAN的功率消耗很小,而且能在…...

软件测试分类
软件测试分类 从上图我们发现软件测试根据不同的分类条件会有不同的结果. 1. 按照阶段进行划分 1.1 单元测试(Unit Testing) 单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。 测试阶段&#x…...

外置的媒体查询,对性能又一次的优化提升
通常情况下我们写媒体查询都是写在一个样式文件中,对于浏览器加载的时候,会解析到最后一行样式时才会渲染页面,这样就会造成页面的白屏时间过长。 但是通常情况下大量的媒体查询样式都是无用的,现在浏览器允许我们在引用样式文件…...

【Galois工具开发之路】关于IDEA的gradle工程执行两次premain的bug~
文章目录关于premain方法问题记录解决方式关于premain方法 是Java Agent技术的一种,通过 -javaagent: 的方式,添加外部代理,代理入口方法为 premain 。另一种Java Agent技术则是动态attach到java进程的方式,这种方式则是使用 age…...

云计算 概念与技术
如果我倡导的计算机在未来得到使用,那么有一天,计算也可能像电话一样成为共用设施。计算机应用将成为一全新的、重要的产业的基础。 ——John McCarthy 云计算的概念 定义 Garther公司的定义 一种计算方式,能通过Internet技术将可扩展的和…...

基于追踪标记的WAF设计思路
一 相关背景 目前,市面上的WAF产品通常采用”发现即阻断“的策略,以防护针对业务系统的Web攻击行为。虽然该策略可及时阻断攻击,但形式上过于简单,并不能有效掌握攻击者进一步的攻击意图,也不能有效提高攻击者的成本投…...

Java StringBuffer StringBuilder,超详细整理,适合新手入门
目录 一、StringBuffer和StringBuilder的区别是什么? 二、StringBuffer的示例 三、StringBuilder的示例 四、为什么StringBuffer和StringBuilder比String更适合在循环中使用? 五、如何将String对象转换为StringBuilder或StringBuffer对象࿱…...

数据结构—堆(完全解析)
数据结构—堆(完全解析) 数据结构——堆(Heap)大根堆、小根堆 详解数据结构——堆 堆的基本存储 【从堆的定义到优先队列、堆排序】 10分钟看懂必考的数据结构——堆 【堆/排序】堆排序的两种建堆方法 【算法】排序算法之堆排序 C…...

深度卷积对抗神经网络 进阶 第三部分 GANs Unpaired Translation with Cycle GAN 模型
非配对的图像转换应用 Unpaired Image-to-Image Translation Unpaired image-to-image translation 主要用于学习两组图像之间的对应关系,检查和寻找两堆数据中的共同内容(content)以及每堆独有的特点(style)。而这个…...

常见的排序算法 | 直接插入排序 | 希尔排序 | 选择排序 | 堆排序 | 冒泡排序 | 快速排序 | 归并排序 |(详解,附动图,代码)
思维导图: 一.插入排序 1.直接插入排序(InsertSort) ①手机通讯录时时刻刻都是有序的,新增一个电话号码时,就是使用插入排序的方法将其插入原有的有序序列。 ②打扑克 步骤: ①如果一个序列只有一个数&am…...

深入浅出 MySQL 索引(一)
MySQL 索引(基础篇) 你好,我是悟空。 本文目录如下: 一、前言 最近在梳理 MySQL 核心知识,刚好梳理到了 MySQL 索引相关的知识,我的文章风格很多都是原理 实战的方式带你去了解知识点,所以…...

FinClip 的 2022 与 2023
相比往年,今年复盘去年与展望新年的文章来的稍慢一点。不过也希望能够借这篇文章,和关注 FinClip 的用户朋友们一起聊聊,我们在去年和今年的想法与计划。 2022 在过去的一年中,我们的身边发生了很多事情,这些事情在不…...

Python 泛型 - 如何在实例方法中获取泛型参数T的类型?
先上解决方法:https://stackoverflow.com/questions/57706180/generict-base-class-how-to-get-type-of-t-from-within-instance 再来简单分析下源码。 talk is cheap, show me the code. from typing import Dict Dict[str, int]Dict只是一个类型,并不…...

Shell语法基础总结
Shell 变量使用变量只读变量删除变量变量类型Shell 字符串单引号与双引号字符串获取字符串长度提取子字符串拼接字符串Shell 数组定义数组读取数组获取数组的长度Shell 传递参数Shell 基本运算符算术运算符关系运算符布尔运算符逻辑运算符字符串运算符Shell 信息输出命令Shell …...

架构基本概念和架构本质
什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础&…...