CN100401087C - 自动测试装置及方法 - Google Patents

自动测试装置及方法 Download PDF

Info

Publication number
CN100401087C
CN100401087C CNB2004100745947A CN200410074594A CN100401087C CN 100401087 C CN100401087 C CN 100401087C CN B2004100745947 A CNB2004100745947 A CN B2004100745947A CN 200410074594 A CN200410074594 A CN 200410074594A CN 100401087 C CN100401087 C CN 100401087C
Authority
CN
China
Prior art keywords
test
layer
interface
case
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004100745947A
Other languages
English (en)
Other versions
CN1746694A (zh
Inventor
李刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2004100745947A priority Critical patent/CN100401087C/zh
Publication of CN1746694A publication Critical patent/CN1746694A/zh
Application granted granted Critical
Publication of CN100401087C publication Critical patent/CN100401087C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开一种自动测试装置及方法,其中所述自动测试装置包括至少一个用例层,用于描述针对测试功能而封装的测试步骤,并指定所支持的被测对象和测试内容;至少一个设备接口层,用于为被测对象对外提供控制和查询设备信息的设备接口;支撑层,位于用例层和设备接口层之间,用于屏蔽被测对象的差异,对设备接口进行封装,向用例层提供统一操作接口和统一数据访问接口;根据用例层的调用,适配相应的测试数据及正确的被测对象设备接口层。所述自动测试方法包括以下步骤:针对测试对象和测试内容,执行测试步骤;根据测试步骤,统一匹配测试数据及相应设备接口调用;根据测试步骤,返回相应测试用例的测试结果。

Description

自动测试装置及方法
技术领域
本发明涉及自动测试技术,尤指一种低冗余的自动测试装置及方法。
背景技术
测试是交付成功的优质的产品的保证,被测对象有硬件(如,芯片、单板等)也有软件。以告警测试为例,具有告警功能的设备,能够通过告警信息及时正确的反映出设备过去和当前的运行状态,以便于用户、维护工程师及时了解设备的运行状态和采取适当的操作,确保设备的正常运行,因此具有完善、准确的告警检测、诊断、隔离、保护、记录、上报、查询等功能是一个设备良好告警处理的特征。这样在测试中就必须采取有效的方法对设备的告警功能进行全面、深入和有效的测试,以充分验证被测设备对告警功能稳定高质量的支持。
由于告警处理上的特征,很便于用自动化测试的方法来实现,通过自动化测试的方法,能够提高告警的测试的效率。
现有技术中的一种解决方案是从被测对象出发进行自动化测试,针对不同设备或设备中的某个单板单独开发其告警功能的自动化测试用例,一个设备的某单板对应一个或多个测试用例,通过执行这个设备的对应的测试用例,完成相应的告警功能测试。请参照图1所示,在320G设备中有一块RWF(STM-64 Receiving Optical Wavelength Conversion Unit with FEC function,STM-64 FEC功能收端光波长转换板)单板,其支持输入光功率过高告警(IN_POWER_HIGH)的检测和上报,在1600G设备中的LWF(STM-64Transmit-receive Line Wavelength Conversion Unit with FEC,STM-64标准FEC功能波长转换单元)单板也支持这个告警。因为在自动化设计时是以设备和单板为被测对象,因此每种单板的输入光功率过高告警测试是由每种单板的对应的输入光功率过高告警自动化测试用例完成。
由图1可知,每个单板对于相同的告警是由不同的自动化测试用例来完成测试,测试用例的数目将随着设备和单板的增加而不断增加,而实际上,不同单板的相同告警的测试步骤基本类似,新单板的测试脚本基本上是在已完成的其它单板的脚本上针对新单板进行极少量的修改,修改的工作量不大,例如输入光功率过高告警对于RWC(STM-16 Receiving Optical WavelengthConversion Unit,STM-16接收端光波长转换板)和RWF单板的不同之处在于告警的门限不一样,对于RWF单板,是当输入功率大于-3db时上报,而RWC则可能在-10db时就上报告警了,新写的脚本只需根据单板的实际情况修改这些测试数据取值,其它部分都是不变的,因此测试用例之间存在很大部分冗余。如果在完成测试用例后,当需要增加一些测试项,修改测试步骤,则所有类似的脚本都需要修改,大大加大了维护的工作量。
针对上述缺点,现有技术采用如下方案进行改进,设计时不再是从设置和单板的角度考虑,而是从告警这个功能角度去考虑,一个告警功能对应一个自动化测试用例,这样多个单板的相同的告警功能就使用同一个测试用例来完成测试。请参照图2所示,对于每种设备,则只需写一个RLOS(ReceivingLoss Of Signal,接收线路侧信号丢失)告警的自动化测试用例。而对于设备中各个单板的区别处理,则通过在测试脚本中定义一组变量来描述不同的单板的差异,测试人员在测试前先根据测试的单板不一样,修改这些变量来完成,例如:输入光功率过高告警,只需在测试用例中定义一个表示告警门限的功率变量INPOWER_TH,测试人员在执行测试用例之前,需要通过手工修改该变量的取值,来适应TWF(STM-64 Transmitting Optical WavelengthConversion Unit,STM-64 FEC功能发端光波长转换板)和TWC(STM-16Transmitting Optical Wavelength Conversion Unit,STM-16发端光波长转换板)单板的测试。因为不同单板使用的是同一个测试用例,脚本的冗余量降低了,也降低自动化测试用例的维护难度。
然而这个技术方案虽然减少了测试用例的冗余,但是还是存在如下缺点:首先测试用例仅仅通过的定义一些简单的变量是不能完全避免不同被测对象之间的差异的,不同被测对象的命令差别,使其在不同产品进行移植时,需要做大量的修改。为了解决不同单板之间的差异性而定义的变量是定义测试脚本中的,就算有好的注释,也必须要求测试用例的使用人员对脚本的体系结构和实现语言有一定的了解,知道测试脚本在哪里定义了变量和怎么修改这些变量。而测试用例在使用前必须针对不同设备和单板进行修改脚本中定义的各种变量后才能运行,大大增加使用的难度和降低了执行效率。
发明内容
本发明提供一种自动测试装置及方法,解决测试用例冗余的问题。
为解决上述问题,本发明一种自动测试装置,包括:至少一个用例层,用于描述针对测试功能而封装的测试步骤,并指定所支持的被测对象和测试内容;至少一个设备接口层,用于为被测对象对外提供控制和查询设备信息的设备接口;支撑层,位于用例层和设备接口层之间,用于屏蔽被测对象的差异,对设备接口进行封装,向用例层提供统一操作接口和统一数据访问接口;根据用例层的调用,适配相应的测试数据及正确的被测对象设备接口层。
支撑层进一步包括:公共层模块,用于封装与测试内容无关而涉及测试中公共处理的接口;至少一个命令字模块,用于根据测试内容封装与设备接口层一致的命令行,并指定所支持的被测对象,且在被用例层中测试步骤调用时,经由公共层模块,下发指令至被测对象相应的设备接口,并把测试结果返回给统一适配模块;测试数据模块,根据被测对象和测试内容为用例层执行测试时提供测试数据;统一适配模块,用于针对用例层中测试步骤执行时的调用,适配相应的命令字模块集合和测试数据,通过命令字模块下发到被测对象的设备接口,并从命令字模块中提取相应测试结果,返回给相应的用例层。
命令字模块中的命令行与设备接口层一致是指格式和参数一致。
所述被测对象的测试功能相同,共用一个命令字模块。
统一适配模块进一步包括至少一个统一操作适配模块,用于获取用例层中测试对象和测试内容相关信息,适配所有相应的命令字模块;至少一个统一数据访问模块,用于获取用例层中测试对象和测试内容相关信息,访问测试数据模块,适配相应的测试数据供测试步骤执行时使用。
公共层模块进一步包括:和被测对象进行通信的通信接口、对测试仪表统一访问的访问接口及对被测对象返回数据对有用信息提取的过滤接口。
相应地,本发明基于自动测试装置的自动测试方法包括以下步骤:
(1)针对测试对象和测试内容,执行测试步骤;
(2)根据测试步骤,统一匹配测试数据及相应设备接口调用;
(3)根据测试步骤,返回相应测试用例的测试结果。
步骤(2)进一步包括如下步骤:获取用例层中测试对象和测试内容相关信息,适配所有相应的命令字模块;适配相应的测试数据供测试步骤执行时使用;命令字模块下发指令至被测对象相应的设备接口。
与现有技术相比,本发明具有以下优点:
1)降低自动化的成本。采用这种方法,可以很容易把已有的测试用例移植到其他产品;当设备的功能发生变化,而需要修改脚本时,一般只需修改支撑层的命令字模块的脚本;当新增了设备和单板,需要增加其测试用例时,则只需在统一适配模块中增加对新设备和单板的适配,以及在测试数据模块中增加修改数据,就可以完成新增设备和单板的测试用例,不需要对测试用例进行修改,具有很好的重用性和可移植性,降低了自动化的成本。
2)降低自动化脚本的维护成本。当某个功能的测试流程或测试数据发生变化时,采用本发明技术方案只需要修改一个测试脚本,如果采用现有技术中的第一种方案则需要修改多个脚本。这样大大降低了用例的维护的成本。
3)使测试用例更易于使用,提高测试执行效率。因为测试用例的执行的数据是通过测试数据模块获取的,测试数据和测试用例脚本是分离的,这样测试数据容易修改,并且可以保存,下次测试时可以重用,如果采用现有方案二,则需要每次测试时都修改数据。同时因为统一封装了测试需要的操作,不需要根据不同设备和单板修改测试用例,因此本发明技术方案,提高了用例的执行效率,也更容易使用。
附图说明
图1是现有技术一实施例示意图。
图2是现有技术另一实施例示意图。
图3是本发明自动测试装置框图。
具体实施方式
本发明的实质是使测试用例的实现和设备及单板类型无关,构造一个低冗余的能自动适配设备和单板变化的自动化测试脚本。
请参照图3所示,本发明自动测试装置包括至少一个用例层1、至少一个设备接口层2及位于用例层1和设备接口层2之间支撑层3。
用例层1用于描述针对测试功能而封装的测试步骤,并指定所支持的被测对象和测试内容(例如,输入光功率过高告警测试用例、RLOS告警测试用例、单板温度越限告警)。而用例脚本是测试用例的脚本描述,是测试步骤和测试内容的具体体现。通过分层设计,测试用例的脚本不再和具体的被测对象的测试设备相关,所有和测试设备相关的处理都移到支撑层3处理,用例脚本变成了测试步骤的逻辑描述,在实现支撑层3后,用例脚本的开发将没有多少难度,只需保证用例的描述全部使用设备操作命令字和数据访问命令字即可(后文详述),例如:测试单板温度越限告警,这个测试用例它的测试步骤如下:
步骤1:查询单板当前温度;
步骤2:获取单板温度门限,并保存;
步骤3:修改单板的温度门限,使门限低于当前温度;
步骤4:查询设备的告警,看是否有越限告警产生;
步骤5:恢复单板温度告警门限;
步骤6:查询设备的告警看告警是否结束。
所述设备接口层2用于为被测对象(例如,1600G设备、320G设备等)对外提供控制和查询设备信息的设备接口,这些设备接口的表现形式和设备相关,比较典型的是自定义的命令行、TL1(Transaction Language 1,交易处理语言)、网管使用Qx接口等。因为属于现有技术,这里不作详细说明。
所述支撑层3用于屏蔽被测对象的差异,对设备接口进行封装,向用例层1提供统一操作接口和统一数据访问接口;根据用例层1的调用,适配相应的测试数据及正确的被测对象设备接口层2。其中,匹配时,可以根据指定的测试对象和测试内容的相关信息进行匹配。
所述支撑层3进一步包括:
公共层模块31,用于封装与测试内容无关而涉及测试中公共处理的接口;
至少一个命令字模块32,是公共层模块31的上层模块,用于根据测试内容封装与设备接口层一致的命令行,并指定所支持的被测对象,且在被用例层1中测试步骤调用时,经由公共层模块31,下发指令至被测对象相应的设备接口(即设备接口层2),并把测试结果(按照定义好的格式)返回给统一适配模块34;
测试数据模块33,根据被测对象和测试内容为用例层1执行测试时提供测试数据,本实施例以数据库方式保存测试数据;
统一适配模块34,位于命令字模块32的上层,用于针对用例层1中测试步骤执行时的调用,通过统一操作接口和统一数据访问接口,适配相应的命令字模块集合和测试数据,通过命令字模块32下发到被测对象的设备接口,并从命令字模块32中提取相应测试结果,返回给相应的测试层模块1。
公共层模块31在本发明中表现为可供命令字模块32使用的基本公共函数,是整个自动测试的基础,例如,和被测对象进行通信的通信接口(Send接口)、对测试仪表统一访问的访问接口及对被测对象返回数据的有用信息提取的过滤接口等。因为公共层模块31一般是由测试工具提供,这里不再细述。
命令字模块32使用例脚本和具体的设备接口相隔离,设备接口就是上面所说的设备接口层2。各个命令字模块32的实现就是使用脚本语言编写一个函数,其参数及格式和设备接口的定义基本保持一致。例如,被测对象支持一个设置激光器开关的命令行cfg-set-laser(设备接口),参数为光口、通道,则就可以把这个命令行封装为一个命名为CfgSetLaser的命令字模块,如果调用该CfgSetLaser的命令字模块,则CfgSetLaser的命令字模块就会通过调用下层的公共层模块的提供的Send接口把cfg-set-laser命令下发到被测对象实际设备上,这样可以避免上层脚本,特别是用例脚本,直接使用Send接口下发和设备相关的命令,而上层脚本使用这些经过封装的命令字模块编写脚本,能大大降低用例因为设备提供的接口发生变化而导致的用例修改。
例如,原来的命令是使用cfg-set-laser命令的来进行开关激光器,原来的命令可能没有考虑到命令的可用性,使用1表示激光器状态为开,0表示激光器状态为关。后来用户提意见说,数字很难记忆。于是把表示开光状态的参数改为open,close,如果我们的测试用例是直接使用命令行接口编写,则必须修改所有使用这个命令的脚本,但是如果使用命令字模块封装后,则只需对CfgSetLaser这个命令字模块进行少量修改就可以继续使用原来的用例了,减少了设备变化时对测试用例的影响。
采用命令字模块还有一个好处就是可以减少移植的难度。例如,对于两个被测对象设备之间相同的功能,一般尽量把其封装成格式相同的命令字模块,例如上面的CfgSetlaser,320G设备只有通道和开关状态两个参数,而1600G设备则有光口、通道、开关状态三个参数,则可以统一定义为三个参数(如果参数的含义差异较大,也可以不统一),这样可以即减少了命令字模块的数目,又方便被测对象设备之间的测试用例移植。
被测对象1600G设备有自己的命令字模块集合,320G也有自己的命令字模块集合,这样对于每个设备根据其支持的功能,会对应一个由不同命令字模块组成的集合,为了防止函数重名和方便测试人员使用必须把其组织起来,方法有命名空间或者面向对象两种。命名空间方式是对于不同的产品的命令字模块使用不同命名空间进行封装,防止命令字模块命名重复。面向对象方式是把每个设备看作一个对象,它的每一个成员函数对应一个命令字模块,采用这两种方式各有各的优缺点,由于命名方式是现有技术且采用哪种方式对本方法影响不大,因此这里不作详细描述。
下面是一个使用TCL(Tool Command Language,工具命令语言)脚本语言编写的命令字模块32的例子,使用的面向对象的组织方法:
#!!======================================================
#过程名:                  CCfgDWDM::CfgSetLaser
#程序包:                  CMMLDWDM 1.0
#功能类别:                配置管理
#功能描述:                设置激光器开关状态
#参数说明:
#          bid:单板板位
#          Port:光口号
#          Path:通道好
#          IsLaserSwitch:激光器状态
#返回值:
#作  者:                  XXX
#生成日期:                2003-7-29:33:09
#修改纪录:
#!!======================================================
::itcl::body CCfgDWDM::CfgSetLaser{Bid Port Path IsLaserSwitch}{
       #m_NeRef为设备对象的实例,设备对象是从公共层模块的设备基类继承
         #Send接口就是公共层提供模块的下发命令到设备的公共通信接口
         #ConvertKey是一个完成输入参数和设备参数转换的函数
         $m_NeRef Send″cfg-set-laser″$Bid $Port $Path[$m_NeRef ConvertKey laserswitch
$IsLaserSwitch]
         set retObj[$m_NeRef cget-m_ObjResult]
         return[$retObj GetErrorCode]
    }
