一种测试工具及其界面和引擎分离的实现方法

文档序号:7614671阅读:131来源:国知局
专利名称:一种测试工具及其界面和引擎分离的实现方法
技术领域
本发明涉及网络通讯设备测试技术,尤其涉及的是,一种用来实现网络通讯设备测试系统的方法。
背景技术
网络通讯设备测试采用的工具种类很多,工具的界面基本上类似,但是功能部分有所差异。目前网络通讯设备测试所使用的商用测试工具基本上都是专用工具,有其固定的界面和测试功能,使用者经过培训或学习后才能掌握其使用要领。当一个新的功能需要测试时,商用测试工具生产商又会推出一种新的测试工具,而使用者又要额外花费时间来学习新的软件界面特性。
在网络通讯设备的测试中也经常使用通用测试工具,该类测试工具通过编写脚本可以对测试功能进行扩充。使用者只要掌握了脚本的编写技术,就可以开发自己需要的脚本,并在一定程度上满足不同功能的测试。但是该类脚本和测试工具其他部分紧密结合,所以会受到诸多限制,例如其脚本语法格式往往是某测试软件厂家所独有的,因此不具有良好的移植性和扩展性。
在网络通讯设备测试领域内还流行一种技术就是采用脚本来实现网络通讯设备的自动化测试系统,该类方法通常采用Perl、Python等通用脚本语言,将测试过程中用到的关键功能用脚本语言的扩展功能来实现,然后利用脚本语言的分支和循环等语句来实现各个测试案例,多个测试案例的集合组成一个自动化测试套件,然后通过命令行或者简单的GUI方式来运行该自动化测试套件,达到测试的目的。该方法在扩展性方面比上述方法要强,但是脚本语言在实现界面方面比较弱,要做出一个良好的操作界面有较大难度,并且由于脚本本身的一些局限性,如不支持多线程或支持程度比较弱等,采用该方法通过界面实现对脚本的控制和运行不灵活。
因此,现有技术存在缺陷,而有待于改进和发展。高级语言(如C/C++、VB、C#、Delphi等)在开发界面程序方面比较有优势,而利用脚本实现测试功能单元(测试工具测试功能的最小组成单元)比较方便,所以采用测试工具界面和测试引擎相分离的方法,利用高级语言开发通用的界面程序部分,利用脚本来实现工具的测试引擎部分,此方法不仅能缩短测试工具的开发周期,而且也有利于测试工具测试功能的快速扩充。

发明内容
本发明的目的在于提供一种测试工具及其界面和引擎相分离的实现方法。
一种测试工具,其包括一测试工具界面、一测试工具引擎以及配置文件;所述测试工具界面包括有主界面、配置模块、管理模块和内部通讯模块;所述主界面用于固定显示通用界面部分;所述配置模块用于根据所述配置文件对动态模块进行动态加载;所述管理模块用于完成测试功能单元的管理、测试功能单元的运行,以及测试工具软件内部各个模块的管理功能;所述内部通讯模块用于测试工具内部各个模块和组件间的数据通讯和信息交换的功能。
所述的测试工具,其中,所述测试工具引擎包括测试引擎模块和测试功能模块;所述测试引擎模块用于完成测试过程中的关键特性功能,包括测试过程中所需各种资源库的加载功能,控制硬件接口发送和接受测试数据功能,测试数据统计功能;所述测试功能模块,由多个相关的测试功能单元组成,所述测试功能单元,用于完成测试工具的一个测试功能。
所述的测试工具,其中,所述主界面包括主显示区域、主菜单、主工具条和状态栏。
所述的测试工具,其中,所述配置模块包括动态菜单、动态工具条以及动态对话框。
一种测试工具的界面和引擎相分离的实现方法,其包括以下步骤a)、采用高级语言实现测试工具界面;b)、将测试工具引擎关键特性功能的函数接口在脚本语言里扩展成脚本命令形式;c)、采用脚本语言实现测试功能单元和测试功能模块;d)、根据用户的需求编写测试工具配置文件;e)、采用多线程技术和线程间通讯技术等将测试工具界面和测试引擎融为一体。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的测试工具主界面采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的配置模块采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的管理模块采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的内部通讯模块采用高级语言实现。
本发明效果如下测试工具中与测试相关的功能模块都是动态加载的,可以方便地根据用户需求定制,不需要再另行开发,缩短了新功能的开发周期。其次测试功能单元及其运行是由界面程序控制和管理的,而实现这部分功能是采用高级语言方式,比起使用脚本语言方式要灵活许多。最后测试引擎部分是由通用脚本技术来实现的,所以很容易对测试系统进行扩展和移植。


