黄晓晴 梁晓芬 郑永龙 章 宁 周 涛 王纬国
(中国人民解放军第5720工厂1,安徽 芜湖 241007;南京航空航天大学自动化学院2,江苏 南京 210016)
自动测试系统(automatic test system,ATS)一般由自动测试设备(automatic test equipment,ATE)、测试程序集(test program set,TPS)和TPS软件开发工具三部分组成。目前,ATS软件通用性的研究已得到越来越多的重视[1-4],ATS正从单一功能的专用系统向多功能的通用开放系统发展[5]。然而,如何实现测试软件的通用性和扩展性仍是一个难题[6-12]。
本文以构建通用测试系统为目的,提出了一种通用TPS软件开发工具的实现方法,给出了通用测试软件开发平台(universaltestprogram development software,UTest)的框架结构及设计方法。该平台可应用于航空领域各类机载产品的测试维修,具有界面直观、操作简单的特点,是产品维修和测试的重要工具。
目前,在开发针对某一被测产品的测试系统时,首先需要根据被测产品的测试要求选择硬件资源;然后按照所选硬件资源及被测产品的接口信息,设计、开发接口适配器;最后按照接口适配器连接关系以及硬件资源的配置情况,开发专门的测试软件,从而完成测试系统的开发。
上述开发过程不仅需要开发人员具有较强的软件开发能力,而且还需要开发人员非常了解被测产品的测试要求。此外,由于采用该方式开发的测试软件仅针对某一被测产品,其操作模式、界面风格、测试数据的保存等都存在很大差异,软件的开发周期也相对较长。本文对测试平台的需求、构建方式进行了充分分析,给出了完整的设计方案。UTest软件系统架构如图1所示。
图1 UTest软件系统架构Fig.1 Architecture of the UTest software system
UTest平台旨在提供通用的测试软件开发工具,将测试系统开发过程(除硬件资源选择以外)都通过该平台进行管理。更重要的是,UTest提供测试程序集的自动生成方法,这样,测试人员无需编程就可以开发出测试程序。
整个软件平台分成测试工程建模平台(test engineering model platform,TEP)和测试程序执行平台(test program implementation platform,TIP),这两者之间通过特定格式的数据库文件进行连接。
1.1.1 测试工程建模平台(TEP)
测试工程建模平台包括被测产品测试信息建模和测试策略编辑两部分。测试信息建模需要实现的功能主要如下。
①测试资源的管理功能。根据系统组成,选择被测产品需要的测试资源,并对测试资源进行设置。
②被测产品建模功能。根据被测产品的具体信息,提供建立被测产品模型的工具。该工具能够定义被测产品进口的名称和功能描述、被测产品接口、被测产品与硬件资源的连接关系、被测产品与接口适配器的连接关系。
③接口适配器建模功能。该功能能够提供建立接口适配器模型的工具,以及接口适配器名称、接插件名称,并定义接口适配器内部连接关系。
测试工程建模平台的另一部分——测试策略编辑模块,能够为被测产品建立测试流程,提供建立测试任务的工具;分解被测产品的测试过程,建立测试任务。其主要功能如下。
①将被测产品测试任务分解,建立测试任务树。测试任务分解的最小单元是保证测试任务可以由单个函数完成。
②提供被测产品测试策略编辑工具,将测试任务树中的各任务单元按照测试流程建立连接。
③定义各测试任务的输入、输出数据及数据传递路径。
1.1.2 测试程序执行平台(TIP)
测试程序执行平台通过载入被测产品已建立的测试策略模型,管理测试程序运行所需的各种信息,同时提供测试程序的运行环境。测试程序执行平台还负责对用户进行管理,记录测试人员、测试产品信息,保存测试数据、生成测试报告。
TIP的主要功能具体如下。
①通过导入已建立的测试策略模型,建立测试程序运行环境,以测试策略模型中测试树的形式显示测试任务。
②按照测试任务中的测试步骤,自动执行测试任务,并按照用户设置的信息,显示测试结果。
③对测试过程中产生的数据进行保存,生成测试报告。
另外,在测试程序执行平台中的测试程序函数库是由一系列针对硬件资源开发的测试函数构成的。这些测试函数是在硬件资源所提供的驱动程序的基础上,通过二次开发,封装、整理成具备各种功能的测试函数。
每个测试函数均具有可直接执行的特点。当硬件资源发生改变时,可通过修改、替换、添加测试函数,使测试程序函数库与硬件资源相对应,从而保证UTest平台适应硬件资源的变化。
UTest软件系统架构的确立决定了应用该平台开发测试程序的过程。UTest软件的应用流程如图2所示。
图2 UTest软件应用流程Fig.2 Application fowchart of UTest
测试工程建模平台和测试程序执行平台的具体流程如下。
首先,用户通过测试信息建模模块,根据被测产品测试要求,选择所需硬件资源,定义适配器接口,建立被测产品信息模型。在测试信息建模基础上,测试策略编辑模块对测试步骤和测试流程进行描述。以测试工程信息数据库文件的形式保存上述信息。该文件能够描述测试任务、测试流程,同时还能关联测试程序函数库。
接着,在TIP平台导入相应产品的测试工程信息数据库文件,读取测试策略的相关信息;按照此信息调用测试函数库中的相应函数并执行,从而实现对被测产品的测试。同时TIP平台还对测试人员、测试数据、结果等进行管理。
测试工程建模平台基于数据库构建,将用户提供的被测产品信息以数据库的形式保存,所有执行平台需要的信息均被保存在数据库中。因此,数据库的内容、构建方式、数据表单之间的数据连接关系是方案设计的难点,也是整个TEP平台构建的基础。TEP平台的数据库结构如图3所示。
图3 数据库总体结构Fig.3 Structure of the database
图3中,测试工程信息数据库是用户根据UUT测试要求,在测试工程建模平台(TEP)上,按照测试工程信息数据库的创建要求进行创建的。
TEP平台中的硬件资源及配置和测试函数信息数据库则根据通用测试系统的硬件资源情况,在UTest软件开发阶段建立。当用户使用TEP平台时,该数据库已存在。当硬件资源发生改变时,数据库信息需要进行同步更新。
测试信息建模用于构建测试工程的总体框架,针对每一被测产品,用户可以创建测试工程。新建的测试工程均包括测试资源管理、测试产品信息描述及接口适配器定义三个模块。用户根据被测产品测试要求,分别在三个模块中完成测试工程的创建。每个模块均采用图形化界面,并提供各种编辑工具,以提高TEP平台的易用性。
测试策略编辑是对测试步骤、测试流程进行描述的过程。本文提出将测试策略编辑模块用树的形式表示测试任务。测试任务树将测试任务分解成各任务组,各任务组又可以包含多个测试任务,每个测试任务又分成测试点。测试任务树分解的原则,就是要求最终的各测试点能够由硬件资源测试程序函数库中的单个函数实现。测试任务树的结构如图4所示。
图4 测试任务树结构Fig.4 Tree structure of the test task
测试策略编辑模块除了提供测试任务树编辑的功能外,还要能够对各测试点的执行顺序进行描述,完成测试步骤的写入。测试策略编辑模块利用数据库对所有测试步骤进行记录,尤其是每步测试中测试函数的调用。数据库中记录了调用测试函数的路径,执行测试函数时所用到的输入、输出参数的传递关系。TIP平台通过导入数据库信息,实现在执行平台下对硬件的操作。
测试策略模块还为测试策略提供一些常用的执行路径选择单元,如循环、跳转、分支、赋值等,这些功能也都封装成功能函数,保存在测试函数库的基础函数库,以满足各种测试需求。
测试策略编辑是TEP平台的核心模块,在用户编辑完测试策略后,该模块将对整个策略进行解析,使之与相应的硬件资源测试程序函数库中的函数相匹配;并将匹配的结果、测试步骤、测试函数路径及参数信息保存到测试工程数据库中,供TIP执行平台调用。
TIP平台用于执行测试程序,通过导入并解析测试工程信息数据库文件,完成被测产品测试程序的执行,以实现产品的调试、检测以及故障判断。TIP平台由测试程序函数库、测试执行管理、测试信息管理三部分组成。
测试程序函数库在UTest软件开发阶段建立,由软件开发者根据硬件资源所提供的驱动程序开发测试函数,以实现硬件资源所支持的各功能。所有的测试函数在开发时,为满足执行平台的调用,都必须严格按照测试函数的开发要求编写,每个测试程序函数都具有可直接执行的特点。所有硬件资源的测试函数是构成测试程序函数库的主要部分。测试程序函数库还包括基础函数库。基础函数库中的函数和硬件资源无关,主要用于实现测试程序执行中所涉及的循环、跳转、选择等功能。
测试执行管理实现相关文件的导入以及测试工程建模平台输出的数据库文件的解析。根据数据库文件,调用测试程序函数库。测试程序函数库中的相应函数直接执行,无需编译,从而完成测试程序的运行,以实现被测产品的检验、测试和故障判断。
测试信息管理包括测试结果的显示和保存、测试数据报表管理、用户管理、测试任务查询等管理功能。
测试程序执行平台的核心是测试执行管理模块。该模块读取测试工程数据库信息,并按照数据库信息调用测试函数库中的测试函数,使之运行;同时,还需管理测试函数的输入、输出参数的传递和执行顺序,以实现测试策略。利用测试程序执行模块,被测产品的测试程序执行过程具体如下。
①程序首先调用测试策略数据库的信息,获取第一个测试步骤调用的测试函数名称及路径,启动测试函数。
②调用测试工程数据库的信息,获取当前配置信息,将信息配置给需要启动的测试函数;然后执行测试函数,在完成当前测试功能后关闭测试函数。
③根据配置信息,决定是否保存当前测试结果。获取下一测试步骤调用的VI名称及路径,重复步骤②的操作。
④当测试策略数据库录入的所有测试步骤完成后,停止执行程序。
整个过程的软件流程如图5所示。
图5 TPS执行流程Fig.5 Execute flowchart of TPS
本文从如何实现测试软件的通用性入手[13-17],研究分析了开发被测产品测试系统的整个过程,并提出了通用测试软件开发平台UTest的软件架构,最后给出了UTest各个功能模块的具体实现方法。该软件开发平台架构清晰、扩展性强。当测试程序执行时,无需程序编译过程,测试人员不用具备编程能力。采用该软件开发平台能够快速、便捷地实现被测产品的测试,缩短了开发周期。
目前,本文提出的UTest的设计方案已经在航空机载设备的通用测试软件开发平台的构建过程中得到了成功应用。
[1]刘晨,戴燚.航空电子系统通用测试平台的设计[J].航空电子技术,2010,41(4):37 -42.
[2]王国华,宋卿,徐旭伟,等.飞行数据采集器通用自动测试软件[J].测试技术学报,2010,24(3):199 -204.
[3]夏晶,孙继银,李辉.基于PXI总线的电子设备测试系统的设计[J].仪器仪表学报,2007,28(S1):311 -314.
[4]叶海明,周绍磊,王昆平.通用测试系统软件平台设计[J].研究与开发,2010,29(2):54 -57.
[5]柳爱利,周绍磊.自动测试技术[M].北京:电子工业出版社,2007:83-102.
[6]马铁华,祖静.冲击波超压存储测试技术研究[J].仪器仪表学报,2004,25(4):134 -135.
[7]ANY C.Using IVI-C class drivers to achieve the ultimate in instrument interchangeability[C]//IEEE,2004:312 -315.
[8]ANY C.Using interchangeable virtual instrument drivers to increase test system performance[J].AESS System Magazine,2001(7):9 -11.
[9]董冰玉,杜红棉,祖静.基于无线控制的冲击波超压测试系统[J].传感技术学报,2010,23(2):279 -281.
[10]戴春翟,李晓静,张侃谕.集成电路测试系统通用测试软件的研究与设计[J].电子测量技术,2010,33(1):133 -135.
[11]王红,王湘念.ATS软件平台发展现状及建议[J].航空制造技术,2008(22):40-43.
[12]秦洪磊,路辉,郎荣玲.ATS—硬件及软件技术[M].北京:高等教育出版社,2007:2-3.
[13]苗长青,刘庆明.数据采集系统软件设计及其应用研究[J].弹箭与制导学报,2002,22(1):77 -80.
[14]姜军银,侯立刚.基于COM技术的通用数据库存取组件的设计[J].辽宁石油化工大学学报:自然科学版,2005,25(1):75-77.
[15]王红凯.基于CY7C68013A的USB接口系统设计[J].计算机应用,2008(1):77-79.
[16]宋清昆,孙元娜,王学伟,等.组态软件实时数据库系统的设计[J].计算机应用,2008,27(1):55 -57.
[17]钱笑宇,张彦武.工业实时数据库的研究和设计[J].计算机工程,2005,31(5):98 -132.