疫情期间我面试了13家企业软件测试岗位,一些面试题整理
项目的测试流程
-
拿到需求文档后,写测试用例
-
审核测试用例
-
等待开发包
-
部署测试环境
-
冒烟测试(网页架构图)
-
页面初始化测试(查看数据库中的数据内容和页面展示的内容是否一致,并且是否按照某些顺序排列)
-
具体执行测试用例(几乎所有的功能测试、流程法、场景法)
-
发现缺陷就要再填写缺陷表
-
非功能性测试(sql、js注入、页面效率、绕过js验证直接添加数据到数据库)
-
书写最终的测试报告
测试用例设计方法
- 等价类、边界值、正交试验法、状态迁移法、因果图、场景测试法、异常分析法、因果图、错误猜测法、判定表
测试用例的要素
- Id 主题 测试名称 创建日期 设计者 描述 步骤名 步骤描述 预期结果 执行状态
测试的优先级
-
先测试经过变更的部分,然后测试没有变更的部分
-
先测试程序的核心功能,然后测试一般功能
-
先测试逻辑性的功能,然后测试业务性的功能
-
先测试常规情况,然后测试异常情况
-
先测试功能,然后测试性能
测试报告包含哪些内容
1.写测试背景
2.测试目标
3.测试范围
4.测试环境
5.测试数据
6.测试标准(重点)
7.测试进度
8.测试结果
9.测试结论
有的公司会采用非标准的测试报告
大致会包含:
- 测试所用时间
- 测试环境
- 测试人员
- 测试发现bug数量
- 已修复bug数量、遗留bug、遗留bug原因、测试结果等
BUG的生命周期
提交–开发验证–接受–拒绝–开发解决–测试人员验证–关闭–不通过打开
BUG的状态
-
NEW:所有提交到开发对接的问题状态为NEW,表示为未处理
-
OPEN:开发对接人初判为需流转问题,指定测试人员和开发人员,状态为OPEN。
-
REFUSE:开发对接人判断为不需要流转至下环节的问题,状态为REFUSE,并且填写原因
-
FIXED:开发人员完成修复,待测试,状态为FIXED
-
REOPEN:测试人员针对开发人员的修复结果测试部通过,状态为REOPEN
-
CLOSE:测试人员判断问题为需求或其他问题,需填写原因;
缺陷的要素
缺陷标题 缺陷状态 提交人 负责人 优先级 严重程度 缺陷描述 时间 截图
缺陷的级别
致命问题:核心功能不可用或系统崩溃
严重问题: 业务主要流程无法使用,业务主要流程中的某个功能存在缺陷导致主要流程无法继续使用
一般问题: 一般性问题,非主要流程上的功能缺陷
轻微问题: 界面ui问题 提示不规范等
建议性问题: 根据自己的经验提一些建议性的问题
WEB测试与APP测试的区别
- 架构不同。
-
web端是b/s架构的,b/s架构是基于浏览器地址访问的
-
app端是c/s架构的,c/s架构是要有客户端作为载体的
- 版本发布的方式和流程不同。
-
web发版本,开发部署新的代码到对应服务器地址,就可统一实现web端的更新
-
app发版本,开发需要打包(apk包和ipa包),打包之后需要发布到对应的渠道
- 兼容性
-
web,测试不同浏览器的兼容性(ie、chrome、firefox、360、QQ)
-
app,测试不同的分辨率、屏幕尺寸、手机品牌、系统版本
- 性能方面
-
web,测试响应的时间
-
app,测试响应时间、流量、耗电量、CPU、GPU、memory
- 安全性
-
web,sql注入。xss攻击等
-
app,https加密、签名、加固、密码加密等
- app测试特点
-
适配性测试
-
网络测试
在线升级测试
中断测试
耗电量测试
弱网测试
安装卸载测试
流量测试
app测试的主要内容
- 功能测试
- 业务逻辑正确性的测试
- 兼容性测试
-
系统版本
-
分辨率
-
如果一个bug,开发认为不是一个bug,怎么处理
-
常用linux命令
-
什么情况下定位不到元素
-
GET请求和POST请求的区别
-
网络情况
- 异常测试
-
热启动
-
网络切换
-
电话信息终端恢复
-
升级、安装、卸载
-
健壮性测试
-
手机资源消耗
-
流量消耗
-
电量测试
-
崩溃恢复
-
如果一个bug,开发认为不是一个bug,怎么处理
-
将问题提交到缺陷管理库里面进行备案。
-
获取判断的依据和标准
-
根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
-
如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
-根据用户的一般使用习惯,来确认是否是缺陷;
- 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
-
合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不掺杂个人情绪。
-
等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并由上级做出决定。
常用linux命令
-
ifconfig 查看IP地址
-
cat 用于显示指定文件的全部内容
-
more 用分页的形式显示指定文件的内容
-
mkdir 创建目录
-
touch 创建新的文件
-
grep 查找文件里符合条件的字符串
-
find 查找指定的文件
-
tail -f 用于自动刷新显示文件后N行数据内容
-
kill -9 强制结束
-
netstat -anp | grep 端口号 查看端口
-
chmod -R 777 赋予777权限
什么情况下定位不到元素
-
代码写错
-
元素未出现(需要元素等待)
-
元素在iframe中
-
多窗口
-
出现弹窗(系统弹窗、JS弹窗)
-
元素属性值是动态加载的
-
元素无法确定唯一性
-
只读属性(元素不可操作)
GET请求和POST请求的区别
-
GET使用URL或Cookies传参,POST将数据放在BODY中
-
GET的URL会有长度上的限制,POST的数据则可以非常大
-
POST比GET安全,因为在地址栏不可见
-
一般GET用来获取数据,POST用来发送数据
为什么要做接口测试
-
越底层发现BUG,修复成本越低
-
前端发生变化时,后端接口可以不用变
-
检查系统的安全性、稳定性,前端传参不可信
接口测试是怎么做的
-
由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI等。
-
也可以用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。
接口测试的重点
-
检查接口返回的数据是否与预期的结果一致
-
检查接口的容错性,加入传递的类型错误时是否可以处理
-
接口测试的边界值
-
接口的性能
-
接口的安全性
http状态码
-
1xx:请求正常,但是无响应,只有在实验状态下使用
-
2xx:2开头的表示发送成功
-
3xx:3开头的代表重定向,常见302
-
4xx:400代表客户端发送的语法有错误,401代表访问的页面没有授权,403 无权限访问该网页,404代表没有这个页面,415 格式错误
-
5xx:5开头的代表服务器异常,500代表服务器内部异常,504代表服务器超时
cookies和session的区别
-
cookies数据存放在客户的浏览器上,session数据放在服务器上
-
cookies不是很安全,别人可以分析存放在本地的cookies并进行cookies欺骗考虑到安全应当使用session
-
session会在一定时间内保存在服务器上,当访问增多,会比较占用,你服务器的性能考虑到减轻服务器性能方面,应当使用cookies
常用的adb命令
-
adb start-server 启动adb服务
-
adb kill-server 关闭adb服务
-
adb devices 查看设备号
-
adb push 电脑 手机
-
adb pull 手机 电脑
-
adb logcat | grep 包名(unix)
-
adb logcat | findstr 报名 (win)
-
adb shell 进入shell命令行
-
adb install 安装app到手机上
-
adb uninstall 卸载app到手机上
-
adb logcat > 文件名 输出log到文件
-
adb shell top 测试app的资源消耗命令
产品的业务流程
解析
问你简历上写的某个项目整体的业务流程
比如电商项目中的注册功能,从开始注册到注册成功的整个过程
版本符合上线的标准是什么
验收标准
(1) 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
(2) 在验收测试中发现的错误已经得到修改,各级缺陷修复率达到标准
(3) 所有测试项没有残余紧急、严重级别错误。
(4) 需求分析文档、设计文档和编码实现一致。
(5) 验收测试工件齐全(测试计划、测试用例、测试日志、测试通知单、测试分析报告,待验收的软件安装程
序。)
缺陷修复率标准
(1) 紧急、严重级别错误修复率应达到100%;
(2) 普通级别错误修复率应达到95%以上;
(3) 优化级别错误修复率应达到60%以上;
注:项目紧急时,普通级别错误修复率达60% 以上;优化级别错误修复率达20% 即可。
服务器运行状态响应指标
(1) cpu% 并发期间最大使用率应不超过70-80%,如有集合点并发可允许短暂接近或到达100& 但大部分不
应查过95%;
(2) memery 测试期间保证内存充足可用内存不少于20%;
(3) disk 监控硬盘是否有读写不超过40%;
(4) cpu load average 不应超过cpu 核心数*2 或者不超过cpu 核心数。
测试用例评审过程及相关参与人员
1:评审的过程
A:开始前做好如下准备
- 1、确定需要评审的原因
-2、确定进行评审的时机
-
3、确定参与评审人员
-
4、明确评审的内容
-5、确定评审结束标准
-
6、提前至少一天将需要评审的内容以邮件的形式发送给评审会议相关人员。并注明详审时间、地点及偿参与人员等。
-
7、 在邮件中提醒评审会议相关人员至少简读一遍评审内容,并记录相关的疑问,以便在评审会议上提出。
-8、 会议主持者(一般为用例编写人员)应在会议前整理相关疑问,以便在会议上提出。
B:开始评审
-
1、 召开评审会议。与会者在设计人员讲解之后给出意见和建议,同时进行详细的评审记录。
-
2、 通用邮件与相关人员沟通
-
3、 通用IM工具直接与相关人员交流
-
4、根据评审内容进行评审
2:评审内容
1、 用例设计的结构安排是否清晰、合理,是否利于高效对需求进行覆盖。
2、 优先级安排是否合理。
3、 是否覆盖测试需求上的所有功能点。
4、 用例是否具有很好可执行性。例如用例的前提条件、执行步骤、输入数据和期待结果是否清晰、正确;期待结果是否有明显的验证方法。
5、 是否已经删除了冗余的用例。
6、 是否包含充分的负面测试用例。充分的定义,如果在这里使用2&8法则,那就是4倍于正面用例的数量,毕竟一个健壮的软件,其中80%的代码都是在“保护”20%的功能实现。
7、 是否从用户层面来设计用户使用场景和使用流程的测试用例。
8、 是否简洁,复用性强。例如,可将重复度高的步骤或过程抽取出来定义为一些可复用标准步骤。
3:参与评审人员(这里会分为多个级别进行评审)
1、 部门评审,测试部门全体成员参与的评审。
2、公司评审,这里包括了项目经理、需求分析人员、架构设计人员、开发人员和测试人员。
3、 客户评审,包括了客户方的开发人员和测试人员。这种情况在外包公司比较常见
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。
相关文章:

疫情期间我面试了13家企业软件测试岗位,一些面试题整理
项目的测试流程 拿到需求文档后,写测试用例 审核测试用例 等待开发包 部署测试环境 冒烟测试(网页架构图) 页面初始化测试(查看数据库中的数据内容和页面展示的内容是否一致,并且是否按照某些顺序排列)…...

PINCE——Linux 原生游戏内存修改器,一款替代 Cheat Engine 的强大游戏修改器,Linux 游戏玩家必备神器!
PINCE——Linux 原生游戏内存修改器,一款替代 Cheat Engine 的强大游戏修改器,Linux 游戏玩家必备神器! PINCE 是 GNU Project Debugger(GDB) 的前端/反向工程工具,常用作程序调试器,主要用于游戏领域,修改…...

为IntelliJ IDEA安装插件
安装插件 插件是开发工具的扩展程序,通常由第三方提供,当安装了插件后,原开发工作的菜单、按钮等开发环境可能会发生变化,例如出现了新的菜单项,或出现了新的按钮,甚至一些全新的编码方式,通常…...

ES6 Promise
ES6 Promise 对象 一、概述 是异步编程的一种解决方案。 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。 Promise 状态 状态的特点 Promise 异步操作有三种状态:pending(进行中)、fulfilled(…...

html+css 实现hover 凹陷按钮
前言:哈喽,大家好,今天给大家分享html+css 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、原理解析💡1.这是一个,hover时凹陷的效果。每个按钮是一个button…...

什么是负载均衡?负载均衡器如何运作?
往期文章 负载均衡器:LVS、Nginx、HAproxy如何选择? 目录 往期文章什么是负载均衡?为什么需要负载均衡?负载均衡工作原理?静态负载均衡算法动态负载均衡算法 参考 什么是负载均衡? 负载均衡是一种网络技术…...

(Arxiv-2023)潜在一致性模型:通过少步推理合成高分辨率图像
潜在一致性模型:通过少步推理合成高分辨率图像 Paper Title: Latent Consistency Models: Synthesizing High-Resolution Images with Few-Step Inference Paper是清华发表在Arxiv 2023的工作 Paper地址 Code地址 ABSTRACT 潜在扩散模型 (LDM) 在合成高分辨率图像方…...

Unity与UE,哪种游戏引擎适合你?
PlayStation vs Xbox,Mario vs Sonic,Unreal vs Unity?无论是游戏主机、角色还是游戏引擎,人们总是热衷于捍卫他们在游戏行业中的偏爱。 专注于游戏引擎,Unity和Unreal Engine(简称UE4)是目前市…...

这五本大模型书籍,把大模型讲的非常详细,收藏我这一篇就够了
当然可以。在当前的大模型时代,随着自然语言处理(NLP)技术的迅速发展,出现了许多优秀的书籍来帮助读者理解这些复杂的技术。以下是几本值得推荐的大模型书籍,它们涵盖了从基础理论到高级实践的内容,可以帮助…...

伊朗通过 ChatGPT 试图影响美国大选, OpenAI 封禁多个账户|TodayAI
OpenAI 近日宣布,他们已经封禁了一系列与伊朗影响行动有关的 ChatGPT 账户,这些账户涉嫌利用该 AI 工具生成并传播与美国总统选举、以色列 – 哈马斯战争以及奥运会等相关的内容。 OpenAI 表示,这些账户与一个名为 “Storm-2035” 的秘密伊朗…...

windows系统如何走后面之windows系统隐藏账户
系统隐藏账户是一种最为简单有效的权限维持方式,其做法就是让攻击者创建一个新的具有管理员权限的隐藏账户,因为是隐藏账户,所以防守方是无法通过控制面板或命令行看到这个账户的。 自然我们需要一些前提条件,比如说有一个网站&am…...
Elasticsearch(ES)(版本7.x)数据更新后刷新策略RefreshPolicy
Elasticsearch(ES)(版本7.x)数据更新后刷新策略RefreshPolicy 介绍 ES数据写入后,默认1s后才会被搜索到(refresh_interval为1); 这样可能是考虑到性能问题,毕竟实时IO 消耗较多资源 造成的问题 例如一个索引现在有…...

【运维】从一个git库迁移到另一个库
工作目录: /home/java/hosts 10.60.100.194 脚本 hosts / hostsShell GitLab (gbcom.com.cn) 核心代码...

and design vue表格列宽度拖拽,vue-draggable-resizable插件使用
and design vue2版的table表格不能拖拽列的宽度,通过vue-draggable-resizable插件实现 我用的是and design 1.7.8的版本,先下插件 yarn add vue-draggable-resizable2.1.0我这版本的and design用最新3.0.0以上的插件会有问题,实现不了效果&a…...
使用hexo搭建个人博客
很早之前使用hexo和github建了个人博客。搭建的流程一直没有梳理,中间换过几次机器,每次都得重新配置一遍,需要重新学些。最近电脑坏了,原始的数据没有导出来,先把以前文章写个文件占个位置,后面慢慢补吧&a…...
java geotool构建地理点线面
哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互…...
C# 中 Grpc服务端调用客户端方法
在 gRPC 中,服务端通常不直接调用客户端的方法,因为 gRPC 的设计模型是服务端提供服务,客户端调用服务。通常情况下,服务端和客户端之间是解耦的,服务端只提供服务端点,客户端通过这些端点发起请求。 不过…...

Arthas相关命令
官方网站:命令列表 | arthas 也可以用idea的插件arthas-idea的插件根据你想定位的代码生成命令 jvm 相关 dashboard - 当前系统的实时数据面板getstatic - 查看类的静态属性heapdump - dump java heap, 类似 jmap 命令的 heap dump 功能jvm - 查看当前 JVM 的信息l…...

2024年江苏省职业院校技能大赛 移动应用与开发中职赛项规程
2024年江苏省职业院校技能大赛 移动应用与开发中职赛项规程 (一)学生组竞赛内容:模块A:移动应用界面设计模块B:移动应用前端开发模块C:移动应用测试与交付 (二)教师组竞赛内容:模块A:…...

2024 Google 开发者大会,沉浸式体验AI社会公益
文章目录 一、现场打卡二、AI 社会公益三、Gemma 模型四、Gemini 模型五、Google Cloud六、现场体验七、带着问题逛展八、学习资源和活动九、结束 Happy Hour 一、现场打卡 大家好,我是小雨。 2024 Google 开发者大会,沉浸式体验AI社会公益 今天我们参加…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...

【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...