首页> 中国专利> 一种CTC系统自律机功能批量自动回归测试方法及系统

一种CTC系统自律机功能批量自动回归测试方法及系统

摘要

本发明公开了一种CTC系统自律机功能批量自动回归测试方法及系统,可自动模拟功能测试所需的标准输入数据并发送至待测自律机,然后记录待测自律机对应的输出数据,自动分析比较自律机输出数据判断所回归功能是否正确。同时支持对多项功能进行批量自动回归测试,并记录测试结果输出测试报告。

著录项

说明书

技术领域

本发明涉及轨道交通技术领域,尤其涉及一种CTC系统自律机功能批量自动回归测试方法及系统。

背景技术

CTC(调度集中)系统是指调度中心对所辖区段内的车站信号设备进行监视和控制、统一指挥和管理列车运行的技术装备。分散自律是当前调度集中系统的核心自动控制技术,其基本模式是利用列车运行调整计划自动控制列车运行进路,具体表现为对站内进路信号机的开放及关闭、进路的锁闭及出清、进路道岔对象的定反位操作以及当进路条件不满足时的报警等。近年来,随着中国高铁技术的不断发展,京雄、京张等智能高铁的陆续建设上线,高铁调度集中系统也在不断的迭代与升级,其中自律机作为调度集中系统的核心组成部分,逐渐的表现出集成度高、逻辑复杂、处理数据量大等特点,其稳定性与可靠性时刻面临着挑战。

自律机软件功能项数量庞大,各个功能之间也有着错综复杂的联系,往往在新增功能或者优化既有功能后,不但需要模拟现场生产环境对功能项进行反复验证,而且还需对相关可能受影响的其他功能项进行回归测试,以验证软件整体的可靠性与稳定性。为此,自律机软件功能的回归测试技术也在不断的创新与改进。

总体来讲,CTC系统的自律机控制工作可大致分为数据输入、数据处理、数据输出三个阶段,且这三个阶段的工作会连续进行,不会单独出现。对于通过自律机实现的系统功能,功能的实现可以解释为合理的数据输入产生预期的数据输出;而系统功能的可靠性及稳定性也可认定为系统功能的一种,表现为接收超设定范围的数据输入,数据处理过程中对此类数据进行特殊判断处理,输出报警类提示信息。

自律机核心功能包含有列车查找、列车进路自动排列、接车进路预告等,这些功能的实现过程大致如下:

1、列车查找功能。

自律机接收中心行调台下达的列车计划后,查找首条列车计划对应的车次。如要找到计划车次,需正确监测本站及邻站站内及区间对象的状态,获取追踪程序提供车次号信息,两者结合根据站内对象连接关系数据找到可通往计划接发车端口的列车,进而判断此列车与计划列车是否一致。此功能核心输入数据包括:阶段计划信息、车次号信息、站内及区间对象表示信息、对象连接关系数据。

2、列车进路自动排列功能。

同样在接收中心行调台下达的列车计划且查找首条列车计划对应的车次后,自动判断是否达到预设的近路触发时机,若达到时机则进一步判断相应的进路对象是否空闲,若空闲则向联锁系统下达排路控制命令。此功能实现需要的输入信息包含有控制模式信息、列车计划信息、车次号信息、列车位置信息、进路对象联锁表示状态信息、进路对象CTC表示状态信息等,且针对这些输入信息的判断还有着严格的先后顺序。

3、接车进路预告功能。

自律机在检测到计划接车进路排列成功后(计划进路对象全部锁闭且接车信号机开放),轮询查找计划列车是否出现在接车端口外的区间,若满足条件则向机车发送接车进路预告。此功能的核心输入数据包括:阶段计划信息、站内及区间对象表示信息、车次号信息。

当前针对自律机软件功能的回归测试,主要依赖搭建虚拟仿真环境来完成。由人工模拟现场实际操作,待测试功能项完成运算,在人机交互界面查看实际效果,以此来判断功能的有效性。此测试方法主要包含有两方面的工作:测试环境的搭建、测试用例的设计。

1、测试环境的搭建

