APP下载

基于场景模拟的地铁ATS软件自动化测试系统

2021-02-23黄晓帆欧阳敏

铁路计算机应用 2021年1期
关键词:测试人员测试用例列车

黄晓帆,欧阳敏

(卡斯柯信号有限公司 测试部,上海 200071)

城市轨道交通信号系统主要包括车载控制器(CC,Carbone Controller)、区域控制器(ZC,Zone Controller)、线路控制器(LC, Line Controller)、计算机联锁(CI, Computer Interlocking)系统和自动列车监控(ATS,Automatic Train Supervision)系统。其中,ATS系统主要提供列车运行监督和控制的自动化行车调度指挥功能[1-3]。随着城市轨道交通建设的不断发展,地铁运营自动化程度不断提高,地铁列车运营管理日趋复杂,原先由司机执行的许多工作转变为由自动化系统和中心调度员联合完成,ATS系统涉及的运营场景更加复杂[4]。为此,对ATS软件的测试要求更高,有必要研究和开发ATS软件的自动化测试系统,实现对多场景、多功能的测试覆盖,支持迭代开发的自动化回归测试,有效发现软件中存在的缺陷,降低测试人员工作强度。

常见的软件动态测试方法分为2类:白盒测试和黑盒测试。白盒测试又称为结构测试,需要了解程序内部结构,据此设计测试用例[5]。黑盒测试又称为功能测试,测试人员无需了解程序内部结构,重点关注系统功能是否满足用户要求。目前,虽有不少成熟的商用自动化测试工具,如LR(LoadRunner)和QTP(QuickTest Professional)等,但这些工具不满足实时性要求,且不支持专用协议,多适用于单一类型测试等[6-7],不适用于具有复杂专用接口和业务流程的轨道交通信号系统的测试。

在分析ATS系统相关接口、系统构成和主要功能的基础上,提出ATS软件自动化测试系统(简称:测试系统)方案,利用虚拟机技术搭建了ATS系统模拟测试环境,设计基于场景模拟的测试用例,验证ATS组合功能的正确性,以快速交付可靠的ATS软件产品。

1 ATS系统测试要求

1.1 系统相关接口

ATS系统自身功能的实现建立在通过接口与相关系统进行通信和信息交互的基础上,其接口包括2类:

(1)与信号系统内部的其它子系统的接口,包括 CI、CC、ZC、LC;

(2)与信号系统之外的其它系统的接口,包括综合监控系统(ISCS,Integrated Supervisory Control System)、时钟系统(CLOCK,Clock System)、旅客信息系统(PIS,Passenger Information Service System)、广播系统(PA, Public Address System)、牵引供电系统(SCADA, Supervisory Control and Data Acquisition System)、 发车表示器(TDT,Train Depart Timer)等。

1.2 ATS系统构成及主要功能

ATS系统主要由工作站、应用服务器、通信前置机、网关服务器、车站服务器、在线时刻表等组成。

工作站通常设置2个或3个屏幕的窗口,其中,1个为运行图显示窗口,主要用于显示计划运行图,提供运行图修改、打印等操作界面;另外1个或2个为站场图显示窗口,主要用于显示站场设备状态、时间、报警,提供权限管理、列车运行控制、车辆管理、报警管理、报表等操作的人机交互界面[8]。

应用服务器作为ATS系统的数据处理中枢,向工作站发送站场图显示数据、告警、列车状态信息,处理调度人员、维护人员、派班人员的各种操作请求,并将请求发送给相关系统执行;保存系统日常运行的各种数据,提供事后分析和回放。

通信前置机负责ATS系统与信号系统之外其它系统的通信;根据项目的不同要求,实现ATS与PIS、ISCS、PA、CLOCK等的接口,以及与其它线路的接口[9]。

网关服务器为ATS系统的关键核心模块,负责与ATC接口,完成与CC、ZC和LC子系统通信,提供会话管理、临时限速管理、计轴有效性确认、列车控制命令管理、列车告警管理、列车连挂管理等。

车站服务器为ATS系统的集中站数据处理中枢,完成与CI和TDT系统的通信,本集中站内列车追踪和计划调整;自动办理进路。若ATS接入车辆段,还可提供自动洗车和自动出入库控制功能。

在线时刻表主要用于日常运营过程中当天计划图、当天实际图、历史计划图、基本计划图、预测计划图的显示,提供增加列车、删除列车、变更列车运行车次等时刻表在线调整的操作界面。

