通过由测试集组成的测试环境来实现产品自动测试的方法

文档序号:6644939阅读:308来源:国知局
专利名称:通过由测试集组成的测试环境来实现产品自动测试的方法
技术领域
本发明涉及自动化测试技术,更具体地说,涉及一种通过由测试集组成的测试环境来实现产品自动测试的方法。
背景技术
在对电信设备或软件进行测试的过程中,通常是使用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)测试环境的建立及恢复是在测试用例(*.xls)中实现的,这会导致测试环境冗余;并且,一量测试环境发生变化,就需要修改大量的测试用例(*.xls),从而导致测试用例(*.xls)的维护成本非常高。

发明内容
针对现有技术的上述缺陷,本发明要解决现有的测试环境实现方式会导致测试环境冗余、维护成本非常高等问题。
本发明解决其技术问题所采用的技术方案是提供一种通过由测试集组成的测试环境来实现产品自动测试的方法,其中包括以下步骤(S1)根据测试所需的测试环境和测试逻辑,将所述测试环境分解为树状结构、分级排布的多个测试集;(S2)选定位于最后一级的任一个测试集,根据所述树状结构依次确定其上级测试集、上上级测试集、...、第二级测试集、以及第一级测试集,再根据所述第一级测试集、第二级测试集、...、上上级测试集、以及上级测试集依次建立对应的测试环境;(S3)根据当前所选测试集建立对应的测试环境,再执行针对当前已建立的测试环境所配置的测试逻辑,然后恢复根据当前所选测试集所建立的测试环境;(S4)根据与当前所选测试集具有共同上级测试集且未被遍历的下一个测试集来建立对应的测试环境,再执行对应的测试逻辑,然后恢复根据其所建立的测试环境,重复本步骤,直至遍历与当前所选测试集具有共同上级测试集的所有测试集;(S5)采取与所述步骤(S2)、(S3)和(S4)类似的方式,遍历每一个位于分支末端的测试集以执行与之对应的测试逻辑,其间,针对每一个测试集,应确保根据其建立测试环境的步骤以及恢复根据其建立的测试环境的步骤都只执行一次。
本发明所述的方法中,针对每一个测试集,当遍历至它时,先根据它建立相应的测试环境;当需要遍历与之具有共同上级的其他同级测试集、或已遍历了与之具有共同上级的其他同级测试集时,则恢复根据其建立的测试环境。
在本发明所述方法的步骤(S1)中,可将测试环境分解为以下四种基本的测试集,具体是工具测试集,用于完成PC、测试工具、测试仪器的环境搭建及环境恢复工作;周边设备测试集,用于完成周边设备1至周边设置6的环境搭建及环境恢复工作;服务器测试集,用于完成服务器的环境搭建及环境恢复工作;被测设备测试集,用于完成被测设备的环境搭建及环境恢复工作。当然,这只是其中一种划分方式,还可以由其他划分方式。
本发明所述的方法中,每一个测试环境可以由所述四种基本测试集中的一种或多种组成。
本发明所述的方法中,所述测试集可通过TCL脚本来实现;同一个测试集文件中包含一个或多个测试集。
由于采取了上述技术方案,本发明具有以下优点(1)将测试环境划分成若干测试集,使得复杂的测试环境得以简化,测试环境的搭建更加灵活,增强测试环境的共享,节省了测试环境搭建及恢复的工作量;(2)将测试环境从测试用例中分离出来,减少了测试环境的冗余,减少了由于测试环境的变化而导致的测试用例的维护工作量;(3)组成测试环境的测试集通过纯TCL脚本实现,具备跨平台(特指操作系统)、跨工具平台移植的能力。


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

