当前位置: 首页 > news >正文

全网最新最全的软件测试面试题

一、前言

与开发工程师相比,软件测试工程师前期可能不会太深,但涉及面还是很广的。 在一年左右的实习生或岗位的早期面试中,主要是问一些基本的问题。 涉及到的知识主要包括MySQL数据库的使用、Linux操作系统的使用、软件测试框架问题、测试环境搭建问题,当然还有一些自动化测试和性能测试的问题。 测试工程师的面试题基本都是一样的。 面试的核心在于框架模块(一到两年的工作经验)。

今天的贴子主要讲解之前面试或者身边人的面试过程中经常被问到的经典面试题。 如果大家有什么异议或者想咨询的问题,可以直接关注VX公众号:互联网杂货铺,后台回复1即可!

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

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

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

二、软件测试面试题(答案+分析)

1、软件测试的流程是什么?

分析:每当HR问一个问题的时候,我们可以花1-2秒思考HR想从这个问题中得到什么信息。 弄清楚这一点就很容易回答了。 如果有工作经验,可按公司流程直接回答。 如果是刚转行或者刚开始实习,可以按标准回答。 文中答案仅供参考;

答:项目经理或PD会提前将项目需求文档下发给相关研发人员,研发人员会花一定的时间记录文档中不清楚或遗漏的地方,为后续评审做准备; 在需求评审会上,每个研发人员提出自己的问题并解决。 需求评审最终通过后,会出一份最终的需求规格说明书; (需求评审阶段)

需求规格书评审通过后,开发经理开始编写开发计划,测试经理开始编写测试计划,开发人员在计划评审通过后开始程序开发, 测试人员开始编写测试用例,第一版程序出来后,开发人员迭代第二版。 此时,测试人员对程序进行测试,记录和跟踪管理缺陷,直至程序迭代完成。 (产品研发阶段)

程序迭代完成,且大部分缺陷修复后,测试人员开始进行工作总结,最终输出一份测试报告,记录这次的测试工作中,程序存在的相关问题。 (产品发布阶段)

2、测试用例主要有哪些元素?

分析:由于每个公司使用的模板不同,测试用例的内容也不尽相同,所以回答时只需要回答基本要素即可;

答:测试用例的主要元素有:ID、标题、模块、预置条件、操作步骤、预期结果、实际结果、是否通过、BugID等。

3、软件测试有什么策略和阶段?

分析:软件测试的策略就是测试将按照什么样的思路和方式采用什么技术、什么步骤等。

答:软件测试策略主要有:动态测试和静态测试、白盒测试和黑盒测试。 测试阶段有:单元测试、集成测试、系统测试,有些公司会有验收测试。(单元测试开发是在调试代码时完成的,集成测试也是如此,但有时测试人员也需要进行集成测试;测试人员平时的主要工作是系统测试,验收测试是在客户参与下进行的测试);

4、黑盒测试和白盒测试是什么?二者有什么区别?

分析:黑盒测试和白盒测试百度百科上面有,这里不再做太多介绍了。黑盒测试和白盒测试的区别:

答:黑盒测试主要是在程序界面进行测试的,它通过设定某种场景来检验程序在这个场景下是否给出正确的反应,从而验证程序是否正确满足需求规格说明书中的要求。白盒测试主要针对程序内部结构,对程序代码进行代码走查等等,但是白盒测试的成本会比较高,当程序有多个路径时,可能会出现更多的遗漏。

5、软件测试有什么类型?

回答: 常见软件测试类型有:功能测试、性能测试、兼容性测试、可靠性测试、安全性测试、压力测试、负载测试等等;

6、测试用例是什么?有什么作用?

回答:测试用例就是设计一个特定的场景,让软件在这种场景下运行,检验程序是否给出正确反应,以此验证软件是否正确实现了客户的需求。

作用:1、避免盲目测试并提高测试效率;在软件版本更新后只需修正少部分用例就能开展测试工作,降低工作强度,缩短测试周期;

      2、可以分清哪些是测试的重点,测试用例是测试工作的见证,能知道测试了哪些功能,没有测哪些模块;

      3、测试用例是量化测试工作的方法之一;

7、你平时是怎么设计测试用例的?

分析:这个问题主要考察是否掌握测试用例设计方法,在回答后,HR可能会继续追问某种设计方法的概念或实例,举例说明即可;比如:等价类划分法就是把程序的输入域划分成等价类,从各部分中选取少数代表性数据当做测试数据。

回答:设计测试用例一般都会使用到等价类、边界值、场景/流程法、因果图及错误推测法;

8、软件缺陷的定义是什么?