统一适配模块34进一步包括至少一个统一操作适配模块,用于提供统一操作接口,通过传入参数的和执行过程中使用命令字模块32的命令动态获取两种方式,取得被测设备的信息,然后根据获得的信息,把操作适配成相应的命令字模块32的命令;至少一个统一数据访问模块,用于提供统一数据访问接口,获取用例层1中测试对象和测试内容相关信息,访问测试数据模块33,适配相应的测试数据供测试步骤执行时使用。
统一适配模块34是从测试需求的角度上考虑,对某测试项测试过程中的某个和多个测试步骤的进行抽象得到的测试接口,其实现是一般是通过调用命令字模块32或公共层模块31完成。采用统一适配模块34不需修改用例层就可以自动适配不同设备和单板的差异。
在设备的实际测试中会经常遇到就算是相同的功能对于不同单板和设备其实现方法也很不一样的情况,这就是所说的设备差异性。还以测试单板温度越限告警为例,这个测试用例测试步骤如下:
步骤1:查询单板当前温度
步骤2:获取单板温度门限,并保存
步骤3:修改单板的温度门限,使门限低于当前温度
步骤4:查询设备的告警,看是否有越限告警产生
步骤5:恢复单板温度告警门限
步骤6:查询设备的告警看告警是否结束
对于步骤1查询单板的当前温度。对于TWC单板(STM-16 TransmittingOptical Wavelength Conversion Unit,STM-16发端光波长转换板),由于是早期开发,没有提供直接查询单板环境温度的命令行接口,只能通过查询设备的性能来获取单板的温度。对于新开发的LWC单板(STM-16 Line WavelengthConversion Unit STM-16收发合一光波长转换板),根据客户的需求提供了查询单板的环境温度的命令。
如果不采用统一适配模块34提供的统一操作接口,而是直接使用命令字模块32编写用例,则必须在用例脚本中对设备类型和测试单板类型(被测对象相关信息)进行判断,如果是TWC单板时则调用查询单板性能命令字模块,如果是LWC单板则使用的查询单板温度命令字模块。但是在用例脚本直接进行这些判断适配的弊端很大,如果新增了一个被测对象(如单板),则必须在所有测试用例需要查询单板温度的测试步骤中增加对这个单板适配。
为了解决这个问题,可以通过定义一个名为GetBdtemp统一操作适配模块来描述查询单板当前温度这个测试步骤,这个统一操作适配模块负责完成对实际设备的适配处理,并返回当前的单板温度,这样测试用例脚本就不需要关注测试的设备是什么设备了。当用例层1需要执行查询单板温度步骤时,调用GetBdtemp这个统一操作适配模块,统一操作适配模块首先是通过命令字模块32的获取设备的类型和单板类型(这些是所有设备都应该提供的设备接口)等信息,然后根据获取的信息,判断单板是TWC单板还是LWC单板,如果是TWC则调用查询单板性能的命令字模块32,如果是LWC则调用查询单板温度的命令字模块32。下面就是统一操作适配模块GetBdtemp的具体实现脚本。
#!!=================================================
#过程名:                    CCfgDWDM::GetBdtmp
#程序包:                    CMMLDWDM 1.0
#功能类别:                  配置管理
#功能描述:                  查询单板环境温度
#参数说明:
#          Bid:单板板位
#          Port:光口
#          Path:通道
#返回值:
#作  者:                    XXX
#生成日期:    2003-7-2 17:48:08
#!!==================================================
::itcl::body CCfgDWDM::GetBdtmp{Bid Port Path}{
      #动态获取测试单板类型
      set BdType[strmg toupper[CfgGetLogic $Bid]]
      switch $BdType{
           TWC-
           RWC-
           ......
           AS8D{
            #如果是支持查询性能的单板通过,查询单板性能命令字模块获取温度
return[CfgGetPerValue $Bid $Port 0 $Path envtmpcur]
         }
         default
         {
#其它单板可以通过直接查询单板温度
             return[CfgGetBdtemp $Bid $Port $Path]
         }
      }
   }
