APP下载

基于场景法的列控系统等级转换功能测试用例设计

2019-07-10张亚东

铁道标准设计 2019年7期
关键词:应答器用例测试用例

窦 磊,张亚东,李 耀,饶 畅

(西南交通大学信息科学与技术学院,成都 611756)

CTCS-3级列控系统是我国高铁和客运专线的“中枢神经”,代表着我国列控系统的最高水平,其功能逻辑失效可能危及行车安全造成严重的事故。由于我国铁路线路运营情况复杂,存在无线区域覆盖不全和无线中断等情况,CTCS-3级列控系统在没有无线覆盖的区域或者在无线通信中断的情况下将转换到CTCS-2级控车,进入无线覆盖的区域或者无线通信恢复的情况下转换到CTCS-3级控车。列控系统功能多、逻辑复杂,在保证列车安全高效运行的过程中起到了重要的作用,复杂场景下列控系统的功能的一致性尤为重要[1-2],因此有必要研究复杂场景下列控系统的功能测试问题。当前对列控系统简单场景功能测试的测试用例设计已经有比较成熟的做法[3]。但对于复杂场景的功能测试则存在用例的覆盖性方面的不足[4],当前列控系统既有的测试方法主要有基于功能特征生成测试案例[5],基于模型生成测试案例[6]等方法。基于功能特征生成测试案例对设计人员要求较高,且测试案例的完备性和流程的完善性需要验证[7];而基于模型的方法则存在需要将系统规范分析抽象成场景规范的形式化模型的难点[6]。

场景法是通过事件触发形成相应的场景流程,进而形成一系列事件的结果,场景法能够清晰地描述系统内部各种过程和功能[8],可以提高测试用例的覆盖性,能够提高测试效果。

目前场景法已经成功运用在临时限速服务器等系统用例设计中并取得了很好的效果[9-10],在软件测试领域也有着广泛的应用[11-12]。为了改善当前列控系统在复杂场景测试中存在的覆盖性不足的问题,本文采用场景法设计对列控系统特定功能测试的测试用例。以等级转换中CTCS-2级转CTCS-3级为例,在分析等级转换流程的基础上,将场景法用于等级转换功能测试用例的设计中,通过分析CTCS-2级转CTCS-3级场景中的基本流和备选流,进而得出事件流有向图,最后基于有向图设计得到覆盖性更高、流程更加完善的测试用例。实现了用最少的测试用例对列控系统等级转换中CTCS-2级转CTCS-3级的有效测试,能够提高测试的效果和效率。

1 等级转换

CTCS-3级列控系统是基于无线传输信息并采用轨道电路方式检查列车占用、基于GSM-R无线通信网络传输列控信息的列车运行控制系统[13]。列车在CTCS-3级区域通过CTCS-3/CTCS-2级边界进入CTCS-2级区域时或者GSM-R无线通信中断时,转换到CTCS-2级列控系统控车。CTCS-2级列控系统是基于轨道电路和点式信息设备传输列车运行许可信息的列车运行控制系统。列车在CTCS-2级区域通过CTCS-2/CTCS-3级边界进入CTCS-3级区域运行时,转换到CTCS-3级列控系统控车[14]。

本文以CTCS-2级转CTCS-3级为例设计测试用例,详细论述CTCS-2级转换到CTCS-3级转换原理、处理逻辑和工作流程。

1.1 CTCS-2级转CTCS-3级处理逻辑

列车在CTCS-2级区域运行时,当ATP(Automatic Train Protection,列车自动防护)检测到GSM-R网络后连接并注册到GSM-R网络,经过RE应答器组时ATP和RBC(Radio Block Center,无线闭塞中心)建立安全连接,经过等级转换预告应答器组LTA、等级转换执行应答器组LTO执行等级转换[15]。在CTCS-2/CTCS-3级边界经司机确认且CTCS-3级控车条件满足后转换到CTCS-3级行车。CTCS-2级转换到CTCS-3级处理逻辑如图1所示。

图1 等级转换处理逻辑

1.2 CTCS-2级转CTCS-3级工作流程

典型的CTCS-2级转换到CTCS-3级包含下述过程。

(1)连接并注册到GSM-R网络

ATP检测到GSM-R网络之后,开始连接和注册到GSM-R网络。ATP将GSM-R网络的注册情况通过DMI告知司机,ATP继续保持CTCS-2级行车。

(2)与RBC建立通信会话

列车运行中前端位置经过RE应答器组时,ATP接收到建立通信会话命令后开始呼叫RBC;若RE应答器组丢失,则ATP继续保持CTCS-2级行车。若ATP与RBC建立安全连接失败,继续保持CTCS-2级行车并通知司机。若ATP呼叫RBC成功但与RBC系统版本不兼容,则终止通信会话并释放安全连接,继续保持CTCS-2级行车。