本发明中,测试环境在自动化测试体系框架中的位置如图2所示。下面会对图中的各部分一一进行说明。
1、运行引擎(测试平台)本发明中,运行引擎是测试平台的一个功能块。也就是说运行引擎是可以移植的,只要其它测试平台有了运行引擎这个功能模块,就可以具备本发明的自动化测试的特性了。其中,测试平台用于完成测试套的编辑,还可用于选择要运行的测试套、并执行测试,然后将脚本执行控制权交由运行引擎。其中的运行引擎可用于读入测试套;在测试开始前,它根据测试套中的配置建立测试环境;在测试过程中,它根据测试套中的配置运行指定的测试逻辑及测试用例数据;在测试结束后,它会恢复测试环境,并根据测试用例的测试结果,生成本次测试未通过的测试用例组成的测试套,方便后续对未通过的测试用例的再次测试。
2、测试环境本发明中,测试环境包括被测设备及周边设备、测试工具/测试仪器等;它用于定义测试中所需的全局数据(变量),定义测试环境下需要加载的函数库,定义测试环境的建立条件(如被测设备及周边设备、测试工具/测试仪器的初始化等),定义测试环境的恢复条件(如被测设备及周边设备资源的释放,测试工具/测试仪器等公共资源的释放等),并完成测试环境的建立及恢复。
3、测试逻辑本发明中,测试逻辑用于定义测试流程;在测试过程中,它用于同步测试所用到的测试工具及测试仪器,并根据运行引擎提供的测试用例数据,完成对被测设备的测试。
4、测试用例数据本发明中,测试用例数据用于定义测试逻辑需要在哪些测试环境运行,定义测试逻辑运行所必须的特有测试环境,定义测试逻辑运行所必须加载的特定的函数库,并定义在测试过程中测试逻辑所需的测试数据;还用于运行引擎驱动测试逻辑完成测试。
5、测试套本发明中的测试套是测试脚本在逻辑上的划分;如基本功能测试套(包括测试环境、测试逻辑、测试用例数据)、特性测试套等等;在测试套中仅包含以下内容要运行哪些测试脚本(测试环境、测试逻辑、测试用例数据),以及这些测试脚本(测试环境、测试逻辑、测试用例数据)的运行信息(如运行顺序、执行次数)。
在电子、通信类产品的自动化测试中,测试环境可分两部分,一部分是硬件环境的搭建,如单板的配备,光纤、电缆的连接,这是必须手工完成的;另一部分是软件数据配置,如单板数据的设定、业务的配置等,这部分可以通过自动化的手段来实现。本专利所说的测试环境,特指测试环境的软件数据配置。
一、测试环境的分解如图3所示,根据测试人员手工配置环境数据的过程,可将测试环境分解为四种测试集(1)工具测试集(ToolTc),用于完成PC、测试工具、测试仪器的环境搭建及环境恢复工作;(2)周边设备测试集(RsTc),用于完成周边设备1至周边设置6的环境搭建及环境恢复工作;
(3)服务器测试集(ServerTc),用于完成服务器的环境搭建及环境恢复工作;(4)被测设备测试集(DutTc),用于完成被测设备的环境搭建及环境恢复工作。
二、测试环境的组成根据前述分析以及测试用例的测试环境,测试环境可以灵活地由各种测试集组成,从而达到测试环境的充分共享,例如(a)测试环境1DutTc,测试环境只由被测设备组成;(b)测试环境2ToolTc/DutTc,测试环境由外部测试工具/测试仪器及被测设备组成;(c)测试环境3ToolTc/RsTc/DutTc,测试环境由外部测试工具/测试仪器、周边设备、被测设备组成;(d)测试环境4ToolTc/RsTc/ServerTc/DutTc,测试环境由外部测试工具/测试仪器、周边设备、被测设备、第三方服务器组成。
当然,还可根据需要采取其他各种组合方式。
三、测试集的功能设计本发明中,测试集具备如下功能(a)建立测试环境在测试前,建立测试所需的环境;(b)恢复测试环境;在测试后,将测试环境恢复到建立之前的状况,以达到不影响后续测试进行的目的;(c)定义测试环境变量;这是一项可选功能,在自动化测试过程中,可以定义测试逻辑要引用的全局变量,如测试仪器的端口地址、被测试设备的单板信息等;(d)定义测试环境需要加载的函数库,以便在后续的测试过程中,控制测试过程中涉及的测试工具/仪器、设备等。
四、测试集的实现具体实施时,多个测试集可以在一个测试集文件中实现,也可以在不同的测试集文件中实现;一个测试集可以包含多个设备的配置。如下所示为测试集的一种典型实现方式[测试集1]产品函数库=工具函数库=设备11前置条件=设备11后置条件=设备12前置条件=设备12后置条件=……设备1n前置条件=设备1n后置条件=[测试集2]产品函数库=工具函数库=设备21前置条件=设备21后置条件=设备22前置条件=设备22后置条件=……设备2n前置条件=设备2n后置条件=……[测试集m]产品函数库=工具函数库=设备m1前置条件=设备m1后置条件=设备m2前置条件=设备m2后置条件=……设备mn前置条件=设备mn后置条件=其中的“设备”可以是测试仪或测试工具,也可以是电信设备,例如交换机、宽带接入设备、路由器、服务器等。其中的“前置条件”是指环境建立脚本(建立测试所需的环境),“后置条件”是指环境恢复脚本(将测试环境恢复到建立之前的状况,以达到不影响后续测试进行的目的)。
下面以以TCL脚本为例,说明自动化测试过程中,用于定义全局变量的测试集的实现方式。
第一种定义格式如下[DutVar]slot1 =1/1/1port1IpAddr=10.1.1.1slot2 =2/2/2port2IpAddr=$aDutVar(port1IpAddr)command=show\$aDutVar(slot2)其中等号“=”左边是变量名,等号“=”右边是变量取值。
第二种定义格式如下[ToolVar]FIELDS,ToolName,ToolIpAddr1, SmartBits, 192.168.1.12, Ax4000, 192.168.100.13, RouterTester,$aDutVar(port1IpAddr)其中第一行是变量名;FIELDS是关键字;变量的引用方式为puts$aToolVar(1,ToolName)-$aToolVar(1,ToolIpAddr)。
五、测试环境的建立和恢复过程以前述理论为基础,可根据测试所需的测试环境和测试逻辑,将测试环境分解为树状结构、分级排布的多个测试集。
测试时,先选定位于最后一级的任一个测试集(它必然是一个位于末端的测试集),根据树状结构依次确定其上级测试集、上上级测试集、...、第二级测试集、以及第一级测试集,再根据所确定的其第一级测试集、第二级测试集、...、上上级测试集、以及上级测试集依次建立对应的测试环境。
然后,根据当前所选测试集建立对应的测试环境,再执行针对当前已建立的测试环境所配置的测试逻辑,然后恢复根据当前所选测试集所建立的测试环境。
然后,根据与当前所选测试集具有共同上级测试集且未被遍历的下一个测试集来建立对应的测试环境,再执行对应的测试逻辑,然后恢复根据其所建立的测试环境,重复本步骤,直至遍历与当前所选测试集具有共同上级测试集的所有测试集;采取与上述步骤类似的方式,遍历每一个位于分支末端的测试集以执行与之对应的测试逻辑,其间,针对每一个测试集,应确保根据其建立测试环境的步骤以及恢复根据其建立的测试环境的步骤都只执行一次。具体来说,针对每一个测试集,当遍历至它时,先根据它建立相应的测试环境;当需要遍历与之具有共同上级的其他同级测试集、或已遍历了与之具有共同上级的其他同级测试集时,则恢复根据其建立的测试环境。
如图4所示为本发明一个实施例中的测试环境与测试逻辑运行树的示意图,根据组合情况,其中共有四种测试环境,分别是TestCluster1/TestCluster11/TestCluster111TestCluster1/TestCluster11/TestCluster112TestCluster1/TestCluster11/TestCluster113TestCluster1/TestCluster12具体实施时,其中的TestCluster1可以是被测设备测试集DutTc;TestCluster11可以是其中一种周边设备测试集RsTc,TestCluster12可以是另一种周边设备测试集RsTc;而TestCluster111、TestCluster112、TestCluster113可分别是三种工具测试集ToolTc。当然,也可以是其他对应模式。
本实施例中,测试环境的建立过程中如下(1)在测试平台中选择要运行的测试逻辑,并启动测试;(2)运行引擎根据运行参数完成初始化工作;(3)运行引擎根据本次运行的测试逻辑,建立如图4所示的测试环境与测试逻辑的运行树;(4)运行引擎根据图4所示的测试环境与测试逻辑的运行树,开始执行本次测试,其中先执行功能1建立测试集TestCluster1中配置的测试环境,具体是通过执行TestCluster1的环境建立配置命令、脚本来实现的,以下类似;然后执行功能2建立测试集TestCluster11中配置的测试环境;
然后执行功能3建立测试集TestCluster111中配置的测试环境;然后执行测试环境TestCluster1/TestCluster11/TestCluster111下的测试逻辑;然后执行功能C恢复测试集TestCluster111中配置的测试环境,具体是通过执行TestCluster111的环境恢复配置命令、脚本来实现的,以下类似;然后执行功能4建立测试集TestCluster112中配置的测试环境;然后执行测试环境TestCluster1/TestCluster11/TestCluster112下的测试逻辑;然后执行功能D恢复测试集TestCluster112中配置的测试环境;然后执行功能5建立测试集TestCluster113中配置的测试环境;然后执行测试环境TestCluster1/TestCluster11/TestCluster113下的测试逻辑;然后执行功能E恢复测试集TestCluster113中配置的测试环境;然后执行功能B恢复测试集TestCluster11中配置的测试环境;然后执行功能6建立测试集TestCluster12中配置的测试环境;然后执行测试环境TestCluster1/TestCluster12下的测试逻辑;然后执行功能F恢复测试集TestCluster12中配置的测试环境;最后后执行功能A恢复测试集TestCluster1中配置的测试环境。
具体实施时,组成测试环境的测试集的实现除了用TCL脚本来实现之外,也可以通过其它脚本语言(如Python等)或编译语言(如C/C++,Pascal等)来实现。另外,组成测试环境的测试集的实现也可以通过数据库(如Oracle,Sql server等)来实现。
权利要求
1.一种通过由测试集组成的测试环境来实现产品自动测试的方法,其特征在于,包括以下步骤(S1)根据测试所需的测试环境和测试逻辑,将所述测试环境分解为树状结构、分级排布的多个测试集;(S2)选定位于最后一级的任一个测试集,根据所述树状结构依次确定其上级测试集、上上级测试集、...、第二级测试集、以及第一级测试集,再根据所述第一级测试集、第二级测试集、...、上上级测试集、以及上级测试集依次建立对应的测试环境;(S3)根据当前所选测试集建立对应的测试环境,再执行针对当前已建立的测试环境所配置的测试逻辑,然后恢复根据当前所选测试集所建立的测试环境;(S4)根据与当前所选测试集具有共同上级测试集且未被遍历的下一个测试集来建立对应的测试环境,再执行对应的测试逻辑,然后恢复根据其所建立的测试环境,重复本步骤,直至遍历与当前所选测试集具有共同上级测试集的所有测试集;(S5)采取与所述步骤(S2)、(S3)和(S4)类似的方式,遍历每一个位于分支末端的测试集以执行与之对应的测试逻辑,其间,针对每一个测试集,应确保根据其建立测试环境的步骤以及恢复根据其建立的测试环境的步骤都只执行一次。
2.根据权利要求1所述的通过由测试集组成的测试环境来实现产品自动测试的方法,其特征在于,针对每一个测试集,当遍历至它时,先根据它建立相应的测试环境;当需要遍历与之具有共同上级的其他同级测试集、或已遍历了与之具有共同上级的其他同级测试集时,则恢复根据其建立的测试环境。
3.根据权利要求1所述的通过由测试集组成的测试环境来实现产品自动测试的方法,其特征在于,在所述步骤(S1)中,将测试环境分解为以下四种基本的测试集,具体是工具测试集,用于完成PC、测试工具、测试仪器的环境搭建及环境恢复工作;周边设备测试集,用于完成周边设备1至周边设置6的环境搭建及环境恢复工作;服务器测试集,用于完成服务器的环境搭建及环境恢复工作;被测设备测试集,用于完成被测设备的环境搭建及环境恢复工作。
4.根据权利要求3所述的通过由测试集组成的测试环境来实现产品自动测试的方法,其特征在于,每一个测试环境可以由所述四种基本测试集中的一种或多种组成。
5.根据权利要求1-4中任一项所述的通过由测试集组成的测试环境来实现产品自动测试的方法,其特征在于,所述测试集是通过TCL脚本来实现的;同一个测试集文件中包含一个或多个测试集。
全文摘要
本发明涉及一种通过由测试集组成的测试环境来实现产品自动测试的方法,为解决现有方法会导致测试环境冗余、维护成本非常高等问题,本发明中,根据测试所需的测试环境和测试逻辑,将测试环境分解为树状结构、分级排布的多个测试集;然后选定位于最后一级的任一个测试集,再根据所述第一级、第二级、...、上上级、上级测试集以及其自身依次建立对应的测试环境;然后执行针对当前已建立的测试环境所配置的测试逻辑,然后恢复根据当前所选测试集所建立的测试环境;按同样的模式,遍历每一个位于分支末端的测试集以执行与之对应的测试逻辑,其间,针对每一个测试集,应确保根据其建立测试环境的步骤以及恢复根据其建立的测试环境的步骤都只执行一次。
文档编号G06F11/00GK1851655SQ200510101180
公开日2006年10月25日 申请日期2005年11月7日 优先权日2005年11月7日
发明者林培兴 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1