下面是使用统一操作适配模块GetBdtemp描述的测试用例脚本
   #NE.Cfg是设备配置模块对象的一个实例
   #NE.Alm是告警模块对象的一个实例
   #步骤1:查询单板当前温度
   set tmp[NE.Cfg GetBdtmp $Bid $Port $Path]
   #步骤2:获取单板温度门限,并保存
   set oldth[NE.Cfg GetAlmth $Bid $Port $Path $ThType]
   set HighTh[lindex $oldth 0]
   set LowTh[lindex $oldth 1]
   #步骤3:修改单板的温度门限,使门限低于当前温度
   set newHighTh[expr $tmp-10]
   set newLowTh[expr $tmp-20]
   #NE.Cfg SetAlmth $Bid $Port $Path $ThType $newHighTh $newLowTh
   #步骤4:查询设备的告警,看是否有越限告警产生
   NE.Alm AlmCheckCurdata*$Bid TEMP_ALARM MN**0x01 0xff 0xff**
   #步骤5:恢复单板温度告警门限,
   NE.Cfg SetAlmth $Bid $Port $Path $ThType $HighTh $newLowTh
   #步骤6:查询设备的告警看告警是否结束
   NE.Alm AlmCheckCurdata-mode nor--*$Bid TEMP_ALARM MN***0xff 0xff**
