说说测试金字塔,自动化怎么分层?
测试开发第 3 / 15 题答题框架
参考思路:单元>接口>UI 的数量与成本倒三角→每层定位与维护成本→UI 自动化克制使用。能讲反模式(冰淇淋筒)更佳。
五个经典回答示范
回答一 · 校招应届版
测试金字塔是三层:底层单元测试最多、跑得最快最稳;中层接口自动化适量、覆盖业务流;顶层 UI 自动化最少、只做关键路径。比例大致 7:2:1。这样分层是因为越往上越脆弱越慢,全压 UI 层会又慢又难维护。反面是冰淇淋筒——大量手工加厚 UI 层,回归一次要一周。
回答二 · 1-3年经验版
我在团队落地的分层:单测由开发负责纳入 CI 门禁,覆盖率阈值卡新增代码;接口层用 pytest 加 requests 覆盖核心业务流,每次提测自动跑,20 分钟出报告;UI 层只保留登录、下单、支付十条主链路,夜里定时跑。结果是回归从两天人工到一夜自动,UI 脚本维护量降七成。
回答三 · 资深版
金字塔我讲本质而不是形状:自动化分层的依据是反馈成本与稳定性——反馈越早定位越便宜,所以要左移;投资回报决定各层的量。我也会讲现代变体:微服务下对独立消费契约测试的重视、前后端分离后 UI 层进一步收窄、以及谷歌对不写中层而重小测试的实践。教条套形状不如讲清决策逻辑。
回答四 · 追问应对
追问『UI 自动化为什么克制』:脆弱、慢、定位维护成本高,业务价值密度低;『接口自动化怎么起步』:先覆盖资金和核心交易流,数据构造用工厂函数,断言数据落库而非仅看响应码;『覆盖率卡多少』:看增量而非全量,核心模块高要求,工具类 80% 以上,为凑数写的测试无价值。
回答五 · 反面示范
『我们全部做 UI 自动化,因为最接近用户真实操作,最有价值,脚本用什么录一遍就能跑,很省事。』——点评:录制的脚本断言弱、维护灾难,稍有改版全量失败;『最接近用户所以全做』忽略了成本与稳定性,正是金字塔要纠正的反模式。
怎么练这道题
- 打开 模拟练习,选择「测试开发」方向,限时 3 分钟作答本题。
- 对照上方答题框架,逐点检查:哪些要素没覆盖、哪里表达啰嗦。
- 用自己项目的真实经历替换框架中的占位内容,重讲一遍并录音回听。
这类题在真实面试中常被追问细节,
建议进入限时模式练一遍。