• 查询稿件
  • 获取最新论文
  • 知晓行业信息
官方微信 欢迎关注

基于EFSM模型的铁路信号安全软件单元测试技术研究

王飞, 李一楠, 孙文哲, 赵晓宇, 刘雅晴

王飞, 李一楠, 孙文哲, 赵晓宇, 刘雅晴. 基于EFSM模型的铁路信号安全软件单元测试技术研究[J]. 铁路计算机应用, 2023, 32(10): 68-73. DOI: 10.3969/j.issn.1005-8451.2023.10.14
引用本文: 王飞, 李一楠, 孙文哲, 赵晓宇, 刘雅晴. 基于EFSM模型的铁路信号安全软件单元测试技术研究[J]. 铁路计算机应用, 2023, 32(10): 68-73. DOI: 10.3969/j.issn.1005-8451.2023.10.14
WANG Fei, LI Yinan, SUN Wenzhe, ZHAO Xiaoyu, LIU Yaqing. Unit testing technology for railway signal safety software based on EFSM model[J]. Railway Computer Application, 2023, 32(10): 68-73. DOI: 10.3969/j.issn.1005-8451.2023.10.14
Citation: WANG Fei, LI Yinan, SUN Wenzhe, ZHAO Xiaoyu, LIU Yaqing. Unit testing technology for railway signal safety software based on EFSM model[J]. Railway Computer Application, 2023, 32(10): 68-73. DOI: 10.3969/j.issn.1005-8451.2023.10.14

基于EFSM模型的铁路信号安全软件单元测试技术研究

基金项目: 中国国家铁路集团有限公司科技研究开发计划(P2021G012);中国铁道科学研究院集团有限公司科研项目(2022YJ193);北京华铁信息技术有限公司科研项目(2022HT14)
详细信息
    作者简介:

    王 飞,助理研究员

    李一楠,研究员

  • 中图分类号: U284.91 : TP39

