使用tcl进行基站软件测试的装置和方法

文档序号:7971826阅读:168来源:国知局
专利名称:使用tcl进行基站软件测试的装置和方法
使用TCL进行基站软件测试的装置和方法
挂未领域
本发明涉及计算机软件测试领域,尤其涉及一种基于消息处理软件(如NodeB软件)自 动化测试的装置与方法。
背荣技术
TCL (Tool Command Language,工具命令语言),l卯0年发明,是一种解释执行的脚本 语言。现已成为一个流行的脚本描述语言。他内含有一套核心的命令集,支持类似C语S的 流程控制if分支判断、循环控制、switch控制,支持过程的定义与调用,并且提供了强大 的数组、列表与字符串处理功能(如正则表达式处理)。TCL因其易用性、可扩展性、功能全 面与开发速度快的特征已经成为工业界自动测试最常用的语言之一。
NodeB软件的特点如下所述软件分布在各个单板上,其中一块作为中心处理板与其它 各块单板进行通讯,同时NodeB软件也与网管软件、RNC进行通讯,虽然通讯方式不同,但 是对于应用程序来说,都是基于消息处理机制运行。当各单板软件运行后,处于接收消息状 态,当接收到消息后进行相应的处理,处理完成后又处于接收消息状态。
在NodeB的软件开发过程中, 一个常用的测试需求是向某个单板发送接口消息,测试目 标单板对于该消息的处理是否正常。目前常用的测试方法,在被测软件中加入一个UDP消息 接收模块,该模块的作用是将接收到的消息转发到应用程序的目的通讯节点中。这种测试方 法需要编写一个发送消息的应用程序sendudpmsg,该应用程序使用命令行方式启动ipaddress port msgNo Cnld <msgBody>,各参数意义如下ipaddress被测试软件所在单板的IP地址,port 被测试软件中UDP接收模块接收消息所用的端口号,msgNo消息号Cnld被测试软件通讯 节点标识(标识一个单板中不同的通讯节点),msgBody为可选字段,如果要发送的消息没有 消息内容,则此参数不用填写,如果有消息体,则msgBody为消息体的字节流(为了叙述方 便使用16进制表示)。测试人员首先编写由sendudpmsg组成的批处理脚本,然后在WINDOWS
操作系统下执行,脚本的格式如下
假设消息3457没有消息体,消息3455的消息体定义如下 struct tagMsgBody
byte byNum5 word wCfh;
以上结构体采用紧凑模式存储 测试脚本如下
鄉dudpmsg 128.9.22.10 10000 3457 10 郷dudpmsg 128.9.22.11 10000 3455 11 10 ED 5F
上述脚本先向IP地址为128.9.22.10的单板上软件Cnld为10的节点发送消息3457,无 消息体;再向IP地址为128.9.22.11的单板上软件Cnld为10的节点发送消息3457,消息内 容为byNum-16, wCfo=60767
采用上述的测试方案,缺点如下
1) 脚本中存在二进制码流,非常不直观,尤其是复杂结构数据不便于维护,如上例的 10 ED 5F必须根据消息3455的消息体定义才能明白每一个字段的值;
2) 脚本中流程控制较弱,不能进行复杂的组合测试,如上例,只能进行顺序测试,不能 进行遍历测试、分支测试;
3) 只能发送消息,不能自动化判断测试结果,测试结果必须人工进行判断,测试效率低;
4) 脚本中的某些参数如IP地址以及端口号不便于脚本移植;
5) 必须在被测试软件中加入消息接收模块才能进行测试,需要修改被测试软件。

