当前位置: 首页 > biancheng >正文

15.10 - 状态转移测试

目录

一、概述

二、状态转移测试的步骤

三、状态覆盖

1、状态覆盖的概念

2、单步转移

3、全转移

4、多步转移

四、举例说明

1、规格说明

2、状态转移图

3、状态转移状态-事件表

4、状态转移树

5、状态转移路径


一、概述

  • 把软件若干种状态之间的转换条件和转换路径抽象出来,从覆盖所有状态转移路径的角度去设计测试用例,关注状态的转移是否正确。

二、状态转移测试的步骤

1、分析需求,整理所有状态
2、画出状态转移图
3、根据状态转移图,列出状态-事件表
4、根据状态转移图,画出状态转换树(测试路径)
5、根据状态转化树,按照单步转移覆盖的要求,推导测试路径
6、根据测试路径逐一编写测试用例

三、状态覆盖

1、状态覆盖的概念

  • 使得状态模型中的所有状态都要被访问过

2、单步转移

  • 用来覆盖状态模型中所有有效的单步
  • 例如下面案例中从“预定”到“已取消”就是一个有效的单步

3、全转移

  • 用来覆盖状态模型中所有有效的转移和无效的转移
  • 无效转移:状态模型中未指定有效转移事件后的状态的转移

4、多步转移

  • 应能覆盖状态模型中N+1步转移的有效序列

四、举例说明

1、规格说明

  • 客户在线向公司预定产品,此时产品的信息处于“预定”状态
  • 客户支付了产品费用后,产品信息变为“已支付”状态
  • 当客户到公司提取产品后,产品信息变为“已出货”状态
  • 当产品完成交付后,产品信息变为“已交付”状态
  • 当客户在完成交付前,取消自己的订购,如果支付了产品费用,则可以退款,取消后,产品信息处于“已取消”状态

2、状态转移图

3、状态转移状态-事件表

4、状态转移树

5、状态转移路径

相关文章:

  • 访问修饰符,关键字标识符static,final,abstract,interface,extends的作用和区别
  • 千人规模亚马逊云科技出海日将于6月9日开启,助推企业出海出圈
  • 【HTML】form标签
  • 【2023】Redis数据类型
  • 19.1 JavaWeb三层架构-(客户信息管理)
  • 实战干货,pytest自动化测试-Git中的测试用例运行(详细)
  • 【MySQL】一文带你了解数据库约束
  • React-Router 5.0 制作导航栏+页面参数传递
  • java nio SocketChannel 底层编程踩坑(适用于高级程序员)
  • 射频电路layout知识点总结