一种对含有特殊转换过程的非通用有限状态机进行改造的方法

文档序号:8258337阅读:154来源:国知局
一种对含有特殊转换过程的非通用有限状态机进行改造的方法
【技术领域】
[0001]本发明属于系统测试领域,具体涉及一种对非通用有限状态机中的特殊转换过程进行改造的方法。
【背景技术】
[0002]软件测试目的是发现全部软件错误,在典型软件开发过程中,软件测试主要分为单元测试、集成测试、系统测试、回归测试四个阶段。由于测试工作具有庞大的工作量,占据了大量的资源,为了降低成本提升效率,人们提出了基于模型的自动化测试方式。该方式能够自动的从系统的设计规范得到测试方案,使用测试方案检验系统实现与设计规范是否等价,在一定程度上实现自动化,降低了测试成本。
[0003]有限状态机(FSM,Finite State Machine)模型是一种数学模型,该模型分为Moore机和Mealy机,本发明中提到的状态机均为Mealy机。FSM模型是由一个六元组(Q, X, Y, q_0, δ,Ο)组成的,其中:
[0004]Q,是有穷的状态集合;
[0005]X,是有穷的输入集合;
[0006]Y,是有穷的输出集合;
[0007]q_0 e Q,是FSM模型的初始状态;
[0008]δ:QXX—Q,是状态转换函数;
[0009]0:QXX —0,是输出函数。
[0010]在本专利中对符合上述定义的FSM称为通用FSM,对不符合定义的FSM称为非通用FSM。在软件测试过程中,通过采用FSM模型进行建模,可以精确刻画各阶段的软件系统行为。但由于FSM模型在描述大型系统时会出现不便,人们又提出了分层有限状态机(HFSM,Hierarchical Finite State Machine)模型。HFSM允许将FSM模型中的单个状态作为一个FSM,在此状态内可添加其他状态或FSM,从而实现分层模式。
[0011 ] 在实际测试过程中,大部分被测对象是具有特殊转换过程的非通用FSM,而目前的测试方案生成方法只适用于通用FSM模型,严重影响了 FSM的适用范围,因而本发明设计了一种将含有特殊转换过程的非通用FSM转化为通用FSM的方法。
[0012]此外,由于现阶段对非通用FSM的具体表现特征尚未做出定义,缺少可绘制FSM模型并同时生成测试方案的系统,本专利中同时解决了以上问题。

【发明内容】

