APP下载

一种用于CTCSCTCS半实物仿真系统的测试脚本语言

2013-05-09柯长博北京全路通信信号研究设计院有限公司北京100073

铁路通信信号工程技术 2013年1期
关键词:测系统自动测试脚本

柯长博 卢 鑫(北京全路通信信号研究设计院有限公司,北京 100073)

1 概述

CTCS列控系统是实现客运专线信号系统的关键技术装备,各个列控设备运行的稳定性、互联互通性、容错性等都需要经过严格的测试。为了减少测试人员的工作强度,更好地利用资源和提高测试效率,在CTCS-3级半实物仿真平台上,搭建一个能够替代人工的自动测试环境是一个非常重要的课题。而设计一种能够满足CTCS半实物仿真测试平台测试需求的测试脚本语言,是实现自动测试的基础。

如果在自动测试中使用C++、Jav a等普通编程语言,将测试指令和测试逻辑直接嵌入测试代码中,对于新的测试应用,代码完全不具备可重用性。人们普遍意识到不同的自动测试应用之间存在着共通性和框架性的东西,通过重用和重组织已有的解决方案,可以快速实现新的测试应用[1]。

因此,随着测试技术的发展,人们在自动测试中越来越少地直接使用普通编程语言,而是设计出各种测试脚本语言。测试脚本语言可以对测试行为进行描述,对测试过程进行建模,有较强的可重用性、可维护性和可扩展性。测试脚本语言执行时以解释为主,具有平台无关的特点。典型的测试脚本语言有A TM L[2,3]、CTL[4]、TTCN-3[5,6]等,其中TTCN-3不仅能够满足一致性测试的需求,还可以应用于互操作性测试、回归测试、系统测试和集成测试。TTCN-3强大的测试描述能力和广泛的适应性使其成为目前测试领域唯一的国际标准。TTCN-3从语法上看起来像一个普通的程序设计语言加上测试扩展,包括动态测试配置、匹配机制、定时器支持、测试判决处理、通信机制等。

虽然TTCN-3作为通用的测试语言功能比较全面,但是为其定制开发测试引擎就会比较复杂,造成功能上的冗余,也不便于扩展开发新的功能。一般而言,商用化测试工具经常采用可读性较强、较为通用的脚本语言编写测试脚本;专用测试工具因针对性较强,一般会根据被测试软件的特点自定义脚本的内容和格式,自行解析。针对高速铁路测试的应用,庞巴迪、泰雷兹等公司都开发了专用的测试语言。事实上,本文中设计的测试脚本语

柯长博,男,硕士毕业于清华大学,工程师。主要从事铁路通信信号方面的工作。曾参与十一五国家支撑计划及研究设计院若干重点项目,发表论文一篇(EI数据源),拥有发明专利一项(已授权)。言只相当于TTCN-3的部分功能。

现有的脚本语言技术,包括TTCN-3在内都集中在数据层次的分离,即分离测试数据和测试逻辑,并未对测试逻辑本身进行建模和表达。为了解决现有脚本语言存在的抽象层次低和测试脚本维护困难的问题,测试模型成为当前复杂系统测试领域的研究热点,模型重用成了降低测试系统开发成本的系统化过程[7]。

基于测试过程模型,本文设计了一种适应于CTCS半实物仿真系统的层次化测试脚本语言。测试脚本语言是自动测试环境运行的基础,定义了测试执行的过程,包括测试数据、测试事件和测试事件的执行逻辑,衔接了自动测试环境的各个模块。

2 测试过程建模

2.1 测试事件模型

一个测试事件e是一个八元组(SUT,T,I,O,Cp,Cs,Lp,Ls),其中SUT是被测系统的测试信息集合,T是一个用来定义测试事件运行时行为的前置逻辑表达式,I是被测系统的输入集合,O是被测系统的输出集合,Cp是e的前提条件集合,Cs是e的后置条件集合,Lp是e的前继连接集合,Ls是e的后继连接集合[7]。