2 基于场景模拟的ATS软件自动化测试系统

2.1 系统构成

场景是指由事件触发形成相应的流程,进而形成一系列事件的结果,通常用于描述软件使用过程中的基本流程和功能需求。基于场景的测试方法从最终用户的角度来测试软件是否满足用户需求,针对软件中所有可能出现的业务流程,重点关注测试场景中各个功能项是否能够满足需求且正确执行。

在轨道交通信号领域,相对于CI、CC、ZC、LC,ATS系统直接面向地铁运营管理人员。面对日益复杂的运营场景,用户需求变化更为频繁。ATS系统的软件测试不仅要求验证ATS软件单个功能项的正确性,还需要考虑地铁运营场景和用户使用习惯,验证ATS软件多个功能项组合的正确性,对测试资源和效率的要求更高,亟需借助自动化测试代替部分手工测试,以提高测试效率。

如图1所示,基于场景模拟的ATS软件自动化测试系统由被测对象服务器、模拟集成服务器、测试管理服务器3台服务器组成。

被测对象服务器上运行被测试的ATS系统的软件,即需要被验证的软件。模拟集成服务器运行除ATS系统之外的其它仿真软件,提供ATS软件模拟运行所需的外部接口条件。测试管理服务器主要完成测试场景的编辑,启动测试流程,调用被测对象服务器和模拟集成服务器执行和终止测试,自动生成测试报告。

2.2 被测对象服务器

被测对象服务器采用虚拟机技术,提供运行被验证的ATS软件所需的操作系统(Windows server 2012、Windows 10或Redhat Linux7.2)环境,以模拟运行ATS工作站、在线时刻表、应用服务器、车站服务器、通信前置机和网关服务器等ATS软件,测试应覆盖ATS系统所有操作,包括运行图编辑下发、站场控制、用户管理、列车运行控制、临时限速管理、自动排路、人工排路等[10]。

2.3 模拟集成服务器

模拟集成服务器运行模拟ATS系统外部环境的仿真程序,包括与信号系统内部其它子系统或设备(CI系统、CC、ZC、LC)接口的仿真程序,以及与信号系统之外的其它系统(SCADA、ISCS、CLOCK、PIS、PA)接口的仿真程序。对ATS系统外部环境的模拟并不模拟相关子系统或设备/系统功能,仅按照ATS系统与这些子系统或设备/系统的接口协议中规定的消息格式和内容,实时地向被测试的ATS系统发送消息,为被测试的ATS系统提供与真实的列车运行环境一致的运行条件。例如,可使列车按照CI模拟产生的信号开放信息,沿着进路锁闭方向前行,自动产生符合信号规则的红光带移动信息,按照指定的速度运行,以支持ATS软件的测试。

除了可模拟真实的列车运行环境,测试系统还支持2类故障注入:(1)信号设备故障,包括道岔失表、灯丝断丝、区间红光带;(2)信号系统各个子系统或设备间的通信异常,包括时序错误和通信内容错误。

2.4 测试管理服务器

测试管理服务器运行测试系统自身的软件,用于控制测试过程,实施测试管理,主要包括测试流程编辑、测试场景编辑、测试日志分析、测试报告自动生成4个模块。

2.4.1 测试流程编辑模块

该模块主要用于定义自动化测试的基本流程,如图2所示,同时存储测试所需要的软件、配置数据以及测试使用的工具(测试环境自动部署工具、通信信息网络封包分析工具等)。

当该模块收到测试场景编辑模块发送的测试服务请求之后,按照收到的软件版本和配置数据版本,启动自动部署工具,远程部署被测对象服务器上的ATS系统测试环境,模拟集成服务器上ATS接口系统的仿真环境。在测试执行阶段,该模块调用模拟集成服务器模拟ATS系统外部环境,配合被测ATS系统软件的测试场景执行;同时,该模块记录测试过程中ATS界面上所有的控件状态,ATS与其它子系统/外部系统的所有接口通信信息内容,并将其存储在测试日志存储模块中,供测试报告自动生成模块调用。

2.4.2 测试场景编辑模块

该模块主要用于测试计划策略的编辑、查看和管理,设置被测试的软件版本和配置数据版本,存储为每个测试场景设计的测试用例脚本,存储各个测试场景预期测试结果,包括控件状态及对应的接口通信信息。

