出现频率高达80%的软件测试常见面试题合集(内附详细答案)

最近看到网上流传着各种面试经验及面试题,往往都是一大堆技术题目贴上去,但是没有答案。

为此我业余时间整理了这份软件测试基础常见的面试题及详细答案,望各路大牛发现不对的地方不吝赐教,留言即可。

01 软件测试理论部分

1.1 测试概念

1. 请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试

  • 单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码
  • 集成测试:通过测试发现与模块接口有关的问题
  • 系统测试:是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件
  • 回归测试:回归测试是指在发生修改之后重新测试先前的测试用例以保证修改的正确性
  • 验收测试:这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。验收测试包括Alpha测试和Beta测试。
  • Alpha测试:是由用户在开发者的场所来进行的,在一个受控的环境中进行。并且在开发者对用户的指导下进行测试,开发者负责记录发现的错误和使用中遇到的问题
  • Beta测试 :由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场。由用户记录在测试中遇到的一系列问题,并定期报给开发者。

2. 什么是黑盒?什么是白盒?黑盒和白盒的测试方法分别有哪些?

  • 黑盒:黑盒测试也称功能测试或数据驱动测试。把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,对程序接口进行测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试
  • 常用的黑盒测试方法:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。
  • 白盒测试:也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试
  • 常用白盒测试方法
  1. 静态测试:不用运行程序的测试;
  2. 动态测试:需要执行代码,通过运行程序找到问题;
  • 逻辑覆盖包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖
  • 1.语句覆盖每条语句至少执行一次。
  • 2.判定覆盖每个判定的每个分支至少执行一次。
  • 3.条件覆盖每个判定的每个条件应取到各种可能的值。
  • 4.判定/条件覆盖同时满足判定覆盖条件覆盖。
  • 5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
  • 6.路径覆盖使程序中每一条可能的路径至少执行一次。

3. 测试流程:

需求测试->概要设计测试->详细设计测试->单元测试->集成测试->系统测试->验收测试
4. app测试性能指标

  • 内存
  • cpu
  • 流量
  • 启动速度

5. web测试和app测试不同点

系统架构方面:

  • web项目,一般都是b/s架构,基于浏览器的
  • app项目,则是c/s的,必须要有客户端,用户需要安装客户端。
  • web测试只要更新了服务器端,客户端就会同步会更新。App项目 则需要客户端和服务器都更新。

性能方面:

  • web页面主要会关注响应时间
  • 而app则还需要关心流量、电量、CPU、GPU、Memory等。

兼容方面:

  • web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统方面的兼容
  • app测试则要看分辨率,屏幕尺寸,操作系统、网络。
  • web测试是基于浏览器的所以不必考虑安装卸载。
  • 而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景:包括安装时的中断、弱网、安装后删除安装文件 。

6. 缺陷按优先级分为哪些类型? p1-p5 面试重点

  • 缺陷必须立即解决
  • 缺陷要求正常排队等待修复
  • 缺陷可以在方便时被纠正
  • 下一个版本修复
  • 不修复

7. 测试用例的内容是什么? 面试重点

  • 用例编号
  • 测试概述或用例标题
  • 测试步骤
  • 预期结果
  • 输入数据
  • 优先级
  • 前置条件等

8. 测试结束的标准是什么? 面试重点

  • 全部测试用例都被执行完成
  • 未修改bug都被确认或置为应有状态,暂缓修改的问题都有详尽的解析
  • 测试报告编写完成
  • 测试收尾工作结束
  • 测试总结完成
  • 项目处于试运行或上线阶段
  • 在测试计划中定义结束的标准:在一定性能下平稳运行多少天、本版本没有严重bug,普通buh数量在多少个以下,bug修复百分之多少以上
  • ;实际测试达到上述要求,由项目、开发、测试经理共同签字,认同测试结束,版本即可发布。

1.2 软件开发模型

软件生命周期: 从软件最初构思到最终消亡(退役)的过程。

1. 软件生命周期
立项 ---需求分析 ---设计、编码、测试 ---发布 ---运行维护 ---淘汰
软件立项===》可行性研究 ===》需求分析 ===》概要设计 ===》详细设计 ===》编码实现 ===》单元测试 ===》集成测试 ===》系统测试 ===》验收测试 ==》运行维护

2. 瀑布模型

缺点:
1. 各阶段划分完全固定,阶段之间产生大量文档,极大增加工作量
2. 由于开发模型是线性的,用户只有等到整个过程的末期才能看到开发结果,增加开发风险
3. 不适应用户需求变化

3 . 快速原型模型(现在特别流行模式) Axure 软件

1. 原理:迅速搭建一个可以运行的软件原型,以便理解和澄清问题,使开发人员与用户达成共识,最后在确定需求基础上开发客户满意的软件产品
2. 特点:`适合预先不能确切定义需求的软件系统的开发`
3. 优点: ` 克服瀑布模型缺点,减少由于软件需求不明确带来的开发风险 `

