王菲 万林
基于测试案例及JRU数据的专家系统研究
王菲 万林
为保证高速铁路能够安全有效地运行,在正式运营前必须对列控系统进行充分的功能测试。研究基于测试案例以及JRU数据的专家系统势在必行。主要介绍系统的主要功能、拓扑结构及其测试步骤,以及实现测试案例快速匹配的Hash搜索树等内容。
专家系统;测试案例;Hash搜索树;JRU数据
目前我国CTCS-3级列控系统的功能测试,无论是现场测试还是试验室测试,主要采用传统的人工方式,依靠测试人员的经验判断结果的正确性,发现问题后也由相关人员查找原因,给出相应的解决方案。这种工作方式效率较低,对于某些偶发故障,复现故障发生的场景有很大的难度,给工作带来很大的困扰。所以,研究结合人工智能技术的专家系统,实现CTCS-3级列控系统的自动化功能测试意义重大。
以CTCS-3级列控系统测试案例为基础,正确界定每个案例的触发条件、约束条件、期望结果以及不同案例的关联性,形成一套案例规则库,通过软件实现自动导入。经专家系统对比JRU数据和软件预定义的消息流程及覆盖的测试案例,输出比较结果,如结果一致,则输出每个案例执行的时间、执行情况等信息;如结果不一致,输出错误信息。该系统可以通过图表的形式,自动统计每个测试序列覆盖的测试案例及数量。
本文提出的基于测试案例及JRU数据的专家系统,可实现实验室内待测设备的功能测试和现场设备数据分析/测试等。根据测试要求的不同,按照不同的测试数据流方式,划分为闭环测试系统和开环测试系统。闭环测试系统由实验室仿真测试平台提供测试数据,适用于实验室内待测设备的功能测试;开环测试系统由现场JRU数据提供测试数据,适用于现场设备的功能测试。
专家系统由3个独立但联系紧密的程序模块组成,分别为车载数据监控程序TM(Train-Monitor)、专家系统主程序ES(Expert-System)和模式识别程序PR(Pattern-Recognition)。
专家系统主程序接收JRU数据,但有些信息JRU数据中没有记录,如司机操作等,则利用模式识别程序获取DMI的实时动态显示信息,发送给专家系统主程序;专家系统依据这2个数据来源,通过搜索测试案例库,查找符合条件的案例,并判断案例的执行情况。开环测试系统的测试数据流如图1所示。
图1 开环测试系统的测试步骤
开环测试系统包括以下3个步骤:①专家系统下载获取现场JRU数据;②专家系统从数据库提取测试案例触发/比对条件信息;③专家系统根据第1、2步获取的信息进行逻辑判断,并输出分析结果。
闭环测试系统的测试步骤如图2所示,包括以下6个步骤。
1.根据测试人员操作指令,发送测试案例命令编号至实验室仿真测试平台。
2.仿真测试平台根据命令编号提取对应的测试子序列,并执行。该子序列一一对应于469个测试案例,可在仿真测试平台执行,同时可针对不同的数据配置文件生成不同线路的测试子序列。该测试子序列集构成脚本测试案例库。
3.从仿真测试平台获取测试案例所需的外部环境数据。
4.实时获取实验室内DMI信息。
5.提取数据库中的触发/比对条件。
6.综合第3、4、5步中获取的信息,进行逻辑判断,并输出分析结果。
传统的线性搜索不适于大容量搜索,所以选择一个合适的搜索算法成为提高测试案例搜索效率的关键问题。专家系统软件在存储从数据库读取的测试案例规则库时,应用了Hash表,软件中Hash函数的构造方法是以原始关键值作为新建数组的下标,由此得到的运算结果就作为该原始关键值对应规则的存储地址。由于原始关键值分类不是很多,所以无需考虑产生“冲突”的现象。原始关键值指测试案例规则中DMI的消息分类和Platform(仿真平台)的消息分类。例如DMI的消息分类有输入信息、距离控制信息、速度信息、运行计划信息、监控信息和按键信息,程序中分别用1、2、3、4、5、6来表示,先建立一个一维数组,填满这个一维数组,并将每一个类型所对应的数字为数组的下标,再以所得到数组的值作为DMI变量的存储地址,把相应的类型存储到对应的存储地址中。同理,Platform的不同消息类型也似上述方式存储到Platform相关的变量中。
建立Hash表后,可以通过判断接收到DMI消息类型和Platform消息类型,到Hash表对应的地址查找相关测试案例。
图2 闭环测试系统的测试步骤
基于Hash函数的搜索方法相对于传统的线性搜索,无论从时间复杂度还是从空间性能来看,都极大地提高了搜索效率,使得专家系统能够满足高速列控系统大容量数据交互的特性。
1.专家系统软件首先读取并存储数据库中的测试案例规则库的规则,同时与DMI软件和高速列控系统仿真平台系统的接口服务器软件进行通信。当接收到信息时,软件按照相关通信协议进行解析,分别存储到DMI信息结构体或Platform信息结构体中。例如接收到DMI信息,软件解析并存储消息后,检查触发条件临时队列中是否已经存在规则。如果存在,继续检查规则的比对确认;如果确认比对,则直接将该条规则放置在结果队列中,反之将该条规则放到需比对的规则链表上。
2.根据接收的DMI消息类型到存储该消息类型的vector中进行比对。先比对一条规则中的起始等级、起始模式,再比对触发条件里的消息来源、消息类型、触发条件RBC消息、触发条件包、触发条件相关变量/文本信息。若均满足,则将该条规则存储到触发条件临时队列中。
3.检查待比对规则的关联案例执行状态是否成功。如果失败,进行下一个规则的比对,反之继续本规则的下一步比对。需要比对的内容包括结束等级、结束模式、条件消息来源、条件消息类型、条件RBC消息、条件包、条件相关变量/文本信息等。若均满足,则将该条规则标记为比对成功。
4.专家系统软件执行过程中将创建显示比对结果的线程。该线程的主要功能是判断规则在规定的时间内是否比对成功。如果成功,则将该条规则标记为执行成功,反之标记为执行失败,放置在显示队列中,并在链表中删除该条规则。
本文所研究的基于测试案例及JRU数据的专家系统能够运用于实验室及现场测试环境,通过导入测试数据,与系统预设置的判断依据进行比对,实现测试案例的快速匹配,显示及输出测试案例执行情况报告,提高了测试和分析的效率。在此基础上,后续可结合现场测试的实际需求,通过专家系统分析主要的故障现象和原因。
[1]中华人民共和国铁道部.科技运[2009]59号.CTCS-3级列控系统测试案例(V3.0)[S].2009.
[2]翟立东,孙丽萍.软件自动测试方法的研究与实现[J].大连铁道学院学报,2005,26(4):52-57.
[3]赵国锋,陈群丽.基于Hash和AQT的类决策树包分类算法研究[J].通信技术,2010,43(11):210-212.
[4]季学胜,李开成,张勇,刘大为.CTCS-3级列控系统测试案例生成方法的研究[J].铁道通信信号,2009 (10):1-4.
[5]崔尚森,张白一.一种基于哈希表和Trie树的快速IP路由查找算法[J].计算机工程与应用,2005(9): 156-159.
[6]王爽.基于测试序列的专家系统的设计与实现[M].北京,北京邮电大学,2012.
In order to guarantee the safe and efficient operation of high speed railway,the functional test of the train control system mustbe sufficientbefore the system is put into operation.The thesismainly describes themajor functions,topological structure and test procedure of the expert system and explained the Hash searching tree used to realize fastmatching of test cases.
Expert system;Test case;Hash searching tree;JRU data
王菲:中国铁道科学研究院通信信号研究所助理研究员100081北京
万林:中国铁道科学研究院通信信号研究所助理研究员100081北京
2014-01-02
(责任编辑:温志红)