首页/开发/软件测试速查/构建状态模型的步骤
用例设计方法62 条

构建状态模型的步骤

从需求与接口梳理状态清单、事件与守卫条件,绘制状态迁移图或表,标注非法迁移与超时迁移,再据此生成用例。

软件测试速查开发更新于 2026-10-13

构建状态模型的步骤

从需求与接口梳理状态清单、事件与守卫条件,绘制状态迁移图或迁移表,标注非法迁移与超时迁移,再据此生成用例。状态模型是评审材料:与产品、开发确认后再使用,能减少测试与实现对状态语义理解不一致造成的漏测。

基本信息

输入需求、接口契约、代码里的状态枚举
产出状态清单、迁移表、迁移图
关键元素状态、事件、守卫条件、动作、非法迁移
超时迁移定时器触发的迁移单独标注
评审要求与产品、开发确认后再生成用例
覆盖策略每状态每事件至少一条用例,另加非法迁移用例
建模粒度状态定义到行为可区分的最小单位
显式列出初始态、终态、错误态不省略

迁移表模板

迁移表模板
| 当前状态 | 事件 | 守卫条件 | 新状态 |
| 待支付 | 支付成功 | 金额匹配 | 已支付 |
| 待支付 | 支付成功 | 金额不匹配 | 待支付(告警) |
| 待支付 | 超时 | 未支付 | 已关闭 |
# 守卫条件写进单元格,避免事件名相同结果不同

典型使用场景

  • 订单与工单:梳理主流程与取消、退款、关闭分支。
  • 设备管理:在线、离线、升级等状态的迁移验证。
  • 权限生命周期:申请、生效、冻结、回收的迁移测试。
  • 用例评审:用迁移表核对是否缺状态或事件。
  • 缺陷定位:判断缺陷落在哪条迁移上,快速定位代码。
  • 新人学习:用模型图理解业务规则的边界与例外。
  • 接口测试:按迁移表生成请求序列,覆盖守卫条件拒绝路径。
模型未与实现对齐,用例与代码状态枚举对不上;确认环节不能省。
忽略超时与定时器触发的迁移,是状态类测试最常见的漏测来源。
非法迁移要单独设计用例:在错误状态执行操作应被拒绝且无数据副作用。
先主链路再补分支:一次画全容易陷入细节,评审节奏也拖长。

易错点

  • 模型未与实现对齐,用例与代码状态枚举对不上。
  • 忽略超时与定时器触发的迁移。
  • 只画主流程,忽略取消、退款等反向迁移。
  • 状态模型不随需求更新,用例停在旧版本。
  • 状态边界含糊(把行为动词当状态),用例与实现长期对不上。

数据来源与参考

  • ISTQB CTFL 4.0 大纲(状态迁移测试)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