发明内容
针对现有技术存在的缺陷和不足,本发明提供一种使用TCL进行基站软件测试的装置和方 法,能够进行自动化判断,自动判定测试结果是否正确将数据表示与流程分离,各部分能 够独立维护使用某种通用计算机语言表示自动化测试流程;同时,使用自定义或者通用描 述语言表示消息数据;不用修改被测试软件,就能进行测试。
为了达到上述发明目的,本发明使用TCL进行基站软件测试的装置,包括与被测软件的 软件接口进行适配的适配单元、对被测软件进行测试的核心处理单元以及在适配单元和核心 处理单元之间用于二者通讯的通讯模块;
其中,核心处理单元通过通讯模块向适配单元发送测试消息,适配单元将所述测试消息 转送给所述被测软件,并将被测软件发送的测试消息通过通讯模块发送给核心处理单元。
上述的使用Ta进行巻站秋作测试的装置中,所述核心处理苹元包括对标准TCL命令 进行解释的标准TCL解释器模块,对自动化测试处理命令进行解释的TCL扩展解释器模块, 对测试消息进行编解码的编解码模块;
其中,标准TCL解释器模块解释输入到核心处理单元的TCL脚本,对于标准TCL命令, 直接翻译成机器语言,对于TCL扩展命令则交给TCL扩展解释器模块翻译,并根据标准TCL 命令和TCL扩展命令向编解码模块发送内容为测试命令的测试消息,编解码模块将所述测试 消息转化为二进制字节流依次通过通讯模块和适配单元发送给被测软件,并接收通讯模块转 发的来自被测软件的二进制字节流,将其转换成测试消息发送给TCL扩展解释器模块,由TCL 扩展解释器模块分析测试消息并对被测软件进行下一歩自动化测试处理。
上述的使用TCL进行基站软件测试的装置中,所述TCL扩展解释器模块包括翻译TCL扩 展命令的TCL扩展命令分发模块;判断测试项目合法性,安排测试项目顺序的测试管理模块; 接收从被测软件发送来的测试消息,并对测试消息进行消息处理的调度模块调用编解码模 块进行测试消息编码、解码的消息管理模块
其中,TCL扩展解释器模块翻译输入的TCL扩展命令,获得测试脚本,测试管理模块按 照测试脚本安排测试项目顺序,消息管理模块调用编解码模块将包含测试项目内容的测试消 息进行编码后发送给被测软件,被测软件返回的测试消息经消息管理模块调用编解码模块解 码后,送至调度模块进行分析处理。
上述的使用TCL进行基站软件测试的装置中,所述通讯模块包括设置于适配单元中用 来与核心处理单元中的服务器端模块进行通讯的通讯模块客户端,以及设置于核心处理单元 中用来与适配单元中的客户端模块进行通讯的通讯模块服务器端。
上述的使用TCL进行基站软件测试的装置中,所述适配单元通过消息转发模块与被测软 件的各种接口相适配,所述消息转发模块包括与外围单板上和中心处理板通讯的软件接口 相适配的TCP通讯服务器子模块、与测试中心处理板上和外围单板通讯的软件接口相适配的 TCP通讯客户器子模块、与测试中心处理板上和网管通讯的软件接口相适配的RUDP通讯客户 器子模块、与测试中心处理板上和RNC的接口相适配的软件接口 NBAP编解码子模块。
上述的使用TCL进行基站软件测试的装置中,核心处理单元还包括一定时器,所述定时 时开始计时,到核心处理单元收到被测软件返回的测试消息 时计时停止,如果定时器超时仍未收到被测软件返回的测试消息,则通知核心处理单元进行 下一个测试项目。
一种使用TCL进行基站软件测试的方法,包括以下步骤
(1) 启动被测软件和基站软件测试装置,在基站软件测试装置中加载测试脚本
(2) 基站软件测试装置按照测试脚本对被测软件进行测试;
(3) 基站软件测试装置分析被测软件返回的测试消息,得到测试结果。 上述的使用TCL进行基站软件测试的装置中,步骤(2)进一步包括
(21) 测试管理模块按照测试脚本安排测试项目顺序,消息管理模块调用编解码模块对 包含测试项目内容的测试消息进行编码
(22) 将编码后的测试消息发送给通讯模块;
(23) 通讯模块将编码后的测试消息通过适配单元发送给被测软件。 上述的使用TCL进行基站软件测试的装置中,歩骤(3)进一歩包括
(31) 被测软件返回的包含测试结果的测试消息通过适配单元发送给通讯模块;
(32) 通讯模块将所述包含测试结果的测试消息发送给消息管理模块;
(33) 消息管理模块调用编解码模块对所述包含测试结果的测试消息进行解码,发送给 调度模块;
(34) 调度模块分析所述包含测试结果的测试消息,得到测试结果。
上述的使用TCL进行基站软件测试的装置中,在步骤(2)与步骤(3)之间还包括步骤 (A):自核心处理单元发出測试消息时开始的一段时间内,如果未收到被测软件返回的测试 消息,则返回步骤(2)进行下一个测试项目。
采用此技术方案进行基于消息处理的软件的单元测试、集成测试,有以下好处
1) 測试人员不需要在被测软件中添加测试代码,就可以进行测试,非常方便
2) 采用TCL脚本技术自动控制測试流程,利于进行复杂的组合测试,脚本维护方便;
3) 自动化判断測试结果,节省了测试人员手动分析测试结果的时间,尤其是进行大量回
归测试时依靠人工判断测试结果是不可能的;
4) 采用TCL语言作为测试脚本语言,容易学习,便于测试脚本开发;
5) 便于脚本移植。


