CTCS-2级列控车载设备现场测试序列辅助生成工具
2022-03-30袁榆淞张亚东
袁榆淞,饶 畅,张亚东,郭 进
(1.西南交通大学 信息科学与技术学院,成都611756;2.重庆交通大学 交通运输学院,重庆400074)
CTCS-2级列车运行控制(简称:列控)系统是基于轨道电路和点式应答器传输行车许可的安全苛求系统[1]。车载设备作为列控系统安全完整性4级(SIL-4,Safety Integrity Level-4)安全关键设备,在投入使用前必须进行一系列严格的测试,以确保其质量特性满足高可靠性、高安全性、高稳定性等标准的要求。
车载设备功能复杂,通常采用测试案例集的方式进行完备性测试。由于测试案例集的规模往往较为庞大,为提高测试效率,通常将测试案例按照一定方法和原则串接成若干测试序列,用于指导实施测试。其中,列控系统的测试过程通常可分为实验室仿真测试、现场测试、联调联试、互联互通测试等阶段[2],现有工具生成的测试序列主要用于列控系统的仿真测试阶段[3-6]。
不同于仿真测试,现场测试序列运用在现场实际环境中,在测试时不仅要考虑测试案例之间的状态有序衔接,还要考虑执行测试案例的实际线路条件约束。目前,现场测试序列的生成主要由测试人员根据经验进行人工编制,这种方式易出现测试案例串接不合理的情况,进而影响测试效率。
针对上述问题,本文开发了一种现场测试序列辅助生成工具——CTCS-2级列控车载设备现场测试序列辅助生成工具(简称:辅助生成工具),综合考虑测试案例的状态衔接和执行测试案例的实际线路条件,计算各测试案例的执行距离,并通过图形界面直观反映各个测试案例在实际线路中的执行点位置,可提高测试序列的生成效率和质量。
1 现场测试序列的设计
1.1 现场测试序列设计原则
每一条测试序列可形成一个完整的测试场景,其设计遵循如下原则[7-8]。
原则1:一条测试序列应至少包含一条测试案例。
原则2:测试序列需覆盖所有待测的测试案例,同时,尽可能地减少重复案例的使用。
原则3:测试序列中前一测试案例的结束状态应与后一测试案例的起始状态相匹配,保持状态的连续性。
现场测试序列的串接不仅需要满足上述基本原则,而且需要进一步考虑现场线路条件的约束,故串接原则可作如下补充。
原则4:测试序列中每一条测试案例的执行必须与列车当前所处测试环境相符合。
原则5:测试案例应尽可能地在待测线路上紧密布置,以减少列车的空跑距离。
1.2 既有现场测试序列设计存在的问题
现阶段,现场测试序列的设计通常采用人工编制的方法,存在如下问题。
(1)测试线路基础数据种类繁多且数据量大,采用厂家提供的工程线路数据表,以人工方式绘制线路数据图。这种方式需要整理的信息量较多、步骤烦琐且容易出错。
(2)测试案例集通常规模较大,依靠人工方式筛选符合上述串接原则3和原则4的测试案例,容易出现测试案例串接不合理的情况,导致测试序列无法执行。
(3)测试人员需要预估测试案例的执行距离,以确定测试案例在实际线路的测试位置,但测试案例执行距离的估算目前仍是现场测试的一项技术难题。有的测试案例对测试地点无特殊要求(不涉及分相区、等级转换点),现有方法往往采取固定长度对测试区段进行划分[9-10],这种方法存在较大的估计偏差,易导致测试案例的执行区段发生重叠干扰,或出现列车大量空跑现象,影响测试效率。
(4)容易出现漏测或者大量重复测试的情况,增加了不必要的测试开销。
(5)测试序列数据往往采用各类文字处理软件进行人工编辑和管理,当测试案例存在变更时,需要逐个查找和修改涉及该案例的测试序列文档,增加了序列的维护成本。
2 需求分析
针对测试人员在进行人工编制现场测试序列中所遇到的实际问题,现场测试序列辅助生成工具需满足以下要求。
(1)友好的人机交互界面。测试人员能便捷地利用工具对测试案例、测试序列进行检索与查看,并能根据实际需求筛选相关信息。人机交互界面还支持测试线路的可视化展示,包括各个信号点、特殊区段的具体位置,线路速度、线路坡度的具体信息,便于测试人员根据实际线路条件在工程线路上铺设测试案例。
(2)测试案例的自动筛选。在进行测试序列的设计过程中,辅助生成工具能自动筛选出符合串接条件的测试案例,同时能根据测试案例执行要求及测试案例之间的相关性,进行合理性检验,提高测试序列的有效性。
(3)测试案例执行距离的自动计算。辅助生成工具能根据所选测试案例的具体信息,结合当前所布置测试案例的实际位置,计算列车执行完该测试案例的走行距离,预估测试案例的执行范围,并在人机交互界面上实现可视化展示。
(4)测试案例覆盖率统计。辅助生成工具能实时反映待测测试案例的使用情况,避免出现漏测或大量重复测试的情况。
(5)测试序列的高效管理。辅助生成工具能根据实际需求对测试序列执行读取、图形化预览、编辑、存储等操作,并能提供测试序列文档的一键导出功能,减少人工方式编辑的烦琐性。
3 架构设计
3.1 设计目标
结合当前现场测试序列设计存在的问题,本文以线路数据的可视化、测试案例自动筛选、测试案例执行距离的自动计算、测试案例覆盖率统计、测试序列高效管理等核心功能开发为辅助生成工具的实现目标,对上述辅助生成工具功能需求进行全覆盖,从而使用辅助生成工具代替传统人工编制测试序列的方式,最大程度地减少人工编制测试序列的工作量,提高现场测试序列编制的效率与质量。
3.2 辅助生成工具总体架构
测试序列辅助生成工具以测试案例集、列控工程数据表和车辆参数配置文件作为输入,现场测试序列文档作为输出,总体架构如图1所示。
图1 测试序列辅助生成工具总体架构
辅助生成工具主要划分为6个模块:列控基础数据管理模块、图形界面绘制模块、测试案例数据管理模块、测试案例执行距离计算模块、测试序列生成模块和测试序列数据管理模块。各模块总体功能如下。
(1)列控基础数据管理模块:读取来自列控工程数据表的线路数据及被测车辆的参数配置文件后,将数据提供给图形界面绘制模块、测试案例执行距离计算模块和测试序列生成模块使用。
(2)图形界面绘制模块:对线路数据、现场测试案例和测试序列等实现可视化展示。
(3)测试案例数据管理模块:通过读取数据库里的测试案例并整理后,将案例信息传递给测试案例执行距离计算模块和测试序列生成模块供后续调用。
(4)测试案例执行距离计算模块:对接收的数据按照内嵌算法进行执行距离的计算,并将计算结果传递给测试序列生成模块。
(5)测试序列生成模块:完成测试序列的生成功能,将生成的测试序列传递给测试序列管理模块进行统一管理。
(6)测试序列管理模块:对测试序列进行存储,同时,导出测试序列文档供测试人员现场测试使用。
4 功能设计
测试序列辅助生成工具将6个功能模块细分为若干子功能,如图2所示。
图2 测试序列辅助生成工具功能结构
4.1 列控基础数据管理功能模块
原始的线路工程数据大多数采用Excel数据表的格式进行存储,故辅助生成工具需要支持Excel文件的读入。其中,所需的列控工程数据以相关技术规范作为编制依据[11-12],主要包括信号数据表、线路坡度表、线路速度表、分相区信息表、应答器位置表等列控工程数据表。读取的信号数据表主要涵盖信号点数据与轨道区段数据。本文以某高速铁路下行线正向信号为例,展示部分数据内容,如表1所示。
表1 某高速铁路下行线正向信号数据(部分)
本文利用Java POI对Excel文件读取的稳定性与快速性,实现对上述列控工程数据表及相关试验列车车辆参数的读取工作,并根据测试人员的需求对具体线路条件与车辆参数进行检索查询。其中,列控工程数据表的导入流程如图3所示。
图3 列控工程数据表导入流程
4.2 图形界面绘制功能模块
辅助生成工具采用JavaFX关键技术对信号机、信号牌、轨道区段、应答器等图元进行可视化设计,并将读取的线路数据中具体信号点所在的里程坐标按比例映射于图形显示界面,实现对列控工程数据的图形绘制,同时,测试序列生成后在图形界面上显示各个测试案例的执行范围。下行线的部分显示界面如图4所示,其中,绿色部分表示当前轨道区段放置有测试案例,对应的实际里程长度即为测试案例的执行距离。
图4 下行线部分图形界面显示
4.3 测试案例数据管理功能模块
测试案例是对被测设备某一功能特征进行针对性测试的指导文件,具有统一规范的描述格式,其主要内容如表2所示。
表2 测试案例的主要内容
基于表2对测试案例主要内容的分类情况,对测试案例进行分解,建立相应的数据表存储于MySQL数据库,并使用JDBC(Java Database Connectivity)实现对数据库的访问。通过选择测试案例编号对目标案例执行检索、查询等操作,同时可预览该测试案例的具体信息,并在进行序列串接工作时实现对测试案例覆盖度实时更新的统计功能,其中,测试案例检索流程如图5所示。
图5 测试案例检索流程
在构建查询器流程中,辅助生成工具通过SQL语句查询测试人员想要预览的具体信息,例如,测试人员想要查看某测试案例的具体执行流程,程序将 通 过 语 句selset*from tc_execution_step where tc_id=?,调取表格tc_execution_step(测试案例执行步骤表)中指定编号的测试案例具体内容,并在系统界面的对应表格中显示查询结果。
4.4 测试案例执行距离计算功能模块
现场测试案例通常具备一定的执行距离,执行距离预估的准确性将影响生成的测试序列对于原则4和原则5的吻合程度。为使预估的测试案例执行距离逼近于实际执行距离,本文通过分析测试案例的执行步骤,发现列车在测试过程中始终在牵引状态、惰行状态、巡航状态、常用制动状态、紧急制动状态及停车状态之间不断变化,故提取列车在执行测试步骤过程中的运行状态变化路径,例如某测试案例的运行状态路径可表示为:牵引—惰行—紧急制动—停车—牵引—巡航,结合被测列车的车辆参数及实际线路条件,基于典型的单质点模型对列车作受力分析,利用列车动力学公式计算列车在执行测试步骤过程中的速度变化和运行距离,能有效提升对于测试案例执行距离的估算精度。其中,测试案例执行距离计算流程如图6所示。
图6 测试案例执行距离计算流程
4.5 测试序列生成功能模块
测试序列生成功能模块辅助测试人员完成测试序列的编制工作,同时完成测试序列的合理性校验。在测试人员为测试线路分配测试案例的过程中,辨识测试案例的属性特征,并结合案例执行所需满足的测试环境的线路特征,例如,执行位置约束(站内或区间)、是否需要应答器发送报文、特殊区段约束等,自动筛选出满足上述现场测试序列设计原则3和原则4的测试案例集供测试人员选择,从而提高测试序列的生成效率。其中,测试序列的生成流程如图7所示。
图7 测试序列生成流程
4.6 测试序列数据管理功能模块
编制好测试序列后,测试序列数据管理功能模块可以对测试序列进行保存、查看、编辑、删除等操作,其中,每条测试序列中所包含的每个测试案例具有在实际线路上的里程位置和执行距离。同时,测试序列数据管理功能模块可以以Word文件形式进行导出,便于测试人员将其作为现场测试的指导依据。
5 工具实现
辅助生成工具利用Intellij IDEA 2019集成开发环境进行开发,采用Java编程语言,其主界面如图8所示。界面共分为4个显示区,具体分区信息如表3所示。
表3 主界面分区信息表
图8 辅助生成工具主界面区域划分
利用本文工具串接测试序列的具体步骤如下。
步骤1:测试人员点击“加载测试案例”,从数据库中导入测试案例集,并根据实际需求确定需要执行测试的测试案例。
步骤2:测试人员点击“加载测试线路”选择被测线路,辅助生成工具自动在主界面C区完成线路数据的图形绘制。
步骤3:测试人员点击“车辆参数配置”,选择待测试的列车车型和具体车辆参数。
步骤4:测试人员通过点击轨道区段的方式在线路上配置测试案例来生成测试序列。其中,测试案例配置信息如图9所示,辅助生成工具将根据上述现场测试序列设计原则3和原则4筛选符合串接条件的测试案例于测试案例选择框中供测试人员选择,并自动计算所选测试案例的执行距离。
图9 测试案例配置信息
步骤5:在测试序列串接完成后,在主界面D区中选择“序列保存”,将测试序列上传至数据库,至此,序列串接工作结束。测试人员可单击A区中“管理测试序列”,对该条测试序列执行读取、查看、导出及删除等管理操作,其中,测试序列管理界面如图10所示。点击查看按钮后,可对选定案例的执行步骤进行预览,如图11所示。
图10 测试序列管理界面
图11 测试案例执行步骤
同人工串接现场测试序列作对比,辅助生成工具完成了线路数据的图形化绘制、自动筛选符合串接条件的测试案例、测试案例执行距离的自动计算及测试案例覆盖度统计等功能,显著减少了人工开销,并缩短了测试序列的生成周期,提高了序列质量和有效性,同时,当测试案例内容出现变更时(不影响串接顺序),只需要修改数据库中对应测试案例内容,测试序列将实现自动更新,进而减少了测试序列的维护成本。
6 结束语
本文针对当前人工编制现场测试序列存在的问题,开发了具有良好人机交互界面的现场测试序列辅助生成工具。该辅助生成工具实现了列控基础数据管理、图形界面绘制、测试案例数据管理、测试案例执行距离自动计算、测试序列辅助生成等功能,操作简单且使用方便,不仅提高了测试序列的生成效率,而且进一步提升了测试序列的质量。今后可以采用相关优化理论和算法,实现测试序列的一键高效生成,最大限度地降低测试序列编制的工作量,提高测试序列生成的自动化水平。