千锋教育-做有情怀、有良心、有品质的职业教育机构

面试10个候选人,8个答“按功能重要性排”。剩下2个说“按用户使用频率排”。
面试官心里冷笑:你们连Bug分级和用例优先级都分不清,为什么进团队?
优先级设定考察的不是表格美化能力,是风险识别和资源权衡。
一个项目周期压缩50%,测试时间砍到30%。你能保哪些用例?
面试官要听的答案,不是“都测”,而是“砍谁,为什么砍,风险怎么兜底”。
优先级不决定用例价值,只决定执行顺序。
数据佐证:某大厂面试题库统计,82%的P7以下候选人回答“按功能主次排”,只有12%提到“用户影响面+发生概率+商业损失”三级模型。
面试官真正想看到的,是你脑中有没有一套决策框架。
对比两个回答:
看出差距了吗?前者在排流程,后者在排业务风险。
行动指引:面试前,拿出你参与过的项目,列出前10个用例,按“不执行会出多大乱子”重新排序。然后用这个逻辑去回答。
面试官扔给你一个需求:电商App的“用户退出登录”功能。
你下意识列出5条用例:正常退出、退出后清缓存、退出后重登录、强制退出、退出时网络中断。
现在告诉你:只测3条,砍哪两条?
错误的直觉:砍网络中断和强制退出,因为“不常发生”。
正确的逻辑:砍正常退出和清缓存,因为异常场景一旦触发,用户直接卡死,投诉率飙升。
三把尺要同时量:
首选把:用户影响范围。一次崩溃影响1000人 vs 一次数据错乱影响10万人,后者优先级高。
第二把:商业损失大小。支付失败导致订单流失,比页面按钮颜色不匹配高10倍优先级。
第三把:技术实现复杂度+发生概率。发生概率低但后果灾难性的场景(如并发下库存超卖),优先级高于高频但低损场景(如登录成功页标题错位)。
测试用例的优先级,等于后果严重程度乘以发生概率。
举个例子:
按你的直觉,B频率高所以先测?
错。A的期望损失是0.5元/订单,B是0元。A优先。
面试中这么答,面试官立刻知道你有量化思维。
实操技巧:把每个用例打三个标签——影响人数(1-5分)、损失金额(1-5分)、发生概率(1-5分),总分15分,从高到低排。
面试官问你“为什么这个用例排首选”,你直接报分数:“影响4分×损失5分×概率3分=60分,其他最高才40分。”
坑一:把“功能优先级”和“测试用例优先级”混为一谈。
面试官问:“这个模块有5个功能,你怎么排测试优先级?”
错误回答:“先测核心功能,再测次要功能。”
破解:核心功能用例中,异常场景优先级高于正常场景。正常场景用户天天跑,报错概率低;异常场景才是代码死角。
话术:“我会把展示类功能的正常流程排在后面,把资金、安全、权限相关的异常流程排在首选优先级,因为它们是系统崩溃的爆破点。”
坑二:只说“按风险排”,说不出风险评估方法。
面试官追问:“风险怎么评估?”
错误回答:“凭经验。”
破解:用公式。风险系数 = 功能被引用的次数 × 出问题后的恢复成本 × 用户最小容忍度。
话术:“先列出所有功能的调用链路,找到被引用最多的节点(如用户鉴权服务);再评估出问题后是否需要回滚、数据修复、赔偿(如支付服务);最后看用户最多等多久——超过10秒就流失的功能优先。”
面试官要的不是答案,是决策树。
坑三:忽视数据依赖。
面试官给一个用例“修改用户昵称”,你说优先级高。
他反问:“数据库里昵称字段是唯一键吗?如果修改时和其他用户冲突,系统怎么处理?”
你哑口无言。优先级设定必须考虑数据异常。
破解:提前问清楚数据约束。话术:“优先级高低取决于昵称是否是唯一索引。如果是,我需要优先测重复昵称的系统提示和事务回滚;如果不是,只测边界长度。”
三句话让面试官点头:
1. “我按用户影响面、商业损失、发生概率三个维度打分。”
2. “我优先保异常边界,其次保数据一致性,最后保UI展示。”
3. “我会保留一份优先级调整日志,每次上线后复盘优化。”
面试题:“给你一个‘用户密码重置’功能,接口文档如下:输入手机号、验证码、新密码。请排10条测试用例的优先级。”
先别急着排。面试官在考验你的场景覆盖能力。
列出用例池:
1. 正确手机号+正确验证码+合法新密码→重置成功
2. 手机号不存在
3. 验证码错误
4. 验证码超时
5. 新密码包含非法字符
6. 新密码与旧密码相同
7. 连续3次输错验证码
8. 重置成功后立即用旧密码登录
9. 重置过程中断网
10. 重置请求被拦截(CSRF攻击)
你的排序:
首选梯队(5分以上):用例7、8、9、10。
理由:连续输错验证码是暴力破解防御点,测试不过等于给黑客开门;重置后旧密码失效是安全底线;断网重试和CSRF攻击是防御型用例,不测就裸奔。
第二梯队(3-4分):用例2、3、4、6。
理由:手机号不存在和验证码错误是常见边界,但损失可控;新旧密码相同是业务逻辑。
第三梯队(1-2分):用例1、5。
理由:正常流程靠自动化覆盖即可,非法字符输入一般前端已拦截,后端验证多是兜底。
测试的价值不在于证明功能能用,而在于证明功能不会崩。
面试官追问:“为什么用例5(非法字符)排最后?”
你答:“因为前端已经做了正则校验,后端错误提示也写了。这个bug即使触发,用户只会看到‘密码格式错误’,不会造成数据损失或安全问题。而用例7如果没测,黑客可能利用验证码接口刷爆用户,导致账户锁定申诉,客服成本翻10倍。”
用数据说话:一个验证码爆破攻击平均带来500次人工客服介入,成本约2000元/次;一个非法字符bug最多浪费用户30秒。优先级差距100倍。
最后,告诉面试官你的调整机制:“如果项目时间压缩到一半,我会砍掉第三梯队用例,但保留首选梯队。如果时间再砍一半,我会把首选梯队中的10(CSRF)降级——因为安全组已经做过渗透测试,但7(连续输错验证码)必须保留,因为那是接口层的直接暴露。”
面试最后3分钟,面试官问:“你还有什么要补充的?”
这是你展示思维层次的机会。不要空谈,直接抛出“优先级设定的数据闭环”。
话术:“我想补充一个观点——优先级设定不是一次性工作,而是动态迭代。我每次上线后,会统计实际触发的bug数量,对比之前设定的优先级。如果某个低优先级用例频繁出bug,说明我的风险预估模型有问题,需要调整权重。”
接着扔出一个案例:“比如我之前负责支付模块,把‘余额不足时的退款逻辑’排第三优先级。结果上线首选周就触发了3次退款失败,用户投诉到客服。我复盘后,把余额不足相关的所有异常场景提到首选优先级,并且把权重公式里的‘用户容忍度’从1分调整为5分。”
动态调整优先级,比一次排对重要10倍。
面试官眼睛一亮——他看到了持续改进的工程师思维。
你继续深化:“优先级设定还能倒推需求评审。当我发现某个高风险场景需要大量用例覆盖时,我会找产品经理砍需求——‘这个功能的风险投入比是1:3,建议推迟或改用更简单的方案’。测试不是最后的守门员,是风险的提前预警。”
对比其他候选人:他们还在背诵“等价类划分”;你已经展示了测试驱动产品决策的能力。
最后的行动指引:
面试前,找出最近一个项目,花15分钟重新排一次测试用例优先级。
用三个维度给自己打分,写出一份“优先级设定报告”。
面试时直接展示——录用率提升70%以上。
---
优先级设定不是选择题,是风险评估的照妖镜。
给用例排序列,不如给自己排风险。