kaiyun官方注册
您所在的位置: 首页> 测试测量> 设计应用> 一种面向应用的测试任务自动生成与运行方法
一种面向应用的测试任务自动生成与运行方法
杜德鑫, 孙继银, 张翼飞
第二炮兵工程学院四系, 陕西 西安710025
摘要:针对ATS工程应用中测试任务开发难度大、维护成本高的问题,分析软件测试自动化中的脚本技术,设计了一套新的脚本规范,提出了一种面向应用的测试任务自动生成与运行方法。基于该方法,构建了ATS通用开发平台的软件体系结构。分析了其中的层次结构、模块功能、接口标准,介绍了该方法的具体实现过程。实际应用表明,该方法实现了测试系统的任务重构、系统扩展和测试任务生成与运行的零编程,提高了ATS软件的开发效率。
Abstract:
Key words :

摘 要:针对ATS工程应用中测试任务开发难度大、维护成本高的问题,分析软件测试自动化中的脚本技术,设计了一套新的脚本规范,提出了一种面向应用的测试任务自动生成与运行方法。基于该方法,构建了ATS通用开发平台的软件体系结构。分析了其中的层次结构、模块功能、接口标准,介绍了该方法的具体实现过程。实际应用表明,该方法实现了测试系统的任务重构、系统扩展和测试任务生成与运行的零编程,提高了ATS软件的开发效率。
关键词:ATS; 测试任务; 零编程; 脚本技术

  目前虚拟仪器ATS(自动测试系统)的研究是国内外测试领域的研究热点,其研究方向主要集中在TPS[1]的可移植性、ATE的互换性和软件模块的可重用性上,形成了基于仪器[1]、基于信号[2]、基于组件[1]的三类较为成熟的ATS软件体系结构,但同时也不难看到测试人员开发和维护测试系统的难度正不断增大,这严重制约着ATS的推广应用。
  传统的测试任务生成方法,不仅开发难度大、维护成本高,而且需要测试人员既要懂得测试原理,也要有扎实的程序设计基础。当前国际通用的自动测试语言——ATLAS[3],作为面向被测单元而与测试仪器无关的信号描述语言,实现了测试程序与ATE(自动测试设备)的无关性,但基于该语言的ATS开发成本极高,同时也需要开发人员花大量时间掌握纷繁的ATLAS语言结构。这都与一般工程应用实际的要求存在着较大差距。为此通过借鉴软件测试自动化中的脚本技术[4],并结合虚拟仪器成熟的软件框架结构,提出面向应用的测试任务自动生成与运行方法,实现从传统用代码操作PXI仪器的开发方式转换为面向应用的开发方式,有效解决在变更测试任务需求时,传统自动化测试方法难以快速适应的问题。
  该方法的核心思想是利用测试人员熟悉仪器操作,为测试人员设计一个操作和测试程序相对应的自动生成、运行平台,力求实现测试用户开发测试系统的零编程 [5]。本文将重点介绍该方法所基于的平台软件体系结构以及各功能模块的功能、组成和接口情况。
1 通用ATS开发平台的软件体系结构设计
  结合现有的ATS软件体系结构、分层思想,设计基于该技术的通用ATS开发平台软件体系结构[6]如图1所示,其中实线箭头表示实际存在的调用关系,虚线表示存在的间接的调用关系。整个故障测试系统分为四层,下层通过组件技术封装成动态链接库的形式供上层调用,这样方便系统的维护,模块化的开发也将有利于提高开发效率。各层具体功能如下:

  (1) 测试任务管理层
  每一个测试项目都分为若干个测试单元,每个测试单元由多个测试模块组成,一个测试模块由多个元器件组成,对测试单元、测试模块、元器件分别添加测试任务就能完成不同规模、不同层次的测试。在管理层就是完成测试项目流程库的构建,是自动测试的前提。
  (2) 仪器管理层
  该层作为中间层,主要实现向上提供统一的调用接口,对下层的仪器模块实现管理。另外,该层还完成脚本的管理、编辑,在该层实现测试任务脚本的生成。
  (3) 仪器模块层
  该层由具体的仪器模块组成,一个仪器模块外部由仪器软面板构成,内部主要包含针对该仪器的三个功能模块:直接运行、脚本生成、脚本解释器。脚本解释器功能模块供脚本执行层调用,它是测试任务管理层实现自动测试的基础。脚本生成功能模块主要提供给仪器管理层完成测试任务脚本的生成。
  (4) 脚本执行层
  该层作为仪器管理层的脚本管理功能的具体实现,供测试任务管理层在测试任务执行时调用,主要完成根据不同的脚本语句第一个标识符(逻辑设备名或其他脚本控制标识),将测试任务的脚本分发给不同仪器的解释器解释执行。
  四层功能既相互独立,又相互依存。面向应用的测试任务自动生成与运行方法以整个软件框架为依托,是整个测试系统的核心思想。
2 脚本规范设计
  为了保证脚本的统一解释运行,使得测试运行时具有良好的交互性,通过借鉴成熟的软件自动测试中的关键字驱动脚本技术[3],并且利用IVI中通用驱动函数库,定义了一套脚本规范,包括仪器操作脚本集、运行提示脚本集、脚本注释集、脚本延时运行集、并行脚本。
  (1) 仪器操作脚本集中语句语法格式定义为:
  DevName,OPERAT,(Para 1,...,Para n),(RetPara), RetType;
  其中:DevName为逻辑设备名,例如,“AFA”(音频分析仪),“DMM”(数字万用表);OPERAT为仪器操作定义,例如,“CONFIG”(配置),“OPEN”(打开),“CLOSE”(关闭);Para n为仪器参数,例如,输出信号的频率、幅值,输入信号的采样频率、采样点数等,其顺序关系确定后就被固定下来;RetPara为返回参数,指定该次测试需要返回的测量值;RetType为返回类型,将测量值按照指定的数据格式进行转换。
  (2) 运行提示脚本集定义如下:
  MSG,STRING,这是操作提示,NORET; MSG,END,NORET;
  (3) 脚本注释集:
  COMMENT,这是脚本注释;
  (4) 脚本延时运行集:
  DELAY,延时值(双精度数值);
  (5) 并行脚本集:
  SUBSCRIPT_BEGIN,并行脚本标识;
  SUBSCRIPT_END,并行脚本标识;
  SUBSCRIPT_START,并行脚本标识。