图l是NodeB软件构架图; 图2是本发明中测试装置的原理框图; 图3是本发明中适配单元支持的消息转发模块类型; 图4是本发明中TCL扩展命令模块结构图。
具体实施例方式
下面结合附图对本发明作进一步的详细说明
图l是NodeB软件的结构图,由一块中心处理板以及多块外围处理板组成,中心处理板 通过TCP方式与外围单板进行通讯,同时NodeB的中心处理板还通过RUDP与网管进行通讯, 以及与RNC进行通讯,NodeB软件需要处理NBAP消息。各单板软件从组成结构上基本上分为 两大部分,通讯模块以及上层应用软件,通讯模块根据所在单板的作用可以配置为不同的方 式,如在外围单板上配置了 TCP通讯客户端与中心处理板上的TCP通讯服务器端进行TCP通 讯,在中心处理板上还配置了 RUDP服务器与网管进行通讯,同时配置NBAP编解码模块与RNC 进行NBAP消息交互。本发明所述的测试目的就是对NodeB中各单板对于以上接口间的消息处 理进行测试。图中每一个单板还包含一个UDP接收模块,是用于接收测试消息(未使用本发 明的测试方法就需要这个模块)。
本发明技术方案的总体框图如图2所示,图2中灰色部分是本发明中密切相关部分。
一种基于消息处理的自动化测试装置,适用于测试各模块之间采用消息交互的软件系统, 该自动化测试装置包含与被測软件进行适配的适配单元以及核心处理单元。其中核心处理单 元包括对标准TCL命令进行解释的标准TCL解释器模块,与对自动化测试处理命令进行解释 的TCL扩展解释器模块,进行消息表示与处理的编解码模块;适配单元包括消息转发模块。 该测试设备还包括适配单元与核心单元进行通讯的通讯模块。之所以采用TCL语言作为测试 脚本语言,是因为其容易学习,便于測试脚本开发。
适配单元中的消息转发模块有多种通讯方式,每--种通讯方式封装为一个子模块,如图
3所示,根据被测软件的接口不同起用不同的通讯子模块。TCP通讯服务器子模块用于测试外 围单板上与中心处理板通讯的软件接口, TCP通讯客户器子模块用于测试中心处理板上与外 围单板通讯的软件接口, RUDP通讯客户器子模块用于测试中心处理板上与网管通讯的软件接 口, NBAP编解码子模块用于测试中心处理板上与RNC进行通讯的软件接口。采用适配单元完 全模拟了被测软件接口的通讯对端,如启动消息转发模块类型为TCP客户端的适配单元,与 中心处理板进行TCP通讯,对于中心处理板来说这种通讯方式与中心处理板与真实的外围单 板进行通讯完全一致。所以采用适配单元使得不用修改被测试软件,便于脚本移植。
核心处理单元能够与多个适配单元采用服务器客户端方式共同工作,这样在一次测试时 可以同时测试被测软件的多个接口,而各适配单元也可根据需要灵活的与各计算机连接。另 一种构架是取消独立的适配单元,消息转发模块直接嵌入到中心处理单元,但是这种方法使 得多个适配单元无法分布运行在不同的计算机上,所以本发明并未采用这种构架。
编解码模块中包含如下特征消息编码与消息解码。消息编码包括从消息实例文件中读 取消息结构与消息字段值,修改消息中某个字段的值,将消息中每一个字段的值编码为二进 制字节流。消息解码包括从消息模板中读取消息结构,将二进制字节流根据消息模板的定义 解码为消息结构,获取消息中某个字段的值。现有脚本中存在二进制码流,非常不直观,尤 其是复杂结构数据不便于维护,本发明加入编解码模块后,测试人员不需要在被测软件中添 加测试代码,就可以进行测试,非常方便。
核心处理单元中TCL扩展命令模块又分为TCL扩展命令分发模块、调度模块、测试管理 模块与消息管理模块,如图4所示。
测试管理模块从逻辑上将测试分为测试计划、测试任务与测试用例, 一个测试计划包含 多个测试任务,第一个测试任务执行完毕,系统自动执行第二个测试任务,下一个测试任务 的执行依次类推; 一个测试任务包含多个测试用例, 一个测试用例执行完毕后系统自动运行 下一个测试用例。测试管理模块根据当前测试脚本的上下文进行合法性判断,如在测试计划 中只能执行测试任务,不能执行测试用例,在测试任务中只能执行测试用例不能执行另外的 测试任务。所述的测试管理模块还完成如创建测试计划、启动测试任务、启动适配单元、启 动测试用例、退出测试用例、退出适配单元、退出测试任务等工作。
所述的消息管理模块调用编解码模块提供的接口完成从消息模板中装载消息结构、从消
息实例中装载消息结构与消息字段值、编码消息、解码消息、获取与修改消息字段的值以及 发送消息等功能。
所述的调度模块在运行过程中处于接收消息过程中,当接收到被测软件发送来的消息或 者接收到定时器超时的消息,调用当前测试用例的消息处理函数进行处理。
基于消息的自动化测试方法,适用于测试基于消息处理的软件系统,包括以下步骤
1) 使用文件文件描述被测试软件输入输出消息的模板,该消息模板只包括抽象的消息定 义,不包括消息中具体的字段的取值
2) 根据消息模板文件以及要测试的具体目的生成一个或者多个消息实例文件,消息实例 文件中包括消息中每一个字段的取值;
3) 编写TCL脚本文件,该脚本文件中除了可以使用标准的TCL命令,还可以使用扩展的 命令,用于指定测试过程,控制适配单元的运行,向被测软件发送消息,接收从被测发送来 的消息,进行自动化判断测试过程,输出报表;
4) 启动被测试软件;
5) 启动核心处理单元,加载并运行编写的TCL脚本,测试过程会按照脚本定义自动进行, 测试中间过程以及测试是否通过等信息打印到报表文件中;
6) 根据最后的报表文件观察测试结果。
按照上述方法进行测试时,主要的工作在于编写表示测试流程的TCL脚本以及表示消息 结构的消息模板与表示消息数据的消息实例。如果接口消息不变化,则消息模板文件与消息 实例文件只要编写一次即可。TCL脚本文件需要根据测试目的不同编写不同的脚本。
下面详细介绍一下整个方案的流程
核心处理单元启动后,装载TCL测试脚本,根据脚本中的内容首先建立一个测试计划, 在测试计划下创建第一个测试任务并运行,在测试任务中启动所需要的适配单元,并且启动 第一个测试用例,当第一个测试用例运行完毕后执行第二个用例,该任务下的所有测试用例 执行完毕后停止启动的适配单元,退出该测试任务;以此类推完成当前测试计划下的所有测 试任务,并退出当前测试计划;这样直到执行完所有的测试计划,整个测试过程完毕。此举 加强了流程控制,脚本维护方便。在执行测试用例时,在完成必要的初始化以及其他动作(如 向被测试软件发送消息)后,进入到接收消息的状态中,适配单元启动后,如果接收到被测
软件发送来的消息,重新编码后发送到核心处理单元的调度模块,调度模块调用消息编解码 模块的解码功能按照对应的消息模板进行解码,消息解码后则调用测试用例中的消息处理函 数进行处理。为了防止测试单元在很长时间内都收不到被测软件发送的消息,核心处理单元 提供定时器功能,启动定时器后直到定时器超时仍然没有收到预期的消息则可以进行其他的 处理(根据实际情况,有可能以测试失败的方式退出测试用例,有可能继续进行其他测试交 互)。如果TCL脚本中要向被测试软件发送消息,扩展TCL命令模块中的消息管理模块调用 编解码模块的编码功能进行消息编码,然后调用通讯模块发送到适配单元,适配单元通过消 息转发模块将消息发送到被测软件。
测试用例脚本中完成测试的自动化判断,方法一基于消息的判断;方法二根据被测 软件打印信息提取特征字符串进行判断。方法一主要用于被测软件在相应的接口中有消息交 互,例如,被测软件会发送某一个消息,同时消息中的某些字段的值有预期结果。为了在TCL 用例中进行自动化检测,首先设置定时器,同时在定时器超时处理函数中以测试失败的结果 退出测试用例,如果在指定时间收到预期消息,进一步获取消息中某些字段的值,逐条判断 这些字段的值是否与期望的值相等,如果不相等则以测试失败的结果退出测试用例。方法二 主要用于无法用方法一进行判断的场合,被测软^^在运行过程中将一些信息打印到log文件 中,测试用例脚本读取文件并査找相关信息,如果与期望的特征字符串一致则以测试成功的 结果退出测试用例,否则以测试失败的结果退出测试用例。自动化判断测试结果,节省了测 试人员手动分析测试结果的时间,尤其是进行大量回归测试时依靠人工判断测试结果是不可 能的。
为了描述本发明,使用NodeB作为被测试软件进行具体描述,但是本发明不限于仅测试 NodeB软件,本发明可以应用到任何分布式、基于消息处理的软件中。
本发明经过在NodeB产品的单元测试与集成测试实际使用,效果良好。同时本发明还应 用到每日冒烟测试过程中,也起到很大的作用。
权利要求
1、一种使用TCL进行基站软件测试的装置,其特征在于包括与被测软件的软件接口进行适配的适配单元、对被测软件进行测试的核心处理单元以及在适配单元和核心处理单元之间用于二者通讯的通讯模块;其中,核心处理单元通过通讯模块向适配单元发送测试消息,适配单元将所述测试消息转送给所述被测软件,并将被测软件发送的测试消息通过通讯模块发送给核心处理单元。
2、 根据权利要求1所述的使用TCL进行基站软件测试的装置,其特征在于所述核心处 理单元包括对标准TCL命令进行解释的标准TCL解释器模块,对自动化测试处理命令进行 解释的TCL扩展解释器模块,对测试消息进行编解码的编解码模块;其中,标准TCL解释器模块解释输入到核心处理单元的TCL脚本,对于标准TCL命令, 直接翻译成机器语言,对于TCL扩展命令则交给TCL扩展解释器模块翻译,并根据标准TCL 命令和TCL扩展命令向编解码模块发送内容为测试命令的测试消息,编解码模块将所述测试 消息转化为二进制字节流依次通过通讯模块和适配单元发送给被测软件,并接收通讯模块转 发的来自被测软件的二进制字节流,将其转换成测试消息发送给TCL扩展解释器模块,由TCL 扩展解释器模块分析测试消息并对被测软件进行下一步自动化测试处理。
3、 根据权利要求2所述的使用TCL进行基站软件测试的装置,其特征在于所述TCL扩 展解释器模块包括翻译TCL扩展命令的TCL扩展命令分发模块;判断测试项目合法性,安排 测试项目顺序的测试管理模块;接收从被测软件发送来的测试消息,并对测试消息进行消息 处理的调度模块;调用编解码模块进行测试消息编码、解码的消息管理模块;其中,TCL扩展解释器模块翻译输入的TCL扩展命令,获得测试脚本,测试管理模块按 照測试脚本安排测试项目顺序,消息管理模块调用编解码模块将包含测试项目内容的测试消 息进行编码后发送给被测软件,被测软件返回的测试消息经消息管理模块调用编解码模块解 码后,送至调度模块进行分析处理。
4、 根据权利要求1所述的使用TCL进行基站软件测试的装置,其特征在于所述通讯模 块包括设置于适配单元中用来与核心处理单元中的服务器端模块进行通讯的通讯模块客户 端,以及设置于核心处理单元中用来与适配单元中的客户端模块进行通讯的通讯模块服务器 端。
5、 根据权利要求1所述的使用TCL进行基站软件测试的装置,其特征在于所述适配单 元通过消息转发模块与被测软件的各种接口相适配,所述消息转发模块包括与外围单板上和中心处理板通讯的软件接口相适配的TCP通讯服务器子模块、与测试中心处理板上和外围 单板通讯的软件接口相适配的TCP通讯客户器子模块、与测试中心处理板上和网管通讯的软 件接口相适配的RUDP通讯客户器子模块、与测试中心处理板上和RNC的接口相适配的软件接 口NBAP编解码子模块。
6、 根据权利要求1所述的使用TCL进行基站软件测试的装置,其特征在于核心处理单 元还包括一定时器,所述定时器自核心处理单元发出测试消息时开始计时,到核心处理单元 收到被测软件返回的测试消息时计时停止,如果定时器超时仍未收到被测软件返回的测试消 息,则通知核心处理单元进行下一个测试项目。
7、 一种使用TCL进行基站软件测试的方法,其特征在于包括以下歩骤(1) 启动被测软件和基站软件测试装置,在基站软件测试装置中加载测试脚本;(2) 基站软件测试装置按照测试脚本对被测软件进行测试;(3) 基站软件测试装置分析被测软件返回的测试消息,得到测试结果。
8、 根据权利要求7所述的使用TCL进行基站软件测试的方法,其特征在于步骤(2) 进一步包括(21) 测试管理模块按照测试脚本安排测试项目顺序,消息管理模块调用编解码模块对 包含测试项目内容的测试消息进行编码(22) 将编码后的测试消息发送给通讯模块;(23) 通讯模块将编码后的测试消息通过适配单元发送给被测软件。
9、 根据权利要求7所述的使用TCL进行基站软件测试的方法,其特征在于步骤(3) 进一步包括(31) 被測软件返回的包含测试结果的测试消息通过适配单元发送给通讯模块(32) 通讯模块将所述包含测试结果的测试消息发送给消息管理模块;(33) 消息管理模块调用编解码模块对所述包含测试结果的测试消息进行解码,发送给 调度模块(34) 调度模块分析所述包含測试结果的測试消息,得到测试结果。
10、 根据权利要求8所述的使用TCL进行基站软件测试的方法,其特征在于在步骤(2) 与步骤(3)之间还包括步骤(A):自核心处理单元发出测试消息时开始的一段时间内,如果未收到被测软件返回的测试消息,则返回步骤(2)进行下一个测试项目。
全文摘要
本发明公开了一种使用TCL进行基站软件测试的装置和方法。现有测试方案,不直观,不便于维护,不能进行组合测试,测试效率低;不便于脚本移植;需要修改被测试软件。为解决上述问题,本发明包括与被测软件的软件接口进行适配的适配单元、对被测软件进行测试的核心处理单元以及在适配单元和核心处理单元之间用于二者通讯的通讯模块;使用TCL进行基站软件测试的方法,包括以下步骤(1)在基站软件测试装置中加载测试脚本;(2)对被测软件进行测试;(3)分析被测软件返回的测试消息,得到测试结果。本发明脚本维护方便;自动化判断测试结果;容易学习,便于测试脚本开发;便于脚本移植,适用于各种软件测试环境。
文档编号H04W24/04GK101170785SQ20061015001
公开日2008年4月30日 申请日期2006年10月24日 优先权日2006年10月24日
发明者郭素光 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1