当前位置:首页 > 测试测量 > 测试测量
[导读]针对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开发平台功能的扩张,例如增加测试任务管理层中测试点的电气特性参数、实物图信息,深化脚本的控制、操作等功能,就能实现真正意义上的故障测试通用开发平台。利用该方法开发的多个通信设备电路板板级和元器件级故障测试系统已交付某单位正式使用,证明了整个技术的可行性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

摘要:根据煤矿管理流程进行煤矿信息化平台的架构及功能模块建设 ,并运用云技术进行贵州省省级平台的搭建探索 ,打通企 业与各级管理部门之间的沟通障碍 ,有利于提高煤矿企业和管理部门的科学管理水平 ,提高社会资源利用率。

关键字: 功能模块 云模式 行业信息化系统

济南2022年5月2日 /美通社/ -- 手机APP的平均寿命是10个月,而缺少商业化运营的政务类应用则更为"短命"。静默困境 -- 是当下政务应用生存环境的真实写照,突出表现就是用户不打开、不使用,...

关键字: APP 功能模块 数据库 转换率

0x00背景周一早上刚到办公室,就听到同事说有一台服务器登陆不上了,我也没放在心上,继续边吃早点,边看币价是不是又跌了。不一会运维的同事也到了,气喘吁吁的说:我们有台服务器被阿里云冻结了,理由:对外恶意发包。我放下酸菜馅...

关键字: Linux EV 脚本 ROOT

冰河之前维护着上千台服务器组成的服务器集群,如果每次需要在服务器上执行命令的时候,都要手动登录每台服务器进行操作的话,那也太麻烦了。

关键字: 脚本 服务器 集群

我们七月份的活动内容为:基于单片机的自动浇花系统,经过网友后台留言建议和调研,最终定下来咱们的自动浇花系统大概由如下功能模块组成: LED指示灯 土壤干燥程度指示; 比如可以绿色代表正常,红色代表缺水状态; 普通的单色L...

关键字: 自动浇花系统 基于单片机 功能模块

我们六月份的活动题目为:基于单片机的智能风扇,经过网友后台留言建议和调研,最终定下来咱们的智能风扇选用如下功能模块组成: PCB线路板采用核心板+底板实现 核心板:排针引脚间距为2.54mm,2排,双排间距为2.54mm...

关键字: 智能风扇 基于单片机 功能模块

[概述] 用于指导init进程如何启动Android系统,由若干个段(Sections)组成; init进程解析/init.rc脚本 [功能] [1] 控制init进程何时如何执行某个动作 [2] 控制init进程何时如...

关键字: ni rc 脚本

每日一句英语学习,每天进步一点点: "Better not to ignore the past but learn from it instead. Otherwise, history has a way of re...

关键字: 脚本 进程

Android系统里以*.rc为扩展名为系统初始化脚本,脚本里就是使用安卓初始化语言。语句都是一行为一条语句,没有符号分隔. 语句里的每个词用空格隔开。

关键字: ni rc 脚本

任何初学者都可以在Internet上轻松获得基本的Linux和Linux Shel教程。 但是,在使用shell解决现实世界中的问题时,大多数相关的知识和技能在论坛或博客中分散或不够广泛。 要么不容易找到。 如果遇到此问...

关键字: Linux shell 脚本

测试测量

28688 篇文章

关注

发布文章

编辑精选

技术子站

关闭