有限状态机器测试(过渡游览法)

news2025/1/13 13:34:17

有限状态机器测试(过渡游览法)

测试相关概念—故障类型
行为由转换定义。 故障分为三种类型:
输出错误Output faults:错误的输出是由转换产生的。
状态转移错误State transfer faults:转移到错误的状态。
额外的状态Extra states(只有在有状态转移时才会发生故障)。

下面是一个附加状态的示例,它表示仅在状态转换时才会发生的故障情况:
让我们考虑一个简单的自动售货机。 自动售货机有以下状态:“空闲”、“接受硬币”、“分发物品”和“错误”。 这些状态之间的转换基于特定条件发生。
在这种情况下,我们可以引入一个称为“Error”的附加状态来表示仅在存在状态转换时才会发生的故障情况。 此状态表示在自动售货过程中出现了问题。

这是带有附加“错误”状态的状态转换示例:

1.空闲:
- 过渡:当硬币投入并达到正确数量时,过渡到“分发物品”。
- 转换:插入无效硬币时,转换为“错误”。

2.接受硬币:
- 过渡:当达到正确的数量时,过渡到“分发物品”。
- 转换:当用户按下取消按钮时,转换回“空闲”。
- 转换:如果在接受硬币时发生硬币堵塞或机器故障,则转换到“错误”。

三、配药项目:
- 过渡:分配物品后,过渡回“空闲”。

4.错误:
- 转换:错误条件得到解决或服务后,转换回“空闲”。

在此示例中,“错误”状态表示仅当存在与硬币接受或机器故障等问题相关的状态转换时才会发生的故障情况。 “错误”状态允许自动售货机通过进入指示发生故障的不同状态来处理异常情况并从中恢复。
请注意,这只是一个示例,自动售货机的具体实现和行为可能会有所不同。 引入附加状态来处理状态转换期间发生的故障情况的概念可以应用于需要错误处理的各种系统和场景。

找茬Finding faults
考虑前两种故障。
输出故障:可以通过简单地执行故障来发现过渡。
状态转移错误:要求我们执行转移和表明已经达到了错误的状态。 我们需要识别或分离状态的方法。
我们将看到第二个问题的解决方案(发现状态转移错误)帮助我们找到额外的状态。

区分状态–Separating Two States
FSM M 的两个状态 s 和 s0 被输入分开序列 x 如果:M 对 x 的响应在状态 s 是不同的和 s0 (λ^(s, x) /= λ^(s0, x))表示状态s和s0产生的输出不相等。
如果存在这样的输入序列 x,则称 s 和 s0 是可分离的。
如果状态 s 和 s0 是等价的,则称它们是不可分离的。

区分状态示例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
FSM 等价性Equivalence 和极小性Minimality
如果两个 FSM 的初始状态是等价的,则它们是等价的。
如果 FSM M 不小于(根据states数量) FSM 定义了相同的正则语言。
注意:如果 FSM M 是初始连接的,那么它是最小的,如果
且仅当 没有一对 M 的不同状态是等价的。

重置Resets
复位(或复位操作)是将 FSM 用于初始状态与当前状态无关。
可靠的重置是已知会占用系统的重置正在测试其初始状态(已正确实施)。

共同假设Common Assumptions
许多测试技术(以及我们将涵盖的所有技术)假设 FSM 规范 M 是:
(1)确定性deterministic。
(2)完全指定completely-specified。 注意:我们通常可以通过完成使部分 FSM 完全指定。
(3)强连接strongly connected。
(4)最小化minimal。 注意:我们可以将任何 FSM 转换为等效的最小 FSM。
某些方法假设 M 具有可靠的复位操作

过渡游览主要与确定性有限状态机 (DFSM) 相关联
因为 DFSM 对状态和输入符号的每个组合都有定义明确且唯一的过渡。 确定性属性确保对于给定的状态和输入符号,只有一个可能的下一个状态。
过渡之旅涉及遍历 FSM 的状态和过渡,以涵盖输入和路径的所有可能组合。 过渡之旅的目的是确保 FSM 中的每个过渡都得到执行和测试,以验证其正确性和功能性。

