状态迁移图法和流程分析法

本文介绍了状态迁移图法和流程分析法在软件测试中的运用。状态迁移图法通过绘制状态图,分析软件的有限状态机,确保所有状态和跳转条件的正确性。流程分析法关注用户业务场景,通过构建流程图来覆盖关键功能点。两种方法都强调了测试路径的完整性和重要性,并提供了实际案例,如播放器功能测试和ATM取款流程测试,以说明其实施步骤和特点。这两种方法适用于有限状态机和流程性强的软件系统测试,能帮助生成有效的测试用例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

状态迁移图法

概念

针对有限状态机进行测试,测试在给定条件下能够正确的跳转以及是否存在一些未可达的状态

相关术语

  • 有限状态机:是为研究有限内存的计算过程和某些语言抽象出来的模型。有限状态机拥有有限个数量的状态,每个状态可以迁移到零个或多个状态,通过给出指令(跳转条件)进行迁移。
  • 典型的有限状态机:嵌入式系统(手机,电梯,家用电器,交通信号灯…);游戏(贪吃蛇);Web端软件系统(链接页面)
  • 状态:某个时间点的一种表现
  • 跳转条件:状态发生变化的输入
  • 迁移:状态发生变化的过程

状态迁移图法的使用步骤

  1. 将软件需求规格说明书划分成需求子片段
  2. 分析需求子片段,找出状态,跳转条件
  3. 设定一个初始状态,以圆圈(代表状态)为节点,以箭线(带跳转条件)为迁移方向画出状态迁移图
  4. 通过状态迁移图得到状态事件转换表(表头为:上一状态,跳转条件,下一状态,输出结果)
  5. 通过状态事件转换表得出状态事件转换树(以矩形框为节点)
  6. 通过状态转换树得出测试路径
  7. 添加异常测试路径
  8. 必要时结合等价类和边界值生成最终的测试用例

测试路径注意点:

测试路径就是指利用状态迁移图法和流程分析法,找出的测试步骤(方向)

完整测试路径必须从开头开始写,不能从中间开始写

当当前状态的下一个状态又回到了之前的状态,构成了一个循环,那么该条路径到此结束

测试路径中的基本路径指使用频率高的路径,主干路径,风险大的路径,基本路径的测试优先级要大于分支路径

案例

测试某播放器的播放功能:

状态:播放;停止;暂停

跳转条件:左键单击播放;左键单击停止;左键单击暂停

在这里插入图片描述

将迁移图转换为状态事件转换表:

上一状态跳转条件下一状态输出结果
停止左键单击播放播放音乐开始播放
停止左键单击停止停止音乐停止播放
停止左键单击暂停停止音乐停止播放
播放左键单击播放播放音乐重新播放
播放左键单击停止停止音乐停止播放
播放左键单击暂停暂停音乐暂停播放
暂停左键单击播放播放音乐重新播放
暂停左键单击停止停止音乐停止播放
暂停左键单击暂停播放音乐继续播放

表转换为树结构:

在这里插入图片描述

测试路径:

停止–停止;

停止–播放–停止;

停止–播放–播放;

停止–播放–暂停–停止;

停止–播放–暂停–播放

特点和适用范围

特点:比较直观,容易理解

适用范围:有限状态机

流程分析法

概念

针对用户对软件系统的使用业务场景进行测试,

如:在某宝购物过程,搜索–购物车–提交订单–支付–收货

借鉴了白盒测试方法中的语句覆盖法,将宏观的功能点取代语句,通过找测试路径去测试功能点是否被覆盖

流程分析法又叫场景测试法(Senario Testing)或用例测试法(Use Case Testing)

流程分析法的使用步骤

  1. 阅读软件需求规格说明书,熟悉软件系统
  2. 确定软件系统不同用户角色
  3. 找出软件系统的主要功能点
  4. 分析主要功能点之间的顺序关系,画出基本流程图
  5. 继续熟悉软件系统,找出一些次要的功能点
  6. 分析次要功能点之间以及与主要功能点之间的顺序关系,画出备选流程图
  7. 逐渐细化流程图,找出测试路径
  8. 分析测试路径,确定测试路径的优先级(基本流路径,使用频率高的路径,风险比较大的路径,这些路径优先级较高)
  9. 分析测试路径上的功能点,结合其他测试设计方法生成最终的测试用例

流程分析法也可以借助状态迁移图来分析

案例

ATM机取款流程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值