APP下载

基于IRM-COM的列车运行控制系统测试用例生成方法

2020-08-07张雁鹏梁春燕谢迎锋张振海

铁道科学与工程学报 2020年7期
关键词:故障注入约简测试用例

张雁鹏,梁春燕,谢迎锋,张振海

基于IRM-COM的列车运行控制系统测试用例生成方法

张雁鹏1, 2,梁春燕1, 2,谢迎锋3,张振海1, 2

(1. 兰州交通大学 自动化与电气工程学院,甘肃 兰州 730070;2. 甘肃省人工智能与图形图像处理工程研究中心,甘肃 兰州 730070;3. 北京全路通信信号研究设计院集团有限公司,北京 100070)

为验证高速铁路列车运行控制系统在多个故障发生时的安全性,针对系统故障降级场景,提出一种基于初始约简矩阵—组合遗漏矩阵(IRM-COM)测试用例生成算法的故障组合注入方法。首先对故障类型进行矩阵形式化描述,然后形成故障注入组合测试表初始矩阵,最后生成测试用例表。仿真结果表明,该组合测试的故障检测率比随机测试和自适应随机测试平均高10.2%,而且测试用例个数比自动高效测试用例生成器(AETG)和基于矩阵重复度的组合测试(CTboMRD)平均少13.4%,验证了所提算法具有更强的约简能力,提高了测试效率。

列车运行控制系统;测试用例生成;组合测试;故障注入

随着我国高速铁路的快速发展,CTCS(Chinese Train Control System,中国铁路列车运行控制系统)作为监督、控制和调整列车速度的技术装备,其安全性至关重要,现场的复杂性和特殊性使CTCS冗余技术的验证难以进行。列车运行控制系统仿真平台是对CTCS的真实模拟,可以实现其安全性相关的测试[1]。仿真平台的故障注入技术用于收集系统可靠性相关的信息,评价系统的安全防护设计水平[2],模拟CTCS现场故障产生,将有效的CTCS故障模式注入到系统中,分析系统响应,从而评价CTCS系统冗余技术的有效性。故障注入技术在国内外研究中应用广泛,蔡伯根等[3]通过故障注入四元组模型设计了基于HLA(high level architecture,高层体系结构)的列车运行控制系统仿真故障注入平台,结果证明故障注入技术能够实现CTCS功能级别的测试。Azimi等[4]通过在图形处理器通用计算中引入辐射引起的瞬时误差来实现故障注入,与传统的软件缓解方案相比结果更加准确、有效。Mostowski[5]采用特定的测试工具实现了在工业和汽车邻域故障模型中的故障用例测试,文中使用封装了故障的待测系统模型比在进行测试时注入故障方便、容易。随着单个故障注入技术的日渐成熟,多个故障的组合注入技术也得到了进一步的发展。伍振宇[6]设计了飞行管理系统容错结构的联合故障注入算法,更多的故障出现在顶层计算机中,联合故障注入的方法比单个故障注入能更有效地测试容错性。和贵恒[7]利用多智能体仿真的安全分析方法通过构建故障注入智能体,将故障组合注入到模型中,得出了和RBC(Radio Block Center,无线闭塞中心)切换场景相关的多个故障相互作用的风险耦合规则。综上所述,目前针对列车运行控制仿真系统的故障注入技术通常只研究了基于简单场景的单个故障的测试,但随着系统复杂性的逐渐提高,系统事故一般不只是单个致因事件导致的,而是通过多个致因部件的相关失效机制相互作用共同导致的[8],因此,需要一种适合复杂测试场景的多个故障的组合测试方法来验证系统的安全性。组合测试是软件系统安全性测试的重要方法,称为T-Way测试,是使用覆盖表作为测试用例集[9],通过将测试用例集注入到待测系统中,引发系统故障,从而验证系统对于并发故障的处理能力。本文通过对组合、随机和自适应随机测试的对比,证明组合测试更适用于CTCS仿真平台的多个故障组合测试。因此,研究CTCS的故障组合注入问题最重要的研究内容是生成覆盖表,即故障注入组合测试用例表。本文提出了一种适用于CTCS故障降级场景故障注入的测试用例生成算法,通过对故障降级场景相关故障的分析得出故障注入组合测试元素表,并给故障类型设置故障注入代码,将元素表用矩阵化的形式表示,得出故障注入组合测试用例表,最终用IRM-COM算法生成规模最小的测试用例表,最少的测试用例可以提高组合测试的效率。

