测试工程师面试题 + 简短答案
一、基础与方法论
-
Q:等价类与边界值怎么用?
A:先按有效/无效划分等价类,再围绕最小/最大、刚好内外各取一值设计边界用例。 -
Q:判定表与状态迁移适用场景?
A:多条件组合用判定表;有状态/流程(登录→下单→支付)用状态迁移图。 -
Q:探索式测试要输出什么?
A:测试笔记(目标/时间盒/路径/发现/证据),可复现的缺陷与改进建议。 -
Q:何时停止测试?
A:风险可接受、关键场景通过、缺陷到达收敛(修复率>发现率)、里程碑度量达标。 -
Q:严重度 vs 优先级?
A:严重度描述影响程度;优先级描述修复紧急度,由业务/发布时间线决定。 -
Q:黑盒与白盒差异?
A:黑盒看输入输出;白盒基于代码结构(分支/条件/路径覆盖)。 -
Q:回归测试怎么做得高效?
A:维护“回归清单”,用风险/变更影响面挑选+自动化覆盖高频路径。 -
Q:什么是冒烟测试?
A:验证关键功能是否可用/是否值得继续深入测试的快速检查。 -
Q:如何提高缺陷报告质量?
A:最小复现步骤、实际vs期望、环境/版本、日志与截图、影响评估与建议优先级。 -
Q:测试左移/右移分别指?
A:左移:需求/设计阶段提前介入;右移:线上监控与实验验证(A/B、可观测性)。
二、用例设计实战
-
Q:手机号输入如何设计用例?
A:长度边界、非法字符、国家码、前导零、空值、极限值与批量导入场景。 -
Q:优惠券“满100-20”判定表要素?
A:条件:是否满足门槛、是否过期、是否叠加;动作:可用/金额/提示。 -
Q:登录节流与锁定怎么测?
A:失败计数阈值、冷却时间、不同用户/IP、并发与绕过(重置密码、二次验证)。 -
Q:文件上传怎么测健壮性?
A:大小上/下界、类型白名单、恶意扩展名、断点续传、中断重试、病毒/脚本。 -
Q:国际化/I18N关键点?
A:时区/日期/货币/小数点、RTL、长文本截断、未翻译回退策略。 -
Q:可访问性一个快速检查点?
A:键盘可达与焦点可见;ARIA 标签正确;对比度合规。
三、缺陷与度量
-
Q:什么是DRE(缺陷清除效率)?
A:DRE=测试阶段发现缺陷/(测试阶段发现+上线后逃逸缺陷)。 -
Q:覆盖率怎么看?
A:单元/分支/条件/变异覆盖共同评估;数值高不等于风险低,关注关键路径。 -
Q:逃逸缺陷怎么追根?
A:5 Whys+鱼骨图,定位到需求/设计/代码/测试/流程哪一环的问题并改进。 -
Q:如何定义高质量测试计划?
A:范围、方法、环境与数据、进度与里程碑、风险与缓解、入口/退出标准。
四、自动化测试
-
Q:测试金字塔的含义?
A:多写单元与API测试,少量稳定的UI自动化;越底层越快越稳。 -
Q:UI 自动化为什么不稳定?
A:定位不稳/等待策略差/测试数据耦合;应用显式等待、数据隔离、稳定选择器。 -
Q:什么是契约测试?
A:生产者/消费者就接口约定进行校验(如 Pact),防止接口回归。 -
Q:如何选择UI自动化框架?
A:优先 Playwright/Cypress(稳定、并发、调试好),Selenium 适合多语言生态。 -
Q:数据驱动与关键字驱动差异?
A:数据驱动用例与数据分离;关键字驱动封装可复用动作序列。 -
Q:怎么把自动化接入CI?
A:流水线阶段化执行(单元→API→UI 冒烟)、并发分片、失败快照与报告归档。 -
Q:Mock与Stub区别?
A:Stub 返回固定数据;Mock 校验交互行为(调用次数/入参)。 -
Q:如何衡量自动化ROI?
A:构建时间、失败率、平均修复时间(MTTR)、回归覆盖率与节省的人天。
五、接口与API测试
-
Q:幂等性如何验证?
A:重复请求结果一致,不产生副作用(PUT/DELETE/带幂等键的POST)。 -
Q:分页API常见检查点?
A:page/size 边界、总数一致、排序稳定性、游标与并发一致性。 -
Q:常见HTTP状态码语义?
A:200成功、201创建、400请求错误、401未认证、403越权、404不存在、429限流、5xx服务端错误。 -
Q:如何做API兼容性测试?
A:旧客户端对新接口、旧接口对新服务、字段新增保持向后兼容(不破坏必填/类型)。 -
Q:JWT常见风险?
A:过期/刷新、算法降级、密钥泄露、在前端持久化与XSS联动风险。 -
Q:怎么设计接口用例数据?
A:覆盖正常/边界/异常/安全/并发,结合契约(必填、类型、范围、格式)。
六、性能与容量
-
Q:性能四类指标?
A:响应时间、吞吐量、并发数、资源占用(CPU/内存/IO/网络)。 -
Q:性能测试前的准备?
A:目标/SLO、业务模型/峰值曲线、环境等价性、基线与监控方案。 -
Q:常见场景类型?
A:冒烟、负载、压力、稳定性/耐久、容量、峰谷波动、弹性扩缩容。 -
Q:瓶颈定位路径?
A:端到端追踪→分层定位(网关/服务/DB/缓存/MQ)→指标/日志/火焰图。 -
Q:如何避免“脚本在测自己”?
A:客户端、网络、服务器分离监控;加对照(空跑/慢注入)与采样压测。 -
Q:性能基线如何维护?
A:版本化基线+趋势图;超阈值告警与自动回归比较。
七、安全基础
-
Q:OWASP Top 10 至少说3个?
A:注入、认证与会话、越权与访问控制、敏感信息泄露、XSS、SSR F。 -
Q:CSRF 与 XSS 区别?
A:CSRF 伪造用户发请求;XSS 注入脚本在浏览器执行。 -
Q:最小权限原则如何验证?
A:不同角色遍历关键操作,确保只授予必要权限,拒绝越权路径。 -
Q:敏感信息在日志中如何校验?
A:对Token/密码/身份证号等做脱敏或不记录;灰度与异常路径也要查。 -
Q:上传安全要点?
A:后端校验MIME与魔数、存储隔离、去执行权限、病毒扫描、重命名与白名单。
八、数据库与缓存
-
Q:事务隔离级别区别?
A:读未提交/读已提交/可重复读/可串行化,逐级减少并发表现但增加隔离。 -
Q:如何验证索引是否生效?
A:执行计划(EXPLAIN)、响应时间变化、慢查询统计。 -
Q:缓存一致性怎么测?
A:写DB同时失效缓存、并发读写、穿透/击穿/雪崩场景演练。 -
Q:造数与脱敏原则?
A:生成覆盖多样性;对真实数据做脱敏(隐藏PII),保持字段间约束与分布。 -
Q:数据回放测试价值?
A:用真实流量特征验证容量与长尾问题,发现合成数据难覆盖的场景。
九、系统与网络
-
Q:常用排障命令?
A:curl、tcpdump、netstat/ss、top/vmstat/iostat、journalctl、kubectl logs/describe。 -
Q:超时与重试如何验证?
A:注入延迟/丢包,校验重试上限、退避策略与幂等性。 -
Q:CDN/缓存带来的测试点?
A:缓存层级、刷新/失效、回源策略、用户地理差异。 -
Q:灰度/金丝雀发布验证什么?
A:路由比例、指标对比(错误率/延迟)、回滚策略与配置生效。
十、CI/CD 与质量治理
-
Q:质量门禁包含哪些?
A:单测覆盖阈值、静态扫描无高危、关键用例自动化通过、性能冒烟阈值。 -
Q:如何缩短回归反馈时间?
A:测试分层并行、变更影响分析、用例优先级和缓存工件。 -
Q:如何管理测试环境漂移?
A:IaC(Terraform/Helm)、镜像版本固定、环境健康检查与自检脚本。 -
Q:失败测试如何处置?
A:一键收集证据→归类(脚本/环境/产品缺陷)→设定SLA与重试策略。
十一、微服务与分布式(结合Spring Cloud / K8s / MQ / Redis / AAD)
-
Q:如何验证分布式事务/最终一致?
A:SAGA/Outbox 演练:成功、部分失败、补偿失败、重试幂等、重复消息。 -
Q:消息队列要测什么?
A:顺序性、重复投递、死信/重试策略、消费滞后报警、消费幂等键。 -
Q:网关限流/熔断测试点?
A:阈值触发、降级返回、熔断半开恢复、观察熔断期间下游压力变化。 -
Q:K8s 探针如何验证?
A:liveness/readiness/failureThreshold、滚动升级期间的就绪与流量接入。 -
Q:JWT/OIDC 登录链路怎么测?
A:令牌签名与过期、Scope/Role、刷新流程、跨服务鉴权传递与超时。 -
Q:Redis 使用的风险点?
A:大Key、热Key、过期风暴、持久化策略与主从切换一致性。
十二、Web/移动前端
-
Q:Web性能核心指标?
A:LCP、CLS、INP;关注首屏资源、懒加载与缓存策略。 -
Q:多浏览器兼容怎么覆盖?
A:主流引擎+移动端视口,差异性CSS/事件模型与Polyfill 验证。 -
Q:App 升级测试要点?
A:老版本覆盖升级、数据迁移、权限弹窗与回退。 -
Q:文件拖拽/粘贴上传差异?
A:不同浏览器事件差异、剪贴板权限、目录拖拽与多文件顺序。
十三、软技能与情景题
-
Q:需求含糊怎么办?
A:输出澄清清单/例外场景与验收标准,让产品确认后落地。 -
Q:和开发对“是否为缺陷”有分歧?
A:回到需求/验收标准与用户价值,用证据(日志/复现)说话。 -
Q:排期很紧如何取舍?
A:基于风险优先级,保核心路径与高风险点,边做边补度量与监控。 -
Q:如何推动线上事故复盘?
A:事实→时间线→根因→改进项(可执行/有负责人/有截止时间)。 -
Q:如何自述一次有影响的优化?
A:场景背景→问题→你的动作(方法/工具/协作)→量化收益。 -
Q:新团队落地质量体系第一步?
A:建立最小集:质量门禁+回归清单+环境自检+关键路径自动化+度量看板。