状态迁移图法
概念
针对有限状态机进行测试,测试在给定条件下能够正确的跳转以及是否存在一些未可达的状态
相关术语
- 有限状态机:是为研究有限内存的计算过程和某些语言抽象出来的模型。有限状态机拥有有限个数量的状态,每个状态可以迁移到零个或多个状态,通过给出指令(跳转条件)进行迁移。
- 典型的有限状态机:嵌入式系统(手机,电梯,家用电器,交通信号灯…);游戏(贪吃蛇);Web端软件系统(链接页面)
- 状态:某个时间点的一种表现
- 跳转条件:状态发生变化的输入
- 迁移:状态发生变化的过程
状态迁移图法的使用步骤
- 将软件需求规格说明书划分成需求子片段
- 分析需求子片段,找出状态,跳转条件
- 设定一个初始状态,以圆圈(代表状态)为节点,以箭线(带跳转条件)为迁移方向画出状态迁移图
- 通过状态迁移图得到状态事件转换表(表头为:上一状态,跳转条件,下一状态,输出结果)
- 通过状态事件转换表得出状态事件转换树(以矩形框为节点)
- 通过状态转换树得出测试路径
- 添加异常测试路径
- 必要时结合等价类和边界值生成最终的测试用例
测试路径注意点:
测试路径就是指利用状态迁移图法和流程分析法,找出的测试步骤(方向)
完整测试路径必须从开头开始写,不能从中间开始写
当当前状态的下一个状态又回到了之前的状态,构成了一个循环,那么该条路径到此结束
测试路径中的基本路径指使用频率高的路径,主干路径,风险大的路径,基本路径的测试优先级要大于分支路径
案例
测试某播放器的播放功能:
状态:播放;停止;暂停
跳转条件:左键单击播放;左键单击停止;左键单击暂停
将迁移图转换为状态事件转换表:
上一状态 | 跳转条件 | 下一状态 | 输出结果 |
---|---|---|---|
停止 | 左键单击播放 | 播放 | 音乐开始播放 |
停止 | 左键单击停止 | 停止 | 音乐停止播放 |
停止 | 左键单击暂停 | 停止 | 音乐停止播放 |
播放 | 左键单击播放 | 播放 | 音乐重新播放 |
播放 | 左键单击停止 | 停止 | 音乐停止播放 |
播放 | 左键单击暂停 | 暂停 | 音乐暂停播放 |
暂停 | 左键单击播放 | 播放 | 音乐重新播放 |
暂停 | 左键单击停止 | 停止 | 音乐停止播放 |
暂停 | 左键单击暂停 | 播放 | 音乐继续播放 |
表转换为树结构:
测试路径:
停止–停止;
停止–播放–停止;
停止–播放–播放;
停止–播放–暂停–停止;
停止–播放–暂停–播放
特点和适用范围
特点:比较直观,容易理解
适用范围:有限状态机
流程分析法
概念
针对用户对软件系统的使用业务场景进行测试,
如:在某宝购物过程,搜索–购物车–提交订单–支付–收货
借鉴了白盒测试方法中的语句覆盖法,将宏观的功能点取代语句,通过找测试路径去测试功能点是否被覆盖
流程分析法又叫场景测试法(Senario Testing)或用例测试法(Use Case Testing)
流程分析法的使用步骤
- 阅读软件需求规格说明书,熟悉软件系统
- 确定软件系统不同用户角色
- 找出软件系统的主要功能点
- 分析主要功能点之间的顺序关系,画出基本流程图
- 继续熟悉软件系统,找出一些次要的功能点
- 分析次要功能点之间以及与主要功能点之间的顺序关系,画出备选流程图
- 逐渐细化流程图,找出测试路径
- 分析测试路径,确定测试路径的优先级(基本流路径,使用频率高的路径,风险比较大的路径,这些路径优先级较高)
- 分析测试路径上的功能点,结合其他测试设计方法生成最终的测试用例
流程分析法也可以借助状态迁移图来分析
案例
ATM机取款流程