1 CTCS故障降级场景概念结构

我国铁路现投入使用的CTCS分为4个等级(C0~C3),同一线路的不同区段上装备2种及以上列车控制系统时,就会涉及到等级转换。若地面、车载设备发生故障,CTCS将采取降级处理,来确保列车安全运行。本文主要研究因设备故障而降级的3类情况:

1) CTCS-3 (简称C3)因设备故障降为CTCS-2 (简称C2)。

CTCS降级可能由RBC,无线通信以及联锁等设备发生故障引起。比如,当RBC和它的备用系统同时故障,或者无线通信设备(含车载和地面设备)故障时,该RBC管辖范围内的列车将无法收到其发送的信息,当通信超时且列车实际速度在C2允许速度范围内,C3自动转为C2运行[10]。C3无线通信过程如图1所示。

图1 C3无线通信过程

2) C2因设备故障无法自动转到C3 。

C3因故障降到C2后,列车尝试转换到C3,车载设备需要依次完成如下工作才能转换到C3:

①车载设备与GSM-R(Global System for Mobile Communications-for Railway,铁路数字移动通信系统)无线网络连接并注册;

②当列车到达RBC连接点应答器组时,应答器组给列车发送建立连接的信息包;

③当列车收到信息后,经过转换预告点应答器组时,车载设备给RBC发进路和位置信息,接受转换命令;

④在列车到达转换执行点应答器组,若达到C3条件,则自动转到C3。

如果以上工作中的任意一步未完成,C2就不满足转为C3的条件,继续保持C2控车[11]。C2转为C3的示意图如图2所示。

图2 C2转换为C3示意图

3) C2因故障降级。

当列车以C2运行时,有如下情况:

①列车前方轨道电路故障时,列车由完全监控模式转为目视行车模式;

②前方轨道电路掉码且过4 s还未收到正常信息码,则触发常用制动;

③前方若干个应答器丢失,列车从完全监控模式转变为部分监控模式[12],继续运行。

2 故障注入组合测试用例表生成算法

为了方便描述CTCS故障降级场景中设备的故障类型,从而实现故障注入,将故障类型矩阵形式化描述,引入IRM-COM测试用例生成算法,动态生成故障注入组合测试用例表。

2.1 故障注入组合测试表矩阵化描述

由文献[13−14]中的相关定义得出本文研究所涉及到的几个定义。

其中:′和′分别为和的任一子集,模型中给定,利用关系求出最小测试用例集。

由表1得故障注入组合测试表矩阵描述:

2.2 IRM-COM算法

由2.1中的5)和表1可得,故障注入组合测试表初始矩阵共有660个测试用例,包括了必须和冗余的测试用例,为提高故障注入组合测试的效率,需对矩阵约简,以最少的测试用例最大程度覆盖测试系统各个方面的因素。

表1 CTCS故障降级场景故障注入组合测试元素

定义矩阵为最终故障注入组合测试用例表,当故障注入组合测试表初始矩阵中第a行与矩阵中任意一行的元素在小于等于1(若为三因素,则小于等于2)个位置上对应相同,则a就属于矩阵的一个测试用例。

根据CTCS故障降级场景中每个故障场景的故障个数不同,设1有个元素,2有个元素,3有个元素,则生成故障注入组合测试用例表矩阵的算法,即IRM-COM算法为:

1) 根据2.1生成矩阵,其中a,b,c的下标分别为1,2,3的第个元素。

2) 最终故障注入组合测试用例表矩阵。

由于每列元素个数的不同而存在组合遗漏情况,因此矩阵由初始约简矩阵1和组合遗漏矩阵2共同组成:

①生成初始约简矩阵1。