4. 增量模型(最常用开发模型之一)

分批次地分析、设计、编码和测试这些增量组件。

5. 迭代模型 开发进度快

1. 原理
`强调开发的深入 ---优化过程
`开发迭代是一次完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程
2. 优点
降低在一个增量上的开支风险
降低产品无法按照既定进度进入市场的风险
加快开发工作进度`
适应需求变化快的场景`

6. 螺旋模型

1. 原理:
兼顾了快速模型的迭代的特征以及瀑布模型的系统化与严格监控
2. 优点
最大特点:引入其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减少损失
适合大型昂贵的系统级的软件应用

1.3 软件测试模型

1. v模型

1. 原理:揭示开发过程和测试过程中各阶段的对应关系
2. 缺点与不足:
仅把测试过程作为需求分析、系统设计及编码之后的一个阶段,忽略了测试对需求分析、系统设计的验证
需求的满足情况一直到后期验收测试才被验证

2. w模型

 

1. 由两个 v 字模型组成,分别代表测试与开发过程,明确表示了测试与开发并行关系
2. 优点:
测试活动与软件开发同步进行
测试对象不仅是程序,包括需求与设计
尽早发现软件缺陷可降低软件开发成本
3. 局限性:无法支持迭代开发模型(没有循环过程)

3. h模型

1. 将测试活动完全独立出来,形成一个完全独立的流程
2. 只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了
3. 软件测试要尽早准备,尽早执行,不同测试活动可按某个次序先后进行,也可反复进行(迭代)

4. x模型

1. 针对单独的程序片段进行相互分离的编码和测试;
2. 定位了探索性测试,这是不进行事先计划的特殊类型的测试;

5. 软件测试生命周期
获取测试需求
编写测试计划
制定测试方案
开发与设计测试用例
执行测试
提交缺陷报告
测试分析与评审
提交测试总结
准备下一版本测试

6. 简述缺陷的生命周期? 面试重点

软件测试人员提交缺陷报告;
测试负责人审核后将缺陷分配给相关开发人员修复
缺陷被修改后有测试人员根据缺陷报告中修改记录进行返测
返测通过的缺陷由负责人关闭;
返测未通过的缺陷直接返回给开发人员重新修改,然后再由测试人员返测,直到测试和开发达成一致处理意见。

  总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

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

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

相关文章

Java线程池执行流程及参数详解

线程池的定义分为以下几个部分&#xff1a; public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) {...}我们分别来看…

leaflet学习笔记-初始化vue项目(一)

leaflet简介 Leaflet是一款开源的轻量级交互式地图可视化JavaScript库&#xff0c;能够满足大多数开发者的地图可视化需求&#xff0c;其最早的版本大小仅仅38 KB。Leaflet能够在主流的计算机或移动设备上高效运行&#xff0c;其功能可通过插件进行扩展&#xff0c;拥有易于使用…

金睛云华斩获ISC2023数字安全创新能力百强 五项殊荣!

昨日&#xff0c;由北京市通州区人民政府指导&#xff1b;中关村科技园区通州园管理委员会、ISC平台主办的ISC2023数字安全创新能力百强颁奖典礼在京举行。金睛云华以卓越的产品创新实力&#xff0c;一举斩获网络与流量安全、威胁检测与响应、AI驱动安全、创新力十强、年度十强…

【JavaEE】多线程(6) -- 定时器的使用及实现

目录 定时器是什么 标准库中的定时器的使用 实现定时器 定时器是什么 Java中的定时器是一种机制&#xff0c;用于在预定时间执行某个任务。它允许开发人员在指定的时间间隔内重复执行任务&#xff0c;或在指定的延迟之后执行任务。定时器是Java提供的一种方便的工具&#xf…

本地部署 text-generation-webui

本地部署 text-generation-webui 0. 背景1. text-generation-webui 介绍2. 克隆代码3. 创建虚拟环境4. 安装 pytorch5. 安装 CUDA 运行时库6. 安装依赖库7. 启动 Web UI8. 访问 Web UI9. OpenAI 兼容 API 0. 背景 一直喜欢用 FastChat 本地部署大语言模型&#xff0c;今天试一…

web3方向产品调研

每次互联网形态的改变&#xff0c;都会对世界产生很大的影响&#xff0c;上一次对社会产生重大影响的互联网形态&#xff08;Web2.0&#xff09;催生了一批改变人类生活和信息交互方式的企业。 目录 概述DAO是什么&#xff1f;为什么我们需要DAO? 金融服务金融桥接及周边服务D…

Spring AOP—深入动态代理 万字详解(通俗易懂)

目录 一、前言 二、动态代理快速入门 1.为什么需要动态代理&#xff1f; : 2.动态代理使用案例&#xff1a; 3.动态代理的灵活性 : 三、深入动态代理 1.需求 : 2.实现 : 2.1 接口和实现类 2.2 提供代理对象的类 2.3 测试类 3.引出AOP : 四、总结 一、前言 第四节内容&…