从上面的脚本可以看出,所有测试步骤都使用定义好的统一操作适配模块和命令字模块描述,用例层就变成测试步骤的逻辑描述,不会因为测试设备和单板的不同而有较大差别。由于自动适配功能,因此执行前也就不需要针对不同设备和单板修改用例层的测试用例脚本。
统一数据访问模块,用于提供统一数据访问接口,避免在用例层1直接定义数据。一个完整的测试用例除了测试步骤还需要测试数据,只有测试步骤的测试用例是无法执行的,测试数据是用例执行的关键,将影响测试的执行结果。统一数据访问模块数目是由测试用例的测试数据需求决定,把测试用例中用到的所有和设备相关的数据都通过调用这些统一数据访问模块来获取。统一数据访问模块通过读取测试数据模块获取测试用例需要的数据,然后返回给测试用例,避免在测试用例脚本中直接定义测试数据。这样的好处是使测试数据可以重用,减少了测试人员在测试前修改测试数据的工作量,降低了测试用例的使用难度。
例如:对于RWC单板,RLOS告警只有1光口可以产生,而对于LWF单板(STM-64 Transmit-receive Line Wavelength Conversion Unit with FEC,STM-64标准FEC功能波长转换单元),1、2两个光口都会产生该告警,在现有技术方案二中,是通过在脚本中定义一个Ports的变量表示需要测试的光口,在用例执行前,需要测试人员根据测试的是RWC还是LWF单板来给这个变量修改赋值。下面是具体的脚本:
1)本方案的脚本
  #存在硬编码的测试数据
  #获取单板支持RLOS告警的光口
  set Ports[NE GetPortList $BdType R_LOS]
  #遍历测试单板支持RLOS告警的各光口进行测试
  foreach Port $Ports{
  #R_LOS告警测试的具体测试
  ......
  }
