张佳莹,曲 娜,郑伟南,卫昱含
(吉林建筑工程学院 城建学院,吉林 长春 130111)
由于国内经济的不断快速发展,大型城市以及中型城市正逐步的扩建,城市面临着人口不断增加以及城市占地面积扩大的问题[1].为了保证城市轨道交通能够更加安全、效率地运行,于是各个城市的轨道交通建设放弃选择使用原有的基于轨道电路的列车控制系统(TBTC),而采用最新的列车控制系统基于通信的列车控制系统(CBTC)[2].
在现有的城市轨道交通系统中很多都采用了CBTC系统,但是很多城市地铁都出现过大大小小的事故[3].在CBTC系统中,车载设备保证着列车的安全行驶,系统功能都需要通过车载设备才能实现[4].因此完成CBTC系统测试中重要的一个环节就是对列车的车载设备进行调试[5].
本研究系统根据新一代的CBTC系统设计理念,利用车载设备的测试软件进行车载设备的测试.通过测试软件,观察车载控制器内的数据变化,对测试参数的具体分析,最后基于工程实践的经验,对CBTC系统测试用例进行设计.
在CBTC系统下,车—地双向实时数据的传输采用的是无线通信的手段[6].列车不再是单一地接收地面传到车载设备的控制信息,列车还需将列车的位置信息和列车的运行信息及时反馈给地面设备[7].地面设备通过得到的列车信息计算出列车的移动授权(MovingAuthority下面简称MA),并且动态更新,将移动授权通过车—地通信网络传输到车载设备[8].车载设备根据收到的移动授权信息和当前列车的运行状态,计算出列车的运行速度曲线,控制列车的牵引、制动与运行[9].
CBTC系统下的车载设备将接收的信息来自区域控制器ZC、ATS系统、地面信标和计算机连锁CI,同时需要将处理的信息反馈给各系统,其中的之间的逻辑关系非常复杂[10].为了避免输入条件之间的彼此结合导致新的状况出现而带来检查方面的困难,因此如何设计测试用例,可以在测试手段的选取上采用一种形式,满足描述多条件组合,且产生对应多动作.这要求我们对测试用例的设计时采取因果图法.
因果图模型中有两类主要部分的因果图参数和结构,如图1所示:
图1 因果图模型
其中字母B表示基本事件,即不需探究自身原因或者没有原因的事件;X表示中间事件,即任意含有原因的事件;G表示逻辑门,即通过对输入原理进行逻辑门运算而得到相应的输出事件;P表示连接事件,其从始至终都指向中间事件.
运用因果图法进行设计测试案例的进程中判定表的生成是一个非常重要的环节,且具有较高要求.判定表有四个部分组成:行动桩、条件桩、行动条目和条件条目.目前,很少有参考文献给予一个非常明确清晰的转化算法,所有的测试用例基本都是由工程实践中得出.本文针对现有的一些转化方法进行研究,提出采用条件遍历算法来对因果图进行转化,其算法框架如图2所示.
图2 遍历算法流程图
通过上述方法,我们可以发现经过一次一次的条件遍历,中间事件通过遍历找出其产生的基本事件,我们最终可以得到由基本事件构成的测试输入数据.在执行此算法时,我们需要注意此算法针对单动作输出的情况进行设计.如果遇到多动作产生的情况,测试人员需要将各动作的输入条件进行分析,找出各输入条件的制约关系,对测试案例进行设计.
车载设备作为CBTC系统中最为重要的部分,主要负责保护列车行驶安全、防止列车超速和防止列车进入前车的运行区间,由此可见,在列车运营之前对车载设备的测试工作也显得格外重要.本研究系统利用因果图法测试案例的原理,对ATP速度防护功能方面进行选取,研究测试案例的生成.
车载ATP速度防护中有以下两方面的计算:当前推荐运行速度计算以及触发紧急制动的速度计算.在列车行驶中,车载设备会实时地将以上2个速度值反映在车载人机界面中,让驾驶员可以实时地监控列车的行驶速度.一旦当列车超出当前的推荐速度时,车载设备会给予驾驶员警告信息.若此情况在规定时间内消除,列车将继续安全行驶;但此情况未能及时消除,列车的ATP功能将会启动紧急制动以保护行车的安全.我们可以将被测的功能划分为多种状态,状态之间的转换通过输入的变量产生相对应的动作输出.
在考虑输入数据的取值方面我们需要将等价类的思想方法引入到设计当中.对所有已经输入的数据进行划分,可分为N个等价类.如何收集测试的输入数据,可选取每个等价类中的一个数据作为输入数据,则可达到选取少量数据但得到很好的测试结果.根据以上对ATP速度防护系统的流程分析,我们可以将测试需要的输入数据进行定义.
在选取输入数据取值时,我们需要同时考虑到所有正常情况与异常情况下的数据输入.我们要考虑满足因果图中各原因事件的“True”与“False”的关系.在设计有效输入,我们要确定使用的每一个有效类中的值;在设计无效输入,为确保更多等价类的输入为有效输入,则需将一个等价类作为无效的输入数据,这样考虑是从单缺陷进行假设.当然也可以从多缺陷进行假设,要实现这类测试需要大量冗余.
根据ATP速度防护的流程进行遍历,将一个整体的测试划分为各类局部测试,最后将这些局部测试组合起来生成一个具体的测试方案.实际工程中采用的测试方案如表1所示:
在实际的测试中,仅仅靠几次测试或者十几次测试是不能够有效地测试出系统功能的完整性和准确性的.所以可以对同类型的测试多次重复.这样就需要在测试后,测试人员需要对进行测试案例的数据结果进行统计和验证.若发现测试存在缺陷,则需进行再次测试.
在统计中,测试人员需要将测试划分为以下部分:
测试案例优先级、测试案例预计总数、测试案例完成数量、测试案例实际数量以及通过和未通过测试的案例数量.
表1 测试方案表
所统计的数据在整理后得表2.
表2 测试数据统计
将统计得到的数据表格转化为图表的格式,这样测试人员可以直观地发现出测试中所存在的问题,用来指导测试工作、调整测试,使得测试更加完备、准确.
近年来,国内城市轨道交通正在发展高速的时期,更多的轨道交通公司对C B T C系统进行应用,实际的工程建设中可以发现.这样急需要一套完整、有效的测试方案对设备进行测试,保证设备系统能够正常地工作.本研究系统对车载设备的测试方法以及实际测试案例开展了深入研究,利用因果图法在对其改进的基础上提出有效的车载设备测试方案,对车载A T P超速防护进行测试实验,实验结果表明,本文提出的测试方案切实有效,可以进行推广.
〔1〕向华.关于白盒测试基本方法的分析[J].江汉大学学报,2003,31(1):38-41.
〔2〕徐杰,贾学祥.CBTC关键理论分析及北京地铁4号线的应用分析[J].铁道通信信号,2010(46):44-46.
〔3〕付剑平,陆民燕.基于因果图的软件测试性影响因素分析[J].计算机应用,2009,33(6):270-271.
〔4〕石庆喜,梁新元.因果图的一种快速推理方法[J].计算机工程与应用,2005(28):18-20.
〔5〕王立荣,何炜.基于因果图的软件测试方法[J].计算机系统应用,2010,19(4):104-107.
〔6〕陈荣武,刘莉.基于CBTC的列车自动驾驶控制算法[J].计算机应用,2007,27(11):2649-2651.铁路.2010,(4):76-78.