铁路信号计算机联锁系统的自动化测试方法

文档序号:9921957阅读:677来源:国知局
铁路信号计算机联锁系统的自动化测试方法
【技术领域】
[0001]本发明涉及计算机联锁系统,特别是涉及一种铁路信号计算机联锁系统的自动化测试方法。
【背景技术】
[0002]安全是铁路运输生产永恒的主题,而计算机联锁系统是保障铁路车站列车和机车作业安全的关键系统,所以为保证系统的安全性必须对其进行充分的测试。
[0003]现有联锁业务逻辑验证采用手工测试的方式,手工测试的测试行为只能单次执行,无法复制及记录,并且测试的结果正确性只能通过观察确定,在软件回归测试时,之前的所有的测试行为只能再次手工重复,因此手工测试存在测试不充分,测试效率低下以及劳动强度大等弊端,而自动化测试能够替代人工操作,做到测试的规范化、程序化和简单化,从而提高工作效率、缩短试验时间,并能消除人工操作而导致的失误。
[0004]对于任何的自动化测试系统,如果没有测试案例,测试都无法正常进行,现有的联锁系统自动化测试研究多侧重于自动化测试平台的搭建,如图1所示,是现有联锁系统测试平台的示意图;现有联锁系统测试平台包括人机对话层1、联锁运算层2、1/0模块3和监控对象层4。人机对话层I包括测试机5、调度监督机即列车自动监督系统(ATS)6和管理维护机7;测试机5中需要安装测试软件8,测试软件8包括测试程序、测试用例、测试输出和测试结论。联锁运算层2包括多个互相热备份的装有VxWorks系统的计算机即VxWorks CPU9;人机对话层I和联锁运算层2之间通过工业以太网相连。联锁运算层2和I/O模块3之间通过CAN总线相连。轨旁设备4 一般包括道岔、轨道电路和信号机等。对联锁系统进行测试时,测试机5负责模拟调度监督机6以及相关的轨旁设备4。测试步骤为:运行测试机5中的测试程序,加载测试用例,通过以太网将轨旁设备4的操作命令发送给联锁系统即VxWorks CPU9,联锁逻辑处理完成后,由I/O模块3将输出数据以及轨旁设备4的状态返回给测试机5,测试机5根据测试输出给出测试结论。
[0005]对测试案例的自动化生成较少涉及,联锁系统需要对每一类设备执行测试场景的全覆盖测试,如需对每个道岔都进行各种运营场景下定操、反操的操作,如果交由人工来完成测试案例,则耗时费力且容易产生错误。在现有大多数的计算机联锁系统测试中,测试案例多为采用自然语言描述的测试场景,由测试人员在测试过程中结合实际的被测对象(站场)转换成测试案例并进行手工测试,而留下的仅仅是测试的结果。由于测试和记录过程都是人工进行,对于测试案例是否有遗漏,测试过程是否满足测试场景的要求,测试结果是否可信等,都可能存在问题。另外,由于人工进行测试,其效率也是很低的。

【发明内容】