测试事件可以被分为3类:测试初始和结束事件、测试连接和测试动作。其中,测试初始和结束事件用于标识一个测试事件链,可以用于通知测试程序创建或者销毁一个测试实例;测试连接是一个抽象的概念,用于表示测试过程中的控制流程;测试动作指测试脚本的一次执行操作,也就是指测试引擎对于被测系统的一次输入,使被测系统产生一次状态转移。由这3类事件连接成了测试事件链,如图1所示。

2.2 测试过程模型

一个测试过程是一个五元组(Q,E,L,V,t),其中Q是测试过程开始和结束标签,E是测试动作集合,L是测试连接集合,V是环境变量集合,t是一个可选参数,表示测试动作的时间属性。

通过将测试过程在事件层次和控制流层次上进行抽象,得到了测试过程模型。测试过程模型的核心思想是:通过分析测试需求,测试执行过程中的所有行为都可以用测试事件模型表示,每个测试事件都有前提条件和后置条件,通过前提条件和后置条件将测试事件串起来,就将测试过程抽象成了测试事件链。

3 测试脚本语言的设计

本章将介绍自定义的测试脚本语言的设计与实现。

3.1 XML语言的应用

可扩展标记语言(Ex tensib le M arkup Langu age,XM L)是W 3C组织于1998年发布的标准。与H TM L语言一样,都是标准通用标记语言。XM L的优点,包括简单性、平台无关性、易解析性、自描述性。此外,XM L在得到普遍认可的同时,获得越来越多的软件支持。

本文设计的测试过程定义语言(TPDL)和测试信息描述语言(SID L)就是基于XM L语言编写的,语言元素的标准语法由Sch em a定义。采用XM L Schema还能够对文档结构进行有效性检查,检查的项目包括:元素的定义、元素是否为空、是否包括文本或属性的定义、元素之间的父子关系、子元素的顺序和数目、元素和属性的数据类型。

3.2 总体结构设计

本文设计的测试脚本语言包括TPDL和SIDL。TPDL作为测试过程的建模语言,是对测试过程的全面描述;SIDL作为被测对象的测试信息描述语言,是对被测对象的测试相关信息的全面描述。被测系统为测试过程提供了实现消息的发布,接收等功能的底层机制。

具体来说,TPDL用于编写测试脚本,它将自然语言描述的测试案例抽象为计算机能识别的形式化描述,由测试引擎编译执行;SIDL用于编写配置文件,它将被测系统中测试相关的消息、映射、端口、操作等信息进行形式化的描述。在测试脚本的生成和执行过程中,都会用到配置文件,比如测试脚本中可以使用的消息,这些消息的具体字段,下发到被测系统的哪个端口等。TPDL和SIDL的结构和相互关系,如图2所示。

3.3 TPDL的语法定义

TPDL关注于相对独立的测试过程和过程规则,以及多个测试事件的组织和协调,从而在整体上形成并发执行的测试过程。TPDL的语法定义,如图3所示,具体描述如表1所示。

3.4 SIDL的语法定义

SIDL描述了被测系统的各种信息,被测对象以SIDL标准的描述方式为测试系统提供测试信息,同时测试桩模块也以SIDL为测试系统提供控制接口。SIDL编写的配置文件是自动测试环境与被测对象的桥梁。

采取以设备为单位组织仿真支撑环境的功能接口,将属于同一设备的所有操作,实现为一个描述文件。以设备为单位,描述对象相对固定,描述方式更简洁,更统一。对于某个设备的某一种功能只出现在描述文件的一处,便于文件的编写和维护,体现了面向对象的基本思想。

基于系统规模和仿真对象数量的考虑,为系统中每一个对象建立一组描述文件是不现实的,因此测试接口描述只覆盖到设备一级,而不是仿真对象一级。如果同一种设备不管在系统中存在几个实现的仿真对象,都只维护一个测试接口描述文件。在测试中,对具体仿真对象的指定,由测试工程师在编制测试脚本时进行。SIDL的语法定义,如图4所示,具体描述如表2所示。

