法律状态公告日
法律状态信息
法律状态
2017-07-14
授权
授权
2015-05-27
实质审查的生效 IPC(主分类):G06F11/36 申请日:20141230
实质审查的生效
2015-04-29
公开
公开
技术领域
本发明属于系统测试领域,具体涉及一种对非通用有限状态机中的特殊转换 过程进行改造的方法。
背景技术
软件测试目的是发现全部软件错误,在典型软件开发过程中,软件测试主要 分为单元测试、集成测试、系统测试、回归测试四个阶段。由于测试工作具有庞 大的工作量,占据了大量的资源,为了降低成本提升效率,人们提出了基于模型 的自动化测试方式。该方式能够自动的从系统的设计规范得到测试方案,使用测 试方案检验系统实现与设计规范是否等价,在一定程度上实现自动化,降低了测 试成本。
有限状态机(FSM,Finite State Machine)模型是一种数学模型,该模型分 为Moore机和Mealy机,本发明中提到的状态机均为Mealy机。FSM模型是由 一个六元组(Q,X,Y,q_0,δ,O)组成的,其中:
Q,是有穷的状态集合;
X,是有穷的输入集合;
Y,是有穷的输出集合;
q_0∈Q,是FSM模型的初始状态;
δ:Q×X→Q,是状态转换函数;
O:Q×X→O,是输出函数。
在本专利中对符合上述定义的FSM称为通用FSM,对不符合定义的FSM称 为非通用FSM。在软件测试过程中,通过采用FSM模型进行建模,可以精确刻 画各阶段的软件系统行为。但由于FSM模型在描述大型系统时会出现不便,人 们又提出了分层有限状态机(HFSM,Hierarchical Finite State Machine)模 型。HFSM允许将FSM模型中的单个状态作为一个FSM,在此状态内可添加其他 状态或FSM,从而实现分层模式。
在实际测试过程中,大部分被测对象是具有特殊转换过程的非通用FSM,而 目前的测试方案生成方法只适用于通用FSM模型,严重影响了FSM的适用范围, 因而本发明设计了一种将含有特殊转换过程的非通用FSM转化为通用FSM的方 法。
此外,由于现阶段对非通用FSM的具体表现特征尚未做出定义,缺少可绘 制FSM模型并同时生成测试方案的系统,本专利中同时解决了以上问题。
发明内容
本发明针对非通用FSM中的特殊转换,提出一种FSM模型改造方法,将非通 用FSM模型转换为通用FSM模型。通过构建一组表示非通用FSM特点的特征图元, 实现非通用有限状态机的XML文件存储化。
为实现上述目的,本专利的技术实现方案包括如下步骤:
步骤(1)构建非通用FSM特征图元及数据结构
具有特殊转换过程的非通用FSM是由状态、普通转换、特殊转换、子状态机 组成的,在本专利中构建的特征图元及数据结构如下:
描述转换过程的转换线图元,其数据结构中含有唯一性图元ID、表示图元 类别的标记符、转换激发条件、转换激发结果、所连接头节点和尾节点的图元 ID、所属特殊转换类别;
表示状态的状态图元,其数据结构中含有唯一性图元ID、表示图元类别的 标记符、状态名称;
包含状态及转换线的子状态机图元,表示HFSM中的子状态机。其数据结构 中含有唯一性图元ID、表示图元类别的标记符、子状态机名称;
步骤(2)使用特征图元表示被测对象的执行流程,标记特殊转换过程
步骤(2.1)以状态图元表示被测对象执行过程中的运行状态;以转换线图 元表示在被测对象不同状态之间的跳转方向,以及执行跳转所需的激发条件和激 发结果;以子状态机图元表示被测对象中含有的模块和子流程;
步骤(2.2)在转换线图元上标记被测对象中含有的并行转换。标记过程为 首先选中所有转换线图元,之后将头节点尾节点相同的转换线划分为同一组。如 果该组转换线所属的头节点只在该组内所有转换线全部执行完毕之后,才可以跳 转到下一状态,就将该组内的所有转换线图元标记为并行转换;
步骤(2.3)在转换线图元上标记被测对象中含有的次序转换。标记过程为 逐一选中所有状态,获取以所选状态作为头节点的所有转换线,如果这些转换线 有先后执行顺序,就标记这些转换线为次序转换;
步骤(2.4)在转换线图元上标记被测对象中含有的约束转换。标记过程为 逐一选中所有状态,获取以所选状态作为尾节点的所有转换线,之后遍历这些转 换线;如经过该转换线到达所选状态后,必须按照特定路径进行跳转,就将这条 转换线标记为约束输入,将表示特定路径的转换线标记为约束输出;
步骤(3)对具有特殊转换过程的非通用有限状态机进行改造
步骤(3.1)对并行转换过程进行改造。改造方式是在并行转换的头结点、 尾节点之间新建n-1个虚拟节点(n为并行转换条数),把并行转换依次利用虚 拟节点连接,并更改并行转换的头尾节点;
步骤(3.2)对次序转换进行改造。首先按照次序转换优先级对转换进行排 序,并在按序排列后的前后两条转换之间添加1个虚拟节点,总共添加n-1个, 其中n为次序转换条数;之后复制1个次序转换头结点,将优先级最低的次序转 换的尾节点改为复制的头结点,至此完成次序转换的通用化;
步骤(3.3)对约束转换过程进行改造,首先复制处于约束输入、约束输出 之间的状态,复制的次数为到达该状态的约束输入条数;将每个约束输入的尾节 点更改为复制的新状态中的任意一个,并更改约束输出的头结点为复制的新状态 中的任意一个;最后在原状态处删除约束输出;
步骤(4)定义5个XML标签,在XML标签的文本位置中存储如下内容:
标签1文本内容:按照转换线图元ID的大小顺序,存储所有转换线的激发 条件,单个激发条件的文本长度小于100个字符;
标签2文本内容:按照转换线图元ID的大小顺序,存储所有转换线的激发 结果,单个激发结果的文本长度小于100个字符;
标签3文本内容:按照转换线图元ID的大小顺序,存储每个转换线图元的 头节点ID、尾节点ID、激发条件、激发结果;
标签4文本内容:所有状态图元名称,单个状态图元名的文本长度小于10 个字符;
标签5文本内容:所有子状态机图元名称,单个子状态机图元名的文本长度 小于10个字符;
至此完成有限状态机信息XML存储化。最后,对改造后的非通用FSM进行边 遍历,覆盖所有执行路径,得到测试方案。
本发明与现有技术相比,具有以下明显的优势和有益效果:
本发明通过对非通用FSM进行改造,使得具有特殊转换过程的非通用FSM 也可适用于测试用例生成方案,扩充了有限状态机在软件测试各阶段中的适用范 围。此外,构建了表示非通用FSM的特征图元及其数据结构,实现了非通用FSM 的XML存储方式。
附图说明
图1实施例中web登陆及用户名修改的测试流程执行图;
图2符号化表示的含有特殊转换过程的非通用FSM图;
图3改造后的通用FSM;
图4实施过程的完整执行流程。
具体实施方式
下面将结合本发明实施例中的示意图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全 部的实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件 和步骤的相对布置不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本 发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范 围。
对于相关领域普通技术人员已知的技术、方法和系统可能不作详细讨论,但 在适当情况下,所述技术、方法和系统应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的, 而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
通过使用本专利提出的方法,我们设计了一种非通用有限状态机测试方案生 成系统,实现了对非通用有限状态机的绘制及改造过程,并可将非通用有限状态 机信息存储为XML文件。在实际应用中,可将非通用FSM应用在测试工作的单元 测试、集成测试、系统测试阶段中,测试人员根据被测对象的执行流程进行建模。 本实施例中以Web登录及修改用户名过程为被测对象,步骤如下:
步骤1:确定非通用FSM特征图元的表示样式,按照被测对象执行流程进行 非通用FSM建模
按照本专利提出的特征图元定义,用圆形表示状态图元;用箭头—曲线连接 线表示转换线图元,箭头指向该转换线所连接尾节点,另一端指向头结点;用矩 形表示子状态机图元。使用以上图形,按照被测对象执行流程,完成如图1中的 非通用FSM建模。
在图1中,状态图元内标明了当前所处的状态名称;转换线图元标明了在当 前状态下,输入激发条件后应当输出的激发结果,以及下一步应到达的状态;矩 形代表程序的子模块。
为便于下文说明,将图1中的文字以图2中的符号进行代替,图1和图2 完全等价。
步骤2:标记非通用FSM中的特殊转换过程
图2中的非通用FSM为符号化表示的Web登录及修改用户名执行过程,其中, 状态s2与状态s3之间的a/1与b/0为2条并行转换,当这两条转换均执行完毕 后,才到达状态s3;
状态s0射出的转换a/0,b/0为2条次序转换,且a/0优先权较高,优先执 行a/0;
状态s4经a/0到达状态s5后,必须通过a/1到达状态s6,而不能通过b/0 到达状态s7。将s4的a/0及s5的a/1称为1个约束转换组,s4的a/0为约束 输入,s5的a/1为约束输出。
步骤3:对特殊转换过程进行转换,改造非通用FSM
实施例中对图2的非通用FSM进行转换,过程如下:
步骤(3.1)对并行转换改造过程是首先添加虚拟节点1,之后进行如下操 作:
为虚拟节点1生成一个负图元ID;修改转换a/0尾结点为虚拟状态1的ID; 修改转换b/0头节点为虚拟状态1的ID。
步骤(3.2)对次序转换进行改造。过程是首先按照次序转换的优先级对转 换进行排序,并在按序排序后的两条转换之间添加1个虚拟节点2,之后进行如 下操作:
为虚拟节点2生成一个负图元ID;复制原始状态s0,赋予新状态s0’正图 元ID;修改优先权较高的转换a/0尾结点为虚拟节点2的ID;修改优先权较低 的转换b/0头节点为虚拟节点2的ID;修改优先权较低的转换b/0尾节点为新 状态s0’的ID;修改由s0射出的转换c/1头节点为新状态s0’的ID。
步骤(3.3)对约束转换进行改造。过程是首先复制状态s5,由于约束转换 组中到达状态s5的约束输入为1条,因此只复制1个s5。之后将复制的新状态 s5’分配给该约束转换组中的约束输入a/0,之后执行如下过程:
赋予新状态s5’正图元ID;将指向状态s6的约束输出a/1头结点ID改为 s5’的ID;将由状态s4射出的约束输入a/0尾节点ID改为s5’的ID;由于s5 上的c/0又射回s5,不影响转换过程,因此在s5’上复制c/0;修改s5’的转 换c/0头节点ID为s5’的ID;修改s5’的转换c/0尾节点ID为s5’的ID。 最后,在状态s5处删除约束输出a/1。
图3即为改造后的通用FSM模型。
步骤4:解析改造后的非通用FSM,定义XML标签,存储特征图元数据
实施例中定义了发明内容中所要求的5个标签:
<name>标签,文本内容为子状态机名称。
<states>标签,表示一个状态机中的状态名称列表。标签文本内容中首位为 数字,代表此状态机中的状态个数;后面代表状态机中各状态名称,状态名之间 以“,”作为分隔符。
<inputs>标签,表示一个状态机中的所有转换激发条件。标签文本内容中首 位数字代表此状态机激发条件的总个数,后面代表各激发条件名称,条件之间以 “,”作为分隔符。
<outputs>标签,表示一个状态机的所有激发结果。标签文本内容中首位数 字代表激发结果总个数,之后表示各激发结果的名字,结果之间以“,”作为分 隔符。
<transition>标签,表示一个状态机的所有转换线信息。标签文本内容为描 述每条转换线的四个元素,分别是头节点ID、尾节点ID、激发条件、激发结果, 不同元素之间以“,”作为分隔符,不同转换线之间亦用“,”作为分隔符。
此外,实施例中还定义了一些仅对当前被测对象有效的辅助性标签:
<hfsm type="HFSM">标签,表示此文件描述的是分层有限状态机;<fsm>标 签,表示一个有限状态机模型;<init_state>标签,文本内容为一个状态机的起 点状态名称。
步骤5:生成测试结果
对改造后的通用FSM生成测试方案结果为:
输入序列为aabcebba时,若输出结果为10011100,则执行的路径为开 始>>s0>>次序转换a/0>>次序转换b/0>>cm1>>cm2>>s5>>s7>>s0。
输入序列为aabcebc时,若输出结果为1001110,则执行的路径为开始>>s0>> 次序转换a/0>>次序转换b/0>>cm1>>cm2>>s5>>自循环转换c/0>>s5。
输入序列为aabcaabaaab时,若输出结果为10011101011,则执行的路径为 开始>>s0>>次序转换a/0>>次序转换b/0>>cm1>>s2>>并行转换a/1>>并行 转换b/0>>s3>>s4>>s5>>约束转换a/1>>s6>>cm2。
输入序列为aabcaabaaac时,若输出结果为10011101011,则执行的路径为 开始>>s0>>次序转换a/0>>次序转换b/0>>cm1>>s2>>并行转换a/1>>并行 转换b/0>>s3>>s4>>s5>>约束转换a/1>>s6>>自循环转换c/1>>s6。
子状态机cm1的测试方案为:
输入序列为a时,若输出结果为1,则执行路径为s1-0>>s1-1。
子状态机cm2的测试方案为:
输入序列为cd时,若输出结果为01,则执行的路径为s2-0>>s2-1。
最后,将上述符号替换回对应的文字,既可得到测试方案。
以上过程即是本专利设计的对非通用FSM特殊转换过程进行改造的方法。使 用此方法改造非通用FSM后,可以XML格式存储改造后的通用FSM,并得到测试 方案。
机译: 开发一种具有特殊物理和化学特性的特殊基质,从核到在安全过程中的使用,方法是将核燃料元素掺入辐照后的事件中进行损坏
机译: 至少含有一种在SSA中具有两个或多个分泌系统基因的沙门氏菌灭活细菌的疫苗,可用于对非啮齿动物的动物进行免疫或减少感染过程中细菌传播的数量或持续时间。
机译: 一种将非粘附性柔性层状材料转换为通常粘附到其上的表面的过程。 (通过Google翻译进行机器翻译,没有法律约束力)