一种关键字驱动的导航方法

文档序号:6531691阅读:190来源:国知局
专利名称:一种关键字驱动的导航方法
技术领域
本发明涉及自动化测试技术,更具体地说,涉及一种关键字驱动的导航方法。
背景技术
在对电信设备或软件进行测试的过程中,通常是使用Key-Word Driven(关键字驱动)技术,它是基于Rational公司的Robot工具平台而实现的,通常应用于GUI(图形用户界面)的自动化测试中。
在关键字驱动技术中,测试人员会使用类似Excel工作表的表格,以输入关键字(Key-Word)的方式来建立测试用例。这个方法的整个过程(包含功能)都是由关键字驱动的,关键字控制了整个测试过程。
表一所示是一个示例性的测试用例。
表一

其中,第一列是关键字,用于说明要执行的动作;第二到第四列,是执行第一列的动作所必需的参数;第五列用于表示该步骤是否通过。
如图1所示,关键字驱动技术的运作机制如下(1)测试人员以Excel建立如表一所示的测试用例文件,例如可命名为KeyWords_Web.xls;测试用例文件由关键字(如Enter、Action、Verify等)及其参数组成。
(2)测试用例运行时,驱动脚本(Drive TSL script)会运行初始化脚本(LogonTSL script),为整个测试作初始化工作,并载入控制文件(Run.txt),以获取当前要运行的测试用例(*.xls,例如KeyWords_Web.xls)。
(3)驱动脚本(Drive TSL script)在初始化工作完成后,启动控制脚本(Controller TSL script),由控制脚本来负责解析整个测试用例文件的关键字,例如Enter、Action、Verify等,并根据这些关键字来调用与之对应的实现脚本(User Defined TSL script)。
(4)Utility脚本(即实现TSL脚本)实际执行每个测试动作,并且使用其它列作为参数,执行完后将结果回传给控制脚本。当控制脚本执行到最后一行,整个测试用例就结束执行。
(5)当控制文件(Run.txt)中的所有用例文件(*.xls)都已运行完毕,则本次测试过程结束。
由上述可知,在对电信设备或软件进行测试的过程中,关键字驱动技术有以下缺点(1)主要应用于GUI自动化测试,并基于Rational公司的Robot工具平台而实现,(a)它的跨平台(特指操作系统)移植性比较弱,(b)跨工具平台移植性也比较弱,(c)而且不适合应用于通信设备类产品的自动化测试。
(2)缺少中心数据库(CDB),AW(关键字)本身就是NKey(导航关键字),关键字的导航直接在驱动模块中实现,通常是通过编程语言提供的case语句或if语句来实现的,如图2所示,因此,如果新增一个关键字,则必须修改驱动模块;其结果将导致(a)自动化测试过程中开发成本增加,(b)关键字将会有大量的冗余,(c)需同时维护多个版本的驱动模块。
(3)无法实现不同产品/版本间测试用例的移植。
(4)关键字的实现方式只能通过脚本来实现,无法通过其它编程语言如C、Pascal等来实现。

发明内容
针对现有技术的上述缺陷,本发明要解决的技术问题在于如何改进关键字的导航技术,使得新增关键字时不必修改导航脚本。
为解决上述技术问题,本发明的方案是提供一种关键字驱动的导航方法,采用静态脚本和动态脚本组成导航脚本,包括以下步骤(S1)由所述静态脚本完成中心数据库的加载,并创建相应的动态脚本;(S2)所述动态脚本根据所述关键字和与之对应的导航关键字,获取对应的关键字实现函数。
为了实现测试的目的,本发明中还包括(S3)所述动态脚本将测试逻辑中的关键字的参数传给所述关键字实现函数;(S4)执行所述关键字实现函数,以完成相应的测试功能。
本发明中,在所述中心数据库内存储有关于关键字、导航关键字以及关键字实现函数之间相互关系的信息;在所述步骤(S1)中,所述静态脚本完成中心数据库的加载后,根据所需的关键字来创建相应的动态脚本;在所述步骤(S2)中,所述动态脚本根据所述关键字和与之对应的导航关键字,通过查找所述中心数据库来获取对应的关键字实现函数。
本发明中,所述导航脚本可通过脚本语言或编译语言实现。所述静态脚本为初始化脚本;在所述步骤(S1)中,所述静态脚本可通过脚本语言动态创建命令的特性来创建所述动态脚本。所述脚本语言可为工具命令语言(TCL)。
采用本发明的方案之后,通过中心数据库,在维护关键字及其与导航关键字、关键字实现函数之间的对应关系时,只需修改中心数据库即可,而不必再修改导航脚本,从而提高了关键字数据驱动自动化测试的开发效率,并且降低了关键字驱动自动化测试的后续维护成本,同时可避免关键字的冗余,避免维护多个版本的导航脚本;另外,具有相同功能的测试工具或测试仪器的配置和控制也可定义一套相同的关键字来实现。
而且,由采取了上述技术方案,通过导航关键字就可将关键字导航到不同测试工具或测试仪器的关键字实现函数,也可将关键字导航到不同产品或同一产品的不同版本的关键字实现函数,从而为测试脚本在不同产品或同一产品不版本间的移植奠定了基础。
另外,由于在本发明中中的导航脚本是通过脚本语言(如TCL脚本语言、Python语言)来实现的,而脚本语言具备跨平台(特指操作系统)及跨工具平台的特性,因此,本发明的方案能提高跨平台移植性和跨工具平台移植性,从而更适合应用于通信设备类产品的自动化测试。


