面了十几家公司测试岗,我终于悟了,面试无非就是这些题

news/2024/4/24 21:45:53/

测试岗的面试其实都是大同小异的,这里我收集整理了185道高频面试题,希望对在找工作或者准备跳槽的各位小伙伴有所帮助!

一. 测试基础

1.如何制定测试计划

参考答案:

测试计划包括测试目标、测试范围、测试环境的说明、测试类型的说明(功能,安全,性能,稳定性)、测试工具、模块的划分、测试负责人、测试执行轮次的时间安排、相关文档在文档管理库中的位置、测试的风险 。其中模块划分需要根据测试人员对于业务的熟悉程度及个人能力进行分配,工作量的估算需要根据以往测试时的经验,结合本次需求的修改,可以大致估算出测试量

2.在项目中如何保证软件质量

参考答案:

项目质量不仅仅是某个人或某个团队来保障的,而是整个团队一起努力的结果,在公司级别需要有一个规范的项目流程

1. 产品,保证迭代过程中的产品逻辑,对于可能的兼容,升级做出预判,并给出方案

2. 设计,满足产品表达的同时,保证设计的延续性

3. 开发,产品细节的保证,技术方案选择要严谨,考虑兼容,性能,开发完成后要充分自测,严格遵循开发规范操作

4. 测试,验证产品逻辑,站在用户角度对交互设计进行系统验证,尽可能多的使用技术手段保证测试质量

3.功能测试用例一般包含哪些内容?

参考答案:

要素一般包括:用例编号、用例优先级、测试目的、所属模块、前提条件、测试环境、

输入数据、测试步骤、预期结果、测试脚本等

核心要素:用例优先级、测试目的、预期结果

4.黑盒(或功能)测试用例设计方法有哪些?

参考答案:

等价类划分方法:等价类划分法将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。

边界值方法:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。

错误推测方法:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

因果图方法:因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。

判定表驱动分析方法:判定表是黑盒测试的方法之一,判定表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。

正交分解法:是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。

场景分析法:分析软件应用的场景,从用户的角度出发,从场景的角度来设计测试用例,是一种面向用户的测试用例设计方法。关心用户做什么,而不是关心产品做什么。

全局探索式测试方法:测试人员根据应用程序所提供的信息自由发挥,不受限制,不受任何约束的探索程序的各种功能。

5.APP 测试和 web 测试有什么区别

Web 端测试和移动端测试类型基本相似,都需要进行功能测试、性能测试、安全性测

试,他们主要区分 web 端一般都是 b/s 架构,基于浏览器的,app 是 c/s 架构,是有客户端的。

(1) 从系统架构来看的话:web 测试只要更新了服务器端,客户端就会同步更新;而如果是app 端下修改了服务端,意味着客户端用户所有使用的核心版本都需要进行回归测试一遍。

(2) 客户端性能方面:Web 端可能只会关注响应时间;App 则还要关心流量、电量、cpu、等;

(3) 兼容方面:Web 是基于浏览器的,所以更倾向于浏览器(IE、Chrome、firefox)和电脑硬件,电脑系统方向的兼容;App 测试则必须依赖于手机或者 pad,不仅要看分辨率、频目尺寸、重要看设备系统。

6. 发现一个 bug,怎么定位是 APP 端还是服务端的问题

1. 抓包分析 通过对客户端进行抓包,分析服务端返回的数据是否符合预期,如

果服务端数据是正确的,那就是客户端的问题

2. 日志分析 可以通过查看客户端/服务端的日志,分析有没有异常的日志信息,

从而确定具体原因

7.针对 App 的安装功能,写出测试点?

1. 正常安装测试,检查是否安装成功。

2. APP版本覆盖测试。例如:先安装一个1.0版本的APP,再安装一个高版本(1.1版本)的APP,检查是否被覆盖。

3. 回退版本测试。例如:先装一个 2.0 版本的 APP,再安装一个 1.0 版本的 APP,正常情况下版本是可以回退的。

4. 安装时内存不足,弹出提示。

5. 根据安装手册操作,是否正确安装。

6. 安装过程中的意外情况(强行断电、断网、来电话了、查看信息)等等,检查会发生的情况。

7. 通过‘同步软件’,检查安装时是否同步安装了一些文件。

8. 在不同型号、系统、屏幕大小、分辨率上的手机进行安装。

9. 安装时是否识别有 SD 卡,并默认安装到 sd 卡中。

10. 安装完成后,能否正常启动应用程序。

11. 安装完成后,重启手机能否正常启动应用程序。