[0013]本发明针对非通用FSM中的特殊转换,提出一种FSM模型改造方法,将非通用FSM模型转换为通用FSM模型。通过构建一组表示非通用FSM特点的特征图元,实现非通用有限状态机的XML文件存储化。
[0014]为实现上述目的,本专利的技术实现方案包括如下步骤:
[0015]步骤(I)构建非通用FSM特征图元及数据结构
[0016]具有特殊转换过程的非通用FSM是由状态、普通转换、特殊转换、子状态机组成的,在本专利中构建的特征图元及数据结构如下:
[0017]描述转换过程的转换线图元,其数据结构中含有唯一性图元ID、表示图元类别的标记符、转换激发条件、转换激发结果、所连接头节点和尾节点的图元ID、所属特殊转换类别;
[0018]表示状态的状态图元,其数据结构中含有唯一性图元ID、表示图元类别的标记符、状态名称;
[0019]包含状态及转换线的子状态机图元,表示HFSM中的子状态机。其数据结构中含有唯一性图元ID、表示图元类别的标记符、子状态机名称;
[0020]步骤(2)使用特征图元表示被测对象的执行流程,标记特殊转换过程
[0021]步骤(2.1)以状态图元表示被测对象执行过程中的运行状态;以转换线图元表示在被测对象不同状态之间的跳转方向,以及执行跳转所需的激发条件和激发结果;以子状态机图元表示被测对象中含有的模块和子流程;
[0022]步骤(2.2)在转换线图元上标记被测对象中含有的并行转换。标记过程为首先选中所有转换线图元,之后将头节点尾节点相同的转换线划分为同一组。如果该组转换线所属的头节点只在该组内所有转换线全部执行完毕之后,才可以跳转到下一状态,就将该组内的所有转换线图元标记为并行转换;
[0023]步骤(2.3)在转换线图元上标记被测对象中含有的次序转换。标记过程为逐一选中所有状态,获取以所选状态作为头节点的所有转换线,如果这些转换线有先后执行顺序,就标记这些转换线为次序转换;
[0024]步骤(2.4)在转换线图元上标记被测对象中含有的约束转换。标记过程为逐一选中所有状态,获取以所选状态作为尾节点的所有转换线,之后遍历这些转换线;如经过该转换线到达所选状态后,必须按照特定路径进行跳转,就将这条转换线标记为约束输入,将表示特定路径的转换线标记为约束输出;
[0025]步骤(3)对具有特殊转换过程的非通用有限状态机进行改造
[0026]步骤(3.1)对并行转换过程进行改造。改造方式是在并行转换的头结点、尾节点之间新建η-1个虚拟节点(η为并行转换条数),把并行转换依次利用虚拟节点连接,并更改并行转换的头尾节点;
[0027]步骤(3.2)对次序转换进行改造。首先按照次序转换优先级对转换进行排序,并在按序排列后的前后两条转换之间添加I个虚拟节点,总共添加η-1个,其中η为次序转换条数;之后复制I个次序转换头结点,将优先级最低的次序转换的尾节点改为复制的头结点,至此完成次序转换的通用化;
[0028]步骤(3.3)对约束转换过程进行改造,首先复制处于约束输入、约束输出之间的状态,复制的次数为到达该状态的约束输入条数;将每个约束输入的尾节点更改为复制的新状态中的任意一个,并更改约束输出的头结点为复制的新状态中的任意一个;最后在原状态处删除约束输出;
[0029]步骤⑷定义5个XML标签,在XML标签的文本位置中存储如下内容:
[0030]标签I文本内容:按照转换线图元ID的大小顺序,存储所有转换线的激发条件,单个激发条件的文本长度小于100个字符;
[0031]标签2文本内容:按照转换线图元ID的大小顺序,存储所有转换线的激发结果,单个激发结果的文本长度小于100个字符;
[0032]标签3文本内容:按照转换线图元ID的大小顺序,存储每个转换线图元的头节点ID、尾节点ID、激发条件、激发结果;
[0033]标签4文本内容:所有状态图元名称,单个状态图元名的文本长度小于10个字符;
[0034]标签5文本内容:所有子状态机图元名称,单个子状态机图元名的文本长度小于10个字符;
[0035]至此完成有限状态机信息XML存储化。最后,对改造后的非通用FSM进行边遍历,覆盖所有执行路径,得到测试方案。
[0036]本发明与现有技术相比,具有以下明显的优势和有益效果:
[0037]本发明通过对非通用FSM进行改造,使得具有特殊转换过程的非通用FSM也可适用于测试用例生成方案,扩充了有限状态机在软件测试各阶段中的适用范围。此外,构建了表示非通用FSM的特征图元及其数据结构,实现了非通用FSM的XML存储方式。
【附图说明】
[0038]图1实施例中web登陆及用户名修改的测试流程执行图;
[0039]图2符号化表示的含有特殊转换过程的非通用FSM图;
[0040]图3改造后的通用FSM;
[0041]图4实施过程的完整执行流程。
【具体实施方式】
[0042]下面将结合本发明实施例中的示意图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置不限制本发明的范围。
[0043]以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]对于相关领域普通技术人员已知的技术、方法和系统可能不作详细讨论,但在适当情况下,所述技术、方法和系统应当被视为授权说明书的一部分。
[0045]在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
[0046]通过使用本专利提出的方法,我们设计了一种非通用有限状态机测试方案生成系统,实现了对非通用有限状态机的绘制及改造过程,并可将非通用有限状态机信息存储为XML文件。在实际应用中,可将非通用FSM应用在测试工作的单元测试、集成测试、系统测试阶段中,测试人员根据被测对象的执行流程进行建模。本实施例中以Web登录及修改用户名过程为被测对象,步骤如下:
[0047]步骤1:确定非通用FSM特征图元的表示样式,按照被测对象执行流程进行非通用FSM建模
[0048]按照本专利提出的特征图元定义,用圆形表示状态图元;用箭头一曲线连接线表示转换线图元,箭头指向该转换线所连接尾节点,另一端指向头结点;用矩形表示子状态机图元。使用以上图形,按照被测对象执行流程,完成如图1中的非通用FSM建模。
[0049]在图1中,状态图元内标明了当前所处的状态名称;转换线图元标明了在当前状态下,输入激发条件后应当输出的激发结果,以及下一步应到达的状态;矩形代表程序的子模块。
[0050]为便于下文说明,将图1中的文字以图2中的符号进行代替,图1和图2完全等价。
[0051]步骤2:标记非通用FSM中的特殊转换过程
[0052]图2中的非通用FSM为符号化表示的Web登录及修改用户名执行过程,其中,状态s2与状态s3之间的a/Ι与b/0为2条并行转换,当这两条转换均执行完毕后,才到达状态s3 ;
[0053]状态sO射出的转换a/0,b/0为2条次序转换,且a/Ο优先权较高,优先执行a/Ο ;
[0054]状态s4经a/Ο到达状态s5后,必须通过a/Ι到达状态s6,而不能通过b/Ο到达状态s7。将s4的a/Ο及s5的a/Ι称为I个约束转换组,s4的a/Ο为约束输入,s5的a/1为约束输出。
[0055]步骤3:对特殊转换过程进行转换,改造非通用FSM<
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1