城轨嵌入式软件自动化测试框架的设计与实现

2015-06-28 14:52刘锦峰欧阳敏
铁路计算机应用 2015年7期
关键词:嵌入式软件城轨测试用例

刘锦峰,欧阳敏

(卡斯柯信号有限公司 测试部,上海 200071)

城轨嵌入式软件自动化测试框架的设计与实现

刘锦峰,欧阳敏

(卡斯柯信号有限公司 测试部,上海 200071)

为了提高城轨嵌入式软件的测试效率,提出一种面向服务的城轨嵌入式软件自动化测试框架。指出城轨嵌入式软件自动化测试的难点,给出相应的自动化测试策略;阐述自动化测试框架的主要功能与架构,并给出一种基于面向服务的架构(SOA,Service Oriented Architecture)的测试平台实现及测试流程;通过该框架的使用实例和测试效果,表明该框架具备良好的通用性、扩展性和实时性,适用于城轨嵌入式软件的自动化测试。

城轨嵌入式软件;自动化测试框架;面向的服务架构

城市轨道交通系统的关键系统如联锁(CI,Computer based Interlocking)系统,车载控制(CC,Carborne Controller,)系统,轨旁区域控制器(ZC,Zone Controller),轨旁线路控制器(LC,Line Controller)均为安全苛求系统(Safety Critical System)。为了满足安全苛求系统故障-安全的需要,高实时性,多任务的嵌入式系统成为首选[1]。为了提高其关键系统的嵌入式软件测试效率,克服手工测试存在的困难,有效提高该领域的自动化测试程度成为亟需解决的关键问题。本文分析面向城轨软件黑盒测试的自动化测试难点;阐述城轨嵌入式软件的自动化测试策略、自动化测试框架设计思想和自动化测试框架整体架构;提出基于面向服务的架构(SOA,Service Oriented Architecture)的实现方法;介绍该框架在轨旁安全平台系统测试中的应用情况。

1 城轨嵌入式软件的自动化测试难点

从被测对象的角度来看,城轨嵌入式系统在故障-安全、实时性、容错性上都有严苛的要求。对于此类软件的测试,在测试场景构造、测试激励和测试结果捕获上都存在一定的困难。其自动化测试难点可具体概括为以下几方面。

1.1 测试场景复杂

从仿真系统的角度看,实时嵌入式软件仿真测试平台实际上是一种面向实时嵌入式软件测试的半实物仿真系统。因此,在测试场景中需仿真大量的外部设备,并能通过测试脚本,精确控制这些仿真设备的行为,如信号机、道岔、信标、仿真列车、仿真CI、仿真CC、仿真ZC,仿真LC、仿真列车自动监控(ATS,Automatic Train Supervision)系统;另外,根据被测软件和测试数据不同,测试场景需构造以上仿真设备的子集,并采用合适的轨道线路数据,仿真设备参数,安全通信协议等。

1.2 测试激励的实时性与时序性

当采用黑盒测试方式(激励-反馈机制)对城轨嵌入式软件自动化测试时:(1)被测系统需要实时获取和处理外部激励数据,测试平台也需要实时获取和分析被测对象的反馈数据;(2)测试平台需确保对于相同的测试用例,每一次进行测试执行的过程中,其产生的测试激励数据在时序关系上是完全一致的。

1.3 测试结果处理困难

(1)需要在被测对象中合理地嵌入测试代理模块捕获被测对象的测试结果,包括状态变量、校核字等;(2)测试平台需在线或离线分析这些测试结果,给出最后的用例执行报告。

2 城轨嵌入式软件的自动化测试策略

自动化测试是指,把以人为驱动的测试行为转化为计算机依据一定规则与设计自动执行测试行为的一种过程[2]。通过工具代替或辅助人工进行测试执行过程,目标是通过较少的开销,使被测对象得到更充分的测试,提升产品质量。在制定自动化测试策略时,需从自动化测试投资回报率的角度,对自动化测试需求分配合适的优先级。因此,对于城轨软件测试而言,自动化测试主要用于软件或系统的黑盒测试,并且产品生命周期较长,回归测试较多,在如下场合尤其适合进行自动化测试。

