当前位置: 首页 > 专利查询>同济大学专利>正文

一种结合变异测试的时间自动机模型的一致性测试方法技术

技术编号:39650822 阅读:10 留言:0更新日期:2023-12-09 11:19
本发明专利技术提供了一种结合变异测试的时间自动机模型的一致性测试方法,包括以下步骤:步骤

【技术实现步骤摘要】
一种结合变异测试的时间自动机模型的一致性测试方法


[0001]本专利技术属于软件开发
,具体涉及一种结合变异测试的时间自动机模型的一致性测试方法


技术介绍

[0002]随着实时嵌入式系统的快速发展,系统的可靠性和安全性受到工业界和各国政府越来越多的关注

目前,系统的检验主要利用基于模型的测试
(Model

based testing)
和形式化验证
(Formal verification)
等技术来实现

形式化模型是应用这些技术的先决条件,而现实中由于存在软件历史遗留

说明文档缺失

源代码无法访问或难以理解等问题,一般很难直接获得形式化模型

模型学习
(Model learning)
是一种通过系统的输入输出观察来对系统进行自动化形式建模的方法,通过自动化学习目标系统的形式化模型以补充测试和验证技术

目前,模型学习已经成功应用到很多工业领域,也正在成为一种高效的漏洞寻找技术


1987
年,
Angluin
提出了著名的
L*
算法,该方法提供了一个正则语言的主动模型学习
(Active learning)
框架

在此基础上,国内外学者发展了针对更多形式模型的主动学习算法,例如
Register Automata、Mealy Machine、Nondeterministic Finite Automata、I/O Automata

Symbolic Automata


目前,学术界和工业界基于以上的算法和框架已研发出了一些主动学习库和工具,例如
libalf、Learnlib

Tomte


上述库和工具主要集中在不具有时间信息的系统上,学习得到的形式模型均缺乏对于系统的时间信息的描述

与不具有时间信息的系统的主动学习相比,从具有时间信息的系统中学习形式模型要复杂得多,因为模型涉及无限时间动作集和时钟重置信息

目前,国内外学者在
L*
算法的基础上发展了针对一些带有时间信息的形式模型的主动学习算法,例如实时自动机
(Real

time automata)、
事件记录自动机
(Event

recording automaton)
和确定性单时钟时间自动机
(Deterministic one

clocktimed automata

DOTA)


[0003]这些以
L*
算法为基础的学习框架依赖于能够被准确回答的等价查询,然而在实际应用中这通常是无法实现的,因此需要用其他方法代替等价查询,其中最常用的方法之一是一致性测试
(Conformancetesting)。
然而,为实现一致性测试所构建的测试套件的规模通常随着系统状态数量呈指数增长,这使得其在许多工业场景中效率低下

另外,由于时间因素的存在,实时系统的测试成本主要集中在系统内部的延迟时间消耗

因此,需要一种更高效

更低成本的方法实现等价查询,用于实现时间自动机的主动学习


技术实现思路

[0004]本专利技术是为了解决上述问题而进行的,目的在于提供一种结合变异测试的时间自动机模型的一致性测试方法及系统

[0005]本专利技术提供了一种结合变异测试的时间自动机模型的一致性测试方法,用于进行目标系统与从目标系统中主动学习得到的假设模型之间的等价判定,具有这样的特征,包括以下步骤:
[0006]步骤
S1
,假设模型为确定性单时钟时间自动机,基于假设模型,使用启发性随机测试用例生成方法生成多个测试用例形成大规模测试用例集合;
[0007]步骤
S2
,基于假设模型,使用时间变异算子生成多个第一变异体作为第一变异体集合;
[0008]步骤
S3
,使用基于评分的测试用例筛选方法,结合第一变异体进行变异分析,从大规模测试用例集合中筛选出第一小规模测试用例子集;
[0009]步骤
S4
,依次在假设模型和目标系统中执行第一小规模测试用例子集中的测试用例,比较二者的执行结果是否相同,如果不相同,则假设模型与目标系统不等价,当前测试用例作为反例输出,如果相同,则没有找到反例,进入步骤
S5

[0010]步骤
S5
,基于假设模型,使用位置分裂变异算子生成多个第二变异体形成第二变异体集合;
[0011]步骤
S6
,使用基于评分的测试用例筛选方法,结合第二变异体进行变异分析,从大规模测试用例集合中筛选出第二小规模测试用例子集;
[0012]步骤
S7
,依次在假设模型和目标系统中执行第二小规模测试用例子集中的测试用例,比较二者的执行结果是否相同,如果不相同,则假设模型与目标系统不等价,当前测试用例作为反例输出,如果相同,则没有找到反例,假设模型与目标系统等价

[0013]在本专利技术提供的结合变异测试的时间自动机模型的一致性测试方法中,还可以具有这样的特征:其中,
[0014]步骤
S1
包括以下子步骤:
[0015]步骤
S1
‑1,以
p
start
的概率从出现过的反例中随机选取一个作为测试用例的前缀,以1‑
p
start
的概率将前缀设置为空,并更新当前位置和时钟值;
[0016]步骤
S1
‑2,将源位置为当前位置的所有迁移,按照目标位置是否为沉没位置分为有效迁移集合和无效迁移集合,在前缀的基础上,以
p
valid
的概率从有效迁移集合中选取一条迁移,或以1‑
p
valid
的概率从无效迁移集合中选取一条迁移,根据选取迁移的动作和时钟约束随机生成一个定时动作,并将其添加到测试用例的尾部,并更新当前位置和时钟值;
[0017]步骤
S1
‑3,重复步骤
S1
‑2,直到测试用例的长度到达预定值;
[0018]步骤
S1
‑4,在当前测试用例的基础上,从未曾到达的位置中随机选取一个目标位置,使用广度优先探索方法,获得一条从当前时间状态到达目标位置的定时序列,将定时序列作为后缀添加到当前测试用例的尾部,完成当前测试用例的生成;<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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,合并所述变异体中源位置
...

【专利技术属性】
技术研发人员:张苗苗唐晓辰沈炜安杰
申请(专利权)人:同济大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1