对1列元素,矩阵1中个元素按照矩阵的顺序排列,其每个元素的数量最多为:

②生成组合遗漏矩阵2。

将矩阵1中包含0元素的全部行选出并放到矩阵中,得到组合遗漏项矩阵,将矩阵中各行进行互相扩充,得到组合遗漏矩阵2。例如生成矩阵1后,矩阵如下:

则通过扩充后,最终得到矩阵2为:

3 仿真实验及结果分析

该仿真实验依托兰州交通大学“国家级轨道交通信息与控制虚拟仿真实验教学中心”,利用京沈高速铁路CTCS仿真平台,结合现场线路数据和实际设备信息,实现了随机、自适应随机数生成算法以及IRM-COM测试用例生成算法,并在京沈高速铁路CTCS仿真平台上进行测试用例生成试验。该系统利用虚拟机实现与运行环境的隔离,使用TCP/IP协议进行通信,利用数据采集器实现数据采集并发送到服务器。针对表2和表3的覆盖表规模,利用不同的方法生成测试用例,并进行对比。

3.1 故障检测能力分析

表2 待测系统CAi最好的2-way

组合覆盖率可以科学地衡量一个测试用例集的故障检测能力,可以为质量评估提供重要的依 据[16],测试用例集的组合覆盖率表示为:

设为SUT的一个测试用例集,τ表示覆盖强度,n表示参数个数,m表示测试用例个数,表示T中包含的τ值模式集合,ti(τ)表示ti中包含所有τ值模式的集合,SUT(τ)表示SUT中包含的应该检测τ值模式的集合,本文选择2-way值模式。因此,覆盖2-way值模式越多,c(τ)越大,则测试用例的故障检测能力越强。通过3种测试方法生成的测试用例集,分别计算c(τ),组合覆盖率结果对比如图3所示。

由图3可得3种测试方法生成相同用例个数后计算得到的组合覆盖率,计算他们的平均组合覆盖率分别是:随机测试为0.83、自适应随机测试为0.87、组合测试为0.97,0.97>0.87>0.83。结果表明,组合测试的组合覆盖率大于其他2种方法,因此组合测试的故障检测能力更强。

组合分散度是另一种评估测试用例集质量的依据,测试用例集的分散度为:

由图4可得,3种测试方法生成相同用例个数后计算得到的组合分散度,计算他们的平均组合分散度分别是:随机测试为0.47,自适应随机测试为0.49,组合测试为0.56,由于0.56>0.49>0.47,组合测试的组合分散度大于其他2种。因此,本文提出的故障注入组合测试用例表的故障检测能力优于文献[7]中多个故障的随机测试,更适用于CTCS故障降级场景的故障注入测试。

图4 3种方法组合分散度比较

3.2 测试用例约简分析

本文搜集了可以生成组合测试用例的AETG算法和文献[17]中的CTboMRD算法,针对表3中的6个待测系统,3种算法生成的测试用例个数对比结果如图5所示。

表3 待测系统用例规模

由表3可见,待测系统1,2,3的用例集规模为水平覆盖表,即每个测试方面的元素个数相同,而待测系统4,5,6的用例集规模为混合覆盖表,每个测试方面测试元素个数不同,由于CTCS故障降级场景每个方面的故障类型个数也不相同,因此,CTCS故障降级场景测试用例规模情况与待测系统4,5,6相同。

由图5的试验结果可得,本文提出的IRM-COM算法虽然在1,2,3中测试用例个数不是最少的,但在待测系统4,5,6中IRM-COM算法生成的测试用例个数分别比CTboMRD算法少9.5%,13.3%和14.3%,比AETG算法少26.9%,7.1%和9%。由试验结果分析可得,IRM-COM算法生成的测试用例个数比CTboMRD算法和AETG算法都少,更适用于用例集规模为混合覆盖表的CTCS故障降级场景测试用例的生成。

图5 测试用例个数比较

本文提出的IRM-COM算法可以实现对测试元素个数不相同的测试用例的约简,并且约简效果优于另外2种算法,因此更适用于CTCS故障注入组合测试用例表的生成。