ATP成功与RBC建立通信会话后,开始传输相关数据,如ATP接收来自RBC的行车许可MA、配置参数等,ATP向RBC发送列车位置报告、收到配置参数确认等[14]。

(3)获得行车许可

列车运行过程中列车前端位置通过LTA预告应答器组时,ATP发送列车位置报告给RBC,在RBC判断列车前方进路唯一后,ATP将收到来自RBC的行车许可MA和等级转换预告命令。若LTA预告应答器组丢失,ATP仍接收到来自RBC的等级转换预告命令和行车许可MA。ATP在接收到行车许可MA后,将其进行存储,该MA信息在列车通过CTCS-2/CTCS-3级边界并且转换为CTCS-3级控车时使用[16]。

(4)等级转换执行

当列车前端通过LTO执行应答器组并接收到来自LTO执行应答器组的消息且CTCS-3级控车条件满足时,自动转换为CTCS-3级行车。若未收到来自LTO执行应答器组的信息,根据RBC的等级转换命令,将在列车前端通过了CTCS-2/CTCS-3级边界并且满足CTCS-3级控车条件时转为CTCS-3级控车。在执行等级转换时,若ATP不具备CTCS-3级控车条件,则继续以CTCS-2级行车;在ATP具备CTCS-3级控件条件时自动转换到CTCS-3级行车。

在执行切换时,ATP要求司机确认即将执行的等级转换以确保等级转换的正确实现。当列车距离CTCS-2/CTCS-3级边界还需列车运行5s时,ATP请求司机确认即将进行的转换;若司机没有确认,在控车等级转换为CTCS-3后5s以内,仍然允许司机对等级转换进行确认。如若在整个确认区域内司机都没有对等级转换做出确认,ATP输出常用制动并记录制动原因。如若制动过程中司机进行了等级转换操作确认,ATP自动缓解输出的常用制动,反之ATP将制动直到列车停车。

2 基于场景法的测试用例设计

场景法可以针对需求模拟出不同的场景进行所有功能点及业务流程的覆盖,适用于解决业务流程清晰的系统或功能。

2.1 场景法

基于场景法的测试用例设计方法主要用于事件触发流程,当某个事件触发后就形成相应的场景流程,不同的事件触发顺序和不同的处理结果,就形成一系列事件流[17]。场景测试针对软件或功能中所有可能出现的业务流程,通过建立完整的业务流程模型,模拟真实业务场景的测试。场景法设计测试用例的过程如下:

(1)明确系统的业务流程或功能逻辑;

(2)分析事件流,划分基本流和备选流;

(3)根据基本流和备选流确定测试场景;

(4)为每个测试场景设计对应的测试用例。

2.2 场景法事件流

场景法的事件流一般包含基本流和备选流,在用例场景生成时,基本流是完成某个操作所经过的必须步骤,而备选流则是完成必须步骤中出现的一些可选操作。经过用例的每条路径都用基本流和备选流来表示,基本流是经过用例的最简单路径。一个备选流可能从基本流开始,在某个特定的条件下执行,然后重新加入到基本流中;也可能起源于另一个备选流,或者终止用例而不再加入到某个流。将一系列的事件触发流程看成不同的路径,通过设计足够多的测试用例来覆盖基本流和各种备选流等各类事件流,即为场景测试。

基于基本流和备选流确定测试场景以及测试用例的问题,就转换为如何确保上述基本流和备选流构成的事件流有向图中所有的弧至少被使用一次并且让每条弧尽可能少地重复使用。这是典型的具有多重弧有向图的中国邮路问题,求解这类问题目前已经有许多成熟的解法,如Edmonds-Johnson算法[18]、粒子群优化算法[19]、路径优化算法、蚁群算法以及改进的蚁群算法[20]等。

3 CTCS-2级转CTCS-3级测试用例设计

场景法分析CTCS-2级向CTCS-3级转换的关键是对转换过程中的事件流进行划分,确定出其中的基本流和备选流。基本流描述了正常执行CTCS-2级向CTCS-3级转换过程中必须要经过的步骤,备选流则是转换过程中可能出现的异常情况。

3.1 等级转换基本流

基本流(B)描述了正常执行CTCS-2级向CTCS-3级转换过程,结合图1可知,正常转换过程包含了以下步骤:ATP检测并连接GSM-R网络;连接成功开始注册GSM-R网络;注册成功并给出通知;经过RE应答器组开始请求连接RBC;与RBC建立安全连接;收到兼容的版本信息;建立通信会话后ATP与RBC传输数据;通过LTA应答器组时报告位置;接收到等级转换命令;司机确认等级转换;ATP收到LTO应答器组消息且CTCS-3控车条件满足;转换到CTCS-3级控车。对基本流的具体分析及说明如表1所示。

