状态迁移法,我们一起来了解吧 🙆🏼‍♂️

1,063 阅读5分钟

1、状态迁移法

1.1、定义。

   状态迁移法的思想是提供将多个状态的转换串联起来进行测试的思路。该方法适合测试各种状态的转换,而且这些状态转换的

测试在实践中是易遗漏的。例如像手机、MP3等,都可以使用状态迁移法对使用状态的迁移(即用户使用场景的转换)进行测试。

  • 找出当前被测对象的所有的状态,研究每个状态之间的转化,根据转化过程完成测试用例
  • 状态迁移法,不保证单个功能的正确性,只考虑转之间的转化是否需求保持一致
  • 适合比较复杂的业务场景

1.2、案例:网上购票系统

网上购票系统(基本流)

  • 1、查询对应的目的地的票务信息(查询目的地的票)查询车票, 信息【未预定】
  • 2、展示选择需要预定的车票,【提交订单】车票信息【已预订】
  • 3、订单支付成功之后,信息变为【已支付】
  • 4、用户到达火车站,取出车票,信息变为【已取票】
  • 5、用户进站,信息变为【已进站】
  • 6、用户经过检票口,上车,信息变为【已使用】
  • 7、在经过检票完成之前,都可以取消车票,信息变为【已取消】

节点

【状态】{迁移图}

未预定。。。》提交订单。。。》,已预订【已取消】。。。》已支付【已取消】。。。》已取票【与取消】。。。》已进站【已取消】。。。》已使用

image-20210910110448223.png

1、2状态迁移法

  • 1、明确了所有的状态节点
  • 2、绘制状态迁移图

节点 image-20210910110448223.png

  • 3、绘制状态迁移树【从那个方向都可以取消】

\

image-20210910111004009.png

  • 4、根据测试路径设计测试用例
  • 路径:
  • 未预定----> 已预订 ---> 已支付 ---->已取票---->已进站 ----> 已使用
  • 未预定--->已预订---->已取消---->
  • 未预定--->已预订---->已支付---->已取消
  • 未预定--->已预订---->已支付---->已取票--->已取消
  • 未预定--->已预订---->已支付---->已进站--->已取消

1、4 案例2:订单

image-20210910112143154.png

  • 1、用户在提交完订单之后,订单生成,并且状态b变更为【等待付款】
  • 2、用户付款完成之后,订单状态变更为【等待发货】
  • 3、商家确认订单之后,发货,用户订单状态【等待收货】
  • 4、用户收到商品,需要进行【确认收货】,订单状态【等待评价】
  • 5、用户使用商品,评价完成,订单状态【完成】{交易成功}
  • 6、在商家发货之前,用户可以取消订单,订单状态变为【已取消】
  • 7、在商家发货之后,用户可以退货,订单变为【已取消】
  • 8、在用户付款之前,商家取消订单,订单状态变为【已作废】

1.4.1找出所有的状态节点

等待付款----等待发货---等待收货---等待评价---完成---已取消----已作废

1.4.2绘制状态迁移图

image-20210910144101316.png

1.4.3状态迁移树

image-20210910114239786.png

1.4.4 根据状态转化路径测试测试用例

  • 等待付款--等待发货--等待收货---等待评价---完成
  • 等待付款----已作废
  • 等待付款----已取消
  • 等待付款---等待发货-----已取消
  • 等待付款----等待发货===等待收货--退货、
  • 等待付款----等待发货===等待收货--=等待评价--已退或
  • 等待付款----等待发货===等待收货==等待评价==完成===已退货

2、业务流程【重要】

业务流程,是为达到特定的价值目标而由不同的人分别共同完成的一系列活动。活动之间不仅有严格的先后顺序限定,而且活动的内容、方式、责任等也都必须有明确的安排和界定,以使不同活动在不同岗位角色之间进行转手交接成为可能。活动与活动之间在时间和空间上的转移可以有较大的跨度。而狭义的业务流程,则认为它仅仅是与客户价值观的满足相联系的一系列活动。业务流程就是过程节点及执行方式有序组成的工作过程。

2、1流程图

image-20210910142156272.png

2、1、1流程图

image-20210910142156272.png

2、1、2业务流程测试

关注点:关心的是核心业务是否能够正常走通

重点不是关注每个功能具体的细节点

2、2、1、价值点

  • 测试:在进行工作安排的时候,针对功能模块进行划分,业务流程可能会有缺失,冒烟测试使用
  • 客户:最有价值的是业务的实现,并不关注单个功能

2、3使用场景

  • 冒烟测试:在单功能模块基本可用的情况下,

上线之前,测试业务流程

2、4 业务流程测试步骤

  • 1、需求分析,流程清晰
  • 2、画出流程图
  • 3、根据流程图,编写测试用例,每一条路径就是一条测试用例

注意点:

路径较多的时候,需要根据业务路径设置优先级

总结:

        状态迁移法实际测试了被测系统各种状态的转换,这些状态转换的测试在实际工作中是容易遗漏的,只要能够将这些状态的转换

测试到,是否采用状态迁移法并不重要,因为状态迁移法只是提供了一种将多个状态的转换串联起来进行测试的思路(思维模式)。

        实际工作中,在业务流程中都涉及到了复杂的业务场景(即业务状态的迁移)。而这些业务场景在需求规格中往往不能够完全

阐述清楚,容易出现遗漏。所以当被测系统的业务场景复杂时,在工程中应用这种针对状态迁移测试的思路完成对复杂业务场景的

测试有时是很有必要的。