过渡游览法Transition Tour Method
给定一个 FSM M,过渡游览方法包括:
从 M 的初始状态找到一条路径(转移序列)ρ,其中包括 M 的所有转移。
测试序列是 ρ 的标签:对应的输入/输出序列。
显然,只要没有状态转移故障,transition tour 方法可以保证找到输出故障。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

生成过渡之旅
可以应用一种简单的启发式方法,例如:
在当前状态 s 中,如果从 s 有一个转移 t 还没有被包含然后添加 t 当前路径和更新当前状态。
否则,遵循从 s 将 M 移动到具有至少一个未覆盖转换的状态的最短路径。
或者,我们可以使用图形算法(我们正在寻找包含所有边的路径)。这些可以返回最佳(最短)的过渡路线在多项式时间。

观察过渡之旅
过渡之旅可能找不到状态转移错误
为了找到状态传输错误,我们需要能够检查状态。
在黑盒测试中,这需要找到合适的输入序列。
我们可以通过区分可能状态的序列来跟踪每个转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医院检验科检验系统(LIS)源码:临检、生化、免疫、微生物

一、检验科检验系统 (LIS)概述:对接HIS,医生工作站能够方便、及时的查阅患者检验报告。 二、检验科检验系统 (LIS)主要功能描述: 1.质控品管理: 医院设备质控(编码、设…

数据结构入门7-2(散列表)

注 本笔记参考:《数据结构(C语言版)(第2版)》 散列表的基本概念 像基于线性表、数表的查找方式,往往都是以关键字的比较为基础的。这种比较方式在遇到结点数量很多的情况时就会暴露其的弊端:需要…

vue3-实战-03-管理后台路由分析搭建和登录模块开发

1-路由的搭建 先分析模块,搭建一些基础的路由信息,我们分析需要登录页面路由,登录成功后展示数据路由,404页面路由,以及我们输入错误的路径的我们需要重定向到404路由。配置好相关路由之后,我们需要在入口文…

基于 ESP32-H2 构建高性价比的安全物联网设备

如今,人们对网联设备安全性的认识和关注不断增加。在欧盟《网络弹性法案》也即将生效的,为网联设备增加硬件层面的安全功能非常重要。 乐鑫 ESP32-H2 致力于为所有开发者提供高性价比的安全解决方案,这款芯片经过专门设计以集成多种安全功能…

【java】java访问https并验证账号密码

java访问https,获取页面或者数据时,需要证书和账号密码的验证。 一 获取CRT证书 获取网站的证书,拿到证书后可能是crt格式,可以使用下面的命令转为p12格式 openssl pkcs12 -export -in Mycert.crt -inkey Mykey.key -out Mycer…

0基础学习VR全景平台篇第35篇:场景功能-细节

本期为大家带来蛙色VR平台,场景管理—细节功能操作。 功能位置示意 一、本功能将用在哪里? 细节功能,用于展示VR漫游作、大像素、高清矩阵作品中细微不容易发现,但却又比较有亮点或者能起到关键作用的画面。 通过在全景图中添加…

javaWeb ssh课程资源网站myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh课程资源网站系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。开发环境为TOMCAT7.…

字节的测试面试题,你觉得很难吗?不是有手就行....

年前的时候,我的一个粉丝跟我说,他在面试美团的自动化测试岗的时候,不幸挂掉了。 越想越可惜,回想面试经过,好好总结了几个点,发现面试没过的主要原因是在几个关键的问题没有给到面试官想要的答案 字节的…

6-HEX, SE,引物荧光标记试剂,胺反应性琥珀酰亚胺酯,广泛用于nucleic acid测序和相关研究

6-HEX, SE | 6-HEX,SE [6-羧基-2,4,4,5,7,7-六氯荧光素,琥珀酰亚胺酯] |CAS:N/A | 纯度:95% (文章资料汇总来源于:陕西新研博美生物科技有限公司小编MISSwu)​ 结构…

Android Cannot resolve symbol 找不到资源解决方案

一、介绍 在android开发中,我们经常会发现依赖了系统提供的库,但是无法引用,或者找不到, Cannot resolve symbol style/Theme.AppCompat.NoActionBar ,报红。这些最经典的无法加载。 出现这个原因并不是你项目的原因&…

手把手教你如何正确永久使用Microsoft Office365?

office2019和office 365有什么区别的呢?为什么越来越多的人更加钟爱office365。简单来说office 2019的零售版本属于一次售出永久使用,价格上比较贵,而且功能上也不会再有更新。而office 365是一种基于云的订阅服务,我们花钱买的是…

Datax同步MySQL到ES

Datax同步MySQL到ES 1、在MySQL中建表2、在ES建立索引3、构建从MySQL到ES的Datax的Json任务4、运行mysql2es.json脚本以下是工作中做过的ETL,如有需要,可以私信沟通交流,互相学习,一起进步 1、在MySQL中建表 建表语句 CREATE TABL…

如何在Flutter 中启用空安全

目录 Step 1: 开启空安全设置 Step 2:检查可升级的三方库 Step 3:升级三方库 Step 4:代码适配支持空安全 Step 1: 开启空安全设置 Flutter 2默认启用了空安全,所以通过Flutter 2创建的项目是已经开启了空安全的检查的,不知道自己是什么版本的可以通…

【MCS-51单片机汇编语言】期末复习总结①——常见指令汇总(题型一)

文章目录 七大寻址方式重要指令转移堆栈加减乘除位操作跳转条件转移子程序常考题型 七大寻址方式 立即寻址:通过一个立即数来指定存储单元的地址,例如#41H;寄存器寻址:Rn(n0~7),A,B&#xff0c…

自学软件测试,一般人我劝你还是算了吧

软件测试自学是完全可以的,但是这句话并不代表人人都可以自学。 想转行软件测试,纯自学会遇到以下8个问题: 1、自学需要很高的自律性,你能做到吗? 2、自学在学习过程中会碰到很多困难,你都能解决吗&#xf…

直播入门手册

直播除了带货,现在越来越成了分享知识,增近主播和粉近距离互动的平台。最近看到抖音上越来越多的主播进行编程经验的分享,这是一个很好的传播知识的方式,以前我们学习编程技术一般看视频,其实视频的互动性没有直播那么…

智能家居数据分析:语音交互为用户偏好模式,使用最高达72%

哈喽大家好,近些年来,智能家居行业的发展无比迅速,同时,最近两年来人工智能技术的不断突破,对智能家居有着无与伦比的推动力。本期将为大家介绍下智能家居的行业形势。 通过数据可视化平台把报表数据处理后展示出来的…

(4)NUC980 RootFs

Buildroot是一个开源的嵌入式Linux系统构建工具,它可以帮助用户自动化构建Linux系统的各个部分,包括Linux内核、库、文件系统、应用程序等。通过Buildroot,用户可以根据需要选择和配置所需的软件包,从而构建一个定制化的Linux系统…

Nginx网站服务——编译安装及系统服务添加

Nginx网站服务——编译安装及系统服务添加 一、Nginx的相关知识1.Nginx的简介2. Apache与Nginx的区别3.Apache的优势4.Nginx的优势 二、Nginx编译安装1.关闭防火墙,将安装nginx所需软件包传到/opt目录下2.安装相关的依赖包3.创建运行用户、组4.编译安装Nginx5.检查、…

【Rust学习】web框架 Axum,提供REST API

cargo-watch:有修改就重启服务器,类似java web的热部署 安装:cargo install cargo-watch 使用:cargo watch -x run 这样每次有修改就会自动重启web服务 vscode插件Thunder Client(类似postman) hello,world 建议用cargo add的方式添加 […