下面将结合附图及实施例对本发明作进一步说明,附图中图1是现有技术中关键字驱动技术的的动作机制示意图;图2是现有技术中新增关键字时的流程示意图;图3是本发明中的导航脚本的结构示意图;图4是本发明中导航脚本的初始化流程图;图5是本发明中测试逻辑的执行过程示意图。
具体实施例方式
本发明的实现,是基于现有技术的各项发展,例如,脚本语言(如TCL、PYTHON等)的特性,如解释执行、可嵌入、可扩展等特性,为自动化测试技术奠定了基础;同时,各种产品(如电信设备或软件)不仅提供图形界面,同时也提供命令行接口或人机接口,也为产品的自动化测试技术奠定了基础;此外,申请人经过多年的自动化测试实践,总结了一整套自动化测试脚本设计模式,包括线性测试脚本设计模式、结构化测试脚本设计模式、共享测试脚本设计模式、数据驱动测试脚本设计模式、关键字驱动测试脚本设计模式等。
为便于对本发明的理解,下面对本文中使用的一些术语作一个简单的介绍,具体如表二所示
表二

由前述内容可知,本发明的目的是要改进关键字的导航方案,使得新增关键字时不必修改导航脚本。
如图3所示,本发明中,导航脚本由两部分组成(1)一部分为静态脚本,即初始化脚本,主要用于完成中心数据库的加载,并通过脚本语言(如TCL)动态创建命令的特性,来创建导航脚本的动态脚本;(2)另一部分为动态脚本,即关键字函数,它根据导航关键字(NKey)来完成关键字的导航,执行关键字实现函数,并将结果返回给测试逻辑。具体实施时,导航脚本可以通过脚本语言(如Python)或编译语言(如C)来实现。
如图4所示,导航脚本在初始化阶段加载中心数据库,并且根据中心数据库中定义的关键字以及关键字与导航关键字、关键字实现函数之间的对应关系,利用脚本语言(如TCL)的可以动态生成命令的特性,生成关键字函数,即动态脚本;然后以关键字函数作为导航脚本的一部分,完成关键字到关键字实现函数的导航的功能。
如图5所示,测试逻辑在执行过程中(1)关键字将触发关键字函数,转而执行关键字函数,即执行导航脚本中的动态脚本;(2)关键字函数根据关键字及与之对应的导航关键字,查找中心数据库,以获取与关键字对应的关键字实现函数;本文中的加载是指把中心数据库所有内容加载到计算机内存中或连接到数据库;查找是指在中心数据库中查找某条记录;(3)导航脚本中的动态脚本将测试逻辑中的关键字的参数也同时传给关键字实现函数,然后执行关键字实现函数,以完成相应的测试功能;(4)将结果返回给测试逻辑,并确定测试逻辑是否继续执行下一个关键字,如果为否则结束整个流程。
可见,本发明中,由于新增加的关键字与导航关键字、关键字实现函数的对应关系,只需要修改中心数据库,不必修改导航脚本,所以提高了开发效率,降低了导航脚本的维护成本。其中的导航脚本可以通过脚本语言(如Python)或编译语言(如C)来实现。
权利要求
1.一种关键字驱动的导航方法,其特征在于,采用静态脚本和动态脚本组成导航脚本,包括以下步骤(S1)由所述静态脚本完成中心数据库的加载,并创建相应的动态脚本;(S2)所述动态脚本根据所述关键字和与之对应的导航关键字,获取对应的关键字实现函数。
2.根据权利要求1所述的方法,其特征在于,还包括以下步骤(S3)所述动态脚本将测试逻辑中的关键字的参数传给所述关键字实现函数;(S4)执行所述关键字实现函数,以完成相应的测试功能。
3.根据权利要求2所述的方法,其特征在于,在所述中心数据库内存储有关于关键字、导航关键字以及关键字实现函数之间相互关系的信息。
4.根据权利要求3所述的方法,其特征在于,在所述步骤(S1)中,所述静态脚本完成中心数据库的加载后,根据所需的关键字来创建相应的动态脚本。
5.根据权利要求4所述的方法,其特征在于,在所述步骤(S2)中,所述动态脚本根据所述关键字和与之对应的导航关键字,通过查找所述中心数据库来获取对应的关键字实现函数。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述导航脚本是通过脚本语言或编译语言实现的。
7.根据权利要求6所述的方法,其特征在于,所述静态脚本为初始化脚本;在所述步骤(S1)中,所述静态脚本通过脚本语言动态创建命令的特性来创建所述动态脚本。
8.根据权利要求7所述的方法,其特征在于,所述脚本语言为工具命令语言(TCL)。
全文摘要
本发明涉及自动化测试技术,为达到新增AW(关键字)时不必修改导航脚本的目的,本发明提供一种关键字驱动的导航方法,其中采用由静态脚本和动态脚本组成的导航脚本,并在中心数据库内存储关键字、导航关键字、及关键字实现函数之间的相互关系,然后,可由静态脚本完成中心数据库的加载,并根据所需的关键字来创建相应的动态脚本;再由所述动态脚本根据所述关键字和导航关键字,通过查找所述中心数据库来获取对应的关键字实现函数;同时,所述动态脚本将测试逻辑中的关键字的参数传给所述关键字实现函数;通过执行所述关键字实现函数,即可完成相应的测试功能,并将结果返回给测试逻辑。本发明中的方法可提高开发效率,降低导航脚本的维护成本。
文档编号G06F11/36GK1851664SQ20051003718
公开日2006年10月25日 申请日期2005年9月8日 优先权日2005年9月8日
发明者林培兴 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1