【技术实现步骤摘要】
一种结合变异测试的时间自动机模型的一致性测试方法
[0001]本专利技术属于软件开发
,具体涉及一种结合变异测试的时间自动机模型的一致性测试方法
。
技术介绍
[0002]随着实时嵌入式系统的快速发展,系统的可靠性和安全性受到工业界和各国政府越来越多的关注
。
目前,系统的检验主要利用基于模型的测试
(Model
‑
based testing)
和形式化验证
(Formal verification)
等技术来实现
。
形式化模型是应用这些技术的先决条件,而现实中由于存在软件历史遗留
、
说明文档缺失
、
源代码无法访问或难以理解等问题,一般很难直接获得形式化模型
。
模型学习
(Model learning)
是一种通过系统的输入输出观察来对系统进行自动化形式建模的方法,通过自动化学习目标系统的形式化模型以补充测试和验证技术
。
目前,模型学习已经成功应用到很多工业领域,也正在成为一种高效的漏洞寻找技术
。
在
1987
年,
Angluin
提出了著名的
L*
算法,该方法提供了一个正则语言的主动模型学习
(Active learning)
框架
。
在此基础上,国内外学者发展了针对更多形式模型的主动学习算法,例如
Register Au ...
【技术保护点】
【技术特征摘要】
1.
一种结合变异测试的时间自动机模型的一致性测试方法,用于进行目标系统与从所述目标系统中主动学习得到的假设模型之间的等价判定,其特征在于,包括以下步骤:步骤
S1
,所述假设模型为确定性单时钟时间自动机,基于所述假设模型,使用启发性随机测试用例生成方法生成多个测试用例形成大规模测试用例集合;步骤
S2
,基于所述假设模型,使用时间变异算子生成多个第一变异体作为第一变异体集合;步骤
S3
,使用基于评分的测试用例筛选方法,结合所述第一变异体进行变异分析,从所述大规模测试用例集合中筛选出第一小规模测试用例子集;步骤
S4
,依次在所述假设模型和所述目标系统中执行所述第一小规模测试用例子集中的测试用例,比较二者的执行结果是否相同,如果不相同,则所述假设模型与所述目标系统不等价,当前测试用例作为反例输出,如果相同,则没有找到反例,进入步骤
S5
;步骤
S5
,基于假设模型,使用位置分裂变异算子生成多个第二变异体形成第二变异体集合;步骤
S6
,使用基于评分的测试用例筛选方法,结合所述第二变异体进行变异分析,从所述大规模测试用例集合中筛选出第二小规模测试用例子集;步骤
S7
,依次在所述假设模型和目标系统中执行所述第二小规模测试用例子集中的测试用例,比较二者的执行结果是否相同,如果不相同,则所述假设模型与所述目标系统不等价,当前测试用例作为反例输出,如果相同,则没有找到反例,所述假设模型与所述目标系统等价
。2.
根据权利要求1所述的结合变异测试的时间自动机模型的一致性测试方法,其特征在于:其中,步骤
S1
包括以下子步骤:步骤
S1
‑1,以
p
start
的概率从出现过的反例中随机选取一个作为测试用例的前缀,以1‑
p
start
的概率将所述前缀设置为空,并更新当前位置和时钟值;步骤
S1
‑2,将源位置为所述当前位置的所有迁移,按照目标位置是否为沉没位置分为有效迁移集合和无效迁移集合,在所述前缀的基础上,以
p
valid
的概率从所述有效迁移集合中选取一条迁移,或以1‑
p
valid
的概率从所述无效迁移集合中选取一条迁移,根据选取迁移的动作和时钟约束随机生成一个定时动作,并将其添加到测试用例的尾部,并更新当前位置和时钟值;步骤
S1
‑3,重复步骤
S1
‑2,直到所述测试用例的长度到达预定值;步骤
S1
‑4,在当前测试用例的基础上,从未曾到达的位置中随机选取一个目标位置,使用广度优先探索方法,获得一条从当前时间状态到达目标位置的定时序列,将所述定时序列作为后缀添加到当前测试用例的尾部,完成当前测试用例的生成;步骤
S1
‑5,重复步骤
S1
‑1至步骤
S1
‑4,生成大量测试用例形成所述大规模测试用例集合
。3.
根据权利要求2所述的结合变异测试的时间自动机模型的一致性测试方法,其特征在于:其中,每次执行所述步骤
S1
‑2时,都有预设的
p
stop
的概率终止,完成当前测试用例的生成
。
4.
根据权利要求1所述的结合变异测试的时间自动机模型的一致性测试方法,其特征在于:其中,步骤
S2
包括以下子步骤:步骤
S2
‑1,对于所述假设模型中的任意一条迁移,根据时间间隔切割操作,生成切割迁移集合;步骤
S2
‑2,对于所述切割迁移集合中的任意一条切割迁移,分别执行重置目标位置变异操作
、
反转时间重置指示变异操作以及同时重置目标位置操作和反转时间重置指示变异操作,得到变异迁移集合;步骤
S2
‑3,对于所述变异迁移集合中的任意一条变异迁移,通过将所述假设模型的迁移集合与对应的所述切割迁移集合做并集,移除对应的原始迁移和所述切割迁移,并添加所述变异迁移,构建一个变异体;步骤
S2
‑4,合并所述变异体中源位置
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。