首页/开发/软件测试速查/基于模型的测试(MBT)
用例设计方法62 条

基于模型的测试(MBT)

用形式化模型(状态机、决策模型、流程图)自动生成测试用例:模型变更后用例可再生成,适合规格清晰的系统。

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

基于模型的测试是什么

基于模型的测试(MBT)用形式化模型描述系统行为——状态机、决策表、流程图或约束模型,再从模型自动生成测试用例。规格清晰、逻辑复杂的系统收益最大:模型变更后用例可再生成,回归覆盖与模型保持同步,而不是靠人工逐条维护用例集。

基本信息

模型类型状态机、决策表、时序图、约束模型
流程建模 → 生成用例 → 执行 → 结果反哺模型
覆盖准则状态覆盖、迁移覆盖,再补回退与异常迁移
投入与收益投入在建模与维护,复杂逻辑与高频变更场景收益明显
适用前提规格清晰、行为可形式化
常见风险模型与实现双向漂移

状态机建模示例

状态机建模示例
状态:未登录 -> 已登录 -> 锁定
迁移:登录成功 / 连续失败 / 解锁
生成:先做边覆盖,再补回退与异常迁移用例
回归:模型变更后重新生成并对比差异
# 生成用例需人工审阅可执行细节后再入库

典型使用场景

  • 复杂状态逻辑:订单、账号安全、设备控制等状态机系统。
  • 高频变更模块:模型更新后自动再生成回归用例。
  • 规格验证:建模过程本身暴露规格中的矛盾与空洞。
  • 覆盖审计:用模型量化现有用例对状态与迁移的覆盖。
  • 组合场景推导:从决策表生成条件组合用例。
  • 协议与流程系统:通信状态机、审批流的行为验证。

流程环节与产出

环节动作产出
建模用状态机或决策表描述行为可评审的模型
生成按覆盖准则导出抽象用例候选用例集
具体化补充数据与前置,人工审阅可执行用例
执行对接测试框架运行结果与失败分析
反哺用差异与缺陷更新模型持续修正的模型
MBT 的投入在建模与维护模型上;收益在复杂逻辑与高频变更场景更明显,简单页面流程用传统设计方法更划算。
生成的用例不是终点:抽象用例要补充测试数据与前置条件后才能执行。
把模型和实现纳入同一评审流程,模型漂移才能被及时发现。

易错点

  • 模型与实现双向漂移,生成的用例与实际行为脱节:设定模型评审与同步更新机制。
  • 模型抽象层级过高,生成用例缺少可执行细节:抽象覆盖与具体用例分层管理。
  • 为 MBT 而 MBT:简单场景投入产出比低,先在有状态逻辑的模块试点。
  • 生成用例不回审直接入库:冗余与重复用例污染用例库,执行成本上升。

数据来源与参考

  • ISTQB CTFL 4.0 大纲(基于模型的测试)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