一种用于关键字驱动的中心数据库的组建方法

文档序号:6643879阅读:269来源:国知局
专利名称:一种用于关键字驱动的中心数据库的组建方法
技术领域
本发明涉及自动化测试技术,更具体地说,涉及一种适于关键字驱动的中心数据库的组建方法。
背景技术
在对电信设备或软件进行测试的过程中,通常是使用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(导航关键字),关键字、导航关键字、关键字实现函数之间的对应关系在驱动脚本中实现,并由驱动脚本完成关键字的导航,因此,新增关键字及其与导航关键字、关键字实现函数之间的对应关系时,必须修改驱动模块;同时,如果关键字、导航关键字、关键字实现函数之间的对应关系发生改变时,也需要修改驱动模块。从而会导致(a)自动化测试过程中的开发成本较高,(b)关键字将会有大量的冗余;(c)需要维护多个版本的驱动模块,维护成本高。
(3)无法实现不同产品/版本间测试用例的移植;(4)关键字的实现方式只能通过脚本来实现;无法通过其它编程语言如C、pascal等来实现。

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


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

由前述内容可知,本发明的目的是要改进现有的关键字的导航方案,使得新增关键字时不必修改导航脚本。
本发明的方案,是将AW(关键字)、NKey(导航关键字)、AW(关键字)实现函数的对应关系从驱动脚本中剥离出来,通过CDB(中心数据库)来实现,使得新增或修改关键字及其与导航关键字、关键字实现函数之间的对应关系时,只需修改中心数据库即可,而不必修改驱动脚本。本发明中的驱动脚本的作用在于完成自动化测试执行前的初始化工作如运行参数的载入,测试用例的载入,导航脚本中静态脚本的执行、自动化测试执行的启动等等。
如图2所示,本发明中,导航脚本由两部分组成(1)一部分为静态脚本,即初始化脚本,主要用于完成中心数据库的加载,并通过脚本语言(如TCL)动态创建命令的特性,来创建导航脚本的动态脚本;(2)另一部分为动态脚本,即关键字函数,它用于根据导航关键字来完成关键字的导航,执行关键字实现函数,并将结果返回给测试逻辑。具体实施时,导航脚本可以通过脚本语言(如Python)或编译语言(如C)来实现。
如图3所示,导航脚本在初始化阶段加载中心数据库,并且根据中心数据库内定义的关键字以及关键字与导航关键字、关键字实现函数之间的对应关系,利用脚本语言(如TCL)的可以动态生成命令的特性,生成关键字函数,即动态脚本;然后以关键字函数作为导航脚本的一部分,完成关键字到关键字实现函数的导航的功能。
如图4所示,测试逻辑在执行过程中由静态脚本完成中心数据库的加载,并根据所需的关键字来创建相应的动态脚本;再由所述动态脚本根据所述关键字和导航关键字,通过查找所述中心数据库来获取对应的关键字实现函数;同时,所述动态脚本将测试逻辑中的关键字的参数传给所述关键字实现函数;通过执行所述关键字实现函数,即可完成相应的测试功能,并将结果返回给测试逻辑。本文中的加载是指把中心数据库所有内容加载到计算机内存中或连接到数据库;查找是指在中心数据库内查找某条记录。
具体实施时,按以下步骤处理,先根据关键字驱动的要求确定i个关键字,再确定n个可适用于所有关键字的导航关键字,其中i、n均为正整数;对应于其中任一个关键字与n个导航关键字的n种组合,可确定n个对应的关键字实现函数;对应于i个关键字,则可确定i×n个对应的关键字实现函数;然后,根据各个关键字、导航关键字、以及关键字驱动函数之间的关系,建立一个以关键字和导航关键字为索引的关键字驱动函数索引表;利用这个关键字驱动函数索引表的信息,就可建立一个用于关键字驱动的中心数据库。
具体实施时,中心数据库的存储是通过文本文件的方式来表示,具体由关键字、导航关键字、以及关键字实现函数组成。
中心数据库的其中一种实施方式如下所示 NKey1=OriginFunc11NKey2=OriginFunc12NKey3=OriginFunc13……NKeyn=OriginFunc1n[AW2]NKey1=OriginFunc21NKey2=OriginFunc22NKey3=OriginFunc23……NKeyn=OriginFunc2n……[AWi]NKey1=OriginFunci1NKey2=OriginFunci2NKey3=OriginFunci3……NKeyn=OriginFuncin其中,方括号“[]”中的内容表示第1、第2、...、第i个关键字,即AW1、AW2、AW3、...、AWi;每一个等号“=”左边的内容表示第1、第2、第3、...、第n个导航关键字,等号“=”右边的内容表示该关键字的第1、第2、第3、...、第n个关键字实现函数。
其中,关键字AW1有n种关键字实现函数,n为正整数;通过导航关键字NKey1,AW1将导航到关键字实现函数OriginFunc11;通过导航关键字NKey2,AW1将导航到关键字实现函数OriginFunc12;通过导航关键字NKey3,AW1将导航到关键字实现函数OriginFunc13;……;通过导航关键字NKeyn,AW1将导航到关键字实现函数OriginFunc1n。
同样,关键字AW2有n种关键字实现函数,通过导航关键字NKey1,AW2将导航到关键字实现函数OriginFunc21;通过导航关键字NKey2,AW2将导航到关键字实现函数OriginFunc22;通过导航关键字NKey3,AW2将导航到关键字实现函数OriginFunc23;……;通过导航关键字NKeyn,AW2将导航到关键字实现函数OriginFunc2n。
同样,关键字AWi有n种关键字实现函数,其中i为正整数,通过导航关键字NKey1,AWi将导航到关键字实现函数OriginFuncil;通过导航关键字NKey2,AWi将导航到关键字实现函数OriginFunci2;通过导航关键字NKey3,AWi将导航到关键字实现函数OriginFunci3;……;通过导航关键字NKeyn,AW2将导航到关键字实现函数OriginFuncin。
中心数据库第二种实施方式如下所示[Class1]FIELDS,NKey1, NKey2, NKey3,......, NKeynAW1, OrigFun11,OrigFunc12,OrigFunc13,......,OrigFunc1nAW2, OrigFun21,OrigFunc22,OrigFunc23,......,OrigFunc2n[Class2]FIELDS,NKey1, NKey2, NKey3,......, NKeynAW3, OrigFun31,OrigFunc32,OrigFunc33,......,OrigFunc3nAW4, OrigFun41,OrigFunc42,OrigFunc43,......,OrigFunc4n……其中,方括号“[]”中的内容仅用于表示分类,以便于后续中心数据库的维护,除此之外没有其它含义;FIELDS是保留字;FIELDS所在的列(即第一列)表示关键字;FIELDS所在行表示导航关键字,导航关键字之间以逗号分隔;其他内容表示关键字实现函数。
其中,关键字AW1有n种关键字实现函数,通过导航关键字NKey1,AW1将导航到关键字实现函数OriginFunc11;通过导航关键字NKey2,AW1将导航到关键字实现函数OriginFunc12;通过导航关键字NKey3,AW1将导航到关键字实现函数OriginFunc13;……;通过导航关键字NKeyn,AW1将导航到关键字实现函数OriginFuncln。
同样,关键字AW2有n种关键字实现函数,通过导航关键字NKey1,AW2将导航到关键字实现函数OriginFunc21;通过导航关键字NKey2,AW2将导航到关键字实现函数OriginFunc22;通过导航关键字NKey3,AW2将导航到关键字实现函数OriginFunc23;……;通过导航关键字NKeyn,AW2将导航到关键字实现函数OriginFunc2n。
同样,关键字AW3有n种关键字实现函数,通过导航关键字NKey1,AW3将导航到关键字实现函数OriginFunc31;通过导航关键字NKey2,AW3将导航到关键字实现函数OriginFunc32;通过导航关键字NKey3,AW3将导航到关键字实现函数OriginFunc33;……;通过导航关键字NKeyn,AW3将导航到关键字实现函数OriginFunc3n。
同样,关键字AW4有n种关键字实现函数,通过导航关键字NKey1,AW4将导航到关键字实现函数OriginFunc41;通过导航关键字NKey2,AW4将导航到关键字实现函数OriginFunc42;通过导航关键字NKey3,AW4将导航到关键字实现函数OriginFunc43;……;通过导航关键字NKeyn,AW4将导航到关键字实现函数OriginFunc4n;由上述具体实施方式
可知,通过中心数据库,在维护关键字及其与导航关键字、关键字实现函数之间的对应关系时,只需修改中心数据库即可,而不必再修改导航脚本,从而提高了关键字数据驱动自动化测试的开发效率,并且降低了关键字驱动自动化测试的后续维护成本,同时可避免关键字的冗余,避免维护多个版本的导航脚本;另外,具有相同功能的测试工具或测试仪器的配置和控制也可定义一套相同的关键字来实现。
而且,由上述具体实施方式
可知,通过导航关键字就可将关键字导航到不同测试工具或测试仪器的关键字实现函数,也可将关键字导航到不同产品或同一产品的不同版本的关键字实现函数,从而为测试脚本在不同产品或同一产品不同版本间的移植奠定了基础。
具体实施时,其中的中心数据库可以通过关系数据库来实现,例如通过Oracle、Sybase、Sql Server等来实现。另外,对于中心数据库内的关键字、导航关键字、关键字实现函数之间的对应关系,可通过关系数据库内的表格(或称Table或View更妥)来实现。
权利要求
1.一种用于关键字驱动的中心数据库的组建方法,其特征在于,包括以下步骤根据关键字驱动的要求确定至少一个关键字;根据关键字驱动的要求确定至少一个可适用于所有关键字的导航关键字;针对每一个关键字与每一个导航关键字的组合,根据关键字驱动的要求确定一个唯一对应的关键字实现函数;根据所述各个关键字、导航关键字、以及关键字驱动函数之间的关系,建立一个以关键字和导航关键字为索引的关键字驱动函数索引表;利用所述关键字驱动函数索引表的信息,建立一个用于关键字驱动的中心数据库。
2.根据权利要求1所述的方法,其特征在于,其中根据关键字驱动的要求确定i个关键字、n个可适用于所有关键字的导航关键字;对应于任一个关键字与n个导航关键字的n种组合,有n个对应的关键字实现函数;对应于i个关键字,则有i×n个对应的关键字实现函数;其中i、n均为正整数。
3.根据权利要求3所述的方法,其特征在于,所述关键字驱动函数索引表的为如下形式[AW1]NKey1=OriginFunc11NKey2=OriginFunc12NKey3=OriginFunc13……NKeyn=OriginFunc1n[AW2]NKey1=OriginFunc21NKey2=OriginFunc22NKey3=OriginFunc23……NKeyn=OriginFunc2n……[AWi]NKey1=OriginFunci1NKey2=OriginFunci2NKey3=OriginFunci3……NKeyn=OriginFuncin其中,方括号中的内容表示第1、第2、...、第i个关键字;等号左边的内容表示其所在关键字的第1、第2、第3、...、第n个导航关键字;等号右边的内容表示每一关键字的第1、第2、第3、...、第n个关键字实现函数。
4.根据权利要求3所述的方法,其特征在于,所述关键字驱动函数索引表的为如下形式[Class1]FIELDS,NKey1,NKey2,NKey3,......,NKeynAW1,OrigFun11,OrigFunc12,OrigFunc13,......,OrigFunc1nAW2,OrigFun21,OrigFunc22,OrigFunc23,......,OrigFunc2n[Class2]FIELDS,NKey1,NKey2,NKey3,......,NKeynAW3,OrigFun31,OrigFunc32,OrigFunc33,......,OrigFunc3nAW4,OrigFun41,OrigFunc42,OrigFunc43,......,OrigFunc4n……其中,方括号中的内容仅用于表示对关键字的分类;FIELDS是保留字;FIELDS所在的第一列表示关键字;FIELDS所在第一行表示导航关键字;其他内容则表示关键字实现函数。
全文摘要
本发明涉及自动化测试技术,为达到新增AW(关键字)时不必修改导航脚本的目的,本发明提供一种用于关键字驱动的中心数据库的组建方法,其中采用由静态脚本和动态脚本组成的导航脚本,并在中心数据库内存储关键字、导航关键字、及关键字实现函数之间的相互关系,然后,由静态脚本完成中心数据库的加载,并根据所需的关键字来创建相应的动态脚本;再由所述动态脚本根据所述关键字和导航关键字,通过查找所述中心数据库来获取对应的关键字实现函数;同时,所述动态脚本将测试逻辑中的关键字的参数传给所述关键字实现函数;通过执行所述关键字实现函数,即可完成相应的测试功能,并将结果返回给测试逻辑。本发明中的方法可提高开发效率,降低导航脚本的维护成本。
文档编号G06F17/30GK1851695SQ20051010075
公开日2006年10月25日 申请日期2005年10月24日 优先权日2005年10月24日
发明者林培兴 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1