2.1 适合进行自动化测试的场合

(1)安全平台产品,包括安全基础类库、安全协议等,该类产品作为企业的基础软件产品,一般开发周期长,回归测试频繁;

(2)项目数据测试,如列控中心报文数据测试,该类数据测试人工测试繁琐重复,而测试接口比较稳定,适合采用自动化工具进行测试;

(3)产品验收测试,如基于无线通信的列车自动控制(CBTC,Communication Based Train Control)系统的验收测试,可选取其测试的关键场景用例,进行自动化测试,保证产品上线前的测试效率。

2.2 不适合进行自动化测试的场合

(1)主观性强的测试,如车站操作界面的显示,声音提示和告警等;

(2)开发周期短的项目,如产品原型开发,被测对象不稳定,测试接口变更频繁;由于开发周期较短,积累的自动化测试脚本得不到充分的复用。

3 城轨嵌入式软件测试自动化测试框架

3.1 自动化测试框架架构模型

城轨嵌入式软件自动化测试框架应该解决测试过程中的以下几方面的问题:(1)自动化测试框架应能提供基于业务描述的脚本,使得测试人员在编写测试用例时,专注业务需求而不必关心具体的测试驱动细节;(2)自动化测试框架提供了测试用例管理功能,使得测试用例在整个测试生命周期中可以复用;(3)自动化测试框架提供了测试结果分析功能,在复杂场景的测试用例中,该功能可以显著提高测试效率。

根据城轨嵌入式软件的自动化测试策略,该领域的自动化测试框架符合以下设计原则:

(1)测试框架的集成应基于统一开放的标准,具有良好的通用性、松耦合性、开放性和可扩展性,确保框架中子模块的实现不局限与特定的开发语言和技术,并且当子模块进行修改或重构时,整个框架保持稳定;

(2)测试数据的管理基于统一的数据格式,子模块能透明地提交和获取测试数据进行处理;

(3)实时性,为了确保对被测系统激励的实时性,测试框架在架构上应确保消息在平台内部能实时的处理和传递;

(4)大容量和高性能,为了满足城轨软件大容量数据测试的要求,测试框架应采取分布式的系统架构,在提高仿真设备数量时,不影响测试平台性能。

面向分布式控制系统的实时SOA架构[3],不仅具有SOA的统一接口标准、优秀的开放性和松耦合性,也具备分布式控制系统的实时性。因此,该架构是本文的自动化化测试框架较为理想的架构模型。基于文献[3]的面向分布式控制系统的实时SOA架构,自动化测试框架位于该架构的企业应用服务层,并主要分为3个子服务层:测试管理服务层、测试驱动服务层和接口协议适配服务层,其架构模型如图1所示。

图1 自动化测试框架架构模型

测试管理层的核心功能是:为测试人员提供测试用例的全生命周期管理,并辅助测试人员编写测试脚本、测试结果的记录与分析和测试报告生成;测试驱动层的核心功能是:根据用例脚本和测试场景配置文件,构造测试场景,并调度仿真设备的运行,另外在该层也提供了安全协议和数据库访问功能;接口适配层的核心功能是:提供测试平台与被测对象之间的各种通信接口。

3.2 自动化测试框架逻辑架构

基于上述的架构模型,本文实现的自动化测试框架逻辑架构如图2所示。服务和消息管理节点是整个测试框架的主节点,提供了基于实时消息总线的节点管理、服务注册、服务代理、服务调度、服务执行等一系列的调度和管理服务;测试管理服务层作为一个从节点,通常在一个服务器上,另外,测试人员可通过该层提供的Web服务来管理和配置整个测试框架,以及测试用例的管理、执行和分析;测试驱动服务层可根据测试场景的容量进行灵活的部署,通常测试环境创建、仿真器调度和数据库驱动作为一个从节点部署在一个服务器上,而安全协议节点、仿真设备节点作为独立的从节点进行动态部署,便于测试框架根据测试场景进行灵活的变更和扩展;接口协议适配服务层也是根据测试场景进行动态的部署,适应不同的测试需求。

