接上篇 :
3.15 测试中 , 如何判断是前端的 bug 还是后端的 bug 呢?
通常可以利用抓包工具来进行分析。可以从三个方面进行分析 : 请求接口、传参数、响应。
1) 请求接口 un 是否正确如果请求的接口 ur 错误 , 为前端的 bug
2) 传参是否正确如果传参不正确 , 为前端的 bug
3) 请求接口 u 和传参都正确 , 查看响应是否正确如果响应内容不正确 , 为后端 bug
4) 也可以在浏览器控制台输入 js 代码调试进行分析
3.16 项目上线后发现 bug, 测试人员应该怎么办
看严重级别 : 严重还是不严重
严重的 : 紧急变更上线
不严重 : 修复好后跟下个版本一起上线
用户会通过运维反馈到项目组这边 , 项目经理会根据功能模块的负责人 , 分给对应的开发与测试。
测试人员 : 编写对应的测试用例、测试环境中重现 bug、提交 bug、
交给开发进行修复、修复完成 bug、进行 bug 的复测。
如果测试环境无法重现 , 可以导入生产环境的包到测试环境中测试 ,
还是不能复现 , 查看生产环境的日志去定位问题。
3.17 如何保证质量
(1)需求要吃透 , 多问 , 多去了解。
(2)严格按照测试流程去执行 : 多考虑用户测试场景 , 使用测试用例设计方法 , 多评审。
(3)要有良好的测试执行 : 要求用例执行率达到 100%, 多轮测试 , 进行探索性测试 ,
需要测试之间交叉测试 , 用工具来管理我们的测试工作(禅道 , testlink, excel,tapd)
(4)不断的反思与提升。
3.18 产品是怎么上线的?
一般我们会选择晚上上线 , 开发测试还有产品全部到场 , 进行上线测试。
首先 , 开发将代码打包到生产环境的服务器中 , 如果数据表有变化 , 就会运行 sql 文件 ,
对表的一些操作 , 接着 , 我们测试就开始先测试主体业务功能以及新增的功能模块;
测试通过之后 , 我们会在界面上把上线测试的数据删除 , 正常上线。
如果发现 bug, 开发人员当场修复 bug, 修复成功之后我们测试再复测 , 通过就可以正常上线
如果发现了 bug 开发人员在上线规定时间之前都还没有修复好的话 , 就看问题的严重性 ,
如果严重就延期上线 , 如果我们是迭代版本的话我们还需要版本回滚。
如果不严重 , 产品跟客户觉得可以上线 , 就正常上线。
3.19 你测试数据是从哪里获得? 怎么获得的 , 假如不告诉你 , 你怎么处理?
(1) 一般都是我们测试人员在测试过程自己造的测试数据 , 如果大量数据 , 我们可以用到存储过程。
(2) 也可以让运维人员帮忙从生产环境导出相关的测试数据 , 如果测试数据中涉及安全性的数据 ,
直接是不能导出。
3.20 如何测试万分之一概率问题
1) 用 Jmeter 或者其他自动化测试工具造大量数据
2) 让开发修改概率的比例
3.21 为什么要写测试用例?
1)提高测试效率
2)提高测试覆盖率 3)监控测试进度情况
4)也是质量的标准指标
CMM 质量体系(用例数也是一个度量标准 QA 岗位)
3.22 那你们测试用例是怎么编写的
原来我们主要是用 exce 编写的 , 当然也用过用禅道 , testlink 去编写 , 禅道都是 excel 表格编写
完成 , 导入禅道系统 , testlink 也可以 Exce 表格 , 编写 , 编写测试 , 导入 testlink
3.23 有没有写过测试报告 , 具体包括哪些内容?
参考答案 1:
1)项目背景和目的 2)测试用例设计
3)测试环境
4)测试过程用到的工具
5)测试范围
6)测试用例执行情况
7)测试缺陷分析和总结
8)测试结果
参考答案 2:
这个是写过的 , 测试报告 , 其实就是把我们测试的整个过程情况 , 数据统计 , 做成报告 , 包括用例执
行情况 , 测试了哪些模块 , 多少用例 , 会哪里模块 , 自动化通过率 , 自动化跑了多少 , 是否全部通过 ,
发现了多少 bug,bug 的情况 , 是否遗漏 bug, 测试结论等等这些 , 基本就这些。
3.24 测试报告中测试的结论是什么?
测试报告里面有个测试结论 :
1)bug 的情况、bug 级别、bug 分布情况(分布哪些模块)、
bug 产生原因(设计问题 , 需求问题 , 代码问题)
2) 测试是否通过
3.25 如何写好一个测试用例
能够发现 bug 的用例就是一个好的测试用例
当然我们在编写测试用例的时候 , 一定要步骤、场景清晰、尽量去覆盖所有的测试场景
3.26 什么是冒烟测试? 在什么时候进行冒烟测试?
冒烟测试一般我们是在系统测试之前 , 对所有主体的业务功能 , 测试看是否存在严重 bug,
如果存在严重 bug, 表示 , 冒烟测试不通过
3.27 回归测试策略
1) 功能的回归
优先测试用例级别比较高的功能模块 , 可以进行自动化测试
如果时间够 , 进行全量测试
2)bug 回归
复测这个 bug, 并且相关联的模块与功能也会测试一遍 , 以免由于修改 bug 导致其他问题产生
3.28 和开发沟通。是怎么沟通的
一般我在提 bug 的时候跟开发沟通最多 , 比如有一些不清晰的内容会去问开发 , 还有提完 bug 后会跟
踪 bug 的进度 , 提醒开发尽快修复 bug, 还有测接口的时候去找开发拿接口文档 , 其实我们的工作跟
开发都是息息相关的所以都经常都会有沟通的。
3.29 测试中有哪些风险
1) 测试 , 需求理解上面有偏差
2) 测试人员水平不够 , 测试人员覆盖点不全
3) 测试人员时间不够 , 导致测试不完全
4)测试环境上面不足 , 导致测试点不能完全测试完成
3.30 怎么保证测试质量或者你怎么保证你 100% 覆盖了需求
把需求了解通透 , 引用用例评审机制 , 然后编写测试用例的时候用边界值 , 用等价类补充一些用例 ,
根据过往经验用错误推断法来追加一些用例 , 如果存在组合情况的话我会用因果图或者判断表来编写 ,
如果业务场景清晰的情况下我会用流程分析法 , 如果状态有发生改变的话我就会用状态迁移法。编写
用例一个极其考验耐心的事情 , 要考虑到各种场景 , 全面覆盖到会出现的场景。
3.31 一个需求 ,7 天要上线 , 你怎么做 ?
先跟面试官确定 , 产品什么是转测 ;
1) 如果转测时间 , 在最近 1-2 天 , 直接了解需求开始测试。
用例 ,2 天执行试用例与理交 bug, 最后一天半进行回归测试与编写测试报告。
3) 如果 4-5 天后进行转测试 , 边开发边测试 , 一天半时间了解需求 , 一天写测试点和写测试用例 ,
一天进行评审和修改测试用例 , 开始执行测试 , 开发一部分 , 我们就测试一部分。
3.32 产品上线评判的标准?
1) 测试用例执行率 100%, 通过率 95%
2)1-2 级 bug 修复率达到 100%,3-4 级 bug 修复率达到 95%
3.33 测试过程中 , 发现很多用例重复的 , 有的人认为没必要再测 , 你怎么看?
如果是同一个模块 , 重复用例 , 我们可以考虑不再进行重复测试 , 如果不同模块 , 引用相同的测试用
例 , 我们还是需要重复测试
3.34 上线后有没有另外的测试用例在生产环境里测试
有 : 我们会去单独去编写测试用例 , 只是主体流程用例 , 新增功能的用例
没有 : 我们会挑选原来测试用例中 , 级别比较高的用例去执行 , 或者我们建立一个 checklist 列表 ,
去检查功能是否正常使用。
3.35 什么是多分支开发和单分支开发?
git 工具相当于 svn 工具 , 分支开发每个版本或者模块 , 开发不同模块 , 分支合并 , 把所有的功能全
部整合起来 , 其实就划分功能模块去开发
3.36 兼容性测试你们是怎么测的? app 与 web
Web:
不同的浏览器 ,E, 谷歌 , 火狐 , 浏览器显示比例 , 浏览器前进 , 后退 , 刷新按钮。
App:
不同手机厂商 , 型号 , 系统版本 , 内存大小 , 分辨率 , 屏幕的大小 , 高端机与低端机 , 考虑平板
3.37 功能测试重复测试比较高 , 怎么看待这个问题?
1) 对于测试来说 , 还是良好耐心 , 问题无法避免事情 , 重复的事情还是要去执行
2) 重复事情 , 我们用自动化测试来进行替代
3.38 项目同时发布 , 你怎么处理?
1) 确定下 , 我们几个项目是否可以同步发布完成
2) 如果确定项目不是同时发布(时间问题 , 人员问题)
确定下项目的优先级 , 跟客户这边商量优先级低一些项目推迟发布(产品跟客户
3.39 你们开发转测试怎么转的
1) 开发人员发邮件告知对应的测试人员 : 新的代码地址、最新的 sql 文件、需求开发完成的情况。
2) 测试人员把最新的代码和 sql 脚本更新到测试环境中 , 并进行冒烟测试 ,
要是冒烟测试不通过则转测失败。
3.40 你们的开发语言是什么 ?
java 后台开发 :
SSM spring + springy + mybaits( 数据的封装 )
SSH sprint + springmvc + hibernate
springboot
fianl 极速开发框架
maven 项目 pom.xml 文件 … 中央仓库
python 后台开发框架
Django flask
前端开发语言 :
JavaScript + css+ html
bootstrap 框架
常用库 : jquery 简称 JQ Es6/E57
php ThinkPHP 框架
四、项目
4.1 简单介绍下最近做过的项目
根据自己的项目整理完成 , 要点 :
1) 项目背景、业务、需求、核心业务的流程
是否有做 App 端 , 是否有 H5 是否开发小程序等等。
3) 项目前端有哪些功能模块 , 后台有哪些功能模块 ?
4.2 拿一个你所负责的模块 , 讲下具体怎么测的?
根据自己的项目整理完成 , 核心要点 :
1) 拿一个你负责过的模块 , 核心业务模块讲解
2) 业务流程是怎样的 , 需求怎么样 , 有什么规则没 , 规则简单介绍
3) 你是如何分析的 , 讲明分析思路 , 测试点 , 主要怎么考虑测试的 , 主要核心测试重点在哪里 ,
用了什么测试方法等等
4.3 你在这个项目里面主要做了些什么工作 ?
参与用例的评审 , 执行测试。
2) 协助开发定位问题解决发现的 bug, 编写测试报告 , 协助上线。
3) 另外就是做了 APP 的一些相关项测试 , 像兼容性测试、稳定性测试、安装卸载版本覆盖测试和 app
性能都是有做过的 , 例外后期有做过接口自动化等。主要就是做了这些工作。
[这个具体根据你自己的简历上写的来说]
4.4 你们项目组有多少人、开发多少个、测试多少个?
[公司具体人数 , 可以不太清楚 , 项目组多少一定清楚]
[这个一定要根据自己的简历项目大小来说 , 不能乱说]
产品 1、项目 1 个、架构师 1 个、前端 3 个、后端 5 个、ios1 个、Android 1 个、
测试 3 个(测试主管 , 核心测试人员)、运维 1 个、UI 一个
4.5 测试人员怎么分工的?
1) 我们测试组 3 人 ,1 个测试组长 ,2 个测试 , 一般都是根据需求的复杂程度大小来 ,
尽量是自己熟悉哪个版块的就继续做那个版块。
2) 比如 : 我这边主要是负责前端大部分的功能模块 , 还有接口测试跟 ui 自动化测试 , 另一个同事主
要是功能测试这边 , 组长这边也负责一些功能测试 , 包括一些性能跟安全测试。
3) 其实测试工作也划分的没有那么细 , 后期我们也会做交叉测试 , 相互测试功能 , 性能跟安全测试
我也会参与一下
4.6 项目的送代周期? 多久一选代? 一个版本你们发现多少 bug
[切记工具自己所选择的项目来回答]
我们公司是这样的 , 迭代还是蛮快的 , 一般是两个星期一个迭代 , 迭代测试两轮。Bug 的话不一定哦 ,
关键还得看开发 , 哈哈 , 开发的版本质量好的话 ,BUG 就会少些 , 整个版本比较好的情况下大概也就
二十来个 BUG, 当然如果遇到开发是个新手 , 那么找到 60-70 个也是很常见的 , 比如之前的那个金融
项目 , 足足发现了 72 个 BUG, 这样的情况下追踪 BUG 的工作量都比较的大 , 如果是版本选代的话 ,
那么基本就不会出现多少 BUG 了。
参考答案 2
因为我们项目的用户活动和三方合作平台比较多 , 一般半个月或者 1 个月肯定会有一个迭代版本 ,
假如用户或者合作方突然有很紧急的需求 , 那一般老大他们会向上发邮件和 OA 呈批给(产品经理 , 项
目经理), 如果通过了就会马上加急处理这个需求 , 测试完成直接上线。
现在都是维护为主 , 但新需求也不断有 , 一般一个版本上百个 bug 是有的。
4.7 你们整个项目写了多少用例 , 你负责的模块大概写了多少用例?
[切记己根据自己的项目及负责的模块来]
答 : 这个得根据项目的复杂程度 , 我们最近做的这个也还好 , 整个项目写了大概 2 干 3 百多条(有
点多了), 我负责的模块就写了一千多条(你要思考 , 你负责了哪些模块 , 大概评估下 , 不要乱喊)。
总结注意点 : 没有标准答案 , 先说你的前置条件 , 再说数据 , 只要你前置条件和数据匹配即可。
4.8 最近的版本写了多少用例?
(总结注意点 : 没有标准答案 , 先说你的前置条件 , 再说数据 , 只要你前置条件和数据匹配即可
特别注意 : 你如果是半个月的版本 , 一般给你两天写用例 , 你自己评估下写多少。
半个月的版本 :1-2 天需求分析 ,1-2 天写用例 ,1 天评审用例 , 其余的时间就是执行回归 bug, 编写
测试报告)
最近的版本因为没有特别的用户活动 , 产品那边也没有给特别大的改动需求 , 我负责的
有 5 个模块吧 , 大概有 180 多条用例
4.9 你的需求分析一般几天 , 用例大概写了多长时间? 执行了多长时间?
如果按照 2 周一个版本来算的话 , 我们需求分析一般是由产品 SE 先组织我们开会 , 讲清新版本需求 ,
然后我们再花 1 天到 1 天半时间去详细分析需求 , 另外有 2 天左右时间来写用例 , 写完用例会进行用
例评审 , 后面的时间基本就是在执行用例 , 提 bug, 并跟进 bug 修复问题。
4.10 在 uat 测试的时候 , 突然客户临时要大量的数据
备注说明 :uat: 测试人员提供用例 ,uat 环境已搭建好 , 他就开始来执行 , 如果发现问题 ,
需要协助 , 谁负责这个需求 , 就找对应的人 , 发现 bug, 提交到 uat 版本里面 , 修复完了 ,
客户需要回归验证的 , 我们公司只是辅助他去执行测试。
答案 :
看他需要的数据能不能从上个版本 , 或者生产环境导入数据进来测试 , 如果没有 , 我们看能不能
批量修改数据去测试 , 如果不行 , 我们只能通过存储过程造数据了。
4.11 发现哪些映像比较深刻 bug/ 经典 bug?
根据自己的项目来准备 , 核心要点 :
1) 有哪些经典或者说影响比较深刻的 Bug, 最好是与业务相关的 Bug, 不要举例说前端的 Bug
2) 具体怎么分析 , 讲明你的分析过程。如何定位的 ……
比如: 业务逻辑漏洞 ;
支付功能:
1) 商品选择支付的时候 , 实际已扣款成功 , 但是用户后台显示该商品没有付款 ,
导致不能使用该商品提供的服务。
2) 商品所显示的价格是 x 元 , 但是实际支付的时候显示和扣款的价格是 y 元(x≠y)
找密码流程 :
按照常规操作 , 会直接跳跃了某个必须的流程(流程缺失), 但是通过 url 修改参数又可以访问到
该流程 , 存在安全和逻辑漏洞。
安全漏洞 :
1) 登录账户 : 退出 or 注销之后 , 浏览器返回键回退之后又可以回到已登录的页面继续操作 , 识
别用户身份的信息并没有失效 , 用登录后才能访问的 url 直接访问也可以登录 , 安全漏洞。
2) 搜索功能 : 前端页面的搜索输入框中输入特殊敏感符号
(如 script> alert(document.cookie)</script), 直接搜索后有可能把当前登录账户的
cookie 信息直接以弹框的形式暴露出来。
3) 新增功能 : 一开始没有限制字符的类型和数量 , 当输入特殊符号、超长的字符 ,
提交后直接抛出包含有 INSERT INTO 的完整 SQL 语句。
4) 前端搜索 : 以敏感字符直接搜索后 , 客户端和服务端都没有任何字符过滤 or 转义处理 ,
直接把数据库和网站服务器的名称、版本暴露。
数据调用 / 加载异常:
1) 翻页功能 : 有时候会出现前面几页翻页和数据显示都是正常的 , 往后再翻页就会
出现翻页不了 or 加载的数据异常。
三级有可能被折叠而没有显示在浏览器显示。
3) 定位到某个导航主题 , 调用的数据并不是该主题分类的数据 , 而是调用成了其他分类的数据。
不可逆操作 , 导致流程受阻 :
1)APP 测试 ,orH5 页面测试 , 触发某个操作 , 比如手机触屏下滑刷新页面 , 不能恢复到操作前
的正常页面。
2) 输入某个异常值提交之后 , 程序没有相关的处理机制 , 导致页面保存 , 没法继续进行其他操
3) 登录方式切换 : 登录时有几种不同的方式 , 如 : 密码登录 & 短信验证码登录 , 但同一时刻默认
只能显示一种登录方式 , 当从密码登录界面点击短信登录切换到短信验证码登录界面之后 ,
没有切换返回密码登录界面的功能。
4) 删除异常 : 正常情况下可以从列表中删除记录 , 但是若先对列表记录执行了搜索功能之后 ,
再次删除的时候可能出现删除无响应而删除不了数据。
5) 弹框阻止 : 当触发某个操作 , 如“保存”、提交”or 某个开关按钮 , 界面中弹单出一个提示框 ,
此提示框不管怎么操作都无法关闭 , 直接阻碍了页面上其他功能的操作。
附件上传时 , 未控制格式尺寸和容量大小 , 系统处理出现异常 :
1) 文件上传功能 : 没有限制上传的文件格式、尺寸和大小 , 当上传非常规文件(如 js 文件)、大
容量文件(如 : 图片大小 >20M), 较大分辨率(如 :1600×1200), 服务器没有相应的异常处理
机制 , 导致网站出现持续长时间的卡顿 , 影响后续操作。
2) 上传的是非常规的文件 , 如 js 格式文件 , 程序无相关控制 , 直接将 js 文件上传到数据库 ,
前端页面访问时若不能解析则出现异常页面。
缺少非空判断 , 服务器报 500 错误 :
1) 编辑包含多个字段的页面时 , 有一些字段在程序中控制是必填的(事先未知), 但是没有任何
说明提示 , 当不填写这些字段 , 直接保存时会出现服务器异常页面 , 报 500 状态错误。(特别
是在管理后台容易出现此场景)
2) 在形如以下结构的 if 函数中 , 关系表达式的条件没有对某个变量(该变量因代码疏漏未作初
始化赋值)进行非空判断 , 就直接执行语句体 , 程序已空值 null 进行参与运算而出现异常 ,
如 500 错误 if(关系表达式)样式导致异常。
3) 某个功能 (如 : 金额输入和统计) 在 A 页面程序限制只能输入正整数 , 而在 B 页面却没有相应
控制 , 若不小心在 B 页面输入了非正整数 , 比方小数 ,A 和 B 的数据分别传递到到同一个 C
页面时数据处理会出现异常。
4) 文章上传 / 图片上传 : 超长字符的文章内容 or 较大尺寸的图片上传 , 程序没有进行相关的压
缩和截取 , 直接完全调取到前端页面 , 导致浏览样式异常 ,
[经典 bug: 前端申请借款中 , 用户没有信用额度或者借款金额超过了用户信用额度但是却能成功提
交审核]
[发现途径 : 我是在模拟借款人 , 借款金额提示我的可用额度为 0, 但是我输入 5000 的借款金额点击
提交审核提示我提交成功 , 等待审核]
[解决 : 首先我去数据库查找到对应的表 , 比对我的信用额度跟界面显示的数据是否一样 , 一样我就
把数据库的记录 , 填写的借款信息和我借款成功的界面显示截图都保存好。之后提交这个 bug, 开发
人员通过修改代码 , 我再复测 , 有没有重现 bug]
[还有一个就是在借款流程中 , 我们通过修改数据库中的数据 , 把借款时间修改了 , 制造出一个逾期
未还款的数据 , 结果显示还款的金额比借款金额还少 , 而且管理要收得特别高 , 存在不合理性]
[还有一个是在产品上线后 , 运维人员在统计数据时发现少了一条数据 , 我们去数据库检查发现 0 分
0 秒的数据没有统计 , 后来开发人员修改了代码之后就解决了]
1) 服务费计算错误 , 计算公式开发这边写错 , 本来是利息 0.3, 写成 003, 开发修复 bug。
2) 退出用户 , 后退还可以进入到原来的登录完成操作后的界面 , 原始 , 退出用户 , 没有删除用
户对应的 session, 导致后退完成后 , 用户用户 cookie 可以进行操作。
3) 重新选择下拉框 , 输入信息全部清空 , 原因 , 修改类型 , 重新刷新界面 , 输入数据 , 并没有
保存缓存里面 , 导致一刷新 , 原来信息没有 , 解决 , 开发选择不同借款类型 , 不再进行刷新。
4) 借款标题 , 输入 xss 攻击代码 , 导致接口所有的数据不存在显示 , 因为 xss 脚本 , 当然代码
处理 , 开发这边进行转义字符串。
5) 谷歌浏览器登录不成功 , 显示验证码。
原文链接:https://blog.csdn.net/qq_73332379/article/details/128975698