基于仿真系统的ATS自动化测试的设计与实现
2021-11-30刘燕
刘 燕
(通号城市轨道交通技术有限公司,北京 100070)
随着城市轨道交通行业和信息技术的快速发展,全自动运行系统(Fully Automatic Operation,FAO)已成为列车运行全自动化的新一代城市轨道交通发展趋势。列车自动监控(Automatic Train Supervision,ATS)系统作为FAO的重要组成部分,在提高运输效率和保障运行安全方面起到了至关重要的作用。由于ATS系统较多的内外部接口、常态化的需求订制、繁多的数据配置、复杂的逻辑处理、大量的功能点,使得该系统搭建测试环境复杂,测试用例数量巨大,执行困难。目前行业内ATS系统的软件确认测试较多依赖仿真系统环境,靠人工手动执行测试用例完成。受制于测试人员的经验水平和测试人员心态因素,如何在保证测试覆盖率的情况下,降低测试成本,提高测试效率,是软件开发中亟待解决的问题。
为解决这一问题,本文以ATS产品功能测试用例及产品交付测试用例做分析,探索ATS自动化测试方法。通过对仿真系统结构和功能的调整,设计出一套适用于ATS自动化测试的仿真系统,用仿真技术代替部分人工手动测试方法来提高测试效力,解放生产力。数据证明,该软件的设计与实现对ATS系统软件确认测试工作的效率和质量起到了积极作用,节省大量人力和物力的投入。
1 自动化测试方法
本文所指的ATS测试是ATS系统的软件确认测试。可将该测试分为产品功能测试和产品交付测试。
功能测试用例的组成形式以及测试用例数目情况如表1所示。
表1 功能测试用例数目统计Tab.1 Statistical table of the number of functional test cases
从表1中可以看到,ATS功能测试用例共分为6部分,分别是人机界面显示测试用例、ATS产品功能测试用例、列车识别与跟踪测试用例、运行图相关测试用例、其他测试用例、FAO新增场景测试用例,用例数目共计约3 840个。其中需要仿真系统支持的用例数目(表1中无背景的测试用例部分)共计约2 270个,占测试用例总数目的60%。
场景保存替代测试准备和测试步骤,结合脚本输入实现自动化测试,提高测试执行效率。
目前行业内的ATS测试依赖测试脚本,以消息的发送和接收为基础,构造测试前置条件,通过执行脚本实现自动化测试。但脚本编制复杂,通用性不高。当功能发生变更时,需要针对相关测试用例,人工重新编写测试脚本。脚本可维护成本较高,对ATS测试支持程度较低。而测试人员人工手动执行测试用例时,需要经过阅读、理解、测试执行、记录等多个步骤,尤其是当测试用例描述复杂,步骤繁多时,阅读和理解测试用例的时间占用了测试工作的绝大多数时间,使得整个测试周期冗长,测试执行困难,测试质量也无法得到保证。
需要仿真系统支持的测试用例中摘选的用例如表2、3所示。
表2 列车停稳信息校核测试用例Tab.2 Test cases for train fully stop information verification
表3 计划车进路自动触发测试用例Tab.3 Test cases for automatic route triggering of planned vehicle
表2测试用例测试步骤中,包括3个操作,分别是股道加车、设置列车的通信模式、设置列车的停稳信息。表3测试用例测试步骤中,需4个条件,分别是特定计划、特定时间、特定信号机模式、特定位置加计划车。
通过对大量需要仿真系统支持的ATS功能测试用例分析,得出这些用例需要仿真系统支持的输入信息共4类,分别是计划信息、设备状态信息,列车相关信息和故障模拟信息。如果将这些信息作为场景保存起来,代替繁琐的脚本开发与编制,避开测试的阅读和理解,结合简单脚本控制场景自动载入的时间、顺序、时长等信息,即可便捷地实现ATS自动化测试。
计划加载结合进路自动触发、列车模拟等功能,使仿真系统独立于ATS系统,高效便捷地测试数据配置,提高测试效率。
按照上述对产品功能测试用例的统计、分析方式,产品交付测试用例涉及表格数目约35个,其中有约15个表格需要仿真系统支持测试,如计划车运行交路测试表、计划车自动触发表、头码车触发轨及目的地测试表、计划车冲突检测表等。通过对表格测试内容的分析,得出这些测试需要仿真系统支持的除了列车模拟外,更多的需要仿真系统具有能够独立“按图跑车”的功能。在此基础上可通过调整列车的速度、运行时间、列车最小追踪间隔、列车折返时间等,实现自动化测试,提高测试效率。
2 仿真系统结构设计
综上分析,得出仿真系统的4个输入信息,分别是计划信息、设备状态信息、列车相关信息和故障模拟信息。
如图1所示,描述ATS仿真系统的结构、仿真系统与ATS系统的主要接口以及接口交互的数据内容。按ATS主要接口类型分类,共设计出5个接口模拟,分别是CI接口模拟、ZC与ATS车站接口模拟、ZC与ATS中心接口模拟、ATP/ATO接口模拟、AOM接口模拟,主要完成仿真终端协议到ATS与其他信号系统内部接口协议的相互转换工作。
图1 仿真系统结构示意Fig.1 Structure schematic of the simulation system
ATS仿真终端作为ATS仿真系统的核心,可通过计划信息模拟、设备状态模拟、列车模拟、故障模拟的输入,根据测试用例中测试步骤的要求,通过场景保存和加载,自动完成ATS相关测试用例的测试工作。
为解决多人在一套测试环境上同时测试及仿真终端的性能问题,将仿真终端进行拆分,新增仿真终端之间的交互功能,实现仿真终端管辖范围的灵活分割和终端与终端间的互联互通功能,进而支持测试环境的灵活性和便捷性。
3 仿真系统功能设计
目前行业内仿真系统的主要功能有列车操作、设备操作、模拟列车,其中模拟列车运行为仿真系统的核心功能。列车需要根据信号状态,区段状态等基本联锁条件自动运行,同时需要根据区段公里标,实际区段长度等实时计算列车的精确位置和移动授权等。
如图2所示,为支持和保障ATS自动化测试,在主要功能上新增设计的5个功能,包括运行图加载、进路自动触发、场景管理、回放、命令列表和报警列表。
运行图加载功能:包括离线运行图加载和在线运行图加载。离线状态下,仿真系统可脱离ATS生产系统独立运行;在线状态下,仿真系统与ATS生产系统(存储服务)连接。
图2 仿真系统新增功能示意Fig.2 New features schematic of the simulation system
进路自动触发功能:在自动进路触发模式下,仿真终端可根据运行图/目的地信息,自动加载列车,并实现办理进路、列车控制等功能。
场景管理功能:场景包括设备状态信息、列车相关信息、故障模拟信息、运行图信息,共4类信息。添加场景时,保存场景信息的同时生成一条保存记录。记录保存日期、保存名称、保存人、保存备注信息等。场景管理功能包括场景记录的添加(场景信息保存)、删除、载入(场景信息载入)。可用脚本控制场景自动载入的时间、顺序、时长、以及上述4类信息的详细内容。
回放功能:离线状态下,根据回放文件,建立实时信号状态复现(包括设备状态、列车信息等)。可对设备进行操作功能;在线状态下,仿真系统实时记录回放数据并保存在本地数据库,根据需要对数据进行复现。
命令列表和报警列表功能:命令列表记录仿真系统外部命令和仿真界面的操作流程。列表内容提供2种方式,分别是将接收/发送数据分类统计、直接顺序显示接收/发送的数据。报警列表用于显示仿真系统的异常、报警等信息。
4 仿真系统自动化测试应用
仿真系统把测试的输入条件保存成场景,用测试用例编号作为场景名称。一个场景可以对应一个或多个测试用例。在场景备注里,简单描述加载场景后的测试步骤。如图3所示,在执行测试时,将原来的阅读测试用例、理解测试用例,人工逐步设置测试输入条件的步骤,直接用加载用例对应的场景替代,进而实现测试的自动化程度,提升测试效率。
图3 仿真系统自动化测试过程示意Fig.3 Automation test process schematic of the simulation system
实验证明,用这种方式每执行一条测试用的时间,可从之前的5 min降低至2 min,这样大大降低了因人为因素导致的测试质量下降问题。按此数据计算,仅用该方法,测试时间可节省约60%。
仿真系统的运行图加载和进路触发功能,使得测试人员无需搭建复杂的ATS测试环境,即可通过仿真终端完成测试的相关内容,如测试连接关系、进路自动触发数据等。以列车速度为依据,列车速度可提升约70%以上,仅以此项计算,测试时间可节省约70%。
回放以及命令、报警列表功能,作为保存测试过程、记录测试问题的辅助功能,为研发人员复现问题和快速查找问题提供了有利的保证。
5 结束语
本文通过对仿真系统结构及功能的优化,以场景管理和场景管理脚本为基础,结合列车按计划图自动运行、列车运行速度调整等功能,以回放、命令和报警列表为辅助,极大节省了ATS产品确认测试的人工成本和时间成本,提高产品的测试效率和测试质量。该仿真系统也可作为ATS培训管理系统的创新点,同时也可以作为研发人员复现现场故障,分析软件问题的工具。