表1 TPDL语法的具体描述

表2 SIDL语法的具体描述

4 测试脚本语言的应用

在测试准备阶段,根据SIDL规范对被测系统信息进行描述,为每个设备生成配置文件,建立起测试动作库、接收消息库、测试接口库和消息映射库等自动测试环境运行时需要的所有基础信息。

在测试脚本的生成阶段,脚本编辑器读取测试动作库和接收消息库,将被测系统支持的所有接收和发送的消息和消息字段汇总。脚本编辑器将基本活动和逻辑活动提供给测试人员,编写业务逻辑、配置测试数据,生成TPDL规范定义的XM L格式的测试脚本。最后,可以为测试脚本中的测试动作添加前提条件和后置条件。

在测试脚本的执行阶段,由测试管理器根据消息接口库为测试脚本中的消息添加目的地址,然后将测试脚本发送给测试引擎,并监控执行过程。测试引擎将测试脚本解析成测试事件链,根据消息映射库将测试脚本中定义的测试动作映射到被测系统中真正能够执行的消息类,并将前提条件和后置条件发送给综合测评系统进行测试评价。

5 结论

本文提出了一种用于CTCS半实物仿真系统的测试脚本语言。基于测试过程模型,本测试脚本语言既实现了测试数据和测试逻辑的分离,也实现了对测试逻辑本身进行建模和表达。测试交互消息和被测系统信息都通过配置文件描述,有效地填补了测试需求与测试编码之间的空白。使得自动测试环境的开发,能够几乎只关注于测试框架的搭建和测试脚本的解析,极大地提高了可维护性和可扩展性。本测试脚本语言基于XM L语言编写,兼具平台无关性、易解析性等优点。

应用表明,本测试脚本语言能够衔接自动测试环境的各个模块,满足了CTCS半实物仿真系统的自动测试需求,也展示了在其他工程中巨大的应用潜力。

[1] XU Xiaoliang,WANG Leyu,ZHOU Hong. An Object-Oriented Framework for Automatic Test Systems[C]. AUTOTESTCON 2003. IEEE Systems Readiness Technology Conference. Proceedings,2003:407-410.

[2] Seavey M,Einspanjer T. “ATML: WHAT “IT” IS, WHAT “IT” IS NOT, AND AN EXAMPLE OF HOW “IT” CAN BE APPLIED”[C].Autotestcon,2005. IEEE,2005:137-143.

[3] Jain A,Delgado S. “Implementing ATML into the Automatic Test System Development and Execution Workflow”[C]. IEEE AUTOTESTCON 2008 Salt Lake City, UT,2008:8-11.

[4] Kapur R,Lousberg M,Taylor T, “CTL the language for describing core-based”[C]. Proceedings of the 2001 IEEE International Test Conference, IEEE Computer Society Washington, DC, USA,2001:131-139.

[5] Grabowski J,Hogrefe D,Réthy G,et al. “An introduction to the testing and test control notation (TTCN-3)”[J]. Computer Networks,2003,42:375-403.

[6] JIANG Fan, JI Xiangdong, ZENG Fanping. Design and Implementation of TTCN-3 Test System[J]. Computer Engineering, China,2005,31:80-81.

[7] Shuai Wang, Yindong Ji, Shiyuan Yang. “A Novel Test Process Modeling Method for Automatic Test”[C]. Computer Science and Information Technology, 2009. ICCSIT 2009. 2nd IEEE International Conference on,2009:459-463.

猜你喜欢

测系统自动测试脚本
酒驾
基于定标模型云共享的奶牛粪水微型NIR现场速测系统
安奇奇与小cool 龙(第二回)
RSSP-I铁路信号安全通信协议的测试研究
无线电监测测向系统测向精度试验数据的分析方法
北京强度环境研究所研制出“焊缝低温光测系统”
JXG-50S型相敏轨道电路接收器自动测试台
关于某型雷达自动测试系统的几点认识和建议
快乐假期
小编的新年愿望