为了保证数据的真实性,往往需要完全按照现场实际生产搭建模拟环境,要求中心设备、车站设备以及各种数据仿真软件联合协作,连接关系如图1所示。

2、测试用例的设计。

针对某一特定自律机功能的回归测试,要明确其原理及实际效用,从正向逻辑方面入手考虑功能实现的方方面面,以合理的数据输入得到预期的数据输出;同时还要从逆向逻辑方面深入研究,对不合理的数据输入,软件是否有所防范,其效果又如何;再结合现场实际中的不同场景以及产品使用方的特定要求,设计出软件回归的测试用例。

以设计的测试用例为依据,在搭建的虚拟测试环境中完成自律机功能的回归测试。

然而,上述方案存在如下缺陷:

1、测试方法仍属于人工测试的范畴,功能的输入由人工搭建虚拟测试环境模拟实现,功能实现与否亦由人工来判断。

2、不适用于功能项的批量回归测试,某一特定环境可能只适用于测试部分功能,如回归测试多项功能,则需要不断的修改切换测试环境,既耗费人力又没有效率。

3、测试成果不便于固化与维护,虚拟测试环境的搭建需要耗费大量的物力资源,而自律机软件功能项众多,如针对每一功能项都去长期保留固定的测试环境很难实现。

发明内容

本发明的目的是提供一种CTC系统自律机功能批量自动回归测试方法及系统,可以实现自律机功能的自动回归测试、以及批量回归测试,也可以实现回归测试成果的固化且方便维护。

本发明的目的是通过以下技术方案实现的:

一种CTC系统自律机功能批量自动回归测试方法,包括:

根据CTC系统自律机的输入数据特点、以及待测功能,确定所需的信息,以及信息的先后顺序,从而构成标准输入文件;

基于标准输入文件,执行待测功能后,获得对应的标准输出文件;

将标准输入文件与对应的标准输出文件作为一对自动回归测试脚本并进行编号;

对于待测自律机的待测功能进行测试时,输入相应编号的标准输入文件,获得相应的实际输出文件,将实际输出文件与相应的标准输出文件进行比较,从而判断待测功能是否通过回归测试。

一种CTC系统自律机功能批量自动回归测试系统,包括:

标准输入文件构造单元,用于根据CTC系统自律机的输入数据特点、以及待测功能,确定所需的信息,以及信息的先后顺序,从而构成标准输入文件;

标准输出文件获取单元,用于基于标准输入文件,执行待测功能后,获得对应的标准输出文件;

用于批量测试的编号单元,用于将标准输入文件与对应的标准输出文件作为一对自动回归测试脚本并进行编号;

测试及测试结果比较单元,用于对于待测自律机的待测功能进行测试时,输入相应编号的标准输入文件,获得相应的实际输出文件,将实际输出文件与相应的标准输出文件进行比较,从而判断待测功能是否通过回归测试。

由上述本发明提供的技术方案可以看出,可自动模拟功能测试所需的标准输入数据并发送至待测自律机,然后记录待测自律机对应的输出数据,自动分析比较自律机输出数据判断所回归功能是否正确。同时支持对多项功能进行批量自动回归测试,并记录测试结果输出测试报告。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明背景技术提供的现有CTC系统测试环境示意图;

图2为本发明实施例提供的一种CTC系统自律机功能批量自动回归测试方法的示意图;

图3为本发明实施例提供的自动排路功能逻辑判断流程图;

图4为本发明实施例提供的标准输入数据的读取和处理逻辑;

图5为本发明实施例提供的标准输出数据脚本生成逻辑;

图6为本发明实施例提供的实际输出数据与标准输出数据比较逻辑流程图;

图7为本发明实施例提供的同名数据链表比较逻辑流程图;

图8为本发明实施例提供的功能批量自动回归测试流程图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

本发明实施例提供一种CTC系统自律机功能批量自动回归测试方法,其原理如图2所示,主要包括:

1、根据CTC系统自律机的输入数据特点、以及待测功能,确定所需的信息,以及信息的先后顺序,从而构成标准输入文件。