表1 等级转换基本流

3.2 等级转换备选流

备选流(A)描述了CTCS-2级向CTCS-3级转换过程中可能出现的异常情形或者可能的操作,结合图1和1.2节的转换过程分析,转换过程中可能出现的异常情形包括与GSM-R网络连接失败、GSM-R网络注册失败、RE应答器组丢失、ATP与RBC建立安全连接失败、系统版本不兼容、LTA应答器组丢失、RBC判断前方进路不唯一以及执行转换时CTCS-3级控车条件不满足等。对备选流的具体分析及说明如表2所示。

表2 等级转换备选流

3.3 等级转换用例设计

CTCS-2级转CTCS-3级场景下包含了注册GSM-R和与GSM-R建立连接失败后由重新注册并建立连接等情形,从而使得命令进入正常流程的场景,鉴于此类场景与基本流B具有重复性,会导致设计的测试用例冗余,因而不考虑这类重复场景的测试用例。基于CTCS-2级转CTCS-3级处理逻辑和工作流程,利用场景法基本流和备选流的分析方法分析转换过程中必须经过的步骤以及可能出现的异常情形,分析得到CTCS-2级转CTCS-3级场景下的12个基本流和10个备选流。备选流A1、A2、A3、A4、A5、A7、A10从基本流开始,执行后结束用例;备选流A6、A8、A9从基本流开始,执行后重新加入基本流。设计出CTCS-2级转CTCS-3级等级转换事件流有向图如图2所示。

将等级转换事件流有向图稍作变化后可以使用经典的Edmonds-Johnson算法找出最优邮路,进而设计出测试CTCS-2级转CTCS-3级功能的11个测试场景,为每个测试场景设计对应的测试用例,CTCS-2级转CTCS-3级测试用例如表3所示。

图2 事件流有向图

3.4 测试用例对比

2009年,原铁道部颁布了科技运[2009]59号文《CTCS-3级列控系统测试案例(v3.0)》(以下简称“59号文”)作为CTCS-3级列控系统测试的指导文件。其中CTCS-2级转CTCS-3级部分为功能特征147,148,149,150,151,152,153,154对应的案例[21],其中功能特征147,148,150,151,152,154对应的案例用于测试CTCS-2级转CTCS-3级正常转换过程的情形,功能特征149,153对应的案例用于测试CTCS-2级转CTCS-3级过程中的RBC判断前方进路不唯一和未收到LTO应答器组但转换时满足CTCS-3级控车条件两种可能的异常情形。用例1,8,9分别对应描述了上述三种情形;用例2,3,4,5,6,7,10,11设计的异常情形在59号文中CTCS-2级转CTCS-3级部分未涉及到,补充了转换过程中其他可能出现的异常情形,本文场景法设计得到的用例对59号文案例的覆盖情况如表4所示。

上述分析可知,设计得到的测试用例覆盖了59号文CTCS-2级转CTCS-3级部分的案例,且与59号文中该部分的案例在覆盖性上相比更加全面,在转换过程中设计更多的异常场景,增强CTCS-2级转CTCS-3级转换过程中的功能性和安全性测试,可以提高测试用例对等级转换需求的覆盖性,提高了测试的效果。使用Edmonds-Johnson优化算法可以确保由事件流有向图生成的测试用例最优且用例的数量最少[18],提高了测试效率。

表3 等级转换测试用例

表4 测试用例覆盖情况

4 结语

本文将场景法应用于测试列控系统等级转换功能,以等级转换中CTCS-2级转CTCS-3级为例,详细分析了转换过程中的处理逻辑和工作流程。使用场景法对等级转换的过程进行基本流和备选流的划分,得出该场景下的事件流以及事件流有向图,进而设计得到对CTCS-2级转CTCS-3级进行有效测试的测试用例集。结果表明,场景法能够深入列控系统的内部逻辑,适合对列控系统复杂场景设计测试用例,提高列控系统功能性和安全性测试的完备性。

猜你喜欢

应答器用例测试用例
巧用应答器,提高小学语文课堂实效
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
测试用例自动生成技术综述
回归测试中测试用例优化技术研究与探索
基于SmartUnit的安全通信系统单元测试用例自动生成
应答器THR和TFFR分配及SIL等级探讨
联锁软件详细设计的测试需求分析和用例编写
欧标应答器报文传输中透传与选包方式的比较
新型多功能水声应答器电子系统设计