软件测试面试之常规问题
1.描述一下测试过程
类似题目:测试的生命周期
思路:这是一个“范围”很大的题目,而且回答时间一般在3分钟之内,不可能非常详细的描述整个过程,因此答题的思路要从整体结构入手,不要过细。为了保证答案的准确性,可以引入双V测试模型对测试的过程划分。
答:
1)、每个公司的测试过程都不尽相同,但基本都依据或参考行业所认可的一些测试模型,如 V模型、双 V模型等,不同的模型对测试的过程划分也不尽相同。例如V模型多了一个“验收测试过程”。
2)、对测试过程划分比较细致的是双V模型,依据和开发的参照关系分为3个大的阶段:单元测试阶段、集成测试阶段、系统测试阶段:每个阶段的工作内容又分为4个小阶段:计划阶段、设计阶段、实现阶段、执行阶段。其中计划、设计、实现被统称为“测试准备阶段”,可以前置实现(即
在开发编码的同时测试在进行用例的编写等工作)。
3)、在测试的实际过程中要有相关的工具进行支持和管理,如 Junit(单元测试)、SVN(配置管理)、QC(系统测试管理)。其中 QC对测试的支持大致可以划分为版本周期管理、测试需求管理、测试用例管理、测试执行管理、缺陷跟踪。
2.描述一下缺陷跟踪过程
思路:缺陷跟踪实际是描述公司对缺陷的管理过程,因为过程较复杂,纯文字描述很难表达逻辑的准确性,因此建议配合图形的方式回答(面试时需要自备纸笔)。
答:
1)、缺陷跟踪的目的:管理缺陷,随时跟踪缺陷所处的位置,并进行缺陷分析。
2)、跟踪使用的缺陷字段是“状态”,一般至少包括:new、open、fixed、reopen、closed。根据公司实际情况可以自行添加状态,如:Reject。
3)、实现跟踪需要支撑的工具,如 QC(在定制管理的用户组权限中进行设置)。
3.黑、白、灰盒测试的区别
答:
1)、黑盒测试:不考虑组件或系统内部结构的功能或非功能测试(简单来说就是:代码不可见
的测试),主要应用于系统测试阶段,常见的测试方法包括:功能测试、易用测试、兼容测试等。2)、白盒测试:基于对组件或系统的内部结构的分析而进行的测试。(简单来说就是:代码可见的测试),主要应用于单元测试阶段,常使用逻辑覆盖率(路经覆盖、分支覆盖等)进行测试设计。
3)、灰盒测试:介于黑盒和白盒之间的测试,一般理论上存在,实际招聘岗位的很少。主要应用于集成测试阶段,常用于接口测试。
4.静态、动态测试的区别
答:
1)、这两种测试方法主要以代码是否被“执行”作为区分的标准。
2)、静态测试:代码没有被执行。如:代码走读,Java 编译工具(代码写完要先编译,检查语法是否有错误,属于静态+自动化测试,如果编译没有错误才可能被运行)。
3)、动态测试:代码被执行起来了。如功能测试(分别输入有效、无效值测试输入,程序必须要先运行起来)。兼容测试(被测程序在不同的环境(Win7、win8 等)下运行是否正常)
5.验收测试和α测试、β测试的区别
思路:对这几个测试方法的分类,业界没有形成统一的标准,为了防止考官和你学习的标准不统一,回答问题前最好加上些说明。
答:
1)、业内对以上方法的划分没有形成统一的标准,有人认为是并列关系,即验收测试针对的是项目而言,α和β测试针对的是产品而言。有人认为是从属关系,即α测试属于内部验收测试,是可控的,β测试属于外部验收测试,一般难以控制。
2)、关于这三个测试的定义可以参考前面的“名词解释”部分。
6.负载、压力、容量测试的区别
思路:一般这些测试均属于性能测试的范畴,业界的解释也是不统一的,类似的还包括“基准测试”
等。
答:
1)、以上词汇属于性能测试的常见术语。
2)、定义见文档名词解释部分(压力测试、负载测试、容量测试)。
7. 测试计划和策略都包括哪些内容
答:
1)、测试计划:主要内容包括:测试的对象、工作任务安排(谁什么时间做什么事儿)、风险评估、结束或成功的标准等。
2)、测试策略(设计):主要内容包括:依据《测试计划》进行用例的设计和分析、如何设计测试数据、如何搭建测试环境等。
3)、定义见文档名词解释部分。
8.简述常见的测试方法和类型
思路:对于“测试方法”、“测试类型”业界也没有统一的标准划分,因此答题的时候干脆把所有可能的分类方法都说出来。
答:
1)、当前业界类似种类划分很多,没有形成统一的标准,我的理解是:
2)、测试方法分为:白盒、黑盒、静态、动态、人工、自动等。
3)、测试类型分为:(参考 IS09126):功能、安全、兼容等 27 项。
4)、用例设计方法:等价类、边界值、判定表、正交实验、流程分析、状态迁移。
9.单元测试和白盒测试的区别答:
1)、单元测试一般指的是:测试的某个阶段
2)、白盒测试一般指的是:一种测试方法
3)、他们的关系:在单元测试阶段,使用白盒测试的方法
10.测试用例的组成字段
思路:每个公司用例的组成字段都不相同,因此回答分为两个部分,主要字段(所有公司都有的字段,属于重要的内容)和其他字段(相对来说不是很重要,每个公司都不尽相同),这样防止考官总说你回答的字段不全。
答:
1)、一般用例的主要字段包括:用例标题、步骤名称、步骤描述、预期结果、实际结果
2)、其它辅助字段各个公司都不尽相同,如:用例编号、编写人、预置条件、优先级、对应版本、执行状态,覆盖需求等。
3)、额外补充:如 QC 工具可以将共性的用例步骤设计为模板,并进行参数化出来,以减少大量重复用例写作,提高工作效率。公司额外的字段也可以在不同的项目中自行添加。
4)、把用例的设计工作和编写工作最好分开,以便于评审和复用。
5)、注意用例对需求的覆盖(跟踪)关系维护,以及确定执行的优先级和次序。
11.缺陷报告的组成字段
思路:同上
答:
1)、主要字段:标题、描述、状态、严重程度、优先级
2)、其它字段:时间(提交、修改、回归、关闭)、版本(提交、修改、关闭)、人(提交人、分配人)、缺陷产生原因等。如果字段的数量多,也意味着缺陷分析的角度就多。
3)、为了防止表达不清楚和二义性,最好附加一些截图、操作视频、测试数据等附件。
4)、额外补充:如 QC类工具,可以添加用户指定的字段,并进行缺陷分析(柱形图、饼状图)。
12.如果出现需求变更怎么办
思路:需求是一个很大的范畴,统称需求工程,涵盖内容很多,主要从学习过的内容回答即可。
答:
1)、从 IS09000 的定义中,需求包括:显示、隐式和规范性需求。除了客户提出的显示需求,要尽量挖掘和发现隐式需求,同时要满足行业、国家等相关的规范。
2)、需求要经过评审才能使用,保证需求的准确性和全面性。因为几乎所有的生命周期模型中都以需求作为开始的起点,因此如果需求出现问题,会导致缺陷的发散。
3)、可以对需求进行“建模”,绘制“流程终”或者“状态图”,用图形的方式保证需求尽量不产生二义性(因为图形元素的定义是标准的),而且可以为后续的测试用例编写提供依据。4)、维护需求跟踪关系,如需求和用例的跟踪覆盖关系(Qc 中可以实现),一旦有需求发生变更,可以确定需求变更对用例的影响范围。
5)、每次需求变更并评审通过后,要进行基线化控制,保证相关人员使用的同一个版本的需求。
13.开发不认可你的缺陷怎么办
思路:这道题就没有标准答案了,可以说是“人各有志”,不同的人有不同的方法,因此主要考察点不是对测试知识和技能的掌握,而是你处理人际关系,团队关系,同事关系的能力。
季
1)、要尽可能避免这种情况发生,此类情况多发生在新员工身上,由于技术和业务掌握不是很扎实,导致提交一些无效的缺陷,这时可以增加测试内部的评审的环节来解决,即测试提交新缺陷(New)后,由测试经理或资深人员进行审核,确认无误可以打开缺陷(0pen),提交给开发修改,否则置为无效(Abandon),不提交给开发进行修复。参考《缺陷跟踪流程图》。
2)、尽量沟通协调,听听对方的理由,如果开发理由充分,放弃此缺陷
3)、如果认为开发理由不充分,确实需要修复,你要举出反例(参考其它同类软件的功能)来证明该缺陷是有道理的。
4)、咨询其他资深的测试同事,看是否有过类似问题,可以求教一下。
5)、实在无法协调的,可以直接提交缺陷报告,改或不改完全由开发决定,起码保证客户反馈类似问题的时候,责任不在测试这里。
6)、总之,凭借我的技术和沟通能力,相信一定能很完美的处理类似的问题。
14.发现不可重现的缺陷怎么办
答:
1)、检查是否严格按照用例去执行的,还是无意中发现的,尽量去重现或者找到规律2)、检查测试环境,包括操作系统、测试数据等一切可能引起缺陷的原因。
3)、在缺陷报告中注明:不可重现或无法发现规律,最好缺陷报告中就设定类似字段(QC中默认有该字段,叫“是否可重现”)。
4)、在提交缺陷报告的时候尽可能添加附件,如当时抛出的异常,日志信息等,也许开发能从中发现一些蛛丝马迹,进而修复缺陷。
15.验证和确认的区别
答:
1)、确认:做没做。如软件的功能是否被开发实现了。
2)、验证:做的对不对。如开发出来的功能需要验证(测试)是否正确,
3)、这个词出现的频率很高,如 CMMI(3 级中有验证、确认两个过程域)、双 V模型。
16.给你个纸杯怎么测
思路:这类题属于常见问题,一般是可以按照套路出牌的,类似问题有“给你张白纸怎么测”,“一部电梯怎么测”等等,主要回答进行测试的角度即可。
答:
1)、可以从多个角度进行测试,如:
功能测试:盛水、倒水是否流畅,是否漏水。
易用测试:是否口大底小,易于手握住。
可靠测试:盛水一段时间后是否出现渗漏的情况,
依从性测试:材质、规格是否符合国家相关环境、安全标准
2)、对于软件测试而言,角度会更多,为了保证充分性可以参考 S09126 质量模型进行分析。
17.简述评审过程
18.测试结束的标准有哪些
答:
1)、测试的结束或者成功与否的标准,一般在《测试计划》中进行定义。
2)、每个公司制定的该标准也是各不相同,如:
A、没有新的 Bug 产生或者反弹
B、覆盖率和通过率达标:如高级需求 100%覆盖并通过,低级 30%盖并通过。
C、缺陷修复率,如致命 100%修复,轻微 70%修复
D、自动化测试用例的比例(IBM 软件研究院)
相关文章:
软件测试面试之常规问题
1.描述一下测试过程 类似题目:测试的生命周期 思路:这是一个“范围”很大的题目,而且回答时间一般在3分钟之内,不可能非常详细的描述整个过程,因此答题的思路要从整体结构入手,不要过细。为了保证答案的准确性,可以引…...
《图像形态学运算全解析:原理、语法及示例展示》
简介: 本文详细介绍了图像形态学中的多种运算,包括腐蚀、膨胀、开运算、闭运算、形态学梯度运算、礼帽运算以及黑帽运算。分别阐述了各运算的原理、语法格式,并通过 Python 代码结合具体示例图片(如erode.JPG、dilate.JPG、close.…...
双十一线上服务调用链路追踪SkyWalking实战分析
序言 随着电商行业的飞速发展,双十一购物节已成为全球最大的购物狂欢节之一。在双十一期间,电商平台需要处理海量的用户请求和订单,这对系统的稳定性和性能提出了极高的要求。为了确保系统在高并发环境下的稳定运行,对线上服务的…...
网络安全究竟是什么? 如何做好网络安全
网络安全是如何工作的呢? 网络安全结合多层防御的优势和网络。每个网络安全层实现政策和控制。授权用户访问网络资源,但恶意参与者不得进行攻击和威胁。 我如何受益于网络安全? 数字化改变了我们的世界。我们的生活方式、工作、玩耍,和学习都发生了变化。每个组织希望提供…...
【C++】入门【一】
本节目标 一、C关键字(C98) 二、命名空间 三、C的输入输出 四、缺省函数 五、函数重载 六、引用 七、内联函数 八、auto关键字(C11) 九、范围for(C11) 十、指针空值nullptr(C11) 一.…...
【ArcGIS Pro实操第11期】经纬度数据转化成平面坐标数据
经纬度数据转化成平面坐标数据 数据准备ArcGIS操作步骤-投影转换为 Sinusoidal1 投影2 计算几何Python 示例 另:Sinusoidal (World) 和 Sinusoidal (Sphere) 的主要区别参考 数据准备 数据投影: 目标投影:与MODIS数据相同(Sinu…...
python学opencv|读取图像
【1】引言 前序学习了使用matplotlib模块进行画图,今天开始我们逐步尝试探索使用opencv来处理图片。 【2】学习资源 官网的学习链接如下: OpenCV: Getting Started with Images 不过读起来是英文版,可能略有难度,所以另推荐一…...
ffmpeg RTP PS推流
要实现 CRtpSendPs 类,使其能够将 H264 数据通过 RTP PS 流推送到指定的 URL,并支持 TCP 和 UDP 传输方式,您需要使用 FFmpeg 库。以下是该类的实现示例,包括必要的初始化、推流和退出函数。 步骤 初始化 FFmpeg 库:…...
Rust语言俄罗斯方块(漂亮的界面案例+详细的代码解说+完美运行)
tetris-demo A Tetris example written in Rust using Piston in under 500 lines of code 项目地址: https://gitcode.com/gh_mirrors/te/tetris-demo 项目介绍 "Tetris Example in Rust, v2" 是一个用Rust语言编写的俄罗斯方块游戏示例。这个项目不仅是一个简单…...
NUMA架构及在极速网络IO场景下的优化实践
NUMA技术原理 NUMA架构概述 随着多核CPU的普及,传统的对称多处理器(SMP)架构逐渐暴露出性能瓶颈。为了应对这一问题,非一致性内存访问(NUMA, Non-Uniform Memory Access)架构应运而生。NUMA架构是一种内存…...
Brain.js 用于浏览器的 GPU 加速神经网络
Brain.js 是一个强大的 JavaScript 库,它允许开发者在浏览器和 Node.js 环境中构建和训练神经网络 。这个库的目的是简化机器学习模型的集成过程,使得即使是没有深厚机器学习背景的开发者也能快速上手 。 概述 Brain.js 提供了易于使用的 APIÿ…...
Linux——用户级缓存区及模拟实现fopen、fweite、fclose
linux基础io重定向-CSDN博客 文章目录 目录 文章目录 什么是缓冲区 为什么要有缓冲区 二、编写自己的fopen、fwrite、fclose 1.引入函数 2、引入FILE 3.模拟封装 1、fopen 2、fwrite 3、fclose 4、fflush 总结 前言 用快递站讲述缓冲区 收件区(类比输…...
视觉感知与处理:解密计算机视觉的未来
文章目录 前言1. 计算机视觉的概述2. 计算机视觉的应用3. 运动感知与光流4. 人类视觉感知4.1 大脑中的视觉处理4.2 视觉缺陷与对比4.3 分辨率4.4 视觉错觉5. 图像采集与处理6. 图像处理流程7. 二值图像处理与分割8. 3D 机器视觉系统8.1 主动3D视觉8.2 立体视觉9. 商业机器视觉系…...
【大数据学习 | Spark-Core】广播变量和累加器
1. 共享变量 Spark两种共享变量:广播变量(broadcast variable)与累加器(accumulator)。 累加器用来对信息进行聚合,相当于mapreduce中的counter;而广播变量用来高效分发较大的对象,…...
postgresql按照年月日统计历史数据
1.按照日 SELECT a.time,COALESCE(b.counts,0) as counts from ( SELECT to_char ( b, YYYY-MM-DD ) AS time FROM generate_series ( to_timestamp ( 2024-06-01, YYYY-MM-DD hh24:mi:ss ), to_timestamp ( 2024-06-30, YYYY-MM-DD hh24:mi:ss ), 1 days ) AS b GROUP BY tim…...
pywin32库 -- 读取word文档中的图形
文章目录 前置操作解析body中的图形解析页眉中的图形 前置操作 基于pywin32打开、关闭word应用程序; import pythoncom from win32com.client import Dispatch, GetActiveObjectdef get_word_instance():""" 获取word进程 实例"""py…...
GitLab使用示例
以下是从 新建分支开始,配置 GitLab CI/CD 的完整详细流程,涵盖每个步骤、配置文件路径和具体示例。 1. 新建分支并克隆项目 1.1 在 GitLab 上创建新分支 登录 GitLab,进入目标项目页面。依次点击 Repository > Branches。点击右上角 Ne…...
uniapp echarts tooltip formation 不识别html
需求: echarts 的tooltip 的域名太长,导致超出屏幕 想要让他换行 思路一: 用formation自定义样式实现换行 但是: uniapp 生成微信小程序, echart种的tooltip 的formation 识别不了html ,自定义样式没办…...
3D扫描对文博行业有哪些影响?
三维扫描技术对文博行业产生了深远的影响,主要体现在以下几个方面: 一、高精度建模与数字化保护 三维扫描技术通过高精度扫描设备,能够捕捉到文物的每一个细节,包括形状、纹理、颜色等,从而生成逼真的3D模型。这些模…...
面试(十一)
目录 一.IO多路复用 二.为什么有IO多路复用机制? 三.IO多路复用的三种实现方式 3.1 select select 函数接口 select 使用示例 select 缺点 3.2 poll poll函数接口 poll使用示例 poll缺点 3.3 epoll epoll函数接口 epoll使用示例 epoll缺点 四. 进程和线程的区别…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