首先,针对自律机功能测试的原理进行介绍。

采集站内及区间对象状态信息是自律机所有功能实现的基础条件。采集对象按类型可分为直线对象、道岔对象、信号机对象等,每种对象又可表现为多种状态,例如直线对象可以表示为空闲、占用、锁闭等状态,道岔对象可以表示为定位、反位、挤岔等状态,信号机对象可以表示为红灯、绿灯、黄灯等状态。对于一些比较复杂的车站,拥有着几百个站内及区间对象,自律机均需要实时采集这些对象的状态信息以做判断,所以自律机运行所需的表示信息数据多且复杂。

自律机监测和判断各个对象的状态,结合计划台的计划和计划列车信息,实现调度集中自动化控制的目的,以接车进路自动排列功能为例,在实现功能的过程中需要经历以下几个阶段:

1)自律机在分散自律控制模式下接收中心下达的列车计划信息,以形成对应的进路指令。

2)在自律机所辖范围内轮询查找当前首趟计划车次,若没找到计划车次则不做任何处理,若找到计划车次则进入进路指令触发的判断逻辑。

3)进入进路指令触发的判断逻辑后,检查是否达到进路指令触发时机,检查计划车次对应的列车位置与接车端口间的空闲区间数是否小于等于设定数值,若判断满足指令触发时机则进一步检查进路空闲条件。

4)进路空闲条件的检查分为两部分,一部分检查进路对象联锁空闲条件,另一部分检查进路对象CTC空闲条件。若进路对象空闲,判断具备进路触发排列条件,则向下一级的联锁系统下达排路命令;若进路对象非空闲则禁止排路,并对外报警提示具体进路对象的非空闲状态。

针对自动排路功能,输入信息包含有控制模式信息、列车计划信息、车次号信息、列车位置信息、进路对象联锁状态、进路对象CTC状态等,且针对这些输入信息的判断还有着严格的先后顺序;输出信息有两类,下达排路命令和报警提示信息,逻辑判断关系如图3。

根据以上分析,自律机的输入是由联锁表示信息、控制模式信息、车次号信息、阶段计划信息、操作终端的控制命令信息等组成的持续且有序的数据流信息,自律机需要实时监测这些信息的变化,从而做出判断以达到实现某项具体功能的目的。所以自律机功能的自动回归测试首要面临的难题是如何模拟功能实现所需的输入数据流信息。

本领域技术人员可以理解,对象的状态信息可分为联锁状态信息和CTC状态信息两种,联锁状态信息是由联锁设备提供给自律机,CTC状态信息是自律机根据终端的控制命令自己产生,因此,上述联锁表示信息属于对象的状态信息。

本发明实施例中,所提及的自律机通常为软件形式,由于自律机软件在不停的更新迭代,所以待测自律机往往都是最新版本还未发布的自律机软件。

在实际的应用中,自律机在CTC系统环境下运行的过程中会自行按接收顺序记录所有收到的数据,并以十六进制的形式存储于固定的日志文件中且如实的标记每一包数据的接收时间,所述日志文件即为标准输入文件。

本发明实施例中,将标准输入文件作为自律机功能回归测试的输入,自律机回归测试软件顺序读取其中记录的数据向待测自律机发送,两包数据之间发送的时间间隔完全取自数据标记的接收时间差值,这样即可完整的模拟输入数据流信息。

如图4所示,自律机回归测试软件对于标准输入文件的读取与处理逻辑为:读取全部标准输入文件,数据包数记为M;记录第N包数据和第N+1包数据的接收时间差记为TN毫秒,向待测自律机发送第N包数据,并判断是否满足N≥M;若否,则等待TN毫秒后发送第N+1包数据。

本发明实施例中,自律机功能批量自动回归测试软件(简称自律机回归测试软件)作为执行主体,负责输出标准输入文件输出、获取标准输出文件、接收实际输出文件、以及进行标准输出文件与实际输出文件的比较工作。

2、基于标准输入文件,执行待测功能后,获得对应的标准输出文件。

