前端

传统软件测试的必备技能与用例设计思路

2026/06/04 约 12 分钟
传统软件测试的必备技能与用例设计思路

AI 能帮你生成测试用例,但判断用例是否合理、覆盖是否充分,靠的是人的测试思维。传统软件测试的几项核心技能,在 AI 应用中同样适用——毕竟 AI 产品的最终输出也是软件行为的一部分。

本文梳理五项必备技能,每项配实际案例和用例设计思路。

1. 等价类划分 —— 用最少的用例覆盖最多的场景

核心思想:输入数据中,某些值在逻辑上是「等价的」——测一个就够了。

案例:邮箱注册验证

需求:邮箱格式必须为 xxx@yyy.zzz
       xxx:1-64 位字母/数字/点/下划线/百分号/加号/减号
       yyy:1-255 位字母/数字/点/减号
       zzz:2-6 位字母

思路

等价类代表值预期
有效邮箱(普通)user@example.com✅ 通过
有效邮箱(含点号)first.last@sub.domain.com✅ 通过
有效邮箱(含特殊符)user+tag@domain.co✅ 通过
无效 — 缺少 @userexample.com❌ 拒绝
无效 — 缺少域名user@.com❌ 拒绝
无效 — TLD 过短user@domain.c❌ 拒绝
无效 — TLD 过长user@domain.sevenup❌ 拒绝
无效 — xxx 超长a...65chars...a@domain.com❌ 拒绝
无效 — 空字符串""❌ 拒绝

💡 面试技巧:面试官问「你测一个输入框会怎么设计用例」,先从等价类切入(有效/无效各列出 3 个以上),再谈边界值,展示系统思维。

2. 边界值分析 —— Bug 总是藏在边界上

核心思想:程序员最容易在 > 还是 >= 上犯错。

案例:电商优惠券满减

需求:订单满 100 元减 10 元,满 200 元减 30 元,满 500 元减 100 元
      优惠券每人限用 1 次,有效期到 2026-12-31 23:59:59

思路——针对金额边界的用例:

订单金额预期优惠测试点
99.990刚好不满 100
100.0010刚好触发第一档
100.0110刚过第一档
199.9910紧贴第二档下限
200.0030刚好触发第二档
499.9930紧贴第三档下限
500.00100刚好触发第三档

还要测时间边界:

下单时间预期
2026-12-31 23:59:59✅ 优惠券有效
2027-01-01 00:00:00❌ 优惠券过期

💡 面试官问「你怎么保证测试覆盖充分」,回答思路:先划分等价类避免冗余,再用边界值捕捉边缘 bug,最后用场景串联验证真实流程。

3. 判定表与因果图 —— 当多个条件相互纠缠时

核心思想:条件之间有 AND/OR 关系时,画判定表避免遗漏组合。

案例:信贷审批规则引擎

条件:
  A: 年收入 ≥ 20 万
  B: 社保连续缴纳 ≥ 24 个月
  C: 当前无其他贷款
  D: 信用卡无逾期记录

规则:
  - A && B && C && D → 通过
  - A && B && C && !D → 人工审核
  - A && B && !C && D → 降额通过
  - 其余情况 → 拒绝

判定表

#ABCD结果
1YYYY✅ 通过
2YYYN🔍 人工审核
3YYNY⚠️ 降额通过
4YYNN❌ 拒绝
5YNYY❌ 拒绝
16NNNN❌ 拒绝

四条条件 → 2⁴ = 16 种组合。判定表能帮你不遗漏任何一种

💡 适合在面试中展示逻辑分析能力:遇到多个条件组合的需求时,画一张判定表就能快速让面试官看到你的思维结构化程度。

4. 正交实验法 —— 当组合爆炸时挑最有代表性的

核心思想:全面组合太多(如 3⁵ = 243 条),用正交表挑出两两覆盖的最小集合。

案例:报表筛选条件

条件及取值:
  时间粒度:日 / 周 / 月
  指标类型:销售额 / 订单数 / 利润率
  地区:华北 / 华东 / 华南
  渠道:线上 / 线下
  对比:同比 / 环比

全组合 = 3×3×3×2×2 = 108 种,太多了。用正交表(L9)只需 9 条用例即可保证任意两个条件的取值组合都被覆盖

#时间粒度指标地区渠道对比
1销售额华北线上同比
2订单数华东线下环比
3利润率华南线上环比
4销售额华东线上环比
5订单数华南线上同比
6利润率华北线下同比
7销售额华南线下同比
8订单数华北线上环比
9利润率华东线下环比

💡 面试中的加分项:能说出正交实验法,并解释「两两覆盖」的含义——说明你不仅有工程思维,还有数学思维。

5. 状态迁移 —— 测的不是输入,是「状态流转」

核心思想:很多 bug 不在某个功能本身,而在于先做了什么再做了什么

案例:订单状态机

状态:待支付 → 已支付 → 已发货 → 已签收 → 已完成
             ↘ 已取消(待支付状态下可取消)
             ↘ 已退款(已支付/已发货状态下可申请)

思路:画状态图,覆盖每一个合法和非法迁移:

#当前状态操作预期
1待支付支付成功✅ → 已支付
2待支付取消订单✅ → 已取消
3待支付申请退款❌ 不允许
4已支付申请退款✅ → 退款中
5已支付取消订单❌ 不允许
6已发货确认签收✅ → 已签收
7已签收申请退款❌ 不允许
8已取消支付❌ 不允许

💡 面试时如果遇到电商、支付、工单等业务题,直接画状态机图——面试官眼中这是「高级测试思维」的信号。

小结:一张技能地图

技能对付什么问题一句话
等价类划分输入空间过大用最少用例覆盖代表性取值
边界值分析阈值 bug 高发边界两侧各取一点
判定表 / 因果图多条件逻辑组合画表,防遗漏
正交实验法组合爆炸两两覆盖,9 条顶 108 条
状态迁移业务流程流转合法迁移 + 非法迁移都要测

这些技能不会因为 AI 时代的到来而过时——相反,当 AI 帮你生成 100 条用例时,你能从中挑出真正有价值的 20 条,这才是你的价值所在


下一篇预告:《软件测试面试的解题框架——如何把一道题拆出 10 个测试点》

💬 评论区占位 —— 可在此接入 GiscusWaline