面经-测试
-
怎么判断是前端bug还是后端bug
前端:1.界面问题(排版错乱),2.响应内容正确,显示内容错误。3.浏览器兼容问题
后端:接口功能缺失,接口返回数据不准确,安全问题和性能问题。
-
什么是单元测试
软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
-
测试框架有哪些?
Junit(Java的单元测试),testNG(类似Junit,比Junit更强大),pytest(UI自动化,API自动化,单元测试),selenium(web自动化,UI自动化),Appinum(移动端UI自动化测试)
-
接口测试测试哪些方面
正确性测试,
可靠性测试(在特定条件下,长期正常的工作(高流量,断网),
功能测试(预期的返回格式,合理的方式处理不合理的请求),
性能测试(响应时间,吞吐量,磁盘使用情况)
安全性测试(漏洞,sql注入,有效保护用户数据)
兼容测试
压力测试
鉴权(鉴定哪些人可以访问接口的权限)
-
app的专项测试
兼容测试(系统,品牌,分辨率,网络,应用软件)
干扰测试(运行app时接电话)
安装,卸载,升级测试
推送测试(将数据主动推送到手机)
性能测试(cpu,内存,流畅度,流量,电量)
功能测试
-
测试流程
需求分析,测试计划,测试用例设计,用例执行,缺陷管理,测试报告
-
web和app最大的区别
交互操作
使用场景(电脑多在室内)
网络环境
推送数据
-
如何提高测试效率
解决方案:
制定测试策略:越重要的问题早发现早解决
根据不同的项目阶段,采取不同的策略:研发初期,关心功能能否跑通,研发中期:逻辑功能细节,研发后期,弱网,兼容性等
持续优化,写完后回顾,总是能发现一些新的问题
-
怎么保证项目质量
- 弄清楚产品要求的质量是什么,制定测试计划,采用合适的测试策略,
- 测试左移:尽早发现问题。进行一些探索性测试
- 有效的缺陷报告
- 用户验收测试
- 优化自动化测试,cicd(持续集成,持续交付)
测试只是一个支持者,帮助开发和产品找到提高项目质量的方法。
测试左移,着重于问题的预防而不是解决
-
怎么保证不漏测
- 吃透业务需求
- 提高用例质量
- 做好用例评审
- 交叉测试
- 有效回归测试
- 做好侧漏复盘
-
一般有几轮测试
三轮
第一轮,将所有功能全过一遍(所有测试用例)
第二轮,开发修复后,将功能过一遍,同时验证上一轮修复的缺陷。
第三轮,回归测试,p0测试用例过一遍
-
你常用的测试方法有哪些
需要大量数据测试却没办法穷举时,采用等价类划分,会根据需求中的类型,规则进行等价类划分
对于长度 采用边界值法
对于多条件,采用判定表法(多条件☞同时满足A,B会发生C)
对于时间充足,用例执行完,采用错误推断,猜测可能会出现的问题
根据业务流程,采用场景法。
-
测试用例用什么写的
飞书文档
-
fildder
抓包,弱网,打断点修改数据
-
在fidddler如何篡改返回值
-
Jmeter主要做什么
-
有用Jmeter做过压测吗
-
代码管理工具
gitlab
-
bug管理工具
jira
-
缓存雪崩怎么测
对多个使用到的缓存的接口进行并发调用,并且设置这些缓存已经过期(也就是删除缓存),调用这些接口查询缓存时无数据,此时去查询数据库,数据库的压力增大,耗时增加。
-
缓存怎么测
-
评估业务场景 是否 真的需要 使用 缓存;
-
评估 Redis 与 DB 数据短暂 不一致 对业务的影响。
-
确认缓存过期策略
-
确认缓存淘汰策略
-
缓存时间设置是否合理
功能验证
- 缓存增加,删,改,
- 缓存读取:db中存在,缓存中没有。缓存中有,DB没有。都不存在,都存在
- 过期:
- 缓存穿透:不断查询数据库中没有的数据
- 缓存雪崩:对多个使用到的缓存的接口进行并发调用,并且设置这些缓存已经过期(也就是删除缓存),调用这些接口查询缓存时无数据,此时去查询数据库,数据库的压力增大,耗时增加。
- 缓存击穿:没有在缓存中的数据,第一次大规模访问
- 缓存上限
- 缓存停服
-
-
接口文档同步哪些东西
接口描述,url,请求方式,请求参数(是否必填),请求头,请求示例,返回参数,返回示例
-
测试中遇到哪些难点,技术or业务?
-
版本质量评估,怎么保证他的质量
-
为什么进行接口测试