从数据层面看,自律机任意功能的实现都会向外发送相应的输出数据,具体表现为向联锁下达控制命令信息、对外发送报警信息、对外发送逻辑表示信息、对外发送进路预告信息、对备机发送同步信息等,本发明依据自律机的输出数据判定功能实现与否。

如图2所示,通过自律机回归测试软件,可建立与待测自律机的通信连接,向待测自律机发送功能验证所需的标准输入文件,然后获取自律机的输出数据并自动分析比较。

鉴于CTC系统自律机本身的特点,其每一次轮询检查都会同时进行多个平行功能的逻辑判断,即在实现特定功能的期间也可能完成了多个其他功能。在以标准输入数据作为输入的前提下,自律机的输出数据并不单一,而是包含有目标功能输出数据在内的数据流信息。判断功能是否实现不仅要明确哪些数据为所测功能对应的特征输出数据,还要辨别此数据的输出时机,最后判断数据中的特征字段是否正确。然而自律机功能项众多,针对每一项功能都去精确定义其输出数据规格,其工作难度大且不具备普遍适用性。本方案采用数据比较法来判断回归测试功能实现与否,在回归测试中将待测自律机的实际输出数据与标准输出数据进行比较,若数据一致则认为测试通过,否则认为测试不通过。

基于图2所示的原理,本发明实施例中,向已发布版本的自律机软件(也即之前已经通过回归测试的自律机)发送标准输入数据,同时接收并记录已发布版本的自律机的输出数据,且标记每包数据的接收时刻。此处标记的时刻不以系统时间为准,而是规定接收第一包数据的时刻为0点0分0秒0毫秒,之后每包数据的标记时刻为与第一包数据的时间差,最后将所有接收到的输出数据顺序记录并形成静态文件,因既有已发布版本自律机软件可以正确实现所测功能项,所以定义形成的静态文件为标准输出文件,上述流程如图5所示。

3、将标准输入文件与对应的标准输出文件作为一对自动回归测试脚本并进行编号。

为了适用于功能的批量自动回归测试,可以为每一对自动回归测试脚本进行编号。

4、对于待测自律机的待测功能进行测试时,输入相应编号的标准输入文件,获得相应的实际输出文件,将实际输出文件与相应的标准输出文件进行比较,从而判断待测功能是否通过回归测试。

自律机包含有多个线程,有可能在同一时刻各线程均有数据输出,这些数据间的输出顺序存在着不确定性。这样在回归测试过程中,即使待测自律机正确实现的测试功能,输出数据虽然正确,但数据间的顺序可能无法保证与标准输出数据一致。因此,若对实际输出数据和标准输出数据进行逐行比较,则可能会因数据间顺序的不同导致相比较的两包数据类型都不一样,进而无法准确辨别一致性。

为解决此问题,在进行数据比较时分别将对比的两份输出数据进行归纳分类,同一类数据依据时间先后存入一个单独链表中,然后通过对比同类数据链表来判断两份数据的一致性,图6为输出数据比较逻辑流程图,主要步骤包括:

1)对标准输出文件中的数据进行归类,根据数据类型标志位将同类数据按照时间先后顺序放入同一链表中,并以数据类型命令链表,最终记录的数据类型数量为K;

2)采用相同的方式,对实际输出文件中的数据进行归类,根据数据类型标志位将同类数据按照时间先后顺序放入同一链表中,并以数据类型命名链表;

3)以标准输出文件归纳的数据链表为准,在实际输出文件归纳的数据链表中寻找相同名称的链表;

若找到,则比较两个链表的数据,数据一致则进行下一类型数据链表比较,若不一致则记录不一致的对比内容,并退出回归测试流程,判断回归测试不通过;

若找不到同名数据链表,同样记录不一致的对比内容,并退出回归测试流程,判断回归测试不通过;

4)比较过程中,任一类型数据的链表不一致都判定为回归测试不通过,当所有类型的数据链表内容全部一致时,判定通过回归测试。