2)现有技术方案二中的脚本
  #这个例子中的Ports变量通过编码赋值的,如果测试的单板只支持1光口,则
  #需要用例执行前把Ports的值修改为{1}
  setPorts{12}
  #遍历测试单板支持RLOS告警的各光口进行测试
  foreach Port $Ports{
  #R_LOS告警测试的具体测试
       ......
  }
从上面的例子可以看出,通过名为GetSupportPort的统一数据访问模块来获取单板支持的光口,统一数据访问模块根据输入的板类型和告警ID,在测试执行过程中,和统一操作适配模块类似,首先动态获取用例层的执行环境,如测试的单板类型,然后返回该单板支持该告警的光口,提供给用例层1执行使用。因为这些测试数据在用例调试时就已经完成,并且是保存在数据库里的,因此可以重复使用。这样避免测试人员在测试前需要修改大量的执行数据的问题
统一数据访问模块的具体实现和数据库的存储方式相关。不是本发明关注的重点,因此这里不再作具体描述。
相应地自动测试方法包括以下步骤:
(1)针对测试对象和测试内容,执行测试步骤;
(2)根据测试步骤,统一匹配测试数据及相应设备接口调用;
(3)根据测试步骤,返回相应测试用例的测试结果。
步骤(2)进一步包括如下步骤:
获取用例层中测试对象和测试内容相关信息,适配所有相应的命令字模块;
适配相应的测试数据供测试步骤执行时使用;
命令字模块下发指令至被测对象相应的设备接口。
本发明技术方案也可以适用于也存在方案描述的问题的其他方面的测试,例如设备的性能测试,设备的配置接口测试等的自动化测试。
综上所述,本发明技术方案具有以下优点:
1)降低自动化的成本。采用这种方法,可以很容易把已有的测试用例移植到其他产品;当设备的功能发生变化,而需要修改脚本时,一般只需修改支撑层的命令字模块的脚本;当新增了设备和单板,需要增加其测试用例时,则只需在统一适配模块中增加对新设备和单板的适配,以及在测试数据模块中增加修改数据,就可以完成新增设备和单板的测试用例,不需要对测试用例进行修改,具有很好的重用性和可移植性,降低了自动化的成本。
2)降低自动化脚本的维护成本。当某个功能的测试流程或测试数据发生变化时,采用本发明技术方案只需要修改一个测试脚本,如果采用现有技术中的第一种方案则需要修改多个脚本。这样大大降低了用例的维护的成本。
3)使测试用例更易于使用,提高测试执行效率。因为测试用例的执行的数据是通过测试数据模块获取的,测试数据和测试用例脚本是分离的,这样测试数据容易修改,并且可以保存,下次测试时可以重用,如果采用现有方案二,则需要每次测试时都修改数据。同时因为统一封装了测试需要的操作,不需要根据不同设备和单板修改测试用例,因此本发明技术方案,提高了用例的执行效率,也更容易使用。