2.4.3 测试日志存储模块

该模块主要用于存储被测对象服务器上ATS界面所有的控件状态、ATS系统各软件模块的运行日志、以及模拟集成服务器上运行的ATS外部环境的模拟生成的所有接口通信信息,并根据预定义的接口通信信息解析脚本,自动解析通信信息包中各个字段的内容。

2.4.4 测试报告自动生成模块

该模块将测试日志存储模块中存储的测试执行产生的接口通信信息内容和ATS界面上的控件状态,与测试场景编辑模块中的存储的预期结果对应的控件状态和接口通信信息内容进行比较。如果两者一致,则判断本测试场景通过测试;如果两者不一致,则判断本测试场景未通过测试。

测试系统根据测试用例脚本自动执行测试过程,全部测试用例脚本执行完成后,能自动生成测试报告,可极大提高测试人员的工作效率,使测试人员将精力集中于测试场景的设计。

3 测试实例

以上海地铁1号线信号系统升级项目中ATS软件测试为例,编辑多辆列车运行计划,仿真列车自动按照计划模拟运行,描述其自动化测试过程。

(1)在被测对象服务器上,存储ATS软件、网络配置、数据文件;在模拟集成服务器上存放CI系统仿真、CC仿真、ZC仿真、LC仿真设备软件及数据。

(2)运行测试环境自动部署工具,分别远程安装被测对象服务器和模拟集成服务器上的ATS系统内部测试环境和ATS系统外部环境。

(3)测试人员编写列车运行计划脚本,如图3所示,测试场景中设置5列列车按3 min发车间隔,从转换轨所在站台出发;命名为sched0.dat放置在测试管理服务器上。

图3 列车运行计划脚本示例

(4)测试人员在测试模拟集成服务器上配置转换轨所在站台的位置信息:集中站号、站台号、方向等,如图4所示。其它配置信息,如图5所示。

图4 转换轨位置信息配置示例

图5 其它配置信息示例

(5)运行测试用例脚本命令;当测试系统时间到达列车计划中设置的出发时间时,CC模拟会依次加车到转换轨所在站台,模拟限制人工驾驶模式(RM,Restricted Mode)驾驶列车精确停靠站台,接收运行计划后,进入正线模拟运行。在列车模拟运行过程中,测试系统记录并存储ATS系统日志,如图6所示。与预期结果进行比较,自动生成测试报告。

图6 日志示例

针对上海地铁1号线信号系统升级中的ATS软件测试,结合运营场景设计了基于13个场景的测试用例,覆盖47个功能项。从测试环境自动化部署到测试报告自动生成共耗时2 h。在使用自动化测试平台前,人工搭建测试环境并完成测试,通常需要8 h。利用该自动化测试平台,可大幅减少测试时间。随着测试系统日趋完善,测试人员编写的测试场景脚本的复用率将会逐渐提升,利用已创建的测试场景脚本,测试执行人员可将更多精力用于其它有助于测试效率提升的工作。

4 结束语

开发了基于场景模拟的ATS软件自动化测试系统。测试系统由被测对象服务器、模拟集成服务器和测试管理服务器构成,将ATS系统内部环境的模拟与ATS系统外部环境的模拟相分离,降低ATS软件仿真测试系统的复杂度。目前,已完成测试管理服务器软件模块的开发,包括测试流程编辑、测试场景编辑、测试日志存储、测试报告生成4个主要模块。使用该测试系统时,将单一功能项与运营场景结合起来设计测试用例,使用基于一个场景模拟的测试用例即可验证多个功能项组合的正确性,可显著提高软件测试效率。此外,测试系统可自动执行测试过程,并自动生成测试报告,测试人员可将精力集中于测试场景设计和测试策略优化,不断优化测试系统。

地铁ATS系统与铁路分散自律调度集中控制(CTC,Centralized Traffic Control)系统的功能类似,虽然两者外部接口存在很大差别,但测试方法可以借鉴。

猜你喜欢

测试人员测试用例列车
移动应用众包测试人员信誉度复合计算模型研究
登上末日列车
关爱向列车下延伸
基于SmartUnit的安全通信系统单元测试用例自动生成
穿越时空的列车
基于混合遗传算法的回归测试用例集最小化研究
高校分析测试中心测试队伍建设方案初探
浅析软件测试中的心理学应用
基于依赖结构的测试用例优先级技术
西去的列车