4 结论

1)本文通过对CTCS故障降级场景的故障类型进行矩阵形式化描述,形成故障注入组合测试表初始矩阵,再通过IRM-COM算法生成测试用例表,矩阵形式化的应用能更有效地表示复杂场景多个故障的组合情况。

2)通过利用组合测试的IRM-COM算法以及随机测试、自适应随机测试相关算法生成相同个数的测试用例,分别计算它们的组合覆盖率和组合分散性,通过对比得出组合测试的故障检测能力比其他2种平均高约10.2%,因此,本文提出的基于组合测试的故障组合注入方法比之前的单个故障注入能更有效地实现系统故障的检测能力。

3) IRM-COM算法通过生成初始约简矩阵1和组合遗漏矩阵2,从而得到故障注入组合测试用例表矩阵,在各个阶段故障类型不同的情况下,IRM-COM算法生成的用例个数比CTboMRD算法和AETG算法平均低13.4%,因此,本文提出的算法更适用于CTCS复杂故障场景故障注入组合测试用例生成的实际情况。

4)本文提出了对CTCS故障降级场景故障注入测试用例生成方法的新认识,并且提出的IRM-COM算法更加贴近CTCS组合测试用例生成的实际情况,对CTCS相关功能的安全性验证具有一定的参考意义。

[1] 刘雨, 陈建球, 庞彦知, 等. 基于元模型的通用性列控仿真平台基础环境研究[J]. 铁道学报, 2018, 40(5): 82−89. LIU Yu, CHEN Jianqiu, PANG Yanzhi, et al. Research on basic operation environment of general train control simulation system based on meta model[J]. Journal of the China Railway Society, 2018, 40(5): 82−89.

[2] Kim M C, Seo J, Jung W, et al. Evaluation of effectiveness of fault-tolerant techniques in a digital instrumentation and control system with a fault injection experiment[J]. Journal of Nuclear Engineering and Technology,,2019, 51(3): 692−701.

[3] 蔡伯根, 尹青, 上官伟, 等. 列车运行控制系统仿真故障注入方法研究[J]. 铁道学报, 2014, 36(6): 55−60. CAI Bogen, YIN Qing, SHANGGUAN Wei, et al. Research on fault injection method for train operation control system simulation[J]. Journal of the China Railway Society, 2014, 36(6): 55−60.

[4] Azimi S, DU B, Sterpone L. Evaluation of transient errors in GPGPUs for safety critical applications: An effective simulation-based fault injection environment[J]. Journal of Systems Architecture, 2017, 75(4): 95−106.

[5] Mostowski W. Model-based fault injection for testing gray-box systems[J]. Journal of Logical and Algebraic Methods in Programming, 2019, 103(2): 31−45.

[6] 伍振宇. 基于虚拟飞管系统的故障注入子系统的设计与实现[D]. 成都: 电子科技大学, 2017. WU Zhenyu. Design and implementation of fault injection subsystem based on virtual flight management system[D]. Chengdu:University of Electronic Science and Technology of China, 2017.

[7] 和贵恒. 复杂交互作用下RBC切换场景风险耦合分析方法研究[D]. 成都: 西南交通大学, 2018. HE Guiheng. Research on risk coupling analysis method for RBC handover under complex interaction[D]. Chengdu: Southwest Jiaotong University, 2018.

[8] Blancke O, Tahan A, Komljenovic D, et al. A holistic multi-failure mode prognosis approach for complex equipment[J]. Journal of Reliability Engineering & System Safety, 2018, 180(12): 136−151.

[9] Sabharwal S, Aggarwal M. A novel approach for deriving interactions for combinatorial testing[J]. International Journal of Engineering Science and Technology, 2017, 20(1): 59−71.

[10] TB/T 3530−2018, CTCS−3级列车运行控制系统系统需求规范[S]. TB/T 3530−2018, System requirements specification for CTCS−3 train control system[S].