Unit testing technology for railway signal safety software based on EFSM model

  • 摘要: 铁路信号安全软件内部逻辑复杂,通过充分的单元测试能够更好地发现和排除软件内部的缺陷。文章分析单元测试常用方法,并结合铁路信号安全软件单元测试技术要求,提出一种基于扩展有限状态机(EFSM, Enhanced Finite State Machine)模型的黑白盒融合单元测试方法。使用自动化测试工具Cantata,以无线超时降级场景为实例,验证该方法是否可以满足测试场景的完备性,并且关注软件结构是否被完全覆盖。根据覆盖结果,对未覆盖原因进行分析,判断是否存在异常场景,并针对未覆盖分支补充测试场景,丰富了测试案例,从而保障了铁路信号系统的可靠性。
    Abstract: The internal logic of railway signal safety software is complex, and through sufficient unit testing, defects within the software can be better discovered and eliminated. This paper analyzed common methods of unit testing and proposed a black and white box fusion unit testing method based on the Extended Finite State Machine (EFSM) model, combined with the technical requirements of railway signal safety software unit testing. The paper used the automated testing tool Cantata as an example to verify whether the method can meet the completeness of the testing scenario and paied attention to whether the software structure was fully covered, analyzed the reasons for the lack of coverage based on the coverage results to determine whether there were abnormal scenarios, provided supplementary testing scenarios for the uncovered branches, which enriched the testing cases and ensured the reliability of the railway signal system.
  • 提高日班计划编制质量,是充分利用运输能力,提升运输组织效率,保障高质量完成运输任务的重要手段,而准确的车流预测是编制高质量日班计划的前提条件。

    关于车流径路的研究主要考虑路网运输方案[1]、空车调整方案[2]等,在推算车流径路时主要使用最短路径、次短路径或K条最短路径计算方法。目前,铁路运输径路计算机处理系统是铁路部门一个重要的车流径路推算工具,为铁路运输计划管理、车流组织、运费计算以及收入清算提供支持[3-5]。在实际运输生产过程中,由于受到施工、通过能力、机车(车务组)分配、自然灾害、事故等多种因素的影响,经常会发生车流迂回运输[6]。在选择车流迂回径路时,需要考虑多种因素:迂回径路的通过能力、迂回径路的长度、迂回径路上的牵引方式[7]等。若依据实际运输需求、路网能力制约以及迂回运输选择条件等因素,对全路网货运车流径路建模和预测,无疑是一项十分复杂的任务。为此,考虑利用运输信息集成平台提供的货运车流海量历史轨迹和实时位置追踪数据,提出一种基于车流径路选择偏好的铁路车流运行径路动态预测方法。

    中国国家铁路集团有限公司(简称:国铁集团)于2013年建成运输信息集成平台,实现对列车、车辆、货物、机车、机车乘务员位置与状态的实时掌握与动态追踪[8];货运列车在装、卸、技术作业等关键环节均会产生报告信息,可以较为准确地掌握货运列车动态信息,结合列车编组信息,以车号、起讫点、途径站为线索,进而可获得货运车辆的动态运行轨迹。

    针对车流运行径路历史数据的统计,提出长期和近短期车流径路选择偏好的概念;其中,长期车流径路选择偏好是过去较长时间内货运车流运行径路的大概率选择,反映长期货物运输运输组织策略影响下,对货运车流不同运行径路的优先选择;近短期车流径路选择偏好则是近短期内货运车流运行径路的大概率选择,可反映车流受到现阶段施工、线路运输能力等因素影响,对货运车流不同运行径路的优先选择,对于预测当前车流运行径路具有较好的参考价值。在预测车流运行径路时,优先使用近短期车流径路选择偏好,只有在近短期车流径路选择偏好数据缺失的情况下,才考虑采用长期车流径路选择偏好。

    列车动态位置信息主要包括列车到达与出发报告,是由列车运输途中重要节点站上报的列车到发信息。如图1所示,列车在始发站A、技术站B、C和终到站D,都会上报列车到发信息。结合列车编组信息,可以得到车辆运行动态信息,包含车号、始发站、当前站、终到站、货物品类等信息项;汇总某个车辆的到发信息,以车号、起讫点、货物品类为索引,即可以获得该车辆的完整运行轨迹。

    图  1  运输信息集成平台中车辆运行径路构成示意

    假设车流从始发站A运行到终点站D,可有2条运行径路:A—B—C—D和A—B—E—D;利用车流长期历史数据,对10 000辆车辆运行径路进行统计,发现其中80%车辆的走行径路为A—B—C—D,20%车辆的走行径路为A—B—E—D;利用车流近短期历史数据,对100辆车辆的走行径路进行统计,发现其中60%车辆走行径路为A—B—C—D,40%车辆走行径路为A—B—E—D,可得到如表1所示的车流径路选择偏好参数表。

    表  1  车流径路选择偏好参数表
    始发站终到站当前站下一站货物品类历史近短期车流量
    /(辆/月)
    历史长期车流量
    /(辆/年)
    ADAB0110010000
    ADBC01608000
    ADCD01608000
    ADBE01402 000
    ADED01402 000
    下载: 导出CSV 
    | 显示表格

    通过实时获取运输信息集成平台提供列车到发报告信息,将其转换成车辆运行动态信息,结合基于车流历史数据生成的车流径路选择偏好参数表,设计货运车流运行径路动态预测方法,具体算法步骤如下:

    (1)根据车辆的始发站、当前站、终到站和货物品类信息,在车流径路选择偏好参数表中查找对应的车流径路记录;若查找不到对应的车流径路记录,则结束查找,使用默认的车流径路计算方法确定车辆运行径路;若找到,则转到步骤(2);

    (2)检查所有查找到的车流径路记录中的近短期车流量数据项是否为空;若不为空,选择近短期偏好概率最大的车流径路记录;若为空,则选择长期偏好概率最大的车流径路记录;将所选择车流径路记录中的下一站设置为预测站;

    (3)判断预测站是否为终到站,若是,则结束搜索;否则转到步骤(4);

    (4)将预测站设置为当前站,转到步骤(1)。

    全路现有货运车辆80多万辆,每日有50多万辆货车的动态信息上报,日均上报数据量约为300万条,车辆历史轨迹数据累计约为20亿条。为便于分析海量的车辆历史轨迹信息,提高车流径路预测应用的数据处理性能,搭建车流径路预测大数据应用环境,其架构如图2所示。

    图  2  车流径路预测大数据应用环境架构示意

    数据采集层通过MQ消息接收与数据库同步2种方式获取车辆最新动态信息,解析后写入Kafka消息队列;数据处理层使用Flink组件调用预测程序,动态预测车流径路;数据存储层使用Redis数据库存储车流径路选择偏好参数表,Citus数据库存储动态预测的车流径路与近期车流轨迹历史数据,ClickHouse数据仓库存储较长时间之前的海量车流轨迹历史数据;数据服务层基于WebServices/Http等协议提供数据查询和计算服务,使用SpringBoot微服务架构实现数据可视化展示。

    车流运行径路预测的数据处理流程如图3所示,其中,黄色部分为车流径路选择偏好参数更新流程,其余部分为车流运行径路动态预测流程。

    图  3  车流运行径路预测数据处理流程

    对车流径路选择偏好参数的动态更新,是通过将存储在运输信息集成平台Oracle数据库中的车流历史数据定期同步到分布式实时分析数据库Citus,再调用车流径路选择偏好参数计算程序定期更新该参数表;该参数表保存在内存数据库集群Redis中,便于车流运行径路动态预测程序快速读取表中的参数。

    在车流运行径路动态预测流程中,从运输集成平台的MQ队列中实时读取最新的车流装、卸和到发信息,转存到Kafka消息队列集群中;使用Flink流式处理技术,解析Kafka队列中的最新车流信息,通过Nginx负载均衡(目的是为了防止并发调用Redis时造成阻塞),读取存储在Redis中的车流径路选择偏好参数表,生成预测的货车运行径路;最后,将预测结果存储到数据仓库ClickHouse中,以供应用查询。

    (1)车流历史数据存储在关系型数据库Oracle中,每天定时将前一天的数据同步到分布式实时分析数据库Citus中。

    (2)利用自定义聚合函数(UDAF,User-Defined Aggregation Funcation),对同步过来的新增历史数据进行整合处理,包括车流运行径路合并、到发报告合并等。

    (3)运行车流径路选择偏好参数计算程序,完成车流径路选择偏好参数的更新计算,并用重新计算的参数更新Redis集群中存储的车流径路选择偏好参数表,更新频次为每天1次。

    (1)实时获取车流动态信息,包括列车出发报告、列车到达报告、装车报告、卸车报告、车号识别等(通过MQ以XML格式接入到车流运行径路实时预测系统的Kafka消息队列中)。

    (2)实时计算Flink程序通过解析Kafka中的XML数据获取获取车辆的始发站、当前站、终到站和货物品类等关键信息,调用车流运行径路动态预测程序,具体的算法流程参见图4,通过Nginx负载均衡,调用Redis模型接口,返回货车运行径路的预测结果。

    图  4  车流运行径路动态预测算法流程

    (3)将预测结果数据和报文数据质量校验数据存储在数据仓库ClickHouse中,以服务形式提供数据访问及数据可视化展示。

    该预测方法已在武清数据中心应用,迄今为止车流径路选择偏好参数表已累计生成1500万条记录,每日增量约为2万条,可以覆盖全路大多数车流运行径路。为了评价本文提出铁路车流运行径路动态预测方法的效果,定义预测命中率和准确率2个统计指标。

    预测命中是指可根据车辆当前位置准确预测车辆即将到达的下一个车站,命中率 ${ H}$ 用于衡量单次径路预测的结果准确性,其计算公式为:

    $${{H}} = \frac{{\displaystyle\sum\limits_{t \in T} {R_t^{}} }}{{\displaystyle\sum\limits_{t \in T} {{P_t}} }} \times 100\% $$ (1)

    式中,$T$ 表示统计时间范围,${P_t}$ 表示某预测时段 $t$ 内完成车辆下一站预测的频次,${R_t}$ 表示此预测时段 $t$ 内准确地完成下一站预测的频次。

    预测准确性是指车辆从始发站到终到站的运行径路上的所有车站都能被准确地预测,准确率 ${{K}}$ 用于衡量车辆全程径路预测的准确性,其计算公式为:

    $${ K} = \frac{{\displaystyle\sum\limits_{t \in T} {\Omega _t^{}} }}{{\displaystyle\sum\limits_{t \in T} {{D_t}} }} \times 100\% $$ (2)

    式中,$T$ 表示统计时间范围,${D_t}$ 表示某预测时段 $t$ 内所有终到车辆的辆数,${\Omega _t}$ 表示这些终到车辆中全程运行径路预测均正确的辆数。

    在目前的实际应用中,全路每天大约有16万辆车到达终到站,发生约300万次车辆运行径路更新。根据2020年11月的数据统计,预测命中率为83%,准确率为72%,基本达到实用水平。

    图5展示了新丰镇—城厢某品类车流的长期径路选择偏好,可以看出:从新丰镇出发,车流以92%概率直接运行到安康东;车流在安康东会以59%较大概率一站运行至广元西。在车流运行过程中,如果系统动态检测到某车辆运行至达州,那么该车辆的后续运行径路就会根据预测结果,动态修正为“达州—广安—内江”方向。

    图  5  车流运行径路动态预测实例

    利用运输信息集成平台提供的海量车流运行轨迹历史数据,提出一种简单易行的铁路车流运行径路动态预测方法;通过对长期和近短期车流运行轨迹历史数据的统计,生成车流径路选择偏好参数,可等效反映路网中多种复杂因素对于车流径路的影响;基于车流径路选择偏好参数,结合货运车辆实时位置跟踪信息,动态预测货运车辆运行径路;搭建大数据应用环境,完成预测程序的开发与部署,采用命中率和准确率2项指标,对该方法的准确性和实用性进行评价,结果表明:预测结果准确性较高,具有较为满意的实用价值。

    目前,车流径路选择偏好参数表可以覆盖全路92%车流运行径路,但存在部分径路找不到终到站或者出现回路,从而导致车流径路搜索失败,这类错误与运输信息集成平台的数据质量有关。后续需要进一步研究如何对参数表数据进行修正,如将终到站数据缺失的记录用临近站近似替换填充,对出现回路的径路进行甄别并剔除折返通路,提高车流径路选择偏好参数表的覆盖范围和准确性,进而提高车流运行径路动态预测的准确性和效率。

  • 图  1   Cantata进行软件测试的策略

    图  2   黑白盒的融合单元测试方法

    图  3   无线超时降级场景的EFSM模型

    图  4   覆盖率未满足测试结果截图

    图  5   未覆盖原因截图

    图  6   覆盖率测试通过结果截图

    表  1   模型中各状态含义

    状态 名称 含义
    s1 automaticLevelFallback _idle 自动降级初始状态
    s2 receive_radio_contace_loss 启动降级处理状态
    s3 set_CTCS2_level 降级到C2等级状态
    s4 receive_radio_contace_recover 终止降级处理状态
    s5 unset_CTCS2_level 维持C3等级状态
    下载: 导出CSV

    表  2   模型中各迁移含义

    迁移 内容 含义
    t1 {s1,i1,g1,op1,s2} i1含义为无线丢失
    g1含义为当前控制等级为C3级,模式为完全模式
    op1含义为输出常用制动命令
    t2 {s2,i2,g2,op2,s3} i2含义为列车当前运行速度和C2允许速度
    g2含义为无线超时制动10 s内,列车速度不高于160 km/h,且不高于C2等级允许速度
    op2含义为执行自动降级到等级C2
    t3 {s2,i3,g3,op3,s5} i3含义为列车当前运行速度和C2允许速度
    g3含义为无线超时制动10 s内,列车速度高于160 km/h,但低于C2等级允许速度
    op3含义为不转入C2等级
    t4 {s2,i4,g4,op4,s3} i4含义为列车当前运行速度和C2允许速度
    g4含义为无线超时制动10 s 后,列车速度不高于C2等级允许速度
    op4含义为执行自动降级到等级C2
    t5 {s2,i5,g5,op5,s5} i5含义为列车当前运行速度和C2允许速度
    g5含义为无线超时制动10 s后,列车速度高于C2等级允许速度
    op5含义为不转入C2等级
    t6 {s2,i6,g6,op6,s4} i6含义为无线状态当前为恢复连接状态
    g6含义为当前控制等级为C3级,模式为完全模式
    op6含义为终止降级执行缓解常用制动
    下载: 导出CSV

    表  3   黑盒测试用例

    场景全局变量驱动参数桩函数设置期望输出
    1模式为完全模式
    当前等级为C3等级
    无线丢失--最大常用制动
    2模式为完全模式
    当前等级为C3等级
    无线丢失
    降级制动定时器= 9 s
    列车当前运行速度= 159 km/h
    C2等级允许运行速度= 160 km/h
    降级为C2等级
    3模式为完全模式
    当前等级为C3等级
    无线丢失
    降级制动定时器= 9 s
    列车当前运行速度= 161 km/h
    C2等级允许运行速度= 162 km/h
    保持C3等级
    4模式为完全模式
    当前等级为C3等级
    无线丢失
    降级制动定时器= 11 s
    列车当前运行速度= 161 km/h
    C2等级允许运行速度= 162 km/h
    降级为C2等级
    5模式为完全模式
    当前等级为C3等级
    无线丢失
    降级制动定时器= 11 s
    列车当前运行速度= 159 km/h
    C2等级允许运行速度= 158 km/h
    保持C3等级
    6模式为完全模式
    当前等级为C3等级
    无线恢复--缓解最大常用制动
    下载: 导出CSV

    表  4   白盒测试用例

    用例 全局变量 驱动参数 桩函数设置 期望输出
    1 模式为完全模式
    当前等级为C2等级
    -- -- 不满足降级条件维持C2等级
    2 模式为待机模式
    当前等级为C3等级
    -- -- 保持C3等级
    下载: 导出CSV

    表  5   边界值分析测试用例

    用例 全局变量 驱动参数 桩函数设置 期望输出
    1 模式为完全模式
    当前等级为C3等级
    无线丢失
    降级制动定时器=10 s
    列车当前运行速度= 161 km/h
    C2等级允许运行速度= 161 km/h
    降级为C2等级
    2 同上 无线丢失
    降级制动定时器= 9 s
    列车当前运行速度= 160 km/h
    C2等级允许运行速度= 160 km/h
    降级为C2等级
    下载: 导出CSV
  • [1] 杨 森,秦晓光,王 飞,等. 基于工程数据的测试脚本自动生成方案研究[J]. 铁道通信信号,2023,59(1):19-24,35.
    [2] 张 宇,李 昂,王 飞,等. 面向ATP车载设备的通用仿真测试平台研究[J]. 铁道通信信号,2021,57(12):1-6.
    [3] 杨志杰. CTCS-3级列控系统关键设备自主化研究[J]. 中国铁路,2018(7):1-6.
    [4] 陈慧琍,陈晓轩. 基于SmartUnit的安全通信系统单元测试用例自动生成[J]. 铁道通信信号,2020,56(6):43-47.
    [5] 中国国家铁路集团有限公司. 铁路信号安全软件编程暂行技术要求:TJ/DW 230-2020[S]. 北京:中国铁道出版社有限公司. 2020.
    [6] 中国国家铁路集团有限公司. 铁路信号安全软件测试暂行技术要求:TJ/DW 231-2020[S]. 北京:中国铁道出版社有限公司. 2020.
    [7] 凌 珊. 铁路信号软件单元测试研究[J]. 铁路计算机应用,2020,29(2):58-61.
    [8] 任丽霞. 计算机联锁软件的黑盒测试过程分析与实现[J]. 铁路计算机应用,2018,27(2):39-43.
    [9]

    European Committee for Electrotechnical Normalization. BS EN 50128: 2011 Railway applications. Communication, signalling and processing systems. Software for railway control and protection systems [S].Brussels, Belgium: European Committee for Electrotechnical Normalization, 2011.

    [10] 王蒙蒙,罗 杨. 基于扩展有限状态机测试用例生成方法[J]. 电子设计工程,2020,28(6):97-100,106.
    [11] 中国国家铁路集团有限公司. 自主化CTCS-3级列控车载设备暂行技术条件:TJ/DW205-201912.1[S]. 北京:中国国家铁路集团,2019:78-79.
  • 期刊类型引用(4)

    1. 杨文韬,田中雨,张义川,李冰,江欣,赵元帅. 中欧班列运行监测方案研究及验证. 铁道运输与经济. 2024(11): 113-123+131 . 百度学术
    2. 李聪颖. 铁路货物计费径路调整影响探讨. 铁道货运. 2022(02): 46-51 . 百度学术
    3. 周利萍,张璐,刘志新,孙明,李少峰. 铁路重车到达预报与卸车预警系统研究与开发. 铁路计算机应用. 2022(03): 53-59 . 本站查看
    4. 杨文浩,邓桂星,张锐,刘耀宗,马海彬. 车流径路辅助决策系统优化与实践. 铁道货运. 2021(07): 1-8 . 百度学术

    其他类型引用(1)

图(6)  /  表(5)
计量
  • 文章访问数:  43
  • HTML全文浏览量:  17
  • PDF下载量:  9
  • 被引次数: 5
出版历程
  • 收稿日期:  2023-04-13
  • 刊出日期:  2023-10-30

目录

/

返回文章
返回