[0006]本发明所要解决的技术问题是提供一种铁路信号计算机联锁系统的自动化测试方法,能有效缩短测试执行时间,提高测试效率,节省测试人力。
[0007]为解决上述技术问题,本发明提供的铁路信号计算机联锁系统的自动化测试方法包括如下步骤:
[0008]步骤一、对描述测试案例的脚本进行格式定义,采用XML文件作为描述测试案例的脚本,所述测试案例的XML文件的格式采用三层XML元素结构。
[0009]第一层XML元素为根元素,通过所述第一层XML元素定义XML文件中包括有所述测试案例。
[0010]第二层元素定义一个以上的独立的所述测试案例。
[0011 ]第三层元素定义多条测试命令。
[0012]步骤二、按照步骤一定义的测试案例的脚本格式自动生成所有测试案例。
[0013]自动生成各所述测试案例时,通过所述第二层元素定义所述测试案例的所要完成的功能、编号和被测试设备。
[0014]结合被测试设备和被测试设备相关联的设备对所述第三层元素的各所述测试命令进行设置形成所述测试案例所需的各条测试指令并将各条所述测试指令按照测试时所需要的测试顺序排列起来。
[0015]步骤三、自动运行各所述测试案例并生成测试结果统计表。
[0016]进一步的改进是,所述第一层XML元素为〈TestCase〉。
[00?7] 进一步的改进是,所述第二层XML元素为〈Case〉,〈case〉包括一个以上,每一个〈case〉代表一个独立的测试案例。
[0018]进一步的改进是,〈case〉有三个能进行设置的属性,分别为:
[0019]CaseName:用于描述该案例用于测试联锁系统的何种功能;
[0020]CaseID:测试案例的编号;
[0021 ] DeviceName:被测设备的名称。
[0022 ]进一步的改进是,所述第三层元素的测试命令包括:
[0023]〈1FeedBack〉:用于设定轨旁设备的Input值的反馈方式;
[0024]〈ATSCmd〉:用于设定操作员生成的操作指令,包括ATS的指令和人机接口(HMI)的指令;
[0025]<SendATSCmd>:用于将通过〈ATSCmd〉生成的指令,按照顺序打包发送给联锁机来执行;
[0026]<ZCCmd>:用于设定区域控制器(ZC)生成的操作指令;
[0027]〈SendZCCmd〉:用于将通过<ZCCmd>生成的指令,按照顺序打包发送给联锁机来执行;
[0028]〈Wait〉:用于设置等待时间;
[0029]<Init>:用于给联锁机发送重新初始化指令;
[°03°] 〈Set〉:用于设定轨旁设备的input点状态;
[0031 ] 〈Submit〉:用于将通过〈Set〉指令调整的input状态打包发送给联锁机来使用;
[0032]〈CheckATSimulator〉:用于检查联锁机发送给ATS或者HMI的内部状态信息与测试案例设定的状态值是否一致;
[0033]<ChecklOSimulator):用于检查轨旁设备I/O点状态值与测试案例设定的状态值是否一致。
[0034]进一步的改进是,〈1FeedBack〉通过属性“Method”来设定轨旁设备的Input值的反馈方式:
[0035]Me thod = 〃Auto〃:每个轨旁设备input值根据output值的变化而自动变化;
[0036]Method = "Manual 〃:每个轨旁设备output值的变化不会带来input值的变化。
[0037]〈Set〉通过三个属性进行设置,分别为:
[0038]DeviceName:轨旁设备名称;
[0039]RelayName:轨旁设备的input点名称;
[°04°] RelayValue:轨旁设备input点的新状态。
[0041 ] 进一步的改进是,〈ATSCmd〉通过两个属性进行设置,分别为:
[0042]CmdName: ATS或者HMI指令的名称,名称都是预定义的关键字;
[0043]DeviceName:指令所针对的轨旁设备的名称。
[0044]<ZCCmd>通过两个属性进行设置,分别为:
[0045]CmdName: ZC指令的名称,名称都是预定义的关键字;
[0046]DeviceName:指令所针对的轨旁设备的名称。
[0047]进一步的改进是,〈Set〉通过三个属性进行设置,分别为:
[0048]DeviceName:轨旁设备名称;
[0049]RelayName:轨旁设备的input点名称;
[°°50] RelayValue:轨旁设备input点的新状态。
[°°511 进一步的改进是,〈CheckATSimulator〉通过四个属性进行设置,分别为:
[0052]DeviceName:轨旁设备名称;
[0053]AttributeName:设备属性名称;
[0054]ExpectStatus:期望的属性值;
[0055]WaitMaxTime:检查上述属性值前所等待的时间,单位毫秒。
[0056]〈ChecklOSimulator〉通过四个属性进行设置,分别为:
[0057]DeviceName:轨旁设备名称;
[0058]RelayName: 1/0 点名称;
[0059]ExpectStatus:期望的 1/0 点值;
[0060]WaitMaxTime:检查上述1/0点值前所等待的时间,单位毫秒。
[0061]进一步的改进是,步骤二中采用C#语言实现自动生成所有测试案例。
[0062]步骤三中采用C#语言实现自动运行各所述测试案例并生成测试结果统计表。
[0063]本发明通过采用XML文件对描述测试案例的脚本的格式进行特别定义,对这种XML文件进行三层XML元素结构的定义,结合三层XML元素结构的定义和实际的被测试设备及其相关联的设备能够实现通过软件设置的方式自动得到和被测试设备相对应的测试案例,并能通过软件
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1