面试(四)
一、风险把控
对内:
1、做好测试计划,把控测试范围和每个测试节点的dateline
2、需求的理解,这个需要多沟通
3、测试用例设计覆盖度,这个需要对需求的理解以及设计用例的经验,需要有需求评审兜底
4、缺陷未被解决的风险,临近上线时不应该有缺陷
5、回归测试的风险,及早确认回归范围,预留足够的回归时间。
6、做好发布评审,检查注意事项
对外:
1、联调方有依赖,及时关注联调方的进度
二、覆盖率统计(非代码覆盖率)
项目需要配置swagger,自动化项目可以通过调用swagger的接口获取到项目接口总数以及单个接口详情。
之后可以进行统计覆盖率以及已覆盖的接口和未覆盖的接口。
三、测试方案和测试计划
1、测试方案:
产品、测试、研发、运营负责人
需求文档、研发设计文档
测试项 | 是否需要 | 详细描述 |
新业务测试 | ||
老业务回归 | ||
慢sql检查 | ||
前端兼容(不同操作系统平台、同一操作系统的不同版本) | ||
老版本兼容(指同时存在多个上线的版本) | ||
老数据新版本(前端、服务端)兼容 | ||
缓存相关测试 | ||
性能测试(前端渲染、服务端接口) | ||
接口自动化测试 | ||
弱网测试 | ||
安全测试 | ||
权限测试 | ||
其他团队配合 |
2、测试计划
在研发设计评审后制定,明确每个测试节点的测试时间,一般研发测试工时比为团队中的研发测试比
任务点 | 工时 | 日期 | 负责人 | 备注 |
需求梳理 | ||||
用例编写(含用例评审) | ||||
冒烟测试 | ||||
功能测试 | ||||
bugfix | ||||
回归测试(含uat) | ||||
发布和线上验证 |
三、接口测试除了正常的功能测试,还需要注意哪些
1、性能测试
2、安全测试(访问权限以及访问权限等级)
3、异常测试(三方接口挂了、中间件挂了,报错信息不应该暴露)
四、中间件怎么测试(一般主要是性能、高可用的测试用例,中间件的目的也是为了性能和高可用)
1、高速缓存——redis
redis缓存击穿
当 Redis 某个热key过期或者因为某些异常原因导致于无法从缓存中获取,导致大量的并发访问数据库而崩溃
举个例子,比如双十一活动中,大量用户同时会查询首页的某个广告服务,正常查询流程中,我们的服务会直接在缓存中进行查询,查到了之后,返回给用户。
但是假设在这个过程中,这个广告服务的 key 过期,即这个缓存失效了,那么就会有大量的并发请求直接打到数据库中,导致数据库崩溃。
测试方法:
1、获取热key;
2、删除热key;
3、高并发,查看研发是否有对应的容错机制来保障服务正常运行
redis缓存穿透
用户不断发起请求缓存和数据库中都没有的数据
测试方法:
1、不停访问对应服务的接口,传递一个不存在的数据的查询请求。
2、查看研发是否有对应的容错机制,从而能保证不会有大量的请求打在数据库上
2、流量削峰——消息中间件kafka、robotmq等
Q1、MQ是否能保证消息不重复?
不推荐使用msgid来做去重,因为msgid在绝大部分情况下,是不会重复,不排除极端情况可能会出现重复,或者多个集群之间出现重复msgid
可以使用订单编号等唯一的作为唯一标识来去重。
Q2、MQ未被消费、消息发送了,但是没有收到怎么查询?
MQ提供了多种消息查询方式:
时间范围
MessageID
MessageKey
Q3、MQ消费失败如何重新消费消息?
1、走重试流程,默认重试16次(重试次数可以自定义),如果重试16次后,仍然失败,则消息丢弃;
2、消息重试间隔可以通过context控制,如果不控制,会越来越长。
Q4:MQ消费失败、容器环境消息消费失败怎么排查?
1、检查订阅关系是否正确,topic是否正确;
2、检查消费组状态是否正常;
sh[用户名]consumerConnection-n127.0.0.1:9876-g消费组名
sh[用户名]consumerProgress-n127.0.0.1:9876-g消费组名
3、检查生产者机器和消费者机器的地址解析是否为容器组mq地址;在docker管理平台,模板配置中进行配置及查看;
4、检查消费者服务器是否配置了外网地址,导致消息发送到基准环境;
5、确认生产者已生产消息。
Q5:简单的日志查询
通过MQ服务器上log日志,查询put及pull的记录。
Q6:MQ消费先于同步返回
一般采用加锁机制处理。
全文检索——es 倒排索引
五、面试管理岗位
提效
1、完善开发测试流程,(需求评审、设计评审、用例评审、冒烟测试、功能测试、回归测试、uat、发布评审、发布验证)
2、制定测试计划,合理安排测试资源
3、引入测试工具和脚本
4、备份
沟通
1、性格
评估
1、工作态度和工作质量
2、完成的需求数量和质量
3、部门kpi完成情况