发明名称 一种高速列车运行控制系统功能的动态测试方法
摘要 本发明涉及一种高速列车运行控制系统功能的动态测试方法,属于高速列车运行控制系统技术领域。本方法首先根据高速列车运行控制系统功能规范基于参数化自动机模型构造被测高速列车运行控制系统的动态测试模型;然后依据该模型对被测高速列车运行控制系统执行动态测试过程。动态测试方法是一个由“生成待测转移的测试序列”、“执行测试序列”、“测试结果分析”、“动态测试模型参数更新”四个步骤组成的循环过程。本发明方法避免了在高速列车运行控制系统测试执行之前生成一个固定测试序列集,解决了传统静态测试方法测试覆盖率低和测试结果准确率低以及传统动态测试方法测试序列生成代价和执行代价大的问题。
申请公布号 CN102096410B 申请公布日期 2012.06.20
申请号 CN201010605560.1 申请日期 2010.12.24
申请人 清华大学;北京全路通信信号研究设计院 发明人 吉吟东;王帅;周暐;孙新亚;董炜
分类号 G05B23/00(2006.01)I 主分类号 G05B23/00(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 罗文群
主权项 1.一种高速列车运行控制系统功能的动态测试方法,其特征在于该方法包括以下步骤:(1)建立一个高速列车运行控制系统功能的测试模型:A<sub>p</sub>=(M,W,B),其中,M为根据高速列车运行控制系统的功能规范构造的有限状态自动机,W是有限状态自动机M的状态转移权重向量,用于表示动态测试过程中状态转移的执行代价,W=[w<sub>1</sub>,…,w<sub>i</sub>,…,w<sub>n</sub>],其中,n是状态转移个数,w<sub>i</sub>表w示状态转移t<sub>i</sub>的执行代价,定义:正常状态转移的执行代价为1,错误状态转移的执行代价为∞,有限状态自动机M的初始权重向量为W=[1,…,1,…,1],B是有限状态自动机M的状态转移标识向量,B=[b<sub>1</sub>,…,b<sub>j</sub>,…,b<sub>n</sub>],b<sub>j</sub>为{-1,0,1}中的一个值,定义b<sub>j</sub>=0,表示状态转移t<sub>j</sub>已经被测试过,且可根据测试结果判断状态转移t<sub>j</sub>的正确性,b<sub>j</sub>=-1,表示状态转移t<sub>j</sub>已经被测试过,且不可根据测试结果判断状态转移t<sub>j</sub>的正确性,b<sub>j</sub>=1表示状态转移t<sub>j</sub>未被测试过,有限状态自动机M的初始标识向量为B=[1,…,1,…,1];(2)将上述根据高速列车运行控制系统的功能规范构造的有限状态自动机M作为高速列车运行控制系统功能动态测试的参考模型;(3)根据上述测试模型,对高速列车运行控制系统的功能进行动态测试,包括以下步骤:(3-1)根据有限状态自动机M中状态转移引导序列的长度,对所有状态转移由短到长依次进行编号,得到t<sub>1</sub>,t<sub>2</sub>,…t<sub>n</sub>;(3-2)从对高速列车运行控制系统的功能进行动态测试开始至测试结束,依次进行:(3-2-1)在测试过程的时刻k生成一个测试序列ts<sub>k</sub>=ts<sub>pre</sub>;t<sub>k</sub>;ts<sub>post</sub>,其中t<sub>k</sub>为被测状态转移,ts<sub>pre</sub>为被测状态转移t<sub>k</sub>的引导序列,ts<sub>post</sub>为被测状态转移t<sub>k</sub>的尾状态验证序列,(3-2-2)根据上述测试序列,分别向上述参考模型和被测高速列车运行控制系统输入与功能测试相关的信号,分别得到参考模型的测试输出o<sub>1</sub>,…,o<sub>l</sub>,…,o<sub>m</sub>和被测高速列车运行控制系统的测试输出<img file="FSB00000730197300011.GIF" wi="312" he="57" />(3-2-3)将上述参考模型的测试输出o<sub>1</sub>,o<sub>2</sub>,…,o<sub>m</sub>与被测高速列车运行控制系统的测试输出<img file="FSB00000730197300012.GIF" wi="286" he="57" />进行比较:若参考模型的测试输出与被测高速列车运行控制系统的测试输出相同,则判断被测状态转移为正确;若参考模型的测试输出与被测高速列车运行控制系统的测试输出不相同,则对测试序列tsk进行错误定位,得到被测状态转移的判断结果,错误定位的过程如下:(3-2-3-1)定义:参考模型的测试输出与被测高速列车运行控制系统的测试输出不一致的情况为一个症状,即<img file="FSB00000730197300013.GIF" wi="147" he="54" />从一个测试序列ts<sub>k</sub>中识别出所有症状,得到一个症状集为:S<sub>k</sub>={S<sub>k,1</sub>,…,s<sub>k,g</sub>,…s<sub>k,h</sub>};(3-2-3-2)对上述症状集中的每个症状S<sub>k,g</sub>:<img file="FSB00000730197300021.GIF" wi="143" he="56" />确定相应的冲突集为:C<sub>k,g</sub>={c<sup>1</sup><sub>k,g</sub>,…,c<sup>u</sup><sub>k,g</sub>,…,c<sup>p</sup><sub>k,g</sub>};其中,c<sup>u</sup><sub>k,g</sub>是一个冲突,冲突的定义为:被测高速列车运行控制系统的一个功能与参考模型中相应的状态转移不相符;(3-2-3-3)根据上述冲突集得到测试序列st<sub>k</sub>的初始诊断候选集IDS:IDS<sub>k</sub>=C<sub>k,1</sub>∩C<sub>k,2</sub>∩…∩C<sub>k,h</sub>根据冲突c<sup>u</sup><sub>k,g</sub>中状态转移的历史输出,删除上述初始诊断候选集IDS中与历史输出不相符的诊断候选,并根据冲突c<sup>i</sup><sub>k,j</sub>中状态转移的历史尾状态,删除上述初始诊断候选集IDS中与历史尾状态不相符的诊断候选,得到最终诊断集FDS,若最终诊断集FDS中存在一个诊断候选,则判断该诊断候选中包含的状态转移为错误,若最终诊断集FDS中存在多个诊断候选,则不可根据测试结果判断状态转移的正确性,采用产生症状的状态转移序列t<sub>k,v</sub>,t<sub>k,v+1</sub>…,t<sub>k,v+j</sub>描述测试序列的错误信息,定义产生症状的状态转移序列Fss<sub>k</sub>=t<sub>k,v</sub>,t<sub>k,v+1</sub>…,t<sub>k,v+j</sub>为错误子序列;(3-2-3-4)若不可根据测试结果判断状态转移的正确性,则将上述错误子序列添加到错误子序列集合中:FssS<sub>k</sub>=FssS<sub>k-1</sub>∪{Fss<sub>k</sub>};(3-2-4)根据上述判断结果,若被测状态转移为正确,则被测状态转移的权重值不变,并将被测状态转移的标识值赋值为b<sub>k</sub>=0,若被测状态转移为错误,则将被测状态转移的权重值赋值为无穷大w<sub>k</sub>=∞,并将被测状态转移的标识值赋值为b<sub>k</sub>=0,若被测状态转移为不可根据测试结果判断状态转移的正确性,则被测状态转移的权重值不变,并将被测状态转移的标识值赋值为b<sub>k</sub>=-1;(3-2-5)若所有被测的状态转移标识值均为0,或对标识值不为0的被测的状态转移已经不存在可执行测试序列,则停止动态测试过程。
地址 100084 北京市海淀区清华园1号
您可能感兴趣的专利