我的测试学习站TEST LEARNING HUB
开始学习
首页/精华文章/2. 测试用例设计方法如何结合真实业务

2. 测试用例设计方法如何结合真实业务?

很多人学测试用例设计,只记住了等价类、边界值、判定表、因果图、场景法。

但面试官真正关心的不是你能不能背出这些名字,而是你能不能把方法用到真实业务里。

一、先理解业务,再选择方法

测试用例设计不是先套方法,而是先看业务特点。

不同业务适合不同方法:

  • 输入框、金额、数量适合等价类和边界值;
  • 多条件组合适合判定表;
  • 复杂业务流适合场景法;
  • 状态变化适合状态迁移法;
  • 历史问题集中区域适合错误推测法。

如果不理解业务,上来就套模板,用例很容易变成形式主义。

二、等价类要结合有效和无效业务数据

等价类不是随便分“正确”和“错误”。

以手机号注册为例,可以分为:

  • 有效手机号;
  • 少于 11 位;
  • 多于 11 位;
  • 非数字字符;
  • 未注册手机号;
  • 已注册手机号;
  • 被禁用手机号;
  • 境外手机号是否支持。

这里已经不是单纯校验格式,而是结合了账号状态和业务规则。

三、边界值要关注业务边界

边界值不只是最小值、最大值。

比如优惠券满减规则是“满 100 减 20”,测试点应该包括:

  • 订单金额 99.99;
  • 订单金额 100;
  • 订单金额 100.01;
  • 多件商品合计满 100;
  • 使用积分后是否仍满 100;
  • 运费是否计入满减门槛。

真正容易出问题的边界,往往是业务计算边界。

四、判定表适合多条件组合

比如审批功能是否允许提交,可能受多个条件影响:

  • 用户角色;
  • 单据状态;
  • 审批金额;
  • 是否超过预算;
  • 是否已被别人处理。

如果只凭感觉写用例,很容易漏掉组合。

可以先列条件,再列动作:

  • 普通员工 + 草稿状态 + 金额正常:允许提交;
  • 普通员工 + 已提交状态:不允许重复提交;
  • 审批人 + 待审批状态:允许审批;
  • 非审批人 + 待审批状态:不允许审批;
  • 审批人 + 已撤回状态:不允许审批。

这样用例更系统。

五、场景法适合主流程和异常流程

业务系统最重要的是流程。

以下单流程为例,主流程是:

  1. 选择商品;
  2. 加入购物车;
  3. 提交订单;
  4. 使用优惠券;
  5. 支付成功;
  6. 生成订单;
  7. 扣减库存。

异常流程包括:

  • 商品下架;
  • 库存不足;
  • 地址为空;
  • 优惠券过期;
  • 支付失败;
  • 重复提交;
  • 支付成功但订单状态未更新。

面试时把主流程和异常流程一起讲,才像真实测试。

六、状态迁移法适合订单、审批、工单类业务

有些业务的核心不是输入,而是状态变化。

比如订单状态可能包括:

  • 待支付;
  • 已支付;
  • 已取消;
  • 已发货;
  • 已完成;
  • 退款中;
  • 已退款。

测试时要关注:

  • 哪些状态可以流转;
  • 哪些状态不能逆向流转;
  • 重复操作是否被拦截;
  • 状态变更后相关数据是否同步;
  • 前端展示、接口返回、数据库状态是否一致。

七、错误推测法来自经验积累

错误推测法不是乱猜,而是根据历史问题判断风险。

常见高风险点包括:

  • 重复点击导致重复提交;
  • 网络超时导致状态不一致;
  • 权限校验只做前端不做后端;
  • 金额精度计算错误;
  • 缓存未刷新导致数据旧;
  • 多人同时操作导致并发问题。

这些点在真实项目里非常常见。

八、面试回答模板

可以这样回答:

我设计测试用例时不会只套方法,而是先分析业务流程和风险点。对于输入类字段,我会用等价类和边界值;对于多条件判断,比如权限和审批规则,我会用判定表;对于下单、支付、审批这类流程,会用场景法覆盖主流程和异常流程;对于订单状态、工单状态,会用状态迁移法;最后结合历史 Bug 做错误推测,补充重复提交、权限绕过、数据一致性等高风险场景。

这个回答能体现你会把理论落到业务里。

九、下一步建议

测试方法不用背得很花,关键是每种方法都能举出真实业务例子。

建议你准备三个场景:

  • 登录怎么设计用例;
  • 下单怎么设计用例;
  • 审批流怎么设计用例。

配套刷题: