CN109582558A - 一种基于efsm模型的最小成本测试用例生成方法 - Google Patents

一种基于efsm模型的最小成本测试用例生成方法 Download PDF

Info

Publication number
CN109582558A
CN109582558A CN201811038172.2A CN201811038172A CN109582558A CN 109582558 A CN109582558 A CN 109582558A CN 201811038172 A CN201811038172 A CN 201811038172A CN 109582558 A CN109582558 A CN 109582558A
Authority
CN
China
Prior art keywords
migration
series
state
migration series
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811038172.2A
Other languages
English (en)
Other versions
CN109582558B (zh
Inventor
王兴起
陈孔婷
张怀相
陈滨
方景龙
魏丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201811038172.2A priority Critical patent/CN109582558B/zh
Publication of CN109582558A publication Critical patent/CN109582558A/zh
Application granted granted Critical
Publication of CN109582558B publication Critical patent/CN109582558B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

本发明涉及一种基于EFSM模型的最小成本测试用例生成方法。本发明基于扩展性有限状态机和集合划分的理论,设计了迁移覆盖算法,得到了迁移序列集合;并对两条迁移序列不同位置给出抽象模型,根据抽象模型进行分析,然后设计了约简合并算法,得到了最小测试序列集。再由最小测试序列集进行转换,得到有效测试路径集合,在转换的过程中采用逆向思维找出初始状态到某一状态的最短路径;本发明满足迁移覆盖准则,能规避无效测试路径和组合爆炸问题,能保证代码的覆盖率,且集合中测试路径个数达到最小,保证了测试成本和测试效率的平衡;不仅仅局限于EFSM模型,对于其它可抽象成有向图的模型同样适用,且对解决大型复杂网络图效果尤其显著。

Description

一种基于EFSM模型的最小成本测试用例生成方法
技术领域
本发明主要涉及软件测试领域,具体涉及一种基于扩展有限状态机(EFSM)模型的最小成本测试用例集生成方法。
背景技术
软件测试是发现软件中的错误、保证软件质量的一种重要手段。目前软件测试在实际应用中依然是个开销极大的工作,它占据着软件开发成本中的极大一部分。传统测试人员通过手工设计并运行测试用例,检查输出结果与预期结果是否一致也需要依靠人工完成。随着软件规模和开源软件代码的不断扩大,数十万数百万行代码的软件出现的频率越来越高,依靠人工测试不仅效率极端低下,测试成本高且测试质量很难保证,因此自动化软件测试是目前软件测试的发展趋势,其中基于模型的测试是测试自动化研究的一个重要方向。但是,对于测试用例自动生成而言,最大的问题是如何挑选出测试用例集,使该测试用例集能在拥有良好的测试覆盖率的前提下,减少软件测试的成本。
针对程序行为覆盖的测试用例集优化技术被分为测试用例集最小化优化技术,测试用例优先级和测试用例选择技术。国内外的研究学者针对测试用例集最小化优化技术做了大量的相关研究工作,基于模型的测试一般操作是根据程序代码将程序转换为某种模型,针对转化后得到的模型进行各种启发式或搜索算法从而得到精简后的测试用例集。许多启发式和搜索算法以及在这些算法上进行的改进算法都已经相当成熟,而且都能得到较小的测试用例集。
然而这些启发式和搜索算法仍存在一定的局限性,比如:一个百万级别的代码软件或千万级别的测试数据转换出的测试模型复杂而且庞大,利用启发式算法和搜索算法收敛和查询速度慢,导致得到最优解的效率低下,且最后得到的测试用例集虽然较小,但不一定是最小的。这些技术运用到基于大型复杂模型的软件测试时不仅仅测试成本高、测试效率低,且无法保证能取得良好的效果。
发明内容
本发明针对复杂的测试模型,提出一种基于EFSM模型的最小成本测试用例生成方法。
基于EFSM模型的最小成本测试用例生成方法不仅能发现一个最小的有效测试序列集合,而且能快速找出模型中存在的环路迁移序列。在实际测试中,软件的错误往往集中在某个或者某几个模块,利用本发明方法可以花费最小的代价测试模型中的所有迁移,针对软件出错的部分可以通过对出错所在测试序列实例化即重点设计测试用例,以达到对出错部分进行集中测试,使得基于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未被遍历完,执行以下操作,若tsk°tsi或tsi°tsk有效,则令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得到的有效测试路径上迁移所携带的数据信息进行实例化,得到最小测试用例集。
本发明的有益效果:
1、根据EFSM模型进行测试用例集生成,生成的测试用例集合冗余迁移较小且测试用例数目最少,在减少测试成本的同时保证代码覆盖率,使得测试效率高。该测试用例集生成方法避免了在测试用例生成过程中组合爆炸问题,对复杂的模型效果尤其显著。
2、由本发明步骤2迁移覆盖算法生成出的迁移片段集合,可将这些迁移片段转换成对应的状态片段集合,由状态片段集合很容易找出该模型中存在的环路和回路路径。
3、本发明步骤4第3步,采用逆向思维找出初始状态到某一状态的最短路径,对搜索初始状态到某一状态的路径进行了间接剪枝,提高了搜索的效率。
附图说明
图1为基于EFSM模型的最小成本测试用例生成方法的方法流程图;
图2为基于EFSM模型的最小成本测试用例生成方法的整体模块框图;
图3为某无人机飞控系统某模块约简出的EFSM模型图;
图4为迁移覆盖算法的具体流程图;
图5为两条测试序列不同位置的抽象模型图;
图6为合并约简冗余测试序列的具体流程图。
具体实施方式
下面根据附图对本发明进行描述,所举实例是由一个无人机飞控系统某模块约简出的EFSM模型图,如图3所示。该实例只用于解释本发明,并非用于限定本发明的范围。
图1为基于EFSM模型的最小成本测试用例生成方法的方法流程图;图2为图1对应的生成方法的整体模块框图;本发明整体流程图如图1所示,具体步骤如下:
步骤1:根据程序代码构建初始的可扩展有限状态机模型EFSM,并采用XML文档存储,解析XML文档存入对应数据结构中;
步骤2:对EFSM模型进行迁移覆盖算法,得到迁移片段集合;
步骤3:步骤2得到的迁移片段集合并非最简,需要对其进行约简合并操作,此时得到最小迁移覆盖集合;
步骤4:对最小迁移覆盖集合中每条迁移序列进行有效转换,得到有效测试路径;
步骤5:对测试路径上数据进行实例化操作,可得到最小测试用例集。
上述步骤1对应图2模型构建模块,步骤2、步骤3和步骤4对应图2有效测试路径生成模块,步骤5对应图2测试用例生成模块。
在步骤1中,根据代码转换得到的EFSM模型图如附图图3所示。
进一步,在步骤2中,对测试模型进行迁移覆盖算法,迁移覆盖算法的具体流程图如附图图4,所述步骤2详细操作如下:
步骤2-1:初始化数据,令要输出的迁移序列集合SS={},迁移集合T={ti|1≤i≤15},以及一个迁移序列ts=null;
步骤2-2:集合T不为空,选第一条迁移t1,则ts=<t1>;T={t1|2≤i≤15};
步骤2-3:遍历T中迁移,选取t2,ts能与t2有效连接,此时ts=<t1t2>;T={ti|3≤i≤15};选取t3,ts能与t3有效连接,此时ts=<t1t2t3>;T={ti|4≤i≤15};选取t4,ts与t4不能有效连接;选取t5,ts能与t5有效连接,此时ts=<t1t2t3t5>;T={ti|6≤i≤15||i=4};以此类推,最后ts=<t1t2t3t5t11t12>;T={t4,t6,t7,t8,t9,t10,t13,t14,t15};
步骤2-4:集合SS为空,则SS={<t1t2t3t5t11t12>};ts=null;
步骤2-5:集合T不为空,选第一条迁移t4,则ts=<t4>;T={t6,t7,t8,t9,t10,t13,t14,t15};
步骤2-6:遍历集合T,选取t6,ts能与t6有效连接,此时ts=<t4t6>;T={t7,t8,t9,t10,t13,t14,t15};类推,最后ts=<t4t6t7t8>;T={t9,t10,t13,t14,t15};
步骤2-7:遍历集合SS,选取ss1,ts不能与ss1有效连接,此时SS={<t1t2t3t5t11t12>,<t4t6t7t8>};ts=null;
步骤2-8:集合T不为空,选第一条迁移t9,则ts=<t9>;T={t10,t13,t14,t15};
步骤2-9:遍历集合T,选取t10,ts与t10不能有效连接;选取t13,ts与t13不能有效连接;类推,最后ts=<t9t15>;T={t10,t13,t14};
步骤2-10:遍历集合SS,选取ss1,ts不能与ss1有效连接;选取此时SS={<t1t2t3t5t11t12>,<t4t6t7t8>};ts=null;
步骤2-11:类推,最后SS={<t1t2t3t5t11t12>,<t4t6t7t8>,<t9t15>,<t10>,<t13>,<t14>};
进一步,可发现步骤2中存在某两条迁移序列可以合并成一条迁移序列,经过分析得到两条迁移序列不同位置的抽象模型图,如附图图5。在图5中,(a)(b)是直接能有效连接,但经过迁移覆盖算法不会出现这两种情况,因此不考虑。图5中,(c)(d)(e)(f)(g)是可以和并的几种情况,(h)是不能合并的情况。针对以上几种情况,设计了合并约简冗余迁移序列的算法,即步骤3。该算法具体流程图如附图图6,步骤3具体的操作过程如下:
步骤3-1:步骤2得SS={<t1t2t3t5t11t12>,<t4t6t7t8>,<t9t15>,<t10>,<t13>,<t14>};令约简合并后的迁移序列集合SS1={};
步骤3-2:SS不为空,选取第一条迁移序列,此时SS1为空,则SS={<t4t6t7t8>,<t9t15>,<t10>,<t13>,<t14>};SS1={<t1t2t3t5t11t12>};
步骤3-3:SS不为空,选取第一条迁移序列tsk=<t4t6t7t8>;SS={<t9t15>,<t10>,<t13>,<t14>};
步骤3-4:遍历集合SS1,取一条迁移ts1=<t1t2t3t5t11t12>,此时tsk°tsi与tsi°tsk无效,且tsk与tsi不是环路,且不相交,SS1={<t1t2t3t5t11t12>,<t4t6t7t8>};SS={<t9t15>,<t10>,<t13>,<t14>};
步骤3-5:SS不为空,选取第一条迁移序列tsk=<t9t15>;SS={<t10>,<t13>,<t14>};
步骤3-6:遍历集合SS1,取一条迁移ts1=<t1t2t3t5t11t12>,此时tsk与ts1不相交;取第2条迁移ts2=<t4t6t7t8>,此时,tsk°ts2与ts2°tsk无效,且tsk与ts2不是环路,但ts2以回路迁移结束,可得tsk=<t4t6t7t8t7t9t15>;SS1={<t1t2t3t5t11t12>,<t4t6t7t8t7t9t15>};SS={<t10>,<t13>,<t14>};
步骤3-7:SS不为空,选取第一条迁移序列tsk=<t10>;SS={<t13>,<t14>};
步骤3-8:遍历集合SS1,取一条迁移ts1=<t1t2t3t5t11t12>,此时tsk与ts1不相交;取第2条迁移ts2=<t4t6t7t8>,此时tsk与ts1不相交;可得SS1={<t1t2t3t5t11t12>,<t4t6t7t8t7t9t15>,<t10>};SS={<t13>,<t14>};
步骤3-9:SS不为空,选取第一条迁移序列tsk=<t13>;SS={<t14>};
步骤3-10:遍历集合SS1,取一条迁移ts1=<t1t2t3t5t11t12>,此时,tsk°ts1与ts1°tsk无效,且tsk与ts1不是环路,但ts1以回路迁移结束,可得tsk=<t1t2t3t5t11t12t11t13>;SS1={<t1t2t3t5t11t12t11t13>,<t4t6t7t8t7t9t15>,<t10>};SS={<t14>};
步骤3-11:SS不为空,选取第一条迁移序列tsk=<t14>;SS={};
步骤3-12:遍历集合SS1,取一条迁移ts1=<t1t2t3t5t11t12>,此时tsk与ts1不相交;取第2条迁移ts2=<t4t6t7t8>,此时tsk与ts1不相交;以此类推,最后可得SS1={<t1t2t3t5t11t12t11t13>,<t4t6t7t8t7t9t15>,<t10>,<t14>}SS={};
步骤3-13:SS为空,算法结束。
最后可得SS1={<t1t2t3t5t11t12t11t13>,<t4t6t7t8t7t9t15>,<t10>,<t14>};但此时集合中的迁移序列并非是从初始状态到终止状态的有效迁移路径集合,需要转换成有效迁移路径,即步骤4,首先转换为状态迁移片段,即S={<s1s2s3s4s5s6s7>,<s2s4s9s10s9s10s7s8>,<s10s5>,<s4s7>},根据步骤4补全初始状态到S中每条片段的第一个节点的最短路径和最后一个节点到终止状态的最短路径,即最后可得S={<s1s2s3s4s5s6s7s8>,<s1s2s4s9s10s9s10s7s8>,<s1s2s4s9s10s5s6s7s8>,<s1s2s4s7s8>}根据状态有限测试路径可以对应转换为迁移测试有效路径,即T={<t1t2t3t5t11t12t11t13t15>,<t1t4t6t7t8t7t9t15>,<t1t4t6t7t10t11t13t15>,<t1t4t14t15>},此时得到的测试路径个数为4,个数最小。根据得到的有效测试路径中迁移上携带的数据信息,对其进行实例化操作,即得到有效测试用例。
本方法在某无人机复杂模型上进行试验,全路径个数达十几万。若利用搜索算法,不仅耗时长且搜索算法一般利用到递归方法,其求出的解数量庞大,递归次数也成指数级增长,冗余度高。若利用一些启发式及其改进算法,例如贪心算法、遗传算法、粒子群算法和模拟退火算法等,受参数或者初始群体的因素影响,耗时久,迭代次数多且得到的效果不能保证一定达到最优解,即不能保证得到的有效测试路径一定是最小的。而利用本方法得到的有效路径164条,不仅测试路径个数最少,耗时短而且测试用例中冗余迁移数也较少。

Claims (1)

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得到的有效测试路径上迁移所携带的数据信息进行实例化,得到最小测试用例集。
CN201811038172.2A 2018-09-06 2018-09-06 一种基于efsm模型的最小成本测试用例生成方法 Active CN109582558B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811038172.2A CN109582558B (zh) 2018-09-06 2018-09-06 一种基于efsm模型的最小成本测试用例生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811038172.2A CN109582558B (zh) 2018-09-06 2018-09-06 一种基于efsm模型的最小成本测试用例生成方法

Publications (2)

Publication Number Publication Date
CN109582558A true CN109582558A (zh) 2019-04-05
CN109582558B CN109582558B (zh) 2021-07-13

Family

ID=65919785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811038172.2A Active CN109582558B (zh) 2018-09-06 2018-09-06 一种基于efsm模型的最小成本测试用例生成方法

Country Status (1)

Country Link
CN (1) CN109582558B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274142A (zh) * 2020-01-20 2020-06-12 中国人民解放军国防科技大学 一种基于扩展有限状态机的软件通信体系架构符合性测试建模方法
CN111723008A (zh) * 2020-05-29 2020-09-29 北京机电工程研究所 一种基于状态转换图的测试路径生成方法
CN111934948A (zh) * 2020-07-20 2020-11-13 浙江理工大学 基于蒙特卡洛树搜索的efsm可执行测试序列生成方法
CN112015639A (zh) * 2020-07-31 2020-12-01 北京轩宇信息技术有限公司 一种星载软件测试用例的生成方法及装置
CN113157562A (zh) * 2021-03-16 2021-07-23 王轶昆 一种基于扩展有限状态机模型的测试用例生成方法及平台
CN113206712A (zh) * 2021-05-11 2021-08-03 中南大学 一种软件无线电符合性测试方法及系统
CN113657694A (zh) * 2020-05-12 2021-11-16 鸿富锦精密电子(天津)有限公司 测试路径统筹方法、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502892A (zh) * 2016-10-20 2017-03-15 杭州电子科技大学 一种基于uml模型的测试用例优先排序方法
CN106708739A (zh) * 2016-12-30 2017-05-24 桂林电子科技大学 基于扩展状态机模型的Web服务测试用例生成方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502892A (zh) * 2016-10-20 2017-03-15 杭州电子科技大学 一种基于uml模型的测试用例优先排序方法
CN106708739A (zh) * 2016-12-30 2017-05-24 桂林电子科技大学 基于扩展状态机模型的Web服务测试用例生成方法及系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ZHANG L: "bridging the gap between the total and additional test-case prioritization strategies", 《IEEE 2013 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE)》 *
刘攀 等: "确定性有限状态机的最小测试成本迁移覆盖准则", 《软件学报》 *
吴彪: "基于EFSM的测试用例自动生成方法的研究", 《CNKI优秀硕士学位论文全文库》 *
苏亭: "基于覆盖准则的软件测试用例自动生成方法的研究与实现", 《CNKI博士学位论文全文库》 *
陆公正: "基于EFSM模型的测试用例优化生成及实例化", 《CNKI博士学位论文全文库》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274142A (zh) * 2020-01-20 2020-06-12 中国人民解放军国防科技大学 一种基于扩展有限状态机的软件通信体系架构符合性测试建模方法
CN111274142B (zh) * 2020-01-20 2023-04-21 中国人民解放军国防科技大学 一种基于扩展有限状态机的软件通信体系架构符合性测试建模方法
CN113657694A (zh) * 2020-05-12 2021-11-16 鸿富锦精密电子(天津)有限公司 测试路径统筹方法、电子设备及存储介质
CN113657694B (zh) * 2020-05-12 2023-10-13 富联精密电子(天津)有限公司 测试路径统筹方法、电子设备及存储介质
CN111723008A (zh) * 2020-05-29 2020-09-29 北京机电工程研究所 一种基于状态转换图的测试路径生成方法
CN111934948A (zh) * 2020-07-20 2020-11-13 浙江理工大学 基于蒙特卡洛树搜索的efsm可执行测试序列生成方法
CN111934948B (zh) * 2020-07-20 2022-04-12 浙江理工大学 基于蒙特卡洛树搜索的efsm可执行测试序列生成方法
CN112015639A (zh) * 2020-07-31 2020-12-01 北京轩宇信息技术有限公司 一种星载软件测试用例的生成方法及装置
CN112015639B (zh) * 2020-07-31 2024-03-15 北京轩宇信息技术有限公司 一种星载软件测试用例的生成方法及装置
CN113157562A (zh) * 2021-03-16 2021-07-23 王轶昆 一种基于扩展有限状态机模型的测试用例生成方法及平台
CN113206712A (zh) * 2021-05-11 2021-08-03 中南大学 一种软件无线电符合性测试方法及系统
CN113206712B (zh) * 2021-05-11 2022-03-25 中南大学 一种软件无线电符合性测试方法及系统