分析:什么样的问题才是一个缺陷,需要从客户的需求出发;

回答:1、软件没有实现需求规格说明书中要求;

      2、出现了需求规格说明书中指明不该出现的错误;

      3、软件没有实现需求文档中虽未明确提及但应该实现的功能;(如:账密加密)

      4、软件出现难以理解、不易使用或运行速度慢等问题都可以认为是软件缺陷;

9、缺陷中应该包含什么元素?严重等级有哪些?

分析:和上面测试用例一样,每个公司的要求可能都会不同;

回答:主要元素有:标题、BugID、复现步骤、实际结果、预期结果、截图、日志等等;软件缺陷等级一般有四种:致命(程序奔溃)、严重(金额计算错误、数据出错)、一般(不影响使用但会造成一定的麻烦)、优化(字体字号不统一)

10、给你一个杯子,你会怎么测试?

分析:这种问题在前期的面试中是经常遇到也是很经典的一道面试题,回答时从外观、功能、性能等各个角度说起,再结合自己的一些话就可以了。

11、测试报告里面包含什么内容?

分析:测试报告是测试工作结束之后测试部门输出的测试结果,但各个公司的测试报告内容都会有些差别。有些公司的测试报告是由测试部门负责人一人编写,或者是由每个测试工程师输出自己对应模块的测试报告再由测试组长整合成完整的测试报告;

回答:测试报告内容有:编写目的、系统简介、测试环境、测试方法和工具、测试执行结果与记录、缺陷汇总、遗留缺陷跟踪、测试用例执行情况、测试结论与建议等;

12、如果在测试过程中发现了BUG,可是开发不认这是Bug,你会怎么办?

分析:HR问这个问题主要是想知道你平时是如何处理与同事之间的关系的。开发和测试是对立又统一的两个岗位,所以开发和测试之间关系的处理是HR面试过程中需要考虑的一个点。当然,HR问这个问题也说明该公司有氛围不是很好的风险。

回答:首先还是要回归到客户的需求上面,确认这个问题到底属不属于一个缺陷,如果确实是的就要和开发同事解释清楚;如果开发还是坚持自己想法的话,就询问同事或者测试组长的意见,讨论一下这个问题到底属不属于缺陷问题,如果大家都觉得是则需要再和开发解释清楚。

13、你们公司的需求评审是怎样进行的?

分析:需求评审,就是对客户需求、软件各个模块之间模糊的点进行审查,排除不理解或没有考虑到的点。

回答:需求评审,在一些分工较明确的公司,都是由PD(产品设计师)负责的,需求确认好后再下发到开发和测试部门;分工不明确的公司可能就是开发测试产品等大家坐在一起共同进行探讨;评审形式一般分线上和线下两种方式,负责人一般会提前把需求文档下发到大家手上供大家整理各自的疑惑点,为后续评审会议做准备。

14、MySQL的常用命令有哪些?

分析:数据库知识是测试工程师必备的一个基本技能,在面试过程中也是经常会遇到的一个考点。对于刚入行的测试,对数据库知识要求一般不会太高,只要求能掌握基本的增删改查语句就行。关于数据库的知识,后续也会慢慢的整理出来,供大家学习、参考。

回答:这里只给出几个标准的语法结构:

      增:insert into 表名(列名) values (数据);

如:在stu表中插入id为001,姓名为李四的学生,(insert into Stu(stu_id,stu_name) values (001,‘李四’);)

      删:delete from 表名 where 指定数据;

 如:在stu表中删除id为001,姓名为李四的学生:(detele from Stu where stu_id=‘001’ and stu_name = ‘李四’;)

      改:update 表名 set 改变项 where 指定数据;

 如:在stu表中修改id为001的学生姓名为“李四”:(update Stu set stu_name = ‘李四’ where stu_id=‘001’ ;)

      查:select (查询项) from 表名 where 指定条件;

 如:在stu表中查询id为001,姓名为“李四”的学生信息:(select * from Stu where stu_name = ‘李四’ and stu_id=‘001’ ;)

15、Linux下的一些常用命令是什么?

分析:Linux系统,是软件测试工程师必须要掌握的一项基本技能,由于Linux具有运行稳定等诸多优点,所以软件的服务器大多部署在Linux系统上,搭建测试环境也是软件测试工程师需要掌握的。关于Linux的知识,后续会慢慢的整理出来,供大家学习、参考。由于Linux下很多命令都是常用的,所以这里就不给出答案。

16、你未来的职业规划是什么?

分析:这个问题是所有面试中最常问的,问的人可能是HR、部门主管、经理、甚至是董事长。同样一个问题,问的人不同,想获取的信息肯定也是不一样的。HR更多的是想看你在公司的稳定性;技术主管则更想知道你是否真的喜欢测试这个岗位,后期是否会主动学习型新的技能;经理更多的是看你的职业规划符不符合公司的发展方向;软件测试工程师发展方向主要有:测试开发、产品经理、测试转开发、测试大牛、讲师等岗位;

回答:HR:如果是HR问的话,要多从稳定性的角度回答,如:家人、朋友都在公司附近,或喜欢贵公司的文化氛围等等;

技术:回答前可以先简单介绍一下自己为什么选择软件测试这个职业,及自己对这个职业的一些看法,最后再回答自己的职业发展方向就行;

经理or董事长:这个回答起来的话还是比较难把握的,因为在面试时,面试者往往对公司的发展方向不是非常了解,所以要在回答时再带一句,“具体的发展方向,还需要根据公司的发展方向去调整”,这样回答会保险一些。

17、还有什么想要问我的吗?

分析:这个问题在每个面试尾声都会被问到,直接说没有的话,会让HR觉得你不关心这个岗位,问多了又会显得面试前没有做好充分准备。所以问题控制在两到三个比较好。

回答:1、公司的研发团队目前什么规模?开发、测试分别有多少人?

      2、公司的业务方向是什么?

      3、如果我入职之后,我的工作职责是什么?

18、为什么想离职?

分析:这个问题主要是想了解你的近况,以及上一家公司是什么原因导致你离职。大部分情况下,HR都会理解你的,但是回答问题时千万不要太过于实诚,有些面试者一上来就抱怨上一家公司如何压榨公司员工等这些话语,没有一家公司会愿意接受这样的面试者,HR并不能完全感受你遭遇到的,所以还请控制好自己的负面情绪。

三、总结

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

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

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

 

 

相关文章:

全网最新最全的软件测试面试题

一、前言 与开发工程师相比,软件测试工程师前期可能不会太深,但涉及面还是很广的。 在一年左右的实习生或岗位的早期面试中,主要是问一些基本的问题。 涉及到的知识主要包括MySQL数据库的使用、Linux操作系统的使用、软件测试框架问题、测试…...

如何列出 Ubuntu 和 Debian 上已安装的软件包

当你安装了 Ubuntu 并想好好用一用。但在将来某个时候,你肯定会遇到忘记曾经安装了那些软件包。 这个是完全正常。没有人要求你把系统里所有已安装的软件包都记住。但是问题是,如何才能知道已经安装了哪些软件包?如何查看安装过的软件包呢&a…...

图论---最小生成树问题

在连通网的所有生成树中,所有边的代价和最小的生成树,称为最小生成树。解决最小生成树问题一般有两种算法:Kruskal算法和Prim算法。 Kruskal算法 原理:基本思想是从小到大加入边,是个贪心算法。我们将图中的每个边按…...

elementplus 时间范围选择器限制选择时间范围

<el-date-pickerv-model"form.time" type"daterange"range-separator"-"start-placeholder"开始时间"end-placeholder"结束":disabled-date"disabledDate"calendar-Change"calendarChange" />co…...

【网络】抓包工具Wireshark下载安装和基本使用教程

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的帮助&#x1…...

Metasequoia 4 水杉3D建模工具 附序列号

Metasequoia 4是一款非常强大的3D水杉建模工具&#xff0c;它基于多边形建模技术&#xff0c;可以用于创建各种对象并支持多种第三方3DCG软件的文件格式&#xff0c;是一款非常适合从爱好到业务&#xff0c;支持3D电脑绘图&#xff0c;3D印刷&#xff0c;游戏开发等的3D建模软件…...

股票杠杆交易平台排名:淘配网推荐的十大平台

在投资世界中&#xff0c;股票杠杆交易一直以其提供更高回报机会的吸引力而备受欢迎。随着市场的不断发展&#xff0c;出现了越来越多的股票杠杆交易平台。本文将为您介绍淘配网推荐的十大股票杠杆交易平台&#xff0c;并分析它们的特点。 富灯网 - 富灯网以其全面的杠杆产品和…...

CoreData + CloudKit 在初始化 Schema 时报错 A Core Data error occurred 的解决

问题现象 如果希望为 CoreData 支持的 App 增加云数据备份和同步功能,那么 CloudKit 是绝佳的选择。CloudKit 会帮我们默默处理好一切,我们基本不用为升级而操心。 不过,有时在用本地 CoreData NSManagedObjectModel 初始化 iCloud 中的 Schema 时会发生如下错误: Error …...

修炼k8s+flink+hdfs+dlink(三:安装dlink)

