一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种联锁测试案例自动生成方法及系统与流程

2022-03-09 08:24:32 来源:中国专利 TAG:


1.本发明涉及联锁仿真试验技术领域,特别是涉及一种联锁测试案例自动生成方法及系统。


背景技术:

2.由于联锁的定制化特征,使得每个车站的联锁都不相同,进而使联锁测试案例无法复用,故联锁仿真试验面临着工作量大、效率低、管理难度大、未知安全风险多、对人员经验的依赖过高、无法保证各联锁仿真试验均能达到理想效果等问题。因此,发展新的联锁安全性验证方法,提升联锁的测试效率及自动化程度,具有重要意义。
3.目前联锁仿真试验主要采用人工方式,通过在联锁系统中执行一系列测试案例,检验联锁系统运行是否符合预期,从而发现联锁系统中潜在的缺陷。该方法目前存在以下问题:
4.1、在联锁仿真试验中,测试案例的准备与实施测试完全由试验人员手工完成,测试案例编制难度较大,试验工作量会随着车站规模的增大而迅速增加。
5.2、人工试验方式中,测试案例的构建无法重现、测试人员选取测试案例准则难以准确描述,测试案例与联锁试验规范的对应关系也无法得到完整充分的体现,测试质量依赖于测试人员的技能和水平。
6.3、当测试中发现问题并修改之后,需实施回归测试,此时需要全部重新进行仿真试验,工作量十分巨大。
7.虽然业内也在研究自动化联锁仿真试验的方法,但目前只能实现对一些简单的重复性的测试项的自动化操作,无法达到真正自动测试的要求。


技术实现要素:

8.本发明的其一目的是提供一种联锁测试案例自动生成方法及系统,解决了传统联锁测试不可复用的问题,降低了测试成本,提高了测试效率。
9.本发明的另一目的是提供一种联锁测试案例自动生成方法及系统,解决了传统联锁仿真试验中测试质量难以管理的问题。
10.为实现上述目的,本发明提供了如下方案:
11.一种联锁测试案例自动生成方法,包括:
12.建立联锁系统中每个基本功能单元所对应的特征模型;
13.根据被测车站信息,利用uml状态机图,对所有所述特征模型进行处理,得到每个所述特征模型对应的参数化联锁测试模型;
14.生成每个所述参数化联锁测试模型对应的测试套;所述测试套包括多个测试案例;
15.采用变异算法,计算每个所述测试套的变异得分,并对标记测试套对应的参数化联锁测试模型进行改进;所述标记测试套为变异得分低于设定阈值的测试套。
16.可选的,所述建立联锁系统中每个基本功能单元所对应的特征模型,具体包括:
17.根据联锁系统的整体功能,对所述联锁系统进行划分,得到基本功能单元集合;所述基本功能单元集合包括多个基本功能单元,分别为进路选排功能单元、道岔控制功能单元、联锁关系检查功能单元和进路解锁功能单元;
18.根据所述基本功能单元的联锁检查逻辑,结合所述基本功能单元内所有可能涉及的子功能以及所述子功能之间的逻辑关系,建立每个基本功能单元所对应的特征模型。
19.可选的,所述根据被测车站信息,利用uml状态机图,对所有所述特征模型进行处理,得到每个所述特征模型对应的参数化联锁测试模型,具体包括:
20.根据被测车站信息和联锁表中的信息,从所述特征模型中选取需要的功能特征,以构建每个所述特征模型对应的功能子集;
21.基于所述功能子集,以uml状态机图为建模语言,建立每个所述特征模型对应的参数化联锁测试模型。
22.可选的,所述生成每个所述参数化联锁测试模型对应的测试套,具体包括:
23.采用深度优先算法和白盒测试逻辑覆盖法,对所有所述参数化联锁测试模型进行处理,生成每个所述参数化联锁测试模型对应的测试套。
24.可选的,所述采用变异算法,计算每个所述测试套的变异得分,具体包括:
25.基于算子集合,结合联锁关系、联锁执行和操作要素,构建变异模型集合;所述算子集合包括多个基础算子,分别为增加状态、删除状态、增加迁移、删除迁移、改变迁移源、改变迁移目标和改变迁移条件;所述变异模型集合包括增加状态变异模型、删除状态变异模型、增加迁移变异模型、删除迁移变异模型、改变迁移源变异模型、改变迁移目标变异模型和改变迁移条件变异模型;
26.将所述测试套代入到所述变异模型集合中,计算每个所述测试套的变异得分。
27.可选的,所述将所述测试套代入到所述变异模型集合中,计算每个所述测试套的变异得分,具体包括:
28.根据公式:变异得分s=(发现的变异模型数量)/(变异模型的总数量)计算每个所述测试案例的变异得分;
29.计算每个测试套内所有所述测试案例的变异得分的和,进而得到每个所述测试套的变异得分。
30.一种联锁测试案例自动生成系统,包括:
31.特征模型建立模块,用于建立联锁系统中每个基本功能单元所对应的特征模型;
32.参数化联锁测试模型确定模块,用于根据被测车站信息,利用uml状态机图,对所有所述特征模型进行处理,得到每个所述特征模型对应的参数化联锁测试模型;
33.测试套生成模块,用于生成每个所述参数化联锁测试模型对应的测试套;所述测试套包括多个测试案例;
34.评价改进模块,用于采用变异算法,计算每个所述测试套的变异得分,并对标记测试套对应的参数化联锁测试模型进行改进;所述标记测试套为变异得分低于设定阈值的测试套。
35.可选的,所述特征模型建立模块,具体包括:
36.基本功能单元建立单元,用于根据联锁系统的整体功能,对所述联锁系统进行划
分,得到基本功能单元集合;所述基本功能单元集合包括多个基本功能单元,分别为进路选排功能单元、道岔控制功能单元、联锁关系检查功能单元和进路解锁功能单元;
37.特征模型建立单元,用于根据所述基本功能单元的联锁检查逻辑,结合所述基本功能单元内所有可能涉及的子功能以及所述子功能之间的逻辑关系,建立每个基本功能单元所对应的特征模型。
38.可选的,所述参数化联锁测试模型确定模块,具体包括:
39.功能子集建立单元,用于根据被测车站信息和联锁表中的信息,从所述特征模型中选取需要的功能特征,以构建每个所述特征模型对应的功能子集;
40.参数化联锁测试模型建立单元,用于基于所述功能子集,以uml状态机图为建模语言,建立每个所述特征模型对应的参数化联锁测试模型。
41.可选的,在所述采用变异算法,计算每个所述测试套的变异得分方面,所述评价改进模块具体包括:
42.变异模型集合构建单元,用于基于算子集合,结合联锁关系、联锁执行和操作要素,构建变异模型集合;所述算子集合包括多个基础算子,分别为增加状态、删除状态、增加迁移、删除迁移、改变迁移源、改变迁移目标和改变迁移条件;所述变异模型集合包括增加状态变异模型、删除状态变异模型、增加迁移变异模型、删除迁移变异模型、改变迁移源变异模型、改变迁移目标变异模型和改变迁移条件变异模型;
43.变异得分计算单元,用于将所述测试套代入到所述变异模型集合中,计算每个所述测试套的变异得分。
44.根据本发明提供的具体实施例,本发明公开了以下技术效果:
45.本发明首先建立联锁系统中每个基本功能单元所对应的特征模型;其次根据被测车站信息,利用uml状态机图,对所有所述特征模型进行处理,得到每个所述特征模型对应的参数化联锁测试模型;然后生成每个所述参数化联锁测试模型对应的测试套;所述测试套包括多个测试案例;解决了传统联锁测试不可复用的问题,降低了测试成本,提高了测试效率。最后采用变异算法,计算每个所述测试套的变异得分,并对标记测试套对应的参数化联锁测试模型进行改进;所述标记测试套为变异得分低于设定阈值的测试套,解决了传统联锁仿真试验中测试质量难以管理的问题。
附图说明
46.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
47.图1为本发明一种联锁测试案例自动生成方法的流程示意图;
48.图2为本发明进路选排功能单元的特征模型示意图;
49.图3为本发明绿化方面至ig的下行接车进路示意图;
50.图4为本发明办理基本进路和变通进路的状态模型示意图;
51.图5为本发明测试方案流程图;
52.图6为本发明参数化联锁测试模型示意图;
53.图7为本发明车站信号平面布置图(局部);
54.图8为本发明一种联锁测试案例自动生成系统的结构示意图。
具体实施方式
55.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.面向联锁仿真试验,本发明提供了一种联锁测试案例自动生成方法及系统。本发明以uml状态机图作为建模语言,依托于联锁表和联锁管理建立测试模型,基于条件覆盖、多条件覆盖、修正条件判定覆盖等白盒测试逻辑覆盖法自动生成测试案例,并利用变异测试方法评价测试案例的质量。
57.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
58.专业术语:
59.uml:unifiedmodeling language,统一建模语言。
60.实施例一
61.参见图1,本实施例提供了一种联锁测试案例自动生成方法,包括:
62.步骤101:建立联锁系统中每个基本功能单元所对应的特征模型;具体包括:
63.根据联锁系统的整体功能,对所述联锁系统进行划分,得到基本功能单元集合;所述基本功能单元集合包括多个基本功能单元,分别为进路选排功能单元、道岔控制功能单元、联锁关系检查功能单元、进路解锁功能单元等。
64.根据所述基本功能单元的联锁检查逻辑,结合所述基本功能单元内所有可能涉及的子功能和子功能间的逻辑关系,建立每个基本功能单元所对应的特征模型。
65.标记特征模型详细描述了对于任何车站、任何进路类型,实现所述标记特征模型对应的基本功能单元所有可能涉及的子功能及这些子功能之间的逻辑关系。其中,标记特征模型为任意特征模型。
66.建立基本功能单元的特征模型能有效提高测试模型的标准性和可重用性。
67.例如:进路选排功能单元具有进路选择、信号开放状态检查、轨道区段占用状态检查、道岔状态检查、进路锁闭、取消进路等强制性功能特征。强制性表示对于任何一个车站的任何一条进路,选排进路时都需要执行上述特征。
68.选排进路具有选排基本进路和选排变通进路两个异或关系的子功能特征。选排基本进路时,需依次按压进路始端按钮和进路终端按钮确定进路的范围,故按压进路始端按钮(p-rbb)和按压进路终端按钮(p-reb)为其强制性子特征;选排变通进路时,按压变通按钮前后分别需要按压进路始端按钮和进路终端按钮作为变通进路的始端和终端。
69.信号开放状态检查具有防护信号状态检查和敌对信号状态检查两个子特征。防护信号状态检查为强制性子特征,敌对信号状态检查为选择性子特征。
70.轨道区段占用状态检查为进路内轨道区段占用状况检查和进路外超限绝缘处防侧冲条件检查。其中,在超限绝缘处,进路有可能在侧向位置发生冲突,则应检查相对轨道
区段的占用情况。
71.道岔状态检查既可以检查进路范围内的道岔,也可能检查进路外的防护道岔或带动道岔。为测试道岔状态检查特性,测试案例应包括各类道岔的异常状态,如故障、四开和锁闭等,每个道岔仅可能出现其中一个状态,因此各状态间存在互斥关系。
72.联锁系统中的进路选排功能单元的特征模型如图2所示。该特征模型中的使用缩写如表1所示。
73.表1特征模型使用缩写表
[0074][0075][0076]
在如图3所示的绿化方面至ig的下行接车进路中,选排基本进路和选排变通进路时涉及的特征如下表2所示。
[0077]
表2选排基本进路和选排变通进路时的功能特征表
[0078][0079]
步骤102:根据被测车站信息,利用uml状态机图,对所有所述特征模型进行处理,得到每个所述特征模型对应的参数化联锁测试模型;具体包括:
[0080]
根据被测车站信息(例如被测车站及进路的具体特点),利用联锁表中的信息,从特征模型中选取需要的功能特征来构成功能子集,然后基于功能子集,以uml状态机图为建模语言,建立每个所述特征模型对应的参数化联锁测试模型(或者称为uml基本功能模型)。
[0081]
该参数化联锁测试模型模型中,联锁的初始状态、终止状态和中间状态均用uml状态机图的状态描述,联锁状态的转移过程用uml状态机图的状态转移描述,联锁关系利用模型的状态转移条件结合守卫条件描述。守卫条件是布尔表达式,变量由联锁表获得,布尔关系基于联锁关系确定;所有涉及的具体联锁执行和操作要素(包括区段名、道岔名、信号机名、按钮名等)在uml状态机图中用参数表示。具体赋值操作的实现方法可有不用。例如,建模工具papyrus可用entry元素结合c语言或ocl语言实现变量赋值;基于模型的测试工具pateg所支持的建模方式是利状态自迁移结合ocl语音实现赋值。
[0082]
一个示例:如图4所示的办理基本进路和变通进路的状态模型。
[0083]
步骤103:生成每个所述参数化联锁测试模型对应的测试套;所述测试套包括多个测试案例;具体包括:
[0084]
采用深度优先算法和白盒测试逻辑覆盖法,对所有所述参数化联锁测试模型进行处理,生成每个所述参数化联锁测试模型对应的测试套。
[0085]
一个示例为:
[0086]
基于二叉树搜素算法生成测试案例。算法的终止条件由所选取的覆盖度准则确定。详细过程如下:
[0087]
以条件覆盖、多条件覆盖、修正条件判定覆盖等白盒测试逻辑覆盖法作为测试目标,采用基于二叉树搜素算法产生包含参数化联锁测试模型中状态和迁移的序列,使所产生的序列符合测试目标。每个序列为一个测试案例。每个序列均从参数化联锁测试模型的初始状态开始。序列中的最后一个状态为测试的预期结果。该步骤产生一个测试案例的集合,称为测试套。
[0088]
步骤104:采用变异算法,计算每个所述测试套的变异得分,并对标记测试套对应的参数化联锁测试模型进行改进;所述标记测试套为变异得分低于设定阈值的测试套。
[0089]
利用变异算子在uml模型层面进行变异,利用代码映射生方法,将变异后的模型转为可执行程序,作为存在错误的联锁软件。
[0090]
基于增加状态、删除状态、增加迁移、删除迁移、改变迁移源、改变迁移目标、改变迁移条件这7个基础算子,结合具体的联锁关系和联锁执行和操作要素进一步构建可执行的变异算子。
[0091]
利用步骤103生成的测试套测试可执行程序,计算变异得分。变异得分s的计算公
式如下:
[0092]
s=(发现的变异模型数量)/(变异模型的总数量)*100%
[0093]
每个变异算子产生一个变异模型,所有变异模型的数量成为“变异模型的总数量”。利用测试套测试变异模型,如果模型的输出不符合测试的预期结果,则测试不通过。如果出现不通过的测试案例,则认为该变异模型可以被所生成的测试套发现,即公式中“发现的变异模型”。
[0094]
其中,所述采用变异算法,计算每个所述测试套的变异得分,具体包括:
[0095]
步骤a:基于算子集合,结合联锁关系、联锁执行和操作要素,构建变异模型集合;所述算子集合包括多个基础算子,分别为增加状态、删除状态、增加迁移、删除迁移、改变迁移源、改变迁移目标和改变迁移条件;所述变异模型集合包括增加状态变异模型、删除状态变异模型、增加迁移变异模型、删除迁移变异模型、改变迁移源变异模型、改变迁移目标变异模型和改变迁移条件变异模型。
[0096]
步骤b:将所述测试套代入到所述变异模型集合中,计算每个所述测试套的变异得分。
[0097]
一个示例为:根据公式:变异得分s=(发现的变异模型数量)/(变异模型的总数量)计算每个所述测试案例的变异得分;计算每个测试套内所有所述测试案例的变异得分的和,进而得到每个所述测试套的变异得分。
[0098]
所述对标记测试套对应的参数化联锁测试模型进行改进,具体包括:
[0099]
根据变异得分高低评价测试案例,变异得分高则意味着测试案例质量好。如果变异得分过低,则通过修改参数化联锁测试模型的方式提高变异得分,改进测试案例质量。改进参数化联锁测试模型的方式主要包括细化模型的状态和迁移和细化守卫条件的描述公式等。
[0100]
实施例二
[0101]
本实施例提供了一种联锁测试案例自动生成方法,如图5所示,包括:
[0102]
第一步:建立特征模型,并基于所述特征模型建立参数化联锁测试模型。
[0103]
本实施例所述的特征模型为如图2所示的进路选排功能单元的特征模型。
[0104]
根据被测系统,利用uml状态机图,得到如图6所示的参数化联锁测试模型。该模型所示内容为道岔单独锁闭时选排进路的逻辑执行过程,预期测试结果为将进路有关道岔单独锁闭到不符合联锁关系位置时,办理进路,该道岔所在进路不应锁闭。
[0105]
表3状态描述表
[0106][0107]
表4状态转移描述表
[0108]
[0109][0110]
第二步:建立实例化测试模型。
[0111]
利用联锁表,以进路为单位,将实际的信号机、轨道区段、道岔、敌对信号及按钮等基本联锁内容与上一步得到的参数化联锁测试模型结合,得到测试进路的实例化测试模型。
[0112]
在如图7所示的局部站场图中选取绿化方面至ig的下行接车进路为测试进路,得到该进路的实例化测试模型。
[0113]
表5联锁表(部分)
[0114][0115][0116]
第三步:生成测试案例。
[0117]
以条件覆盖法作为测试目标,采用深度优先算法产生包含实例化测试模型中状态
和迁移的序列,使所产生的序列符合测试目标;其中,每个序列为一个测试案例,测试案例的集合称为测试套。表6为测试套中一个可执行测试案例的执行过程。
[0118]
表6测试案例执行步骤表
[0119][0120]
表6描述了该测试案例外部变量与内部变量的取值,操作对象、观察对象的变量分别以“op_”、“ob_”开头命名。
[0121]
表7变量状态取值与描述表
[0122]
[0123][0124]
第四步:基于变异模型评价测试案例。
[0125]
利用变异算子对测试模型进行变异,每个变异算子产生一个变异模型。基于增加状态、删除状态、增加迁移、删除迁移、改变迁移源、改变迁移目标、改变迁移条件这7个基础算子,结合进路的联锁关系和道岔单独锁闭时选排进路的逻辑执行过程,构建变异模型。将上一步生成的测试案例代入变异模型,计算变异得分s。
[0126]
其中:变异得分s=(发现的变异模型数量)/(变异模型的总数量)
[0127]
表8变异模型前后对比表
[0128]
[0129][0130]
对比不同覆盖度准则下不同变异算子构建出的可执行变异的变异得分情况,可知增加状态、增加迁移、改变迁移源和改变迁移目标这四种变异更容易被发现,删除状态、删除迁移的变异方式最不易被发现,且在mcc的覆盖度准则下,变异得分最高。
[0131]
第五步:根据变异得分改进模型。
[0132]
变异得分高则意味着测试案例质量好;变异得分过低,可以通过修改模型的方式改进测试案例质量。改进模型的方式主要包括细化模型的状态和迁移、细化守卫条件的描述公式等。
[0133]
实施例三
[0134]
参见图8,本实施例提供的一种联锁测试案例自动生成系统,包括:
[0135]
特征模型建立模块801,用于建立联锁系统中每个基本功能单元所对应的特征模型。
[0136]
参数化联锁测试模型确定模块802,用于根据被测车站信息,利用uml状态机图,对所有所述特征模型进行处理,得到每个所述特征模型对应的参数化联锁测试模型。
[0137]
测试套生成模块803,用于生成每个所述参数化联锁测试模型对应的测试套;所述测试套包括多个测试案例。
[0138]
评价改进模块804,用于采用变异算法,计算每个所述测试套的变异得分,并对标记测试套对应的参数化联锁测试模型进行改进;所述标记测试套为变异得分低于设定阈值的测试套。
[0139]
其中,所述特征模型建立模块801,具体包括:
[0140]
基本功能单元建立单元,用于根据联锁系统的整体功能,对所述联锁系统进行划分,得到基本功能单元集合;所述基本功能单元集合包括多个基本功能单元,分别为进路选排功能单元、道岔控制功能单元、联锁关系检查功能单元和进路解锁功能单元。
[0141]
特征模型建立单元,用于根据所述基本功能单元的联锁检查逻辑,结合所述基本功能单元内所有可能涉及的子功能以及所述子功能之间的逻辑关系,建立每个基本功能单元所对应的特征模型。
[0142]
所述参数化联锁测试模型确定模块802,具体包括:
[0143]
功能子集建立单元,用于根据被测车站信息和联锁表中的信息,从所述特征模型中选取需要的功能特征,以构建每个所述特征模型对应的功能子集。
[0144]
参数化联锁测试模型建立单元,用于基于所述功能子集,以uml状态机图为建模语言,建立每个所述特征模型对应的参数化联锁测试模型。
[0145]
在所述采用变异算法,计算每个所述测试套的变异得分方面,所述评价改进模块804具体包括:
[0146]
变异模型集合构建单元,用于基于算子集合,结合联锁关系、联锁执行和操作要素,构建变异模型集合;所述算子集合包括多个基础算子,分别为增加状态、删除状态、增加迁移、删除迁移、改变迁移源、改变迁移目标和改变迁移条件;所述变异模型集合包括增加状态变异模型、删除状态变异模型、增加迁移变异模型、删除迁移变异模型、改变迁移源变异模型、改变迁移目标变异模型和改变迁移条件变异模型。
[0147]
变异得分计算单元,用于将所述测试套代入到所述变异模型集合中,计算每个所述测试套的变异得分。
[0148]
本发明解决了传统联锁测试不可复用的问题,降低了测试成本,提高了测试效率,同时可较容易的证明测试与测试需求和联锁关系的可满足性。由于参数化联锁测试模型的建立基于测试需求和联锁关系,只要参数化联锁测试模型、测试需求和联锁关系是一致的,则可证明测试满足了测试需求和联锁关系,而二者的一致性判定较为容易。同时,参数化联锁测试模型的建立依托于联锁表,以进路为单位建模,使参数化联锁测试模型可以适用于所有站场。避免了不同车站的不同站场拓扑结构带来的测试不可复用问题。
[0149]
本发明提供了测试质量的量化方法,并提供了提升测试案例质量的方法,解决了传统联锁仿真试验中测试质量难以管理的问题。通过变异算子,可将联锁中容易出现的错
误、与安全相关的功能、历史中出现过的问题等信息表达在变异模型中。变异得分量化了通过测试套能够发现问题的比例。通过改进模型可提高变异得分,从而提升了测试质量。
[0150]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0151]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献