[发明专利]一种基于EFSM模型的最小成本测试用例生成方法有效
申请号: | 201811038172.2 | 申请日: | 2018-09-06 |
公开(公告)号: | CN109582558B | 公开(公告)日: | 2021-07-13 |
发明(设计)人: | 王兴起;陈孔婷;张怀相;陈滨;方景龙;魏丹 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 朱月芬 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 efsm 模型 最小 成本 测试 生成 方法 | ||
1.一种基于EFSM模型的最小成本测试用例生成方法,其特征在于包括如下步骤:
步骤1:通过解析存储EFSM数据信息的XML文档获取信息,并存入对应的数据结构中;
步骤2:经过迁移覆盖算法后生成的迁移片段集合SS;具体的实现方法如下:
(1)初始化数据,令要输出的迁移序列集合SS={},迁移集合T={ti|1≤i≤n},以及一个迁移序列ts=null;
(2)判断迁移集合T是否为空,若为空,返回SS,算法结束;若不为空,执行下一步;
(3)选取迁移集合T中第一条迁移t,令ts=<t>;T=T\t;
(4)遍历当前迁移集合T中所有的迁移ti,判断迁移序列ts是否能与ti有效连接,若ts能与ti有效连接,即连接后的迁移序列ts°ti或ti°ts能在模型M中找到,令ts=ts°ti或ts=ti°ts,更新迁移集合T=T\ti,直到集合T中迁移被遍历结束;
(5)遍历当前要输出的迁移序列集合SS中的每条迁移序列ssi,判断由(4)得到的迁移片段ts是否能与SS中的迁移序列ssi连接,若能,令ts=ts°ssi或ts=ssi°ts,且SS=SS\ssi,结束遍历;若不能连接,继续遍历SS中下条迁移序列;
(6)更新要输出的迁移序列集合SS和迁移序列ts,令SS=SS∪ts;ts=null;
(7)返回(2);
步骤3:对步骤2得到的迁移片段集合SS进行约简合并,得到没有冗余迁移或者冗余迁移量小的最小迁移覆盖集合SS1;具体的实现方法如下:
(1)获取由步骤2得到的迁移序列集合SS;
(2)初始化要输出的经过约简合并得到的迁移序列集合SS1,令SS1={};
(3)判断迁移序列集合SS是否为空,若为空,返回SS1,算法结束;若不为空,执行下一步;
(4)选取迁移序列集合SS中第一个迁移序列tsk,令SS=SS\tsk;
(5)判断迁移序列集合SS1是否为空,若为空,则SS1=SS1∪{tsk},转步骤(10);否则,执行下一步;
(6)遍历迁移序列集合SS1中的每条迁移序列tsi,若集合SS1被遍历完,执行步骤(9),若SS1未被遍历完,执行以下操作,若或有效,则令ts=tsk°tsi或ts=tsi°tsk;且更新集合SS1,令SS1=SS1\tsi;SS1=SS1∪ts,转步骤(10);若tsk和tsi连接无效,执行下一步;
(7)判断两条迁移序列tsk和tsi是否相交,若迁移序列tsk或tsi的开始状态和终止状态能在tsi或tsi中找到,则判定相交,反之不相交;若不相交,返回(6),若相交,再判断tsk和tsi是否是回路,若是回路,找到两条迁移序列的相交状态节点si,根据si将迁移序列tsk分为tsk-1和tsk-2,tsi分为tsi-1和tsi-2;如果tsi是回路,则SS1=SS1\tsi,SS1=SS1∪(tsk-1°tsi-2°tsi-1°tsk-2),若tsk是回路,则SS1=SS1\tsi,SS1=SS1∪(tsi-1°tskk-2°tsk-1°tsi-2),且转步骤(10);如果相交但两个迁移序列都不是回路,执行下一步;
(8)判断迁移序列tsk和tsi是否是以回路迁移片段结束,若tsk以回路片段结束,取迁移tsj,使得tsk°tsj°tsi在M中能被找到,且SS1=SS1\tsi,SS1=SS1∪(tsk°tsj°tsi);若tsi以回路片段结束,取迁移tsj,使得tsi°tsj°tsk在M中能被找到,且SS1=SS1\tsi,SS1=SS1∪(tsk°tsj°tsi),转步骤(10);若没有以回路迁移片段结束,若集合SS1未被遍历完,返回(6),否则执行下一步;
(9)找不到迁移序列tsi和tsk合并,则SS1=SS1∪tsk;执行下一步;
(10)返回(3),直到SS为空;
步骤4:对步骤3得到的SS1进行有效转换,得到有效测试路径状态集合S,以及对应的有效测试路径迁移集合T;具体实现如下:
(1)获取步骤3得到的最小迁移覆盖集合SS1,将SS1中的每条迁移序列转换为对应的状态序列,此时迁移序列集合SS1转换为状态序列集合S1;
(2)初始化有效测试路径状态集合S={}和有效测试路径迁移集合T={};
(3)遍历状态序列集合S1中的每条状态序列si,如果si中第一个状态不是初始状态,则从该状态采用逆向思维,运用广度优先搜索最先找到初始状态,即找到初始状态到该状态的最短路径,加入si前端,若si中最后一个状态不是终止状态,则运用广度优先搜索算法最先找到终止状态,把该片段加入si后端,此时si是有效测试路径,令S=S∪si;S1=S1\si;
(4)对得到的集合S进行转换,得到集合T;
步骤5:对步骤4得到的有效测试路径上迁移所携带的数据信息进行实例化,得到最小测试用例集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811038172.2/1.html,转载请声明来源钻瓜专利网。