基于Delta-Debugging的列车运行控制系统故障定位方法
文献发布时间:2024-01-17 01:28:27
技术领域
本发明属于故障定位技术领域,尤其涉及一种基于Delta-Debugging的列车运行控制系统故障定位方法。
背景技术
智能高速铁路装备了CTCS (Chinese Train Control Systems,中国列车控制系统) 3级和ATO (Automatic Train Operation,列车自动驾驶),具有运行速度快、行车密度大、自动化等级高、智能化水平高等特点,对于保障行车安全具有重要意义。智能高速铁路中,与CTCS交互的系统众多、信息类型丰富、设备配置复杂,对CTCS进行测试时,涉及到大量的参数组合。组合测试作为一种高效的测试方法,可通过建立被测系统的输入模型,在保证系统足够输入参数的基础上构造测试用例,能够高效、科学、系统地检测输入参数及其交互组合引发的系统故障。将组合测试方法应用于CTCS测试中,根据测试结果定位出MFS(Minimal Failure Schema, 最小故障模式),进而提升CTCS的测试效率,有助于提高CTCS的安全性。在组合测试方法中应用故障注入技术,模拟故障信息,分析系统响应,验证CTCS的功能和安全性,拥有测试成本低、测试速度快、测试灵活等优点。但由于智能高速铁路系统复杂,CTCS-3和ATO涉及的设备之间存在约束会导致系统产生无效的附加测试用例,甚至使系统进入死循环。因此,在存在约束情况下,如何准确定位出CTCS的MFS是亟待解决的问题。
发明内容
针对上述背景技术中指出的不足,本发明提供了一种基于Delta-Debugging的列车运行控制系统故障定位方法,旨在解决上述背景技术中现有技术存在的问题。
为实现上述目的,本发明采用的技术方案是:
一种基于Delta-Debugging的列车运行控制系统故障定位方法,首先依据智能高速铁路临时限速场景的特点,建立CTCS自适应组合测试模型,从设备、功能和数据通信三个方面分析各设备的故障现象,得出CTCS测试参数,然后根据覆盖维度和所述CTCS测试参数交互条件生成测试用例,通过测试用例生成与故障定位结合的自适应组合测试流程进行测试,得到的CTCS组合测试结果中,未通过测试的测试用例则转到故障定位阶段,采用Delta-Debugging算法,生成附加测试用例;对于在故障定位过程中生成的附加测试用例,将除失败测试用例之外的其他附加测试用例中的所有
优选地,所述CTCS自适应组合测试模型包括两条反馈回路,第一条由测试用例生成、测试用例执行和CTCS测试结果数据库组成,用于收集CTCS相应的测试策略,生成新的测试用例;第二条由CTCS组合测试模型建立、测试用例生成、测试用例执行和CTCS测试结果数据库组成,用于根据测试结果数据库中的信息修改参数取值和测试策略。
优选地,所述自适应组合测试流程如下:
输入:覆盖数组CA(
步骤1:根据输入覆盖数组CA生成测试用例集T并执行;
步骤2:获取失败测试用例集
步骤3:生成附加测试用例集T
步骤4:若有测试用例执行成功且含有待测模式,更新测试用例集;
步骤5:若无测试用例执行成功或无待测模式,定位最小故障模式MFS,并删除包含最小故障模式的测试用例,更新测试用例集;
步骤6:若测试用例执行完毕,则结束此流程;
步骤7:若测试用例未执行完毕,则返回步骤1,重复此流程。
在组合测试中,使用CA(Covering Arrays,覆盖表)表示一个
优选地,所述约束处理策略如下:在关注模式中,在生成通过测试用例之前,加入约束集,避免关注模式与约束相关;在生成附加测试用例时,避开约束集中的参数取值。
优选地,所述关注模式中约束处理伪代码如下:
输入:失败测试用例
步骤1:定义失败测试用例
步骤2:若故障模式集与通过测试用例不存在交集,则
步骤3:将通过测试集减去失败测试集,选择与通过测试集最相似的测试用例作为
步骤4:若
步骤5:若
优选地,所述附加测试用例中约束处理伪代码如下:
输入:失败测试用例
步骤1:令
步骤2:当前测试用例为故障测试集加部分无关参数;
步骤3:若测试用例满足约束,附加测试用例为当前测试用例加部分无关参数;
步骤4:若测试用例不满足约束,删除部分无关参数;
步骤5:若测试用例个数达到总失败测试用例个数,则跳出循环,输出附加测试用例集;
步骤6:若测试用例个数未达到总失败测试用例个数,则返回步骤2,重复该流程。
相比于现有技术的缺点和不足,本发明具有以下有益效果:
(1)本发明通过建立CTCS自适应组合测试模型,设计测试用例生成与故障定位结合的自适应组合测试流程,采用Delta-Debugging算法,增加约束处理策略,定位出最小故障模式,方法具有良好的有效性和准确性;
(2)与RI、TRT定位方法及基于频繁项关系矩阵的故障定位方法对比,本发明基于Delta-Debugging算法的故障定位方法在故障定位过程中
(3)使用京张智能高速铁路仿真测试平台验证本发明的故障定位方法,实验结果表明,当列车运行控制系统存在约束情况时,2-way和3-way覆盖表中生成附加测试用例的数量分别比未经约束处理的测试用例减少了24%和21%;相比传统的故障定位方法,本发明的综合评价指标可达95%。该研究成果对于列车运行控制系统的安全性验证及功能优化可以提供一定的参考。
附图说明
图1是本发明实施例提供的智能高速铁路列车运行控制系统整体架构;
图2是本发明实施例提供的CTCS自适应组合测试模型;
图3是本发明实施例提供的CTCS实验测试结果;
图4是本发明实施例提供的增加约束前后附加测试用例个数对比图,图4 (a)为2-way测试用例检测2-MFS,图4 (b)为4-way测试用例检测2-MFS和3-MFS;
图5是本发明实施例提供的基于Delta-Debugging算法、RI、TRT、频繁项关系矩阵的定位方法故障检测率对比图,图5(a)为四种方法的
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
1、自适应组合测试模型构建
智能高速铁路CTCS的运营场景复杂多样,使用组合测试方法对CTCS进行测试时,输入参数取值之间存在相互作用,难以从故障现象推断出故障组合类型。使用测试用例生成与故障定位相结合的自适应组合测试方法,将故障参数注入到CTCS仿真测试平台中,生成测试用例和附加测试用例,进而定位CTCS故障组合。
1.1 CTCS测试基础
智能高速铁路列车运行控制系统整体架构如图1所示,为了准确地识别影响CTCS的参数组合,进而定位出MFS,考虑各个设备之间的信息传输关系以及临时限速命令下达过程,从设备、功能和数据通信三个方面分析各设备的故障现象,得出CTCS测试参数,如表1所示:
表1 智能高速铁路CTCS测试参数
1.2 故障定位相关定义
组合测试的相关定义:
(1)
在覆盖表中,若
(2) 测试用例:使用S
CTCS的测试用例是从故障类型
根据测试需求,生成满足约束的测试用例,执行测试后,得到测试结果记为
(3)附加测试用例:当测试用例结果不满足故障定位需求时,需按一定方法生成附加测试用例
其中,
(4) 关注模式:将失败测试用例和与失败测试用例极为相似的通过测试用例的差异称为关注模式,关注模式即为引发系统故障的可能模式。
(5) 最小故障模式:如果SUT(System Under Testing,待测系统)中包含
根据组合测试的特点,如果SUT有一个
1.3 自适应组合测试流程
CTCS自适应组合测试模型如图2所示,包括两条反馈回路,第一条由测试用例生成、测试用例执行和CTCS测试结果数据库组成,用于收集CTCS相应的测试策略,生成新的测试用例;第二条由CTCS组合测试模型建立、测试用例生成、测试用例执行和CTCS测试结果数据库组成,用于根据测试结果数据库中的信息修改参数取值和测试策略;其中,
在使用自适应组合测试方法定位故障参数时,需要生成一定数量的附加测试用例,这会大幅增加测试成本,并且已经定位到的MFS无需出现在之后的测试用例当中。为解决上述故障定位方法的缺陷,本发明在自适应测试的基础上,提出测试用例生成和故障定位结合的自适应组合测试流程,如表2所示:
表2 自适应组合测试流程
根据覆盖维度和CTCS测试参数交互条件生成测试用例,通过测试用例生成与故障定位结合的自适应组合测试流程进行测试,得到CTCS组合测试结果。未通过测试的测试用例则转到故障定位阶段,找出其包含的MFS;对于在故障定位过程中生成的附加测试用例,处理方法与测试用例生成阶段相同,即将除失败测试用例之外的其他附加测试用例中的所有
2、CTCS故障定位方法
采用自适应组合测试方法对CTCS进行测试,需要根据测试结果,通过故障定位方法检测出引发CTCS故障的参数及其取值,即利用Delta-Debugging算法定位MFS,并使用约束处理策略避免CTCS输入参数间约束关系的影响。
2.1 Delta-Debugging故障定位算法
得到CTCS测试结果后,采用Delta-Debugging算法定位CTCS的故障,定位出致使故障发生的MFS。
先将初始失败测试用例与通过测试用例的差别模式作为关注模式,若生成的附加测试用例测试通过,则将关注模式作为与错误测试用例差别最小的正确模式,再比较它与最新的错误模式之间的差别;若测试失败,则将它作为与正确测试用例差别最小的错误模式,再比较它与最新的正确的模式之间的差别,重复该步骤,不断地将正确测试用例与错误测试用例之间的差异缩小,最终得到的故障模式。详细的Delta-Debugging故障定位算法如表3所示:
表3 Delta-Debugging故障定位算法伪代码
该算法主要包含四部分,1-3行为初始化过程,初始化故障模式集
2.2 约束处理策略
由于CTCS涉及的参数众多,而系统故障率极低,输入参数间存在约束会在生成附加测试用例的过程中产生无效测试用例,影响测试效率。而上述方法仅考虑了一般情况下的故障定位,对存在约束的情形不能很好地表示,影响测试效率。因此针对CTCS临时限速场景的情况,增加约束覆盖数组来定位故障。
约束处理策略的选择体现在两个阶段:第一个阶段是在关注模式生成时,在生成通过测试用例之前,加入约束集,避免关注模式与约束相关,其约束处理伪代码如表4所示。第二个是在生成附加测试用例时,避开约束集中的参数取值,其约束处理伪代码如表5所示。
表4 关注模式中约束处理伪代码
如表4所示,在生成关注模式的过程中,
表5 附加测试用例中约束处理伪代码
如表5所示,在附加测试用例
3、实验测试验证
为了验证本发明提供的故障定位方法在实际系统中的有效性,结合CTCS组合测试流程,生成测试用例,并将测试用例注入到CTCS仿真测试平台后,根据测试结果,定位MFS。同时,将本发明算法与RI、TRT定位方法和具有频繁项关系矩阵的故障定位方法对比,验证本发明的故障检测率。
3.1 CTCS仿真测试
利用京张智能高速铁路CTCS仿真测试平台,结合现场线路数据和实际设备信息,生成满足测试需求的测试用例。当测试用例成功注入CTCS仿真测试平台后,失败测试用例会导致CTCS仿真测试系统的各子系统会给出相应的故障报警信息,甚至触发列车紧急制动。
实验过程中,提取CTCS临时限速场景中的故障类型测试,提取故障类型为:
3.2 故障定位结果
临时限速场景下,CTCS通过自适应组合测试流程生成测试用例,并通过增加约束处理后的Delta-Debugging算法定位MFS。以2-way测试用例为例,说明2-MFS计算过程,测试结果如表6所示。
表6 2-way测试用例测试结果
表6含有两个主列,左边代表测试用例,右边代表附加测试用例,从上至下代表执行顺序,两个阶段不断交替进行。首先,初始化测试用例
为确认CTCS中是否还有其他故障模式,在
当定位出测试用例
为了深入研究CTCS存在约束情况下,仍能有效的定位故障,以京张高速铁路CTCS测试仿真平台为基础生成测试用例集,增加约束前后附加测试用例个数对比如图4所示,图4 (a) 为2-way测试用例检测2-MFS,图4 (b)为4-way测试用例检测2-MFS和3-MFS。实验结果表明,相比增加约束前,增加约束后生成的附加测试用例数量明显减少。当使用2-way覆盖表定位2-MFS时,从图4(a)中可明显看出,与增加约束前相比,增加约束后的附加测试用例箱体偏低,且生成附加测试用例的数量比增加约束前均值低24%,最大值和最小值均低于增加约束前。当使用4-way覆盖检测MFS时,由于覆盖表中可能同时存在2-MFS、3-MFS和4-MFS,因此需要生成的附加测试用例数量明显增加,但与增加约束前相比,增加约束后的附加测试用例数量明显减少,比增加约束前均值低21%。因此,生成测试用例时,考虑输入参数之间的约束关系能够精简测试用例。
3.3 算法对比分析
为评估CTCS故障定位的故障检测率,采用文献(张杨, 东春浩, 刘辉, 等. 基于预训练模型和多层次信息的代码坏味检测方法[J].软件学报, 2022, 33(05): 1551-1568)定义的评价指标,使用查全率
其中,
为了验证本发明定位方法的准确性,将本发明与RI、TRT定位方法和基于频繁项关系矩阵的定位方法从查全率、查准率和综合评价指标三个维度比较故障检测率,结果如图5所示,图5(a)为四种方法的
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
- 一种基于胶轮虚拟轨道列车的运行控制系统及方法
- 一种基于频繁项关系矩阵的列车控制系统故障定位方法
- 基于可见光通信的列车运行控制系统及列车定位方法