时间:2022-06-09 04:44:16
摘要:
RRU是分布式基站的重要组成,设计和开发一个方便、快捷、自动化的测试平台极为必要。在分析RRU主要测试点的基础上,设计并实现了一套基于TTCN-3语言的RRU自动化测试平台,并进行了自动化测试。实际测试结果表明:该平台具有敏捷、稳定、高效和自动化的特点,自动化覆盖率达到85%,实现了设计的预期效果。
关键词:
TTCN-3语言;RRU;自动化测试
中图分类号:TP277 文献标识码:A 文章编号:1005-3824(2014)01-0024-04
0 引 言
随着分布式基站在通信网络中的普及,对作为分布式基站重要组成的射频拉远单元(remote radio unit,RRU)的研究显得极为重要[1]。RRU通过天馈接收射频信号,然后将该信号下变频至中频信号,并进行放大处理、模数转换、数字下变频、匹配滤波、DAGC(digital automatic gain control) 后发送给BBU(基带处理单元)。同时,接收上级设备BBU送来的下行基带数据,并转发级联数据,然后将下行扩频信号进行成形滤波、数模转换、射频信号上变频至发射频段的处理。任何产品商用之前都需要经过严格的技术测试[2]。由于RRU产品型号多样、功能繁多,带来测试类型复杂化、测试点多样化、人力投入增大等困难。因此,设计和开发一个方便、快捷、自动化的测试平台非常必要。本文将设计和实现一套基于TTCN语言的RRU自动化测试平台。
1 RRU测试点分析
3G网络大量使用分布式基站架构,图1为分布式基站设备示意图。图1中,RRU和BBU之间需要用光纤连接,一个BBU可以支持多个RRU。采用BBU+RRU多通道方案可很好地解决大型场馆的室内覆盖[3]。
根据RRU的内部结构及功能[4],我们可以分析出需要关注的测试点,并在实际测试中将测试点归纳为以下几个主要专题。
1)算法测试。算法测试包括BBC天线校准、DPD数字预失真、CFR削波、RTWP扫频、FDR驻波测量等。
2)逻辑测试。包括RRU开盖测试、时延测量、功放保护等。
3)RF射频测试。RF是RRU最重要的性能之一,其原理是利用频谱仪、信号源等射频仪表对RRU空口指标按照3GPP协议要求进行测试。下行指标主要有Power发射功率、ACLR邻道泄露比、EVM矢量幅度误差等,上行指标有RSL接收机灵敏度等。
4)BS/OM底软操作测试。对底层软件的测试,主要关注RRU启动过程的串口打印,是否有异常打印、是否按照正常流程启动。
5)告警测试。触发异常操作,诱导RRU进行告警、故障上报,观察故障产生、恢复机制是否正常。
按照测试流程,测试点分析之后是用例设计。基于上述专题,我们设计出测试用例全面覆盖RRU的特性。文中提到的自动化覆盖率就是自动化实现用例数占设计总用例数的比率。
2 TTCN-3语言简介
TTCN(testing and test control notation)为测试与测试控制记法,即标准化的测试描述和测试实现语言。TTCN-3是由ETSI(欧盟通讯标准研究院)所设计,并公布成为ETSI ES 201 873系列之标准文件,以及ITU-T(国际通讯联盟)的ITU-T Rec.Z.140系列之标准文件。它在TTCN-1、TTCN-2的基础上,测试逻辑语法更精准,可以描述更为复杂的测试行为。
TTCN-3主要有如下特性:1)描述动态并发测试配置的能力;2)基于过程的操作和基于消息的通信;3)描述编码信息和其他属性(包括用户扩展性)的能力;4)描述数据和带有强有力的匹配机制的属性模板的能力;5)类型和值的参数化;6)赋值和测试判定的处理;7)测试套参数化和测试例选择机制;8)TTCN-3和ASN.1的结合;9)良好定义的语法,格式的互换以及静态语义。基于这些特性,TTCN-3语言可用于多种类型的测试,包括符合性测试(conformance testing)、互操作性测试(interoperability testing)、健全性测试(robustness testing)、回归测试(regression testing)、系统和整合测试(System and integration testing)以及负载测试(load/stress testing)[5]。
3 RRU自动化测试的实现
3.1 需求分析
要保证产品的质量就必须进行充分测试,这将导致测试用例会越来越多,工作量越来越大,而且许多测试用例会被不断地重复执行。如果由手工来完成,不仅得投入更多的人力资源,而且工作重复单调影响测试人员的积极性,更加影响测试的可靠性和效率。手工测试存在很多局限性,无法做到覆盖所有代码路径;简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量往往较大;许多与时序、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到;进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过手工测试来进行。而与之相对的,自动化测试容易对新版本进行回归测试,让产品更快投放市场;测试效率高,充分利用硬件资源;节省人力,降低测试成本;增强测试的稳定性和可靠性;提高软件测试的准确度和精确度,增加软件信任度;软件测试工具使测试工作相对比较容易,且能产生更高质量的测试结果;手工不能做的事情,自动化测试能做,如负载、性能测试。
自动化测试建立在手动测试的基础上,因此需要一系列测试组件来实现基本功能。常见的测试组件有3种类型,如图3所示。图3中,MTC为主测试组件,PTC为并行测试组件[6-8]。还有1种组件类型,即抽象测试系统接口(ATSI),也可以叫系统测试组件(STC),存在于系统内部,图中未标示出。测试组件之间通过端口完成相互通信。每个通信端口被抽象成一个先入先出队列,如图4所示。端口(port)具有方向性(in,out,inout),支持3种端口类型:基于消息通信的端口,基于过程通信的端口和混合型端口。
3.2 TTCN测试执行系统
根据自动化平台的需求分析,我们设计了TTCN测试执行系统,该系统通过工程形式管理若干TTCN脚本,可以创建测试序列,定义测试参数,编译、执行脚本,并自动将测试结果填写到对应的测试用例中去。它提供分布式的TA体系,使适配层与执行层有效分离。TA自带多种通用的协议组件,如MML,UDP,SCTP,EI等[9]。
TTCN-3测试体系架构图如图6示。
模块(Module)是TTCN-3的基本构造块,一个模块由定义部分(可选的)和一个控制部分(可选的)组成。通常所说的一个测试套就是一个模块。一个模块可以定义属性(attributes),可以参数化,也可以从其他模块中引入定义[10]。平台适配器PA实现TTCN-3中引用的所需要的库函数,相当于动态链接库。系统适配器SA完成测试系统和被测系统之间的适配功能。测试套中的系统端口正是通过与制定的适配器进行绑定,同时对适配器中的参数进行配置,从而将系统端口上的消息正确转发到被测系统。
3.3 平台实现
在系统开发过程中,我们解决了串口操作、版本适配、日志保存等难题,实现了基于TTCN-3语言的RRU自动化测试平台,主界面如图7所示。
该自动化测试平台有3个工作区,左侧为工程目录窗口,每一个.3mp文件下都有一系列测试例,每个测试例都有结果标记,“√”为通过,“×”为失败,“!”为未执行成功;右侧为函数编辑窗口,测试人员在此工作空间编写自动化脚本或者函数;下方为输出窗口,从编译到判决整个平台的信息都会在这里输出,测试人员可以通过日志来查询需要的信息。
3.4 自动化实现
实现RRU测试自动化,第一步要标识可自动化测试用例。对于一些需要物理操作或者更改连接方式的特性是没有办法实现自动化的,例如反复插拔光纤,开盖测试等[11]。目前已实现的功能包括串口操作、MML命令操作、告警相关、仪表调用、删建小区、压力长跑等。
下面是一个利用TTCN-3语言编写的函数范例。
//函数名称:RRU_Alarm_Check
//函数描述:1、串口发送告警查询的命令;
// 2、比对告警是否上报,且是否正确;
// 参数“AlarmID”为串口显示的ID,不是告警ID。
//作者:ZhengHaihan
//创建时间:2013.05.23
functionRRU_Alarm_Check (charstringAlarmID)
{
var integer i;
var charstring FltList;
/*获取RRU_ShowFltList信息*/
FltList:=f_RRUCI_TTerm_Get_CmdInfo(“RRU_ShowFltList”)
if (“NULL”==FltList)
{
logerror(“获取串口信息出错!”);
setverdict(fail);
}
/*提取数据信息*/
loginfo(“获取串口RRU告警信息成功!”);
i:=findstr(FltList,”ID:”&AlarmID&””);
if(i!=-1)
{
loginfo(“告警上报,串口comm fault ID:”&AlarmID&”!”);
setverdict(pass);
}
else
{
logerror(“告警未上报!”);
setverdict(fail);
}
return;
}。
该函数的目的在于实现在串口查询告警是否上报、上报告警是否准确的功能。测试人员在编写测试用例过程中若需要用到此函数,则只需要在AlarmID处填入需要比对的参数即可。以下是调用此函数来执行测试任务的举例。类似于VC++的编译环境,脚本编写完成后先编译,检测无语法错误后,系统开始执行该测试例并将结果返回,标记在导航树上。对于此测试例,开始执行后,系统会打开RRU串口输入RRU_ShowFltLst命令查询当前告警状况。预置条件中若植入6002号故障,则会在打印信息中检测到6002号告警,返回执行结果并标记“√”。
testcaseAlarm_check() runs onSystemComp//在系统组件下运Alarm check测试例
{
RRU_Alarm_Check (charstring6002);//调用告警函数,告警编号为6002
all component.stop;//所有组件停止运行
}。
4 结 论
本文所设计的平台除插拔光纤、光模块混插、开盖测试等需要更改物理连接的测试点外,基本上全部实现了RRU测试自动化,且自动化用例覆盖率达到85%,大幅度地提高了测试效率,达到设计的预期效果。
参考文献:
[1] 刘清.分布式基站在移动通信网络中的应用[J].硅谷,2012(19):108,144.
[2] 万铮.软件测试[M].北京:电子科技大学出版社,2010:15-18.
[3] 邬元兰,陈军良.RRU拉远的应用和分析[J].移动通信,2012(20):39-44.
[4] 黄涛,江鹏,徐红波,等.多载波RRU系统的设计和研究[J].移动通信,2013(2):83-87.
[5] 曹成,闫相宏.TTCN-3语法分析器的自动生成[J].硅谷,2010(17):183-184.
[6] 赵会群,张暴,申宁.Web Service适配器测试的仿真测试环境搭建方法[J].计算机应用与软件,2013,30(4):81-84.
[7] 张辉,蒋凡.基于C++语言转换的TTCN-3测试系统的设计与实现[J].计算机系统应用,2007,16(10):64-67.
[8] 胡响,李勇.一种基于TTCN-3的TD-LTE终端协议一致性测试系统的构建[J].西安科技大学学报,2012,32(6):765-767,780.
[9] 魏玄,申敏.基于TCL脚本语言的AT指令自动化测试技术的研究[J].重庆邮电大学学报:自然科学版,2008,20(5):517-520.
[10]郑冰.浅析TTCN-3测试平台中模板匹配机制[J].内蒙古科技与经济,2012(13):88-89.
[11]ISO/IEC9646, OSI conformance testing methodology and framework//[S].Geneva Switzer land:ISO,1993:32-48.
作者简介:
郑海函(1990-),女,重庆人,硕士研究生,研究方向为RRU自动化测试,E-mail:;
刘 俊(1974-),男,贵州毕节人,教授,研究方向为物理电子学,Email:。
RRU automatic testing techniques based on TTCN-3 language
ZHENG Haihan1, LIU Jun2
(1.School of Communication and Information Engineering, Chongqing University of Posts and Telecommunications,Chongqing 400065, P.R.China;
2.College of Mathematics and Physics Chongqing University of Posts and Telecommunications,Chongqing 400065, P.R.China)
Abstract:
RRU is an important part of distributed base station. Designing and developing a convenient automatic testing platform is extremely necessary. This paper analyzes the main test points. The authors designed and achieved the automatic testing platform by TTCN-3 language.The actual testing results show that this platform is nimble,stable,effective and automatic. Its automated coverage is about 85%. Therefore, the desired designed effect is achieved.
Key words:
TTCN-3 language, RRU, automatic testing