测试——状态迁移法

302 阅读3分钟

1.状态迁移法

1.1 定义

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

1.2 案例1 网上购票系统

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

1.3 状态迁移法

  1. 明确了所有的状态节点
  2. 绘制状态迁移图 图1.png
  3. 绘制状态迁移树 图2.png 4.根据测试路径设计测试用例
  • 路径: 未预定---->已预订---->已支付---->已取票---->已进站---->已使用

    未预定---->已预订---->已取消

    未预定---->已预订---->已支付---->已取消

    未预定---->已预订---->已支付---->已取票---->已取消

    未预定---->已预订---->已支付---->已进站---->已取消

1.4 案例2 订单

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

1.4.1 找出所有的状态节点

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

1.4.2 绘制状态迁移图

1.4.3 状态迁移树

图4.png

1.4.4 根据状态转化路径

  • 路径:

    等待付款--->等待发货--->等待收货--->等待评价--->完成

    等待付款--->已作废

    等待付款--->已取消

    等待付款--->等待发货--->已取消

    等待付款--->等待发货--->等待收货--->已退货

    等待付款--->等待发货--->等待收货--->等待评价--->已退货

    等待付款--->等待发货--->等待收货--->等待评价--->完成--->已退货

2.业务流程

2.1 流程图

2.1.1符号

2.1.2 绘制流程图

  • 案例 ATM机取款

2.2 业务流程测试

2.2.1 关注点

  • 关注点:关心的是核心业务是否能够正常走
  • 重点不是关注每个功能具体的细节点通

2.2.2 价值

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

2.3 使用场景

  • 冒烟测试:在单功能模块基本可用的情况下
  • 上线之前,测试业务流程

2.4 业务流程测试步骤

  1. 需求分析,流程清晰
  2. 画出流程图
  3. 根据流程图,编写测试用例,每一条路径就是一条测试用例
  • 注意点: 路径较多的时候,需要根据业务路径设置优先级

2.5 尚惠优品下订单

浏览商品--->加入购物车--->去结算--->编写订单信息--->提交订单--->选择付款方式--->等待收货