3 仪器模块设计
  为了仪器管理层更好地管理、维护仪器模块,利用制定仪器模块统一的开发方法和接口标准,具体的开发步骤如下:
  (1) 分析该仪器的功能、参数、驱动函数情况,利用脚本规范制定该模块的脚本语句;
  (2) 设计该仪器模块的软界面;
  (3) 完成该模块直接运行模式、脚本生成模式和对应解释器功能实现;
  (4) 封装该模块成动态链接库,提供统一的三个接口供上层调用,具体接口如下:
  int DevNameInterpreter(char *lineScript, void *PTESTTABLE); //解释器入口
  int LaunchDevNameDevice(void *PTESTTABLE);//仪器面板入口
  int EnforceCloseDevNameDevice(void *PTESTTABLE);//强制关闭仪器入口
  其中DevName指定义的逻辑设备名,例如数字万用表定义为DMMInterpreter,*lineScript指传递给该解释器解释执行的脚本指针,*PTESTTABLE指整个系统的配置文件指针,从该文件读入仪器资源符,返回值的指针等信息。在直接运行模式下,仪器的操作按钮直接调用仪器驱动库函数完成相应功能。在脚本生成模式下,仪器操作按钮触发脚本生成,脚本生成器将仪器参数作为操作属性按照脚本规范中的定义组成一条有效的操作脚本语句生成给用户。仪器模块中的解释器将有效脚本解释成仪器驱动函数库中的具体函数,并调用具体函数操作。
  以射频信号源为例,根据脚本规范定义其所需的初始化、配置参数、上变频、停止脚本语句分别如下:
  RFSG,INIT,信号源资源名,上变频资源名,NORET;
  RFSG,CONFIG,调制模式,载波频率,调制频率,调制频偏,NORET;
  RFSG,UPCONVERT,载波输出,输出功率电平,载波带宽,NORET;
  RFSG,STOP,NORET;
  射频信号源的软面板仪器操作与脚本之间对应的关系如图2所示。

4 测试任务自动生成与运行的实现
  测试任务的自动生成首先建立在被测设备的全面分析的基础之上,通过分析理清被测设备输入和待测信号的关系,根据测试任务需求,用户在信号对应的仪器模块的软件界面上直接操作仪器,比如使用数字IO配置信号通道,使用射频信号源发送射频信号,使用射频分析仪进行频谱分析。在对应软面板操作结束后,其仪器模块中的解释器将完成对操作记录的转化,生成相应的操作脚本。在一系列操作能满足测试需求后,整个测试过程将被以脚本的形式记录保存。在需要重现某一测试任务的测试过程时,仪器操作脚本可以被脚本执行层统一调度后解释执行,通过预定义的交互接口,调用程序能方便快捷地得到测试返回结果。图3给出该技术的基本原理。

  生成的测试任务脚本利用测试任务管理层可以添加到数据库中,通过分析被测设备的测试要求可以构建整个测试项目的不同层次的测试任务,比如通信设备的整机测试、板级测试、功能模块测试、元器件级测试。当执行一个故障测试时,测试任务的自动运行由测试任务管理层提交测试脚本给脚本执行层开始,到脚本执行层解释执行完脚本后结束,测试项目的自动运行流程图如图4所示。

  面向应用的测试任务自动生成与运行技术实现了具体测试系统开发的零编程,用户在开发和维护测试系统时,只需要关心被测设备的信号关系、故障诊断等专业知识,只要会使用仪器就会开发和维护,这将用户从底层测试代码开发的过程中解放出来,使得用户可以直接关注于被测对象,而不必花费太多精力在如何设计程序上。由于借助于模块化的标准开发,用户自身可以方便地修改某个模块或者变更某测试任务而不影响整个系统,大大缩短了开发和维护的难度。
  通过对上述通用ATS开发平台功能的扩张,例如增加测试任务管理层中测试点的电气特性参数、实物图信息,深化脚本的控制、操作等功能,就能实现真正意义上的故障测试通用开发平台。利用该方法开发的多个通信设备电路板板级和元器件级故障测试系统已交付某单位正式使用,证明了整个技术的可行性。
参考文献
[1] 李宝安,李行善.基于组件的自动测试系统(ATS)软件体系结构[J].电子测量与仪器学报,2002,16(4):74-78.
[2] 林翔,孟晨.基于信号组件的ATS软件系统模型[J].仪表技术,2008(6):46-50.
[3] 刘勇,迟华山,许爱强. 新一代通用测试语言—ATLAS2000[J].国外电子测量技术,2006,25(3):52-55.
[4] 凌永发,张云生,郭秀萍.软件测试自动化中的脚本技术[J]. 云南民族学院学报:自然科学版,2002,11(1):544- 548.
[5] 汤宝平.新一代虚拟仪器—智能控件化虚拟仪器系统 的研究[D].重庆:重庆大学.2003:5-10
[6] 余成波,冯丽辉,潘盛辉.虚拟仪器技术与设计[M].重庆:重庆大学出版社,2006.7:258-260

此内容为AET网站原创,未经授权禁止转载。
Baidu
map