Claims (8)

1.一种自动测试装置,其特征在于,包括:
至少一个用例层,用于描述针对测试功能而封装的测试步骤,并指定所支持的被测对象和测试内容;
至少一个设备接口层,用于为被测对象对外提供控制和查询设备信息的设备接口;
支撑层,位于用例层和设备接口层之间,用于屏蔽被测对象的差异,对设备接口进行封装,向用例层提供统一操作接口和统一数据访问接口;根据用例层的调用,适配相应的测试数据及正确的被测对象设备接口层。
2.如权利要求1所述的自动测试装置,其特征在于,支撑层进一步包括:公共层模块,用于封装与测试内容无关而涉及测试中公共处理的接口;
至少一个命令字模块,用于根据测试内容封装与设备接口层一致的命令行,并指定所支持的被测对象,且在被用例层中测试步骤调用时,经由公共层模块,下发指令至被测对象相应的设备接口,并把测试结果返回给统一适配模块;
测试数据模块,根据被测对象和测试内容为用例层执行测试时提供测试数据;统一适配模块,用于针对用例层中测试步骤执行时的调用,适配相应的命令字模块集合和测试数据,通过命令字模块下发到被测对象的设备接口,并从命令字模块中提取相应测试结果,返回给相应的用例层。
3.如权利要求2所述的自动测试装置,其特征在于,命令字模块中的命令行与设备接口层一致是指格式和参数一致。
4.如权利要求2所述的自动测试装置,其特征在于,所述被测对象的测试功能相同,共用一个命令字模块。
5.如权利要求2所述的自动测试装置,其特征在于,统一适配模块进一步包括至少一个统一操作适配模块,用于获取用例层中测试对象和测试内容相关信息,适配所有相应的命令字模块;至少一个统一数据访问模块,用于获取用例层中测试对象和测试内容相关信息,访问测试数据模块,适配相应的测试数据供测试步骤执行时使用。
6.如权利要求2所述的自动测试装置,其特征在于,公共层模块进一步包括:和被测对象进行通信的通信接口、对测试仪表统一访问的访问接口及对被测对象返回数据的有用信息提取的过滤接口。
7.基于权利要求1自动测试装置的自动测试方法,其特征在于,包括以下步骤:
(1)针对测试对象和测试内容,执行测试步骤;
(2)根据测试步骤,统一匹配测试数据及相应设备接口调用;
(3)根据测试步骤,返回相应测试用例的测试结果。
8.如权利要求7所述的自动测试方法,其特征在于,步骤(2)进一步包括如下步骤:
获取用例层中测试对象和测试内容相关信息,适配所有相应的命令字模块;适配相应的测试数据供测试步骤执行时使用;
命令字模块下发指令至被测对象相应的设备接口。
CNB2004100745947A 2004-09-07 2004-09-07 自动测试装置及方法 Expired - Fee Related CN100401087C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100745947A CN100401087C (zh) 2004-09-07 2004-09-07 自动测试装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100745947A CN100401087C (zh) 2004-09-07 2004-09-07 自动测试装置及方法

