状态迁移
定义
被测对象在特定输入条件下所保持的相应形式,关注被测对象的状态变化,在需求规格说明书中是否有不可到达、非法的状态,是否产生非法的状态迁移
特点:与流程分析法相比,状态迁移针对的是同一个对象(订单、信息),同一个对象在不同阶段的不同状态;而流程分析法是针对不同对象,业务节点在不同对象间的切换;
设计流程
- 根据需求梳理状态节点
- 绘制状态迁移图(方便画出各个状态的转换关系,但是不利于划分流转路径,所以需要状态迁移树)
- 绘制状态迁移树
- 找到起始节点;如果没有明确起始节点,先假定一个起始节点
- 依据深度优先、广度优先的原则,先画出主干流程,然后再出去分支流程;
- 如果之前已经出现相同的节点,则停止继续,否则会一直循环下去
- 抽取测试用例
实例 1
- 分析需求,获取节点、状态信息
- 画状态迁移图(各个节点是如何流转的)
- 画状态迁移树(根据迁移图画出迁移树)
- 抽取规则:每个终点是一个用例;根据迁移图,共计 4 个用例,如下:
- 预定-已取消
- 预定-已支付-已取消
- 预定-已支付-已出票-已取消
- 预定-已支付-已出票-已使用
实例 2
需求描述:某个文本编辑器中的字体颜色有黑色、红色、蓝色,现测试字体颜色可以互相转换
- 分析需求:字体是对象,颜色是状态,所以状态迁移指的是颜色的改变
- 迁移图
- 迁移树
- 写到终点的时候,无需继续,再写就是循环了。比如“黑色”,如果继续,相当于将当前的迁移树重复一遍
- 用例
- 黑-红-黑
- 黑-红-蓝
- 黑-蓝-黑
- 黑-蓝-红