3.3 自动化测试框架核心工作流

自动化测试框架的核心工作流是将测试用例转换为测试脚本,并根据测试脚本构造测试场景,以及场景中的仿真设备,同时按照脚本时序或外部事件对仿真设备进行调度,得到被测对象期望的激励输入,测试框架捕获被测对象的输出并记录测试日志,从而构成一个闭环的测试系统。自动化测试框架的核心工作流如图3所示。

图2 自动化测试框架逻辑架构

4 应用实例

轨旁安全平台(TSP,Trackside Safety Platform)作为一个通用的安全平台,可以用于ZC、LC、临时限速服务器(TSRS,Temporary Speed Restriction System)、无线闭塞中心(RBC,Radio Block Center)等众多的地铁及铁路系统中的安全轨旁设备,保障上述安全设备的应用软件在此TSP上运行时,整个系统的安全性能达到安全完整性等级4级(SIL4,Safety Integrity Level 4) 的要求。基于自动化测试框架的TSP自动化测试平台,包括各种安全协议通信节点、CC仿真节点、ATS仿真节点、LC仿真节点、ZC仿真节点、CI仿真节点。实施自动化测试后,TSP系统测试的效率提升情况如图4所示。从该图中可以看出,在自动化测试初期由于需要进行测试脚本的编写和调试,故自动化测试的人工成本要高于手工测试,随着自动化测试的逐步深入,在进行回归测试时,自动化测试的成本优势得到了体现。

图3 自动化测试框架核心工作流

图4 轨旁安全平台的手工测试与自动化测试对比

5 结束语

实践表明,对于城轨嵌入式软件测试而言,采用基于脚本的自动化测试方式并结合测试用例的全生命周期管理,可以降低软件的测试成本,缩短软件的测试时间,特别是进行回归测试时效率提升尤为明显。本文设计的自动化测试框架具有良好的实时性、通用性和可扩展性,目前该自动化测试框架不仅成功应用于TSP产品测试,并在ZC、LC、CC等产品的自动化测试中得到了推广。

[1]董高云,周庭梁.安全苛求系统下的嵌入式C语言调试技巧[J].铁路计算机应用,2014,23(6).

[2]董娜娜,詹惠琴.软件测试自动化技术应用研究[J].电子测试,2010(11):47-50.

[3]杜立新,刘士军.面向分布式控制系统的实时SOA研究与应用[J].计算机科学,2012,39(1).

责任编辑 王 浩

Design and implementation of automatic test framework for Urban Transit embedded software

LIU Jinfeng, OUYANG Min
( Test Department, CASCO Signal Company, Shanghai 200071, China )

In order to improve testing eff i ciency of Urban Transit embedded software, this paper proposed a automatic test framework for Urban Transit embedded software based on SOA(Service Oriented Architecture), pointed out the testing diff i culty of Urban Transit embedded software, and given the corresponding testing strategy, expatiated the main function and architecture of automatic test framework.The implementation of testing framework based on SOA and the testing process were given. The examples and test results showed that the automatic test framework was with well universality, extensibility and real-time, was suitable for automatic test of Urban Transit embedded software.

Urban Transit embedded software; test automatic framework; SOA

U231.6∶TP39

A

1005-8451(2015)07-0049-04

2014-11-19

刘锦峰,工程师;欧阳敏,工程师。

猜你喜欢
嵌入式软件城轨测试用例
回归测试中测试用例优化技术研究与探索
基于SmartUnit的安全通信系统单元测试用例自动生成
城轨CBTC系统改进方案的分析探讨
嵌入式软件测试数据传输稳定性检测方式分析
城轨跨站开通时软件贯通方案设计
城轨屏蔽门控制传输技术的设计与实现
全景相机遥控器嵌入式软件V1.0 相关操作分析
基于可靠性的城轨车辆维修模式及应用
基于Eclipse的航天嵌入式软件集成开发环境设计与实现
航天嵌入式软件浮点运算误差分析与控制