Mybatis行为配置之Ⅱ—结果相关配置项说明

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL 文章目录 专栏精选引言摘要正文autoMappingBehaviorautoMappingU…

基于遗传算法的航线规划

MATLAB2016b可以正常运行 基于遗传算法的无人机航线规划资源-CSDN文库

代码随想录算法训练营Day13 |104.二叉树的最大深度、559.N叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

LeetCode 104 二叉树的最大深度 本题思想&#xff1a;用后序遍历的思想&#xff0c;先判断出左子树的深度&#xff0c;然后在右子树的深度。最后取大的那一个再加上根节点。就是最大深度。 class Solution {public int maxDepth(TreeNode root) {if(root null){return 0;}int…

(13)Linux 进程的优先级、进程的切换以及环境变量等

前言&#xff1a;我们先讲解进程的优先级。然后讲解进程的切换&#xff0c;最后我们讲解环境变量&#xff0c;并且做一个 "让自己的可执行程序不带路径也能执行"的实践&#xff0c;讲解环境变量的到如何删除&#xff0c;最后再讲几个常见的环境变量。 一、进程优先级…

跟着LearnOpenGL学习10--基础光照

文章目录 一、前言二、环境光照三、漫反射光照3.1、法向量3.2、计算漫反射光照3.3、全部代码3.4、法线矩阵 四、镜面光照4.1、全部代码 一、前言 现实世界的光照是极其复杂的&#xff0c;而且会受到诸多因素的影响&#xff0c;这是我们有限的计算能力所无法模拟的。 因此Open…

使用Rust发送邮件

SMTP协议与MIME协议 SMTP&#xff08;简单邮件传输协议,Simple Mail Transfer Protocol&#xff09;是一种用于发送和接收电子邮件的互联网标准通信协议。它定义了电子邮件服务器如何相互发送、接收和中继邮件。SMTP 通常用于发送邮件&#xff0c;而邮件的接收通常由 POP&#…

响应式绑定<a-textarea>的内容

项目中的 <a-textarea>组件需要自动填入下方数据表的物品名称数量单位&#xff0c;效果如下&#xff1a; 尝试 <a-textarea>{{插值}}</a-textarea>&#xff0c;实现不了&#xff0c;问ai得知需要使用v-decorator 指令的initialValue 属性 问&#xff1a; 如何…

地震烈度速报与预警工程成功案例的经验分享 | TDengine 技术培训班第一期成功落地

近日&#xff0c;涛思数据在成都开设了“国家地震烈度速报与预警工程数据库 TDengine、消息中间件 TMQ 技术培训班”&#xff0c;这次培训活动共分为三期&#xff0c;而本次活动是第一期。其目标是帮助参与者深入了解 TDengine 和 TMQ 的技术特点和应用场景&#xff0c;并学习如…

pybullet安装时出现fatal error C1083: 无法打开包括文件: “string.h”: No such file or directory

pybullet安装时出现fatal error C1083: 无法打开包括文件: “string.h”: No such file or directory 报错原文&#xff1a; -----CloneTreeCreator.cppD:\Program_Professional\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\include\cstring(11): fat…

腾讯云服务器如何买(购买腾讯云服务器的详细步骤)

腾讯云服务器购买流程直接在官方秒杀活动上购买比较划算&#xff0c;在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵&#xff0c;但是自定义购买云服务器CPU内存带宽配置选择范围广&#xff0c;活动上购买只能选择固定的活动机&#xff0c;选择范围窄&#xff0c;但是…

canal 数据同步组件

canal 数据异构组件 为啥要使用这个组件&#xff1f; 在更新DB的时候不同步更新到redis&#xff0c;es等数据库中&#xff0c;时间太久&#xff0c;而且可能会存在同步失败的问题&#xff0c;因此引入canal去拉取DB的数据&#xff0c;再去更新到redis&#xff0c;es等数据库中&…

TiDB SQL调优案例TiFlash

背景 早上收到某系统的告警tidb节点挂掉无法访问&#xff0c;情况十万火急。登录中控机查了一下display信息&#xff0c;4个TiDB、Prometheus、Grafana全挂了&#xff0c;某台机器hang死无法连接&#xff0c;经过快速重启后集群恢复&#xff0c;经排查后是昨天上线的某个SQL导…

OpenGL 绘制Mesh数据(Qt)

文章目录 一、简介二、实现代码三、实现效果一、简介 Mesh数据的结构主要就是点与三角面片,因此本质上仍然是对三角面片进行绘制。这里我们借助VCG这个库实现对Mesh数据的读取,这个库相对简单轻巧,很方便使用。 二、实现代码 由于修改的部分很多,我们逐一进行解释一下: --…