1、需求背景
第三代移动通信系统(3G)的应用已在世界范围内逐步展开,各大设备提供商正积极研发能提供更高性能的新一代3G系统,比如HSPA。在中国,各运营商也正积极试验相关3G系统以促使其更加成熟可靠,并满足丰富的用户需求。
由于3G系统的庞大复杂特性,对其系统测试要求涵盖面非常广,因此最终的系统测试工作量很大,比如WCDMA的UTRAN系统就包括UE、Node B、RNC等网元。UTRAN系统集成测试涉及到的因素很多(包括多种测试工具和多个测试接口),在各种测试条件下,3G信令流程非常复杂(如需要检查的繁琐消息内容、需要特别处理的细节等),如完全由人工测试就需要有经验丰富的测试工程师,工作量也很大,其中回归测试用例在UTRAN系统集成测试中所占比例较大。如果能把复杂的回归测试用例执行自动化,将极大地提高测试效率和测试质量。
目前一些通用的软件自动化测试工具没有考虑UTRAN的特殊性,不能对复杂的UTRAN系统进行自动化集成测试,针对UTRAN的自动化测试工具需要定制开发。根据文献检索,目前国内专用的软件自动化测试方案的针对范围都比较宽泛,测试对象没有涉及到UTRAN系统,没有把测试平台和测试脚本、控制功能和分析功能很好地分离,若要应用于复杂的UTRAN系统的自动化测试,开发和维护成本较高。
当前主要的几个UTRAN系统测试工具销售商(如Agilent等)已经有computer-aided trace analysis等相关的需求并开始了一些准备。但目前尚未有正在开发的或者是现成的这类自动化测试工具,并且没有3G设备厂商公开提出系统的UTRAN自动化集成测试方案。国内外也没有对UTRAN系统进行自动化集成测试的成功先例。
为此,提出一种较通用的自动化测试方案来达到以下目标:
a)增加对复杂的UTRAN系统进行自动化集成回归测试的可行性。
b)简化自动化测试工具的开发,有效降低开发和维护成本。
c)增加该自动化测试方案的通用性。
2、系统结构
2.1 被测系统和外部接口
UTRAN系统由UE、NodeB、RNC组成。整个系统结构框图如图1所示。
如果只测试UTRAN,CN(Corenetwork)可以是仿真的CN,如catpult公司的DCT2000仿真仪,由其仿真CN并提供驱动编程接口。“CN驱动适配”模块提供一个联系仿真CN与自动化测试主控模块之间的适配接口,便于控制模块对CN的驱动和控制,比如命令CN发起对手机的呼叫。
“测试UE”是能支持通用AT命令的测试手机,比如Motorola或者Nokia的测试UE或者商用UE,由“UE驱动服务器”驱动。“UE驱动服务器”是一个应用服务器软件,用来驱动UE发起和停止呼叫,并可以指定呼叫的属性,如CS/PS、业务类型、传输速率等。“UE驱动适配”模块提供“UE驱动服务器”与自动化测试主控模块之间的适配接口,便于控制模块对UE的驱动和控制。
“信令分析仪”采用的是当前通用的信令分析仪(如Agilent公司的3G信令分析仪),连接到被测U-TRAN系统的Iub/Iur/Iu接口上,收集这些接口上的信令消息,并通过分析仪厂商提供的应用服务器接口对其进行控制。“信令分析仪驱动适配”模块提供了“信令分析仪应用服务器”与自动化测试主控模块之间的适配接口,便于控制模块对信令分析仪的驱动和控制。
“无线衰减器”物理连接到UE和NodeB之间,用来模拟Uu空口上的无线衰减特性,主要用来测试切换相关的流程,并通过一个应用服务器提供对该无线衰减器的控制接口。“无线衰减器驱动适配”模块提供“无线衰减器”与自动化测试主控模块之间的适配接口,便于控制模块对无线衰减器的驱动和控制。
2.2 主控模块和配置文件
主控模块的主要功能是根据用户输入从全局上控制UTRAN集成测试的自动运行。按照用户指定的测试列表,加载该列表里每个测试用例的流程控制脚本文件来执行测试,然后调用Trace分析模块分析Trace。在该测试列表里所有的测试用例都完成后,得出最终测试报告给用户的测试管理系统。另外,主控模块还根据环境配置文件负责整个测试平台的初始化,如在测试开始前根据配置文件初始化配置各个测试工具,为测试的执行作好准备。
配置文件是主控模块的输入,包括测试环境配置文件和测试流程控制脚本以及测试列表。测试环境配置文件灵活定制了各种测试接口和平台的参数配置。测试流程控制脚本指定了一个测试用例的完整测试流程,由简单通用有自然语言风格的控制脚本语言写成,易于理解和维护。测试列表里指定了一系列要自动测试的用例,由主控模块一一执行,但这些用例不需要考虑前后执行相关关系。
2.3 通用Trace分析模块和Pattern文件
通用Trace分析模块的主要功能是针对每一个测试用例,将Iub/Iu/Iur接口上协议分析仪得到的协议消息Trace文件与该测试用例的Pattern文件进行匹配,判断该测试是否通过,并输出一个当前测试用例报告文件给主控模块,最终由主控模块对整个测试列表给出统计结果。
Pattern文件的生成需要事先分析测试用例的协议消息流程找出其规律和关键的检查点(check-point),也就是理论上必需的协议消息序列和内容,按指定格式存储起来。Pattern文件是模块化、通用化的结构,易于生成和维护,只要协议流程没有较大变化,就不必频繁修改。
2.4 用户接口模块
用户接口模块用来接受用户的动态输入,如测试命令和参数设置,并返回处理结果给用户。
3、典型的运行流程
目前该自动化测试方案已经成功应用于EVOLIUM的UTRAN产品的R4和R5阶段的系统集成回归测试。主要流程如图2所示。
图2 典型的UTRAN自动化集成测试运行流程
第1步:用户通过命令行或GUI界面启动某个测试列表的自动化测试。
第2步:主控模块根据用户输入的测试列表,加载列表中测试用例的控制脚本并解释执行其中的测试命令,驱动被测UTRAN系统和测试工具,使U-TRAN完成该测试用例的通信呼叫流程,获得信令分析仪抓取的协议Trace文件。
第3步:在通信呼叫流程结束后,主控模块调用Trace分析模块分析获取到的协议Trace。
第4步:Trace分析模块将Trace文件与该测试用例的Pattern文件里的理论检查点相匹配,得出当前测试结果,反馈给主控模块。
第5步:主控模块针对测试列表里的其他的每一个测试用例,重复第2步到第4步,直到完成该测试列表里所有的测试用例。
第6步:主控模块将最终测试结果报告发送到测量管理系统。
4、方案特点
4.1 增加了自动化测试的可行性
由于UTRAN系统测试的复杂性,如果想让通用的自动化测试平台本身来负责处理所有的测试用例,难度很大。于是将每个测试用例的测试控制脚本和Pattern文件与自动化测试工具相分离来独立实现,有效增加了自动化测试的可行性。
通过特定的控制脚本和Pattern文件来描述每一个测试用例,每个测试用例所需的控制脚本和Pattern文件独立,自动化测试工具只是调用这些文件,而且执行时不互相依赖,这样就提高了UTRAN自动化集成测试的可行性。
针对每一个测试流程对测试驱动的要求,用特定的测试流程控制脚本来驱动测试工具。运行UTRAN测试流程,完成测试流程的执行。控制脚本的编写需要有效利用各种测试工具适配器提供给主控模块的通用接口原语,并结合人工测试中的经验。测试工具适配器则直接控制各种测试工具,并将已定义的通用接口原语转换为各种特定的测试工具的驱动原语。
针对每一个测试流程的所有检查项目,包括消息序列、消息名、消息IE的内容等,定义一个Pattern文件,在测试流程运行完成后,由通用的Trace分析模块根据该Pattern文件与Trace文件进行模式匹配,验证测试流程是否正确运行,并输出匹配结果。
4.2 合理分开控制和分析功能。有效降低开发成本
通过简化自动化测试平台的开发,合理地分开控制功能和分析功能,有效降低开发成本。
自动化测试工具本身只作为测试实施平台,负责加载控制脚本,并在控制脚本执行完成后,再启动Trace分析模块的运行。针对每个测试用例,其主要的逻辑功能包含在流程控制脚本和Pattern文件里,自动化测试工具只负责测试调度管理和Trace分析,且不依赖特定用例,开发简洁,实现方便。另外,控制功能和Trace分析功能的合理分工,也有效降低了流程控制脚本、Pattern文件和Trace分析模块的开发难度,增加了灵活性,也降低了对测试工具的要求。
4.3 通用性好,有较普遍的商业价值
控制脚本驱动的UTRAN测试流程符合3G标准规范,并且控制脚本的编写使用了简单易用的、有自然语言风格的通用接口原语(从特定的测试工具接口抽象出来),具有良好的通用性。
Pattern文件的定义来自UTRAN测试流程,符合3G标准规范,通用性好,易维护。
Trace分析模块本身就是一个通用模块,可根据不同的Pattern文件检查不同测试流程的Trace文件。
所以该自动化测试工具有较好的通用性。可应用于其他3G厂商的UTRAN集成回归测试,也可被移动运营商采用,其体系架构也可方便地移植到其他开放的通信系统(如TD-SCDMA、CDMA2000)的系统测试中。