在进行同名链表的数据比较时,考虑到每包数据标记的时间存在误差且待测自律机设定的轮询周期为1s,所以规定相比较的两包数据标记时间差△t冗错为1s。在比较任意两包数据时,以标准输出文件为准,在实际输出文件的链表中遍历查找符合以下两个条件的数据:

1)数据的标记时间与标准输出数据标记时间差小于1s。

2)数据内部的各字段内容与标准输出数据完全一致。

如图7所示,比较两个相同名称的链表的主要流程包括:

步骤A、设定:两个相同名称的链表中属于标准输出文件的链表为A1,属于实际输出文件中链表为A2;链表A1、链表A2中数据包数目分别为K1、K2;设定X与Y的初始值均为1;

步骤B、选择链表A1中的第X包数据;

步骤C、选择链表A2中的第Y包数据;

步骤D、判断两包数据标记时间差△t是否小于待测自律机设定的轮询周期,若△t小于待测自律机设定的轮询周期,则转入步骤E;若不△t不小于待测自律机设定的轮询周期则转入步骤F;

步骤E、判断两包数据内容是否一致;若内容一致,且满足X≥K1,则判定该链表A1与链表A2内容一致;若内容一致,但不满足X≥K1,则令:X=X+1,Y=1,转入步骤B;若内容不一致,则转入步骤F;

步骤F、判断是否满足Y≥K2;若不满足,则令:Y=Y+1,转入步骤C;若满足,则判定回归测试不通过。

以上是针对单项功能的回归测试进行的介绍,如之前所述,为了适用于功能批量自动回归测试,预先为每一对自动回归测试脚本进行编号,之后,可以根据编号由小到大逐项自动回归测试,将每一功能项的回归测试结果进行记录,直至所有功能项全部验证完毕,最后汇总输出测试报告。

如图8所示,为功能批量自动回归测试的流程,主要包括:

设置待测功能项数目为J,每一待测功能均对应一个自动回归测试脚本,按照待测功能项的序号为相应自动回归测试脚本进行编号;设置初始编号j=1;

判定是否满足j小于等于J;若满足,则将编号为j的自动回归测试脚本中的标准输入文件发送至待测自律机,并根据获得的实际输出文件是否与自动回归测试脚本中的标准输出文件的内容一致,来判断相应功能是否通过回归测试;重复上述过程,直至完成J项功能的回归测试,根据每一项功能的回归测试结果生成整体测试报告。

本发明实施例上述方案,主要获得如下有益效果:

1、解放了测试人员在自律机功能回归测试过程中人工搭建测试环境并模拟操作实现自律机功能的重复劳动。

2、可一次性批量完成自律机多项功能甚至全部既有功能的回归测试,大大提高了软件功能回归测试的效率。

3、“标准输入文件+标准输出文件”的数据脚本做为自律机功能回归测试成果的固化便于维护,当自律机某一功能进行了优化改进,只需针对此功能相关的脚本数据进行维护修改即可。

4、降低了自律机回归测试工作物力成本,自动批量回归测试只需要将测试软件、待测自律机存放于一台物理设备即可完成自律机所有功能项的回归测试工作,避免了全套CTC系统环境的搭建。

本发明另一实施例还提供一种CTC系统自律机功能批量自动回归测试系统,该系统用于实现前述的方法,其主要包括:

标准输入文件构造单元,用于根据CTC系统自律机的输入数据特点、以及待测功能,确定所需的信息,以及信息的先后顺序,从而构成标准输入文件;

标准输出文件获取单元,用于基于标准输入文件,执行待测功能后,获得对应的标准输出文件;

用于批量测试的编号单元,用于将标准输入文件与对应的标准输出文件作为一对自动回归测试脚本并进行编号;

测试及测试结果比较单元,用于对于待测自律机的待测功能进行测试时,输入标准输入文件,获得相应的实际输出文件,将实际输出文件与相应的标准输出文件进行比较,从而判断待测功能是否通过回归测试。

该系统的原理可直接参见前述实施例提供的图2,通过自律机功能批量自动回归测试软件与待测自律机软件的组合形式,建立数据通信闭环;具体的技术细节在前述方法实施例中进行了详细的介绍,故不再赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号