[11] 董健, 戴胜华. 基于CPN的列控系统等级转换建模与分析[J]. 计算机工程与应用, 2018, 54(2): 208−213. DONG Jian, DAI Shenghua. Modeling and analysis of grade conversion of train control system based on CPN[J]. Computer Engineering and Application, 2018, 54(2): 208−213.

[12] TB/T 3516−2018, CTCS−2级列控系统总体技术要求[S]. TB/T3516−2018, General technical specification for CTCS−2 train control system[S].

[13] Esfandyari S, Rafe V. A tuned version of genetic algorithm for efficient test suite generation in interactive t-way testing strategy[J]. Journal of Information and Software Technology, 2018, 94(2): 165−185.

[14] 聂长海. 组合测试[M]. 北京: 科学出版社, 2015. NIE Changhai. Combinatorial testing[M]. Beijing: Science Press, 2015.

[15] 王燕, 聂长海, 钮鑫涛, 等. 覆盖表生成的禁忌搜索算法[J].软件学报, 2018, 29(12): 3665−3691. WANG Yan, NIE Changhai, NIU Xintao, et al. Tabu search in covering array generation[J]. Journal of Software, 2018, 29 (12): 3665−3691.

[16] Alves E L G, Massoni T, Patrícia Duarte de Lima Machado. Test coverage of impacted code elements for detecting refactoring faults: An exploratory study[J]. Journal of Systems & Software, 2017, 123(1): 223−238.

[17] 陈锦富, 苏晨飞, 赵小磊, 等. 基于矩阵重复度的组合测试方法及其试验分析[J]. 江苏大学学报(自然科学版), 2016, 37(1): 67−73. CHEN Jinfu, SU Chenfei, ZHAO Xiaolei, et al. Combinatorial testing approach and experiment based on matrix repeat degree[J]. Journal of Jiangsu University (Natural Science Edition), 2016, 37(1): 67−73.

A method of test case generation based on IRM-COM for train control system

ZHANG Yanpeng1, 2, LIANG Chunyan1, 2, XIE Yingfeng3, ZHANG Zhenhai1, 2

(1. School of Automation & Electrical Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China;2. Gansu Provincial Engineering Research Center for Artificial Intelligence and Graphics & Image Processing, Lanzhou 730070, China;3. CRSC Research & Design Institute Group Co., Ltd., China Railway Signal & Communication Co., Ltd, Beijing 100070, China)

In order to verify the safety of CTCS for high-speed railway when multiple faults occur, a method of combinatorial fault injection based on the algorithm of test case generation of Initial Reduction Matrix and Combined Omission Matrix (IRM-COM) was proposed for the scenarios of fault degradation. After the description of matrix formalization for fault types, the initial test tables of combinatorial fault injection were formed to generate the test cases. The simulation results show the fault detection rate of the proposed test is 10.2% higher than that of the random test and the adaptive random test. And the number of test cases is 13.4% less than that of Automatic Efficient Test Generator (AETG) and Combinatorial Testing based on Matrix Repeat Degree (CTboMRD). The results prove that the proposed algorithm has stronger ability of reduction and can improve the test efficiency.

Chinese Train Control System (CTCS); test case generation; combinatorial test; fault injection

10.19713/j.cnki.43−1423/u.T20190928

U284.48

A

1672 − 7029(2020)07 − 1817 − 08

2019−10−22

国家自然科学基金资助项目(61763025);甘肃省自然科学基金资助项目(18JR3RA106);教育部创新团队发展计划项目(IRT_16836)

张雁鹏(1980−),男,山西朔州人,副教授,博士,从事轨道交通列车控制的研究;E−mail:lanzhouzyp@126.com

(编辑 阳丽霞)

猜你喜欢

故障注入约简测试用例
模拟训练装备故障注入系统研究
嵌入式系统故障注入技术研究
测试用例自动生成技术综述
基于0-1规划的最小属性约简算法
回归测试中测试用例优化技术研究与探索
基于SmartUnit的安全通信系统单元测试用例自动生成
面向特定类的三支概率属性约简算法
直觉模糊序决策系统的部分一致约简*
一种多类型总线故障注入系统设计*
近似边界精度信息熵的属性约简