软件测试-根据状态迁移图设计测试用例

测试用例状态迁移图

许多需求用状态机的方式来描述,状态机的测试主要关注状态转移是否正确。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,是否可能产生非法的状态转移等。通过构造能导致状态迁移的事件来测试状态之间的转换,多用于协议测试,使用这种方法可以设计逆向的测试用例,如状态和事件的非法组合。

状态迁移图测试用例设计方法的步骤如下:

(1)画出状态迁移图

(2)列出状态-事件表

(3)画出状态转换树,并从状态转换树推导出测试路径

(4)根据测试路径编写测试用例

【实例】使用状态迁移分析法分析从提交到解决整个过程中,Bug 状态变化的情况

列出状态-事件表

根据状态迁移图画状态转换树

根据状态转换树可以推导出以下路径:

路径1:初始化→打开→修改→回归→打开。

路径2:初始化→打开→修改→回归→关闭。

路径3:初始化→打开→CCB 评审→非问题。

路径4:初始化→打开→CCB 评审→修改→打开。

路径5:初始化→打开→CCB 评审→挂起→打开。

路径6:初始化→重复问题关闭。

路径7:初始化→非问题关闭。

步骤4:根据测试路径编写测试用例,以路径6 为例,设计的测试用例

2 状态机的覆盖目标

状态机有不同的覆盖目标,带来不同的用例生成复杂度。

(1)状态覆盖:状态机中的每个状态至少访问一次;状态覆盖是最基本的覆盖目标。

(2)迁移覆盖:状态机中的每个迁移至少触发一次;迁移覆盖包含状态覆盖,实现迁移覆盖则必然实现了状态覆盖。

(3)状态格局覆盖:状态机包含层次、并发结构,在状态机运行的某个时刻,可能有多个状态处于激活状态,它们构成一个状态格局(state configuration)。实现状态格局覆盖,意味着被测系统所有可能的状态组合被覆盖。实现状态格局覆盖,必然实现了状态覆盖。

(4)状态格局迁移覆盖:即状态格局之间所有迁移至少触发一次。

除上述状态机覆盖目标外,还可进一步对迁移守卫条件(guard)进行覆盖,包括对guard的判定覆盖、MC/DC覆盖等。???

相关推荐
llilian_161 小时前
如何甄选专业级失真度测量仪校准装置
人工智能·功能测试·单片机·嵌入式硬件·测试工具·51单片机
llilian_1618 小时前
失真度测量仪校准 精准可靠的失真度校准检定测试仪筑牢检测根基 失真度检定装置
功能测试·单片机·嵌入式硬件·硬件工程
测试员周周21 小时前
【免费福利】AI测试:测试技能包进阶:造数、压测、视觉回归、CI 全流程串联
开发语言·人工智能·python·功能测试·测试工具·ci/cd·测试用例
qq 13740186111 天前
ISTA 3L 2023 电商包装安全测试与质量试验全解析
功能测试·安全·可用性测试·安全性测试
智擎软件测评小祺1 天前
功能检测前期准备:夯实检测高效开展的基础
功能测试·cma·第三方检测·cnas·功能检测
代码不停2 天前
软件测试分类
功能测试·可用性测试
测试员周周3 天前
【AI测试功能3】AI功能测试的三层架构:单元测试 → 集成测试 → E2E测试——AI系统测试金字塔实战指南
开发语言·人工智能·python·功能测试·架构·单元测试·集成测试
qq 13740186114 天前
GB/T 19450-2004 纸基平托盘 安全检测 + 质量检测全流程实操指南
功能测试·安全·可用性测试·安全性测试
测试员周周4 天前
【AI测试系统】第6篇:需求扔进去,3 分钟出测试用例?AI测试系统的 RAG 知识增强实战
人工智能·python·功能测试·测试工具·测试用例
测试员周周4 天前
【AI测试功能2】AI功能测试的“不可确定性“难题与应对思路:从精确断言到统计判定的完整方案
大数据·人工智能·python·功能测试·测试工具·单元测试·测试用例