Also Published As

Publication number Publication date
CN109582558B (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN109582558A (zh) 一种基于efsm模型的最小成本测试用例生成方法
CN103116540A (zh) 基于全局超级块支配图的动态符号执行方法及其装置
CN102662644B (zh) 一种使用流程图生成测试案例的方法
WO2017096990A1 (zh) 测试脚本自动生成方法及装置
Schaarschmidt et al. Lift: Reinforcement learning in computer systems by learning from demonstrations
CN103473171A (zh) 一种基于函数调用路径的覆盖率动态跟踪方法及装置
CN102799624B (zh) 基于Datalog的分布式环境下大图数据查询方法
CN111274142B (zh) 一种基于扩展有限状态机的软件通信体系架构符合性测试建模方法
CN105138601A (zh) 一种支持模糊约束关系的图模式匹配方法
CN111782544A (zh) 一种基于多种群遗传算法的软件无线电符合性测试方法
CN106709143A (zh) 基于atp自动建模的vfto批量仿真分析方法及系统
CN103500139A (zh) 一种通信软件集成测试系统及测试方法
CN109033744A (zh) 一种基于残基距离和接触信息的蛋白质结构预测方法
CN104572471A (zh) 一种基于索引的Java软件代码克隆检测方法
CN102799960B (zh) 面向数据模型的并行业务流程异常检测方法
CN108875914A (zh) 对神经网络数据进行预处理和后处理的方法和装置
CN110109658A (zh) 一种基于形式化模型的ros代码生成器及代码生成方法
CN111709138B (zh) 面向cps时空性质的混成aadl建模与模型转换方法
EP4280107A1 (en) Data processing method and apparatus, device, and medium
CN102567845B (zh) 组合服务演化中运行实例的在线迁移方法及设备
CN110069347A (zh) 一种基于过程重要度的线程划分方法
CN109947173A (zh) 最大时钟偏差的计算方法及计算系统
CN109740763A (zh) 一种量子线路近邻化二维网格形态选择方法
CN106095663B (zh) 基于切片模型的程序回归错误定位方法
CN102722546B (zh) 关系数据库环境下图中最短路径的查询方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant