[发明专利]一种基于EFSM模型的最小成本测试用例生成方法有效

专利信息
申请号: 201811038172.2 申请日: 2018-09-06
公开(公告)号: CN109582558B 公开(公告)日: 2021-07-13
发明(设计)人: 王兴起;陈孔婷;张怀相;陈滨;方景龙;魏丹 申请(专利权)人: 杭州电子科技大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 杭州君度专利代理事务所(特殊普通合伙) 33240 代理人: 朱月芬
地址: 310018 浙*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种基于EFSM模型的最小成本测试用例生成方法。本发明基于扩展性有限状态机和集合划分的理论,设计了迁移覆盖算法,得到了迁移序列集合;并对两条迁移序列不同位置给出抽象模型,根据抽象模型进行分析,然后设计了约简合并算法,得到了最小测试序列集。再由最小测试序列集进行转换,得到有效测试路径集合,在转换的过程中采用逆向思维找出初始状态到某一状态的最短路径;本发明满足迁移覆盖准则,能规避无效测试路径和组合爆炸问题,能保证代码的覆盖率,且集合中测试路径个数达到最小,保证了测试成本和测试效率的平衡;不仅仅局限于EFSM模型,对于其它可抽象成有向图的模型同样适用,且对解决大型复杂网络图效果尤其显著。
搜索关键词: 一种 基于 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得到的有效测试路径上迁移所携带的数据信息进行实例化,得到最小测试用例集。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201811038172.2/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top