12. 安装完成后,是否对其他应用程序造成影响。

13. 安装完成后,能否添加快捷方式。

14. 安装完成后,杀毒软件是否会对其当做病毒处理。

15. 多进程进行安装,是否安装成功。

16. 在安装过程中,所有的提示信息必须是英文或者中文,提示信息中不能出现代码、符号、乱码等。

17. 安装之后,是否自动启动程序。

18. 是否支持第三方安装。

19. 在安装中点击取消。

8.持续集成的目的是什么

持续集成指的是,频繁地(一天多次)将代码集成到主干。

它的好处主要有两个:

(1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。

(2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,就不能集成。

9.如何测试纸杯

功能度:纸杯容量(空杯、满杯升数、半杯升数);水能不能被喝到;纸杯形状(正圆柱、上宽下窄圆柱、上窄下宽圆柱、其他形状)、纸杯材质(全纸质、全塑料、半纸半塑料)、纸杯耐温程度(冷水、热水、冷水、冰)、支持盛放液体名称(水、咖啡、牛奶、可乐)

安全性:杯子有没有毒或细菌、装液体多久有化学反应(例如:异味)

可靠性:杯子从不同高度落下的损坏程度

可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

易用性:杯子是否烫手、是否有防滑措施、是否方便饮用、装液体多久漏水、装热水多

久变形、装多少度热水变形

用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

疲劳测试:将杯子盛上水放 24 小时检查泄漏时间和情况;盛上汽油放 24 小时检查泄漏时间和情况等

压力测试:用根针并在针上面不断加重量,看压强多大时会穿透;手挤压多久变形(单

手、双手)

10.当开发人员说不是 BUG 时,你如何应付?

开发人员说不是 bug,有 2 种情况,一是需求没有确定,所以这个时候可以找来产品经理进

行确认,需不需要改动,商量确定好后再看要不要改。二是这种情况不可能发生,所以不需

要修改,这个时候可以先尽可能的说出是 BUG 的依据是什么?如果被用户发现或出了问题,

会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不

行,那可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修

改就不改。如果最终 bug 被确定不改,那么就要在测试报告里面记录一下,以便以后查阅。

11.遇到概率性 bug 怎么办?

概率性 bug,又叫幽灵 bug,首先需要明确的是,该类 bug 也是需要提单的,描述清楚当时操作环境、操作步骤、数据、并提供必要日志,可备注上可能产生原因。然后耐心一点,运用排除法、错误推测找规律,必要时找开发人员、项目经理一起定位分析讨论,如果最终仍未解决,那么需要在测试报告中体现,并分析可能造成的影响,大家一起权衡该 bug 是否可遗留。

12.一个身份证号码输入框,怎么设计用例

校验身份证号规则的有效性(包括地址码、生日期码、顺序码和校验码

校验 15 位身份证号和 18 位身份正好都是可用的

校验末位是 X 的情况

校验不足 15 位、16-17 位和大于 18 位的情况

如果是必输项,校验不输入的时候会不会有正确的提示

如果不是必输项,则要校验不输入的时候流程能否正常进行

校验输入非数字的情况,是否会有正确提示信息(包括大小写字母、汉字、特殊字符和标点符号)

校验输入全角的数字的时候,系统是否会识别(这个得根据需求确定是否可以使用全角的数字)

13.什么是回归测试?如何做回归测试?

回归测试,即就是在软件生命周期中,只要软件发生了改变,就可能给该软件产产生问题;

所以,每当软件发生变化时,我们就必须重新测试现有的功能,以便确定修改是否达到了预期的目的,检查修改是否破坏原有的正常功能。

回归测试可以发生在任何一个阶段,包括单元测试、集成测试和系统测试

那我们改如何做回归测试呢? 总结为以下几点

1、在测试策略制定阶段,制定回归测试策略

2、确定需要回归测试的版本

3、回归测试版本发布,按照回归测试策略执行回归测试

4、回归测试通过,关闭缺陷跟踪单(问题单)

5、回归测试不通过,缺陷跟踪单返回开发人员,开发人员重新修改问题,再次提交测试人员回归测试

14.如何提交一份高质量的缺陷跟踪单

首先要明确,缺陷跟踪单不仅仅是给自己看的,所以高质量的缺陷单,最主要的一条判

断标准是,别人一看就懂,标题简洁明了,步骤条理清晰。还需考虑缺陷的完备性,比如缺陷等级、所属功能模块、版本、复现步骤、预期结果、实际结果、产生原因、日志截图等

15. 项目测试流程有哪些?

需求评审、测试计划、技术评审、用例编写、用例评审、测试执行、测试报告、线上验 证、项目总结

16.Bug 优先级和严重程度如何划分

Priority(优先级)和 Severity(严重程度)是提交 bug 的两个重要属性。

通常,测试 人员在提交 Bug 时,只定义 Bug 的 Severity, 即该 Bug 的严重程度,而将 Priority交给 Project Leader 或 Team Leader 来定义,由他们来决定该 Bug 被修复的优先等级。某种意义上来说,Priority 的定义要依赖于 Severity,在大多数情况下,Severity 越严重,那这个 Bug 的 Priority 就越高。

Severity(严重程度)如下:

Blocker(有妨碍的): 即系统无法执行、崩溃或严重资源不足、应用模块无法启动或异 常退出、无法测试、造成系统不稳定

Critical(紧要的):即影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系 统稳定性

Major(严重的):即界面、性能缺陷、兼容性。

Minor/Trivial(次要的/不严重的):即易用性及建议性问题。

Priority(优先级):Immediate(立刻)、Urgent(紧要、优先)、High(高度重视)、

Normal(正常)、Low(稍缓)

17.您认为做好测试用例设计工作的关键是什么

关键点就是熟悉需求,但是需求可以分为以下几个方面

1. 熟悉本次业务需求

2. 熟悉其他系统和本次需求的关联

3. 熟悉开发设计文档,了解开发实现逻辑

4. 熟悉数据库设计文档,了解数据存储

5. 熟悉项目架构,发现隐藏需求

18.给你一个网站,如何开展测试

1.查找需求说明、网站设计等相关文档,分析测试需求。

2.制定测试计划,确定测试范围和测试策略。

3.设计测试用例,包括功能、兼容、性能、安全等方面

4.开展测试执行

5.回归测试及测试总结

篇幅限制,仅展示了部分面试题,需要完整版文档的,可以点击下方卡片获取哈~ 


http://www.ppmy.cn/news/47735.html

相关文章

vue nextTick原理详解

vue nextTick Vue.nextTick() 是一个方法,用于在下次 DOM 更新循环结束之后执行延迟回调。它的实现原理是利用浏览器的异步任务队列机制,在 tick 时刻将回调函数放入队列中等待执行。在实现上,nextTick 方法会根据当前环境选择不同的底层实现…

DCQCN学习

主要思想 发送端的拥塞控制主要有两种形式,一种是基于发送窗口的,另一种是基于rate的 DCQCN是一种基于rate的CC,并主要由ECN机制实现 初始设置sending rate为max line rate 接下来CC主要分为三个部分 CP(Congestion Point) 交换机 出端…

MySQL数据库系统学习(从入门到精通)

MySQL数据库系统学习 一,了解数据库 1.什么是数据库 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。 2.什么是SQL S…

转义字符(\)对JavaScript中JSON.parse的影响概述

转义字符(\)对JavaScript中JSON.parse的影响 按照ECMA262第五版中的解释&#xff0c;JSON是一个提供了stringify和parse方法的内置对象&#xff0c;前者用于将js对象转化为符合json标准的字符串&#xff0c;后者将符合json标准的字符串转化为js对象。json标准参考<a href&q…

Java中的序列化与反序列化(一)

1、概述 大家好&#xff0c;我是欧阳方超。今天来看一下Java序列化与反序列化的问题。 2、序列化与反序列化 2.1、序列化与反序列化的概念 在Java中&#xff0c;序列化是将对象转换为可存储或传输的格式&#xff08;一般为字节流&#xff09;的过程&#xff0c;序列化后的字…

为什么网络安全缺口很大,招聘却很少?

2020年我国网络空间安全人才数量缺口超过了140万&#xff0c;就业人数却只有10多万&#xff0c;缺口高达了93%。这里就有人会问了&#xff1a; 1、网络安全行业为什么这么缺人&#xff1f; 2、明明人才那么稀缺&#xff0c;为什么招聘时招安全的人员却没有那么多呢&#xff1…

TensorFlow 2 和 Keras 高级深度学习:6~10

原文&#xff1a;Advanced Deep Learning with TensorFlow 2 and Keras 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#x…

C# Lambda表达式

目录 Lambda表达式的语法如下&#xff1a; Lambda表达式的内联特性 Lambda表达式常用的方法 C# Lambda表达式简介 Lambda表达式是C#语言中一种函数式编程的特性&#xff0c;它的主要作用是简化代码和提高代码的可读性。在使用Lambda表达式时&#xff0c;可以通过其内联特性…

【C++STL精讲】stack与queue的基本使用及模拟实现

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f337;stack是什么&#xff1f;&#x1f337;stack的基本使用&#x1f337;stack的模拟实现&#x1f337;queue是什么&#xff1f;&#x1f337;queue的基本使用&#x1f337;queue的模拟实现 &#x1f490;专栏导读…

SpringBoot起步依赖和自动配置

文章目录 1、起步依赖2、自动配置 1、起步依赖 概念 起步依赖本质上是一个Maven项目对象模型&#xff08;Project Object Model&#xff0c;POM&#xff09;&#xff0c;定义了对其他库的传递依赖&#xff0c;这些东西加在一起支持某一功能。 简单的说&#xff0c;起步依赖就…

iptables表、链、规则

netfilter/iptables&#xff08;也就是常说的iptables&#xff09;组成Linux平台下的包过滤防火墙&#xff0c;具有完成封包过滤、封包重定向和网络地址转换&#xff08;NAT&#xff09;等功能。 netfilter是Linux 核心中一个通用架构&#xff0c;它提供了一系列的"表&quo…

手敲Mybatis(九)-结果集处理器

1.前言-背景介绍 上节我们处理了参数处理器&#xff0c;本节我们处理结果集处理器&#xff0c;之前我们写了一个DefaultResultSetHandler&#xff0c;我们把返回结果获取对象&#xff0c;填充值什么的写到了一起&#xff0c;流程没有进行解耦&#xff0c;并且只接收了Object的…

信息系统项目管理师-项目范围管理

1.过程 1.1 规划范围管理 为了记录如何定义、确认和控制项目范围及产品范围&#xff0c;而创建范围管理计划的过程。 1.2 收集需求 为实现目标而确定、记录并管理项目干系人的需要和需求的过程。 1.3 定义范围 制定项目和产品详细描述的过程。 1.4 创建WBS&#xff08;工作分解…

数据库备份shell脚本

文章目录 数据库备份shell脚本变量定义FTP 变量定义函数定义主逻辑 数据库备份shell脚本 # var bak_cmd"--userbakup --password123456 --socket/tmp/mysql.sock --no-timestamp" full_dir"/db/full_date %F" incr_dir"/db/incr_date %F" info&…

Kotlin 1.6.0 的新特性

1、稳定版对于枚举、密封类与布尔值主语穷尽 when 语句 一个详尽的when语句包含了所有主题可能的类型或值的分支&#xff0c;或者对于一些类型包含一个else分支。它覆盖了所有可能的情况&#xff0c;使代码更加安全。 即将禁止非详尽的when语句&#xff0c;以使行为与when表达…

多模态之论文笔记ViLT

文章目录 ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision一. 简介1.1 摘要1.2 文本编码器&#xff0c;图像编码器&#xff0c;特征交互复杂度分析1.2 特征交互方式分析1.3 图像特征提取分析 二. 方法 Vision-and-Language Transformer2.1.方…

Docker Desktop使用PostgreSql配合PGAdmin的使用

在看此教程之前&#xff0c;请先下载安装Docker Desktop 安装成功可以查看版本 然后拉取postgresql的镜像&#xff1a;docker pull postgres:14.2 版本可以网上找一个版本&#xff0c;我的不是最新的 发现会报一个问题 no matching manifest for windows/amd64 10.0.19045 i…

R语言贝叶斯方法在生态环境领域中的应用

贝叶斯统计已经被广泛应用到物理学、生态学、心理学、计算机、哲学等各个学术领域&#xff0c;其火爆程度已经跨越了学术圈&#xff0c;如促使其自成统计江湖一派的贝叶斯定理在热播美剧《The Big Bang Theory》中都要秀一把。贝叶斯统计学即贝叶斯学派是一门基本思想与传统基于…

加载美女图片之OpenCV 图像读取与显示

&#x1f4d6;作者介绍&#xff1a;22级树莓人&#xff08;计算机专业&#xff09;&#xff0c;热爱编程&#xff1c;目前在c&#xff0b;&#xff0b;和openCv阶段>——目标Windows&#xff0c;MySQL&#xff0c;Qt&#xff0c;数据结构与算法&#xff0c;openCv&#xff0…

C# 多线程编程的基础知识和常用的线程同步方式

多线程编程是现代软件开发中非常重要的一个方向&#xff0c;C# 作为一门现代化的编程语言&#xff0c;提供了丰富的多线程编程支持。下面我们来介绍一下 C# 多线程编程的基础知识和常用的线程同步方式。 基础知识 在 C# 中&#xff0c;可以使用 Thread 类来创建和管理线程。T…