摘要 文章介绍了一致性测试的原理,结合UE发起的呼叫建立过程,着重介绍了一种TD-SCDMA系统终端协议测试的方法。
1、引言
TD-SCDMA系统是我国提出的第三代移动通信标准,在国际上引起了广泛的关注。目前,国内很多厂商及科研单位正从事TD-SCDMA协议栈软件的研发工作,协议软件的实现是否严格反映3GPP标准要求,很大程度上影响着我国TD-SCDMA的发展前景,因此,对协议测试进行研究有着非常重要的现实意义。
CC是非接入层CM子层的一个实体,主要完成CS域基本的呼叫管理,是整个CM子层的核心(如图1所示)。本文结合CC实体的主叫过程,提出了一种一致性协议测试的方法。
2、协议一致性测试
协议是设备间进行通信时须予以遵守的规则。通常情况下,这些规则是以自然语言来描述的,这就存在着因主观差异导致不同甚至错误的协议实现的可能。鉴于此,我们需要一种有效的方法来对协议的可靠性进行判别,这就是“协议测试”(Protocol Testing)。
协议测试是一种黑盒测试,它对照协议标准,通过控制观察被测协议实现的外部行为,对其进行验证。目前,协议测试分成四个方面:一致性测试(Conformance Testing)、互操作性测试(Interoperability Testing)、性能测试(Performance Testing)、坚固性测试(Robustness Testing)。
一致性测试主要验证协议实现是否严格遵循相应的协议描述,判断该产品的协议实现是否符合国际标准,它是协议测试最基本的内容,也是其它三种测试的基础。对TD-SCDMA系统高层协议的开发测试而言,我们更为关心的是开发能否满足标准,是否能与其它基于同一个协议标准的产品实现互通,以尽可能减少产品在现场实际运行时出错的风险。
3、SDL和TTCN
在协议软件的开发流程中,SDL被广泛用来描述通信系统的行为。它可以把SDL的描述和设计直接生成标准的C代码,用户也可以直接在SDL描述和设计中嵌入C代码。经SDL描述产生的C代码(包括嵌入的C代码),可以在目标板上运行,从而大大方便了协议软件的开发。与SDL相对应的MSC(信息序列图),是ITU-T规范中用来表示信息序列的语言,用MSC图可以直观地表现出信号的流向;并且信号是从什么进程发送到什么进程,信号带有哪些参数、参数值等都能直观地表示在SDL的MSC图中,这为了解和分析信号在各个模块间的传递带来了很大的方便。此外,通过MSC图还可以将MSC的各项功能有机地联系在一起。
树表结合表示法(TTCN),采用的是以树和表格为表现形式的测试表示法,其中,表格主要用于数据类型、原语、约束等,而树则用于描述测试集、测试例、测试步。TTCN是一种独立于协议、测试方法和测试设备的抽象语言,因此,它被广泛地应用在通信协议测试中。TTCN把IUT整个看作一个测试实体来考虑,但可以根据测试者测试目的,通过选择IUT与测试环境的接口来进行测试,以达到测试和验证IUT的目的。
4、CC实体一致性测试
4.1 CC测试环境
CC测试环境如图2所示,CC的上层是SPVCALL模块,它负责将人机界面(MMI)等应用层发来的消息转发到CC实体;CC的下层是MM子层,它为CC提供MM连接服务。我们选择的控制观察点(PCO,Points of Control and Observation)有两个:一个在SPVCALL与CC的接口处,另一个在CC与MM的接口处(如图2所示)。模块SPVCALL和MM共同组成了CC的测试环境,CC即是待测试的IUT。
4.2 CC主叫过程
CC实体的主要功能是对用户之间的呼叫进行控制,包括呼叫建立、呼叫释放以及呼叫重建等。限于篇幅,下面以主叫过程为例,介绍该实体一致性测试方法。
(1)CC主叫过程描述
根据相关协议的描述,CC发起的主叫应为如下过程(如图3所示):
◆首先由终端发起呼叫,应用层(如人机界面,MMI)发起一个建立请求送到SPVCALL模块,SPVCALL将向CC发送“CAPI_CALL_SETUP_REQ”信号;
◆CC收到此信号后,将发送“MMCC_EST_REQ”信号到MM子层,要求其创建一个MM连接,同时,开启定时器T303,状态即跃迁到“Connect Pending”;
◆MM子层向CC发送“MMCC_EST_CNF”信号表示MM连接创建成功,CC通过原语“MMCC_DATA_REQ”向MM子层发送“SETUP”消息,状态跳到“Call Initiate”;
◆MM子层通过接入层将“SETUP”消息发送给网络,网络收到此消息后,向终端发送“CALL PROCEEDING”消息,CC一旦收到该条消息,就关闭定时器T303,开启定时器T310,并向SPVCALL报告收到了“CALL PROCEEDING”消息,状态亦跃迁到“CallProceeding”;
◆网络向终端发送“ALERTING”振铃消息,CC收到这条消息时,停掉定时器T310,向SPVCALL报告收到了“ALERTING”,状态并跃迁到“Call Delivered”;
◆当终端分配了专用资源后,MM层将通过“MMCC_SYNC_IND”原语通知CC,CC将通知SPVCALL专用资源已经分配;
◆最后,网络向终端发送“CONNECT”消息,CC收到此消息后,将向网络发送“CONNECT ACKNO-WLEDGE”,并通知SPVCALL模块:CC收到了“CONNECT”消息,状态即进入“Call Active”。
(2)消息的构造
为了测试协议是否如实地实现标准的要求,我们要检查终端和网络收发的消息内容是否正确,同时,也要确认对端收到消息后做出的响应是否与规范相符。
前文曾提到,终端发起呼叫建立时,首先由应用层发起一个建立请求,即CC向网络发送一条“SETUP”消息。以“SETUP”为例,该消息的构造参考3GPP的24.008,其内容包含有PD/TI、消息类型、承载能力、被叫用户子地址、被叫用户号码、SI以及其它一些和普通呼叫相关的参数。
[table]
参数头 | 参数 | 参数内容 | 存在性 | 长度(字节) | 数据构造 |
/ | Protocol Discriminator | 协议鉴别器 | 必选 | 1/2 | 3 |
/ | Transaction Identifier | 会话标识符 | 必选 | 1/2 | 0 |
/ | Message Type | SETUP消息类型 | 必选 | 1 | 05 |
04 | Bearer Capability | 承载能力 | 必选 | 3-16 | 04 03 20 02 80 |
6D | Called Party Sub-address | 被叫用户子地址 | 可选 | 2-23 | 不选 |
5E | Called Party BCD Num. | 被叫用户号码 | 必选 | 3-43 | 5E 07 A8 35 4365 87 09 F1 |
2D | Stream Identifier | 流量标识 | 可选 | 3 | 不选 |
(2)消息的构造
为了测试协议是否如实地实现标准的要求,我们要检查终端和网络收发的消息内容是否正确,同时,也要确认对端收到消息后做出的响应是否与规范相符。
前文曾提到,终端发起呼叫建立时,首先由应用层发起一个建立请求,即CC向网络发送一条“SETUP”消息。以“SETUP”为例,该消息的构造参考3GPP的24.008,其内容包含有PD/TI、消息类型、承载能力、被叫用户子地址、被叫用户号码、SI以及其它一些和普通呼叫相关的参数。
5、结论
通过检查MSC图的其它部分,发现信号的流程及数据、状态的跳转、定时器的开启和关闭协议的要求,实现了CC的主叫功能,这说明开发出的代码实现了CC实体主叫的功能。使用SDL工具和TTCN测试功能,能有效地减少调试时间,并大大提高测试效率。
目前,我国TD-SCDMA系统测试工作正如火如荼地进行着,提供标准的、高效的一致性测试方法和工具,能准确地验证终端设备的各项技术、信令和性能要求,对于TD-SCDMA民族产业化进程将具有十分重要的意义。