华为od 面试八股文_测试/测试开发_06_含答案
·
1:Smoke / Sanity / Regression 有什么区别?你在项目里怎么用?
回答要点:
- Smoke(冒烟):范围小、跑得快,目标是“主流程能跑起来”,通常用于每日构建/提测第一时间拦截大故障。
- Sanity(健全):针对某次改动点做快速验证,确认“改动点没明显问题”,比 smoke 更聚焦改动。
- Regression(回归):覆盖范围更大,目标是验证“改动没破坏已有能力”,通常在发版前必须跑。
面试官追问:三者能不能互相替代?
不能。它们的核心是成本与覆盖面的取舍不同,你要能说清楚什么时候用哪一个。
2:缺陷的 Severity(严重程度)和 Priority(优先级)怎么区分?
回答要点:
- Severity:问题对系统/用户的影响(致命/严重/一般/轻微)。
- Priority:修复的排期优先级(现在就修/下个版本/可延期)。
典型组合(面试常问):
- 高严重低优先:边缘场景、影响小流量但技术上是 crash(需要结合业务窗口和回滚方案)。
- 低严重高优先:文案/计费展示错误,技术不致命但业务风险大。
3:你写一条“高质量缺陷单”会包含哪些信息?
回答要点:
最实用的是“让开发能最快复现 + 最小定位成本”:
- 标题:一句话能看懂(模块+现象+条件)。
- 环境:版本号、环境、账号、配置开关、网络/机型(移动端)。
- 复现步骤:可最小化、可复制(不要写“点一下看看”)。
- 期望 vs 实际:明确到字段/状态码/页面行为。
- 证据:日志、抓包、截图/录屏、请求/响应体(脱敏)。
- 影响面:是否阻断主流程、是否可回滚、是否有临时绕过方案。
4:测试用例怎么选“最值钱”的?(不是把需求抄一遍)
回答要点:
常见的落地思路是“风险驱动 + 分层覆盖”:
- 主流程优先:核心链路(登录/下单/支付/关键写操作)。
- 改动点优先:本次迭代改动涉及的模块/依赖链路。
- 历史缺陷优先:线上出过事故/高频回归点做守护用例。
- 边界与异常:空值/超长/并发/重试/重复提交/幂等。
面试官追问:怎么证明你的选择有效?
可以用“缺陷命中率/线上问题分布/回归拦截率”等指标做闭环。
5:测试金字塔怎么理解?UI/API/单元自动化怎么配比?
回答要点:
核心不是背概念,而是解释“为什么这样能跑得快且稳定”:
- 单元测试:数量最多、速度最快、定位最精准(但需要研发配合)。
- API 自动化:对业务链路覆盖强、稳定性比 UI 高,适合做回归主力。
- UI 自动化:最贴近用户,但最脆弱、维护成本高,适合覆盖少量关键路径。
常见面试追问:为什么 UI 自动化总 flaky?
元素变化、等待机制、环境差异、数据依赖、并发跑导致抢资源,都是常见根因。
6:Mock / Stub / Fake / Spy 分别是什么?测试里你怎么用?
回答要点:
这题考的不是名词,而是你能不能把“依赖隔离”讲清楚:
- Stub:返回固定结果,帮你走通逻辑分支。
- Mock:更强调“行为校验”(有没有被调用、调用次数、参数是否正确)。
- Fake:一个可用但简化的实现(例如内存版 DAO)。
- Spy:在真实对象基础上记录/部分替换行为。
落地建议:
- 优先 stub/fake,少用“全局大 mock”;mock 过度会让测试和实现强耦合。
7:怎么做“测试环境治理”?(数据、配置、权限、依赖)
回答要点:
- 数据:可标识、可回收、可复用;避免“跑一次污染一次”。
- 配置:开关可追溯(谁改的、什么时候改的),避免隐性依赖。
- 权限:测试账号分级,避免误操作生产级资源。
- 依赖:第三方/下游服务要有降级策略(stub 环境/沙箱/隔离账号)。
面试官最爱问一句:
“为什么你们的回归在周五总挂?”——十有八九是环境被人改了。
8:如何把自动化接入 CI/CD?你们怎么做“门禁”?
回答要点:
- 分层门禁:
- PR/提交:跑单元 + 少量 smoke API
- 合并主干:跑更完整的 API 回归
- 发版前:全量回归 + 关键 UI 路径
- 稳定性治理:失败自动收集日志/报告;对 flaky 用例要有隔离策略(标记、重试上限、必须修复)。
- 准入规则:失败即阻断 or 人工放行(要可追溯),并明确放行条件。
9:线上事故如何复现与定位?测试能做什么“比开发更快”?
回答要点:
- 先复现:明确版本、环境、触发条件、最小输入。
- 再定位:抓包/日志/链路追踪,把问题缩小到具体接口与参数。
- 最后闭环:补回归用例(把事故变成用例),并把监控/告警阈值补齐(避免下次“靠人发现”)。

更多推荐
所有评论(0)