一&#xff1a;mysql初始化。 mysql -uroot -p123456 create database dinky; grant all privileges on dinky.* to dinky% identified by dinky with grant option; flush privileges;二&#xff1a;上传dinky。 上传至目录/opt/app/dlink tar -zxvf dlink-release-0.7.4.t…...

Linux 系统性能瓶颈分析(超详细)

Author&#xff1a;rab 目录 前言一、性能指标1.1 进程1.1.1 进程定义1.1.2 进程状态1.1.3 进程优先级1.1.4 进程与程序间的关系1.1.5 进程与进程间的关系1.1.6 进程与线程的关系 1.2 内存1.2.1 物理内存与虚拟内存1.2.2 页高速缓存与页写回机制1.2.3 Swap Space 1.3 文件系统1…...

kafka与zookeeper的集群

基础配置 systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/configvi /etc/hosts ip1 node1 ip2 node2 ip3 node3zookeeper介绍 zookeeper是一个分布式的协调服务&#xff0c;主要用…...

sqlalchemy 连接池

报错 sqlalchemy.exc.TimeoutError: QueuePool limit of size 100 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r) 查看数据库未活动超时时间 show variables like "interactive_timeout";一般…...

用Blender制作YOLO目标检测器训练数据

推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 本文将介绍一种非常有吸引力的机器学习训练数据的替代方案&#xff0c;用于为给定的特定应用程序收集数据。 无论应用程序类型如何&#xff0c;这篇博文都旨在向读者展示使用 Blender 等开源资源生成合成数据&#xff08;S…...

c++视觉处理---均值滤波

均值滤波 cv::blur()函数是OpenCV中用于应用均值滤波的函数。均值滤波是一种简单的平滑技术&#xff0c;它计算每个像素周围像素的平均值&#xff0c;并用该平均值替代原始像素值。这有助于降低图像中的噪声&#xff0c;并可以模糊图像的细节。 以下是cv::blur()函数的基本用…...

QT基础入门——Qt事件(五)

前言&#xff1a; 事件&#xff08;event&#xff09;是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘&#xff0c;或者是窗口需要重新绘制的时候&#xff0c;都会发出一个相应的事件。一些事件在对用户操作做出响应时发出&#xff0c;如键盘事件等&#x…...

自学黑客方法-----(网络安全)

如果你想自学网络安全&#xff0c;首先你必须了解什么是网络安全&#xff01;&#xff0c;什么是黑客&#xff01;&#xff01; 1.无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&#xff0c;例如 Web 安全技术&#xff0c;既有 Web 渗透2.也有 Web 防…...

Dockerfile自定义容器

1、Dockerfile Dockerfile 是用于构建 Docker 镜像的文本文件&#xff0c;其中包含一系列的指令和配置&#xff0c;用于定义镜像的构建过程。通过 Dockerfile&#xff0c;你可以定义镜像的基础操作系统、依赖、环境设置、应用程序等信息&#xff0c;从而实现可复制、自动化的镜…...

(5)SpringMVC处理携带JSON格式(“key“:value)请求数据的Ajax请求

SpringMVC处理Ajax 参考文章数据交换的常见格式,如JSON格式和XML格式 请求参数的携带方式 浏览器发送到服务器的请求参数有namevalue&...(键值对)和{key:value,...}(json对象)两种格式 URL请求会将请求参数以键值对的格式拼接到请求地址后面,form表单的GET和POST请求会…...

【iOS】——仿写计算器

文章目录 一、实现思路二、实现方法三、判错处理 一、实现思路 先搭建好MVC框架&#xff0c;接着在各个模块中实现各自的任务。首先要创建好UI界面&#xff0c;接着根据UI界面的元素来与数据进行互动&#xff0c;其中创建UI界面需要用到Masonry布局。 二、实现方法 在calcu…...

公安机关警务vr综合实战模拟训练提高团队合作能力

公安出警VR虚拟仿真培训软件是VR公司利用VR虚拟现实和web3d开发技术&#xff0c;对警务执法过程中可能发生的各种场景进行还原、模拟、演练&#xff0c;结合数据分析&#xff0c;实施量化考核&#xff0c;提高学员的心理承压、应急处突、遇袭反应和临危处置综合能力。 公安出警…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

云原生周刊:k0s 成为 CNCF 沙箱项目

开源项目推荐 HAMi HAMi&#xff08;原名 k8s‑vGPU‑scheduler&#xff09;是一款 CNCF Sandbox 级别的开源 K8s 中间件&#xff0c;通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度&#xff0c;为容器提供统一接口&#xff0c;实现细粒度资源配额…...