Publications (2)

Publication Number Publication Date
CN1746694A CN1746694A (zh) 2006-03-15
CN100401087C true CN100401087C (zh) 2008-07-09

Family

ID=36166314

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100745947A Expired - Fee Related CN100401087C (zh) 2004-09-07 2004-09-07 自动测试装置及方法

Country Status (1)

Country Link
CN (1) CN100401087C (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227345B (zh) * 2008-02-05 2010-08-18 中兴通讯股份有限公司 基于应用程序接口的自动测试方法
CN102375103B (zh) * 2010-08-27 2015-07-29 富泰华工业(深圳)有限公司 电子产品测试装置及方法
CN103646210A (zh) * 2013-12-27 2014-03-19 税友软件集团股份有限公司 一种系统功能调用的方法及装置
CN105162664B (zh) * 2015-09-29 2019-06-25 上海斐讯数据通信技术有限公司 一种基于仪表中间层开发的自动化平台测试方法及系统
CN108170591A (zh) * 2017-12-20 2018-06-15 北京格林威尔科技发展有限公司 一种测试仪自动化实现方法和装置
CN109144819A (zh) * 2018-08-20 2019-01-04 郑州云海信息技术有限公司 一种服务器的监控方法和装置
CN112214391A (zh) * 2019-07-09 2021-01-12 广州慧睿思通信息科技有限公司 一种物联网平台接口测试方法、系统及计算机存储介质
CN111488285B (zh) * 2020-04-15 2023-05-12 抖音视界有限公司 接口测试方法、装置、电子设备及计算机可读存储介质
CN111813654A (zh) * 2020-05-28 2020-10-23 平安科技(深圳)有限公司 一种测试案例的引用方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS548943A (en) * 1977-06-22 1979-01-23 Nec Corp Interface conversion sysetm for test unit
US4168527A (en) * 1978-02-17 1979-09-18 Winkler Dean A Analog and digital circuit tester
JPS56168174A (en) * 1980-05-29 1981-12-24 Nec Corp Conversion adaptor device for package test machine
JPS578411A (en) * 1980-06-20 1982-01-16 Mitsubishi Electric Corp Testing system
US4736374A (en) * 1986-05-14 1988-04-05 Grumman Aerospace Corporation Automated test apparatus for use with multiple equipment
US5361336A (en) * 1991-11-21 1994-11-01 Hewlett-Packard Company Method for controlling an instrument through a common instrument programming interface
US20020170000A1 (en) * 2001-05-09 2002-11-14 Emanuel Gorodetsky Test and on-board programming station
CN1489306A (zh) * 2002-10-10 2004-04-14 华为技术有限公司 一种测试装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS548943A (en) * 1977-06-22 1979-01-23 Nec Corp Interface conversion sysetm for test unit
US4168527A (en) * 1978-02-17 1979-09-18 Winkler Dean A Analog and digital circuit tester
JPS56168174A (en) * 1980-05-29 1981-12-24 Nec Corp Conversion adaptor device for package test machine
JPS578411A (en) * 1980-06-20 1982-01-16 Mitsubishi Electric Corp Testing system
US4736374A (en) * 1986-05-14 1988-04-05 Grumman Aerospace Corporation Automated test apparatus for use with multiple equipment
US5361336A (en) * 1991-11-21 1994-11-01 Hewlett-Packard Company Method for controlling an instrument through a common instrument programming interface
US20020170000A1 (en) * 2001-05-09 2002-11-14 Emanuel Gorodetsky Test and on-board programming station
CN1489306A (zh) * 2002-10-10 2004-04-14 华为技术有限公司 一种测试装置

Also Published As

Publication number Publication date
CN1746694A (zh) 2006-03-15

Similar Documents

Publication Publication Date Title
CN107807878B (zh) 基于关键字的通用测试资源驱动与执行管理方法
US20210405629A1 (en) System and method for interoperable communication of an automation system component with multiple information sources
US7050872B2 (en) Innovation information management model
CN103197948B (zh) 一种电力智能设备通信规约脚本解析方法
CN102622470A (zh) 一种通用汽车代码转换方法
Shaw Toward higher-level abstractions for software systems
CN101482817B (zh) 基于黑盒的大粒度Java构件组装方法
CN107665216A (zh) 一种数据库访问方法及中间件
CN100401087C (zh) 自动测试装置及方法
CN103441900A (zh) 集中式跨平台自动化测试系统及其控制方法
CN103744647A (zh) 一种基于工作流GPD的Java工作流开发系统及其方法
CN102439818A (zh) 自动生成变电站goose信号连接拓扑关系的方法和设备
CN102646040B (zh) 基于功件和功件树的软件生成方法及装置
CN102118281A (zh) 自动化测试方法、装置及网络设备
CN100437513C (zh) 实现自动测试的方法与系统
US20150317127A1 (en) System for metamodeling unification
CN101634833B (zh) 现场设备io参数的开放式配置方法及系统
CN101154227A (zh) 一种基于asn类型对象的代码生成方法
CN115469941A (zh) 基于FlinkSQL的风控指标计算开发的自动配置处理方法及系统
CN103569421B (zh) 一种用于卷烟包装机的数据采集分析装置
CN113676366A (zh) 一种电力通信协议的一致性测试工具
CN101470607A (zh) 一种数据归一化方法
CN104238438A (zh) 一种plc通用平台及其设计方法
CN103984540A (zh) 生成硬件接口运行程序的方法及装置
CN105488229A (zh) 一种异构数据环境下的数据交换与集成方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080709

Termination date: 20150907

EXPY Termination of patent right or utility model