图1是本发明测试工具及其界面和引擎分离结构示意图;图2是本发明根据配置文件加载动态菜单等动态模块的流程示意图;图3是本发明测试工具运行时的通讯示意图。
具体实施例方式
以下结合附图,对本发明的较佳实施例进行较为详细的说明。
本发明所述的测试工具及其界面和引擎分离的方法,先使用脚本技术开发测试引擎模块和测试功能模块,然后使用高级语言开发测试工具界面,最后通过模块动态加载技术、多线程技术和线程间通讯技术等将两者融为一体。
本发明所述的测试工具,其包括一测试工具界面、一测试工具引擎以及配置文件;所述测试工具界面包括有主界面、配置模块、管理模块和内部通讯模块;所述的测试工具引擎包括测试引擎模块和测试功能模块。
以下结合附图对本发明所述技术方案的实施作进一步的详细描述如图1所示,本发明的测试工具及其界面和引擎分离结构包括两个部分,测试工具界面和测试工具引擎首先采用高级语言(以VC为例)实现测试工具界面的主界面,其用于固定显示通用界面部分,主界面包括下列基本元素1.主显示区域,显示程序运行过程中产生的日志信息和测试功能单元信息;2.主菜单,测试工具常用的菜单选项,不随测试功能改变的部分,如文件、编辑、视图和窗口等常用菜单。
3.主工具条,和主菜单的功能相对应,属于测试工具的基本功能组成部分,也不随测试功能改变。
4.状态栏,显示当前程序运行的状态,属于测试工具的基本功能部分,其显示的内容随程序运行的状态改变。
所述的测试工具,其中,所述配置模块包括动态菜单、动态工具条以及动态对话框。
主界面完成初始化工作后会调用配置模块,根据所述配置文件对动态模块进行动态加载,以完成和测试功能相关的各个模块的加载工作,如图2所示步骤1读取配置文件信息,配置文件里包含了和测试功能相关的信息,如测试功能所需的通过界面操作的接口的属性等,测试工具界面程序可以根据这些信息生成相应的动态菜单项和动态工具条等;步骤2当遇到配置文件不存在或者读取失败的情况时,界面程序则进入异常处理分支,提示用户输入配置文件路径和文件名,用户确定后重新加载和测试功能相关的模块,否则退出程序;步骤3界面的动态菜单和动态工具条加载成功后便进入测试引擎模块的初始化过程,此过程包含载入测试过程中所需要的一切资源,如果初始化失败则进入异常处理分支,让用户选择测试引擎模块和测试功能模块;步骤4测试引擎模块和测试功能模块加载成功后,测试工具界面根据测试功能模块在界面显示区显示测试功能单元名称和测试功能单元描述等信息;步骤5当选中一条测试功能单元时并点击测试参数配置菜单或者工具条时,界面程序会自动根据该条测试功能单元的具体信息动态产生相应的配置对话框。
所述管理模块用于完成测试功能单元的管理、测试功能单元的运行,以及测试工具软件内部各个模块的管理功能。
所述内部通讯模块用于完成测试工具内部各个模块和组件间的数据通讯和信息交换的功能。
所述测试引擎模块用于完成测试过程中的关键特性功能,包括测试过程中所需各种资源库的加载功能,控制硬件接口发送和接受测试数据功能,测试数据统计功能。
所述测试功能模块,由多个相关的测试功能单元组成,所述测试功能单元,用于完成测试工具的一个测试功能。
测试工具引擎中的测试引擎模块和测试功能单元是采用通用脚本技术实现,下面以TCL(Tool Command Language)语言为例,大致分为下列三个步骤步骤1将测试引擎模块关键特性功能的接口函数在TCL语言里扩展成命令形式;步骤2用TCL语言按照被测功能的测试要求编写测试脚本,完成一个功能点的测试序列,即一个测试功能单元;步骤3将多个测试功能单元按照一定的方式组织成测试功能模块,并建立索引。
测试工具在开发过程中采用的是分离技术,但提交给最终用户使用时应该是一个完整的系统,所以将界面和引擎部分融合起来的技术也是本发明必不可少的部分,融合的步骤如下步骤1在界面程序中调用Windows函数创建执行子进程,并在执行子进程中调用TCL解释器程序执行测试脚本;步骤2在界面程序中调用Windows函数创建多个线程,通过Windows管道通讯完成执行子进程和界面显示区域间的信息交互;步骤3采用Windows消息通讯机制将各个执行子进程的运行状态信息传递给主界面处理。
测试工具运行过程中的内部通讯示意图如图3所示,通过主界面的显示区域控制内部通讯模块,以运行测试功能模块中的测试功能单元;测试功能单元所运行的结果通过内部通讯模块反馈在主界面的显示区域。
一种测试工具的界面和引擎相分离的实现方法,其包括以下步骤
a)、采用高级语言实现测试工具界面;b)、将测试工具引擎关键特性功能的函数接口在脚本语言里扩展成脚本命令形式;c)、采用脚本语言实现测试功能单元和测试功能模块;d)、根据用户的需求编写测试工具配置文件;e)、采用多线程技术和线程间通讯技术等将测试工具界面和测试引擎融为一体。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的测试工具主界面采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的配置模块采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的管理模块采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的内部通讯模块采用高级语言实现。
在实际测试过程当中,测试工具的硬件接口要通过网线、光纤或者电话线等方式和被测的网络通讯设备建立物理连接,然后运行本发明描述的测试工具,执行相关的测试功能完成对应的测试任务。
以上所述仅为本发明的较佳实施例,并非用来限定本发明,任何熟悉本技术及其领域的人,在不脱离本发明的精神和范畴内,可能作出各种修改或变更,因此本发明的保护范围应以权利要求书所要求保护的范围为准。
权利要求
1.一种测试工具,其特征在于,包括一测试工具界面、一测试工具引擎以及配置文件;所述测试工具界面包括有主界面、配置模块、管理模块和内部通讯模块;所述主界面用于固定显示通用界面部分;所述配置模块用于根据所述配置文件对动态模块进行动态加载;所述管理模块用于完成测试功能单元的管理、测试功能单元的运行,以及测试工具软件内部各个模块的管理功能;所述内部通讯模块用于测试工具内部各个模块和组件间的数据通讯和信息交换的功能。
2.根据权利要求1所述的测试工具,其特征在于,所述测试工具引擎包括测试引擎模块和测试功能模块;所述测试引擎模块用于完成测试过程中的关键特性功能,包括测试过程中所需各种资源库的加载功能,控制硬件接口发送和接受测试数据功能,测试数据统计功能;所述测试功能模块,由多个相关的测试功能单元组成,所述测试功能单元,用于完成测试工具的一个测试功能。
3.根据权利要求1所述的测试工具,其特征在于,所述主界面包括主显示区域、主菜单、主工具条和状态栏。
4.根据权利要求1所述的测试工具,其特征在于,所述配置模块包括动态菜单、动态工具条以及动态对话框。
5.一种测试工具的界面和引擎相分离的实现方法,其包括以下步骤a)、采用高级语言实现测试工具界面;b)、将测试工具引擎关键特性功能的函数接口在脚本语言里扩展成脚本命令形式;c)、采用脚本语言实现测试功能单元和测试功能模块;d)、根据用户的需求编写测试工具配置文件;e)、采用多线程技术和线程间通讯技术等将测试工具界面和测试引擎融为一体。
6.根据权利要求5所述的测试工具的界面和引擎相分离的实现方法,其特征在于,所述测试工具界面的测试工具主界面采用高级语言实现。
7.根据权利要求5所述的测试工具的界面和引擎相分离的实现方法,其特征在于,所述测试工具界面的配置模块采用高级语言实现。
8.根据权利要求5所述的测试工具的界面和引擎相分离的实现方法,其特征在于,所述测试工具界面的管理模块采用高级语言实现。
9.根据权利要求5所述的测试工具的界面和引擎相分离的实现方法,其特征在于,所述测试工具界面的内部通讯模块采用高级语言实现。
全文摘要
本发明涉及一种测试工具及其界面和引擎分离的实现方法。其包括一测试工具界面、一测试工具引擎以及对应的配置文件。测试工具中与测试相关的功能模块都是动态加载的,可以方便地根据用户需求定制,不需要再另行开发,缩短了新功能的开发周期。测试功能单元及其运行是由界面程序控制和管理的,而实现这部分功能是采用高级语言方式,比起使用脚本语言方式要灵活许多。测试工具引擎部分是由通用脚本技术来实现的,所以易于对测试系统进行扩展和移植。
文档编号H04L12/26GK1909481SQ20051003632
公开日2007年2月7日 申请日期2005年8月5日 优先权日2005年8月5日
发明者樊志强, 许生海, 萧宇青, 伏朝晖 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1