一、测试基础 & 流程(必问)
- 你完整的测试流程是什么?
- 需求评审->测试计划->测试用例编写->用例评审->冒烟测试->功能测试->回归测试->编写测试报告
- 需求评审时,你主要关注哪些内容?
- 需求内容是否清晰、可落地、可测试
- 业务逻辑是否能形成闭环,有无矛盾
- 需求功能是否对之前功能产生影响
- 数据流向、多系统交互、风险点
- 你怎么判断一个版本可以上线?(准出标准)
- 本次迭代功能是否全部验证通过
- 阻塞/严重缺陷是否修复并验证通过
- 主链路用例是否全部通过
- PO/P1级别用例是否全部回归通过
- 产品、开发、测试三方评审确认
- 测试报告输出,完成业务闭环
- 你用过哪些缺陷管理工具?一个好的缺陷报告包含什么?
- dima、禅道
- 一个好的缺陷包含【标题、环境信息、复现步骤、缺陷截图、严重级别、优先级、预期结果、实际结果】
- 标题必须要包含系统模块+问题描述
- 你如何推动开发快速修复 Bug?遇到不认可的 Bug 怎么处理?
- 确定bug的严重级别和优先级,确定好后指定对应开发,如果是阻塞性bug则直接联系开发优先修复
- 对于不认可的bug,首先确认bug能否稳定复现,其次以需求、原型为依据后评估影响面,最后产品、开发、测试进行确认后,记录结论推动闭环
二、业务测试能力(JD 核心 1、2、4)
- 你独立负责过哪些复杂业务模块?
- 独立负责过密算平台从数据资源创建到数据接入,再进行数据数据脱敏后进行上架该数据资源。创建项目并申请该数据资源后,在该项目中使用该数据进行执行机器学习、在线服务、离线服务、数据分析及推理服务
- 你如何做测试方案与风险评估?
- 梳理业务流程、数据流向、系依赖
- 指定测试范围、策略、重点、准入准出
- 识别业务风险、链路风险、数据风险、兼容性风险及性能风险
- 输出测试方案、风险清单、规避措施
- 你通常识别哪些测试风险(业务风险、数据风险、链路风险)?举例说明。
- 业务风险、链路风险、数据风险以及兼容性风险
- 在需求下来之后,确认是否会影响到其他功能和主链路
- 系统联调阶段,你怎么开展测试?
- 进行需求分析和测试用例编写,编写完成后进行小组内和团队评审,评审通过后提供冒烟用例给开发
- 线上出问题,你的处理步骤是什么?如何做根因分析?
- 快速响应,确认影响范围
- 及时止损,优先恢复业务
- 复现问题,收集问题日志
- 定位问题,并紧急修复
- 发布线上,上线并观察
- 根本原因复盘
- 你怎么做复盘?如何推动改进避免再次发生?
- 首先确认问题全貌和根本原因,其次完善用例避免再次出现类似问题,最后推动落地并跟踪闭环
三、用例设计能力(JD 核心 3)
- 你常用的用例设计方法有哪些?
- 等价类、边界值、场景法、错误推断法、因果图
- 如何保证用例覆盖核心流程、异常、边界?
- 核心流程正向链路
- 边界值:长度、状态、数值、权限
- 异常:空值、非法数字、重复提交、反向链路
- 用例确认迭代功能覆盖率,回归用例覆盖全部场景
- 你如何维护用例,保证用例不过期、可复用?
- 定期维护,与自动化用例管理,把高可用用例放在公共用例库,并定期清理无用用例
四、工具能力(任职要求 3)
- 你常用抓包工具有哪些?什么场景下抓包?
- fiddle,接口调用以及前后端交互
- 接口调试你用过哪些工具?(Postman/JMeter/ApiPost 等)
- postMan、JMeter
- 接口返回 200 但数据错误,你怎么排查?
- url、请求头、请求参数,其次根据traceId去日志中查找问题
- 你怎么验证接口数据与数据库一致性?
- 请求参数值和数据库存贮的值是否一致
- 你用过哪些日志排查工具?如何快速定位问题?
- 服务器日志,根据traceId去日志中快速定位问题
五、自动化测试(任职要求 6)
- 你做过接口自动化还是 UI 自动化?
- 做过接口自动化和UI自动化
- 用过哪些框架?(Pytest/TestNG/Playwright/Appium 等)
- 接口自动化是使用的springBoot+testNG
- 你的自动化框架结构是什么?
- springBoot+testNG
- 你如何通过自动化提升测试效率?带来了什么提升?
- 从测试用例里面挑选适合接口自动化的用例进行提供回归测试成本,通过自动化提高了三倍的回归测试时间
六、性能 / 稳定性 / 安全 / 容灾(任职要求 7)
-
你做过性能测试吗?测哪些指标?(TPS/RT/CPU/ 内存)
- 做过接口测试,主要测试TPS(事务数)、QPS(每秒请求数)、CPU、成功率、以及在压测过程中去访问系统,看下系统页面响应时间是否在2S内
-
稳定性测试你怎么做?(7×24、内存泄漏、Crash、ANR)
- 查看系统承受的稳定压力,持续长时间运行的情况下,监控QPS、CPU、内存、成功数,系统中是否存在内存泄漏、性能衰减、服务宕机等问题,确保在长时间运行稳定可靠
-
你做过容灾演练吗?比如服务降级、熔断、重启、切换
-
安全测试你关注哪些点?(越权、注入、XSS、敏感信息等)
七、高并发 / 支付交易 / 多系统集成(加分项 1、2、3)
- 你测过支付、交易、资金、订单、对账吗?资金链路怎么保证正确?
- 保证幂等、保证事务一致、防重防超支、全链路流水、最终对账兜底
- 从请求、交易、支付、资金到日终对账,形成闭环校验
- 你参与过多系统、多链路、多数据源的集成测试吗?如何保证质量?
- 梳理全链路、覆盖全场景、保证数据一致性、构造完整数据、覆盖异常场景等
- 从功能、异常、数据、正向链路、反向链路等多维度保证整体质量
八、软技能
- 你如何与产品、开发、运维沟通?
- 跟产品确认需求、边界等场景,跟开发沟通主要是讲现象、讲证据一起定位根本原因
- 项目紧急、需求变更频繁时你怎么保证质量?
- 抓重点、控风险、提效率的思路保证质量,按照用例优先级进行测试。
- 先做优先级控制,聚焦核心流程与高风险场景,严控需求变更范围,如果有风险则及时暴露风险,与团队共同决策,在有限的时间保证线上最关键的质量底线
- 你遇到最大的测试困难是什么?怎么解决的?
- 需求变更导致时间紧张,回归压力大、容易漏测,解决方案先抓核心流程、提前参与需求评审,建立轻量化回归用例、加强团队沟通,最终保证了版本质量和上线稳定
- 如果你发现线上问题怎么解决
- 发现线上问题先止损恢复服务,再通过日志和监控快速定位,最小化修复并灰度验证,最后复盘优化避免再次发生
九、项目深挖(100% 必问)
-
介绍一个你最复杂的项目,你负责什么?
-
你在项目中发现过最有价值的 Bug 是什么?
- 说明在项目中发现潜在的线上问题
-
你做过哪些提升质量或提升效率的事情?
-
你沉淀过哪些测试资产?(用例、脚本、文档、工具)
-
你为什么适合我们这个业务系统测试岗位?