自动化测试系统的软件架构(转)

本文介绍了自动化测试系统的构成及其软件架构,详细阐述了自动化测试软件各层的功能与作用,旨在通过标准化测试程序开发流程,提高测试效率与质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自动化测试系统的软件架构

一.为什么要自动化测试系统

    随着产品可测性设计和仪表程控制技术的不断完善和提高,自动化测试系统越来越广泛的被应用于从产品设计研发到生产制造验证的各个环节。自动化测试系统之所以风靡,是因为相比于手动测试系统,它具备以下优点:

   * 测试速度快,测试效率高

   * 重复测试的可靠性高,一致性好

   * 测试操作简单,人为参与导致的差错率低

   * 仪表利用率提高,测试成本和费用摊薄

    由此可见,自动化测试系统是测试领域发展的必然方向。

    二.什么是自动化测试系统

    就自动化测试系统本省而言,它是一个复杂的软硬件集成系统,包括了以下主要元素(见图1):

    *  控制器,即控制测试过程,测量仪表,被测单元的计算机及其扩展接口

    *  测试仪表,即测试过程中调用的仪器仪表或是虚拟仪表的硬件部分

    *  测试夹具及平台,即为某测试订制的硬件和机械工具以及辅助附件

    *  被测单元,即被测试的对象

    *  测试软件,即测试程序及调用的应用软件和数据库平台

   

   图1自动化测试系统

    三.自动化测试软件的功能

    上述前四项我们可以看作是组成自动化测试系统的硬件部分,测试软件是运行在这些硬件上的,它需要具备和完成下述主要功能:

    · 测试进程的管理和控制

    · 测试仪表的远程控制和结果读取

    · 测试夹具和被测单元的监控和配置

 测试数据的自动分析,存储和上传

    · 测试结果或者报告的显示,打印

    四.为什么自动化测试软件要有一定的体系架构

    如果将一个自动化测试系统比作人体,那么我们可以说硬件系统就是人的躯干:控制器好比大脑,仪表好比感官,夹具好比手脚等。软件系统就是人的神经系统,以及思维和智慧,是连接大脑,感官,躯体的内在逻辑体系。如果说人体的神经系统没有一定的体系,人类的智慧没有一定的逻辑,那么也就意味着人体是一个紊乱的系统。

    针对不同的应用、多样的仪表、订制的夹具、专属的被测设备、复杂的硬件设计和连接,要实现上述完整和复杂功能,自动化测试系统的软件就必须具有一定的体系架构,以适应复杂多变的应用,以提高系统的鲁棒性和可移植性。

    五.自动化测试软件的体系架构

    具备一定的体系架构,是一个复杂过程发展的必然,如网络系统需要分层架构一样,我们也倾向于将自动化测试系统的软件架构构架在分层的体系上。下层为上层提供服务,这种服务相对上层而言是透明的。上层提供给下层相应的接口,以便下层获取执行所需的数据和驱动。分层的体系架构还有一个好处是,软件体系的标准化和规范化,便于后续的开发和积累。

    基于多年的自动测试开发经验,我们提出了下述分层的自动化测试系统软件架构体系供大家参考(见图2):

   

图2分层的自动化测试系统软件架构体系

    自上而下的四层分别是:顶端应用层(TopLeverApplicationLayer),高端测试序列层(High Lever Library Layer), 中端服务层(Middle Lever Servers Layer)和底端通信接口层(Low Lever Communication Layer)。下面我们自下而上介绍各层的组成和功能。

    5.1底端通信接口层(LowLever Communication Layer)

    该层作为整个软件体系的基础层,主要功能是驱动软硬件接口,为上层提供透明的I/O驱动服务。根据驱动类型的不同,通常我们将该层分成三部分,分别为:

    ·硬件I/O驱动类(Hardware I/O Driver Class), 该部分提供各种硬件接口的底层驱动。包括常用的仪表控制,测试夹具控制以及被测设备配置的总线和接口,如:GPIB,USB, LAN, VXI, RS232,Parallel,1394, RS485,GPIO,SPI,I2C等等。

    ·软件I/O驱动类(Software I/O Driver Class), 该部分提供主测试程序与辅助测试所需的应用软件的接口驱动,包括各类数据库接口应用。通常需要首先安装和配置相应的应用程序或者相应类型的数据库,然后基于API方式或者ActiveX/COM来驱动所需的软件。常见的应用包括:第三方软件的调用,如Xilinx iMPACT API;数据库驱动,如SQL Server 查询,读写等。这里有一个值得一提的应用软件接口就是VISA(Virtual Instrument Software Architecture),这个由NI/Agilent提供的应用软件,可以涵盖大多数类型的仪表硬件接口,也得到很多仪表公司的支持。应用该软件则无需关注底层硬件通道。

    · GUI 驱动类(GUI Driver Class),该部分提供对应的编程软件构造的图形化界面底层函数,如表格,图表,对话框,复选框等基类。

该层函数是最基础的,提供上层透明的管道服务,通常而言,对于不同应用均保持一致驱动服务,对于应用层的用户不需要了解该层的内在机制,只需要知道该层的应用服务即可。

    5.2中端服务层(MiddleLeverServersLayer)

    该层具有承上启下的作用,如果再细分,我们可以将其分为两个子层,即虚拟子层和现实子层,关系像TCP/IP中MAC地址与IP地址的关系,一个IP地址可以对应不同的MAC地址,一个MAC地址唯一对应一个物理地址。虚拟子层的目的是为了给上层提供更透明的服务,现实子层则是为了更好的接收下层的服务。从下面更详细的介绍中,我们就能看出这两层的关系:

    ·仪表驱动类(Instrument Driver Class), 该部分提供各种仪表基于各种测试需求的仪表驱动指令集合。构建在硬件I/O驱动类基础上的该类,关注于各种仪表基于SCPI(Standard Commands for Programmable Instruments)标准的不同测试需求的应用组合。它无需了解实际的物理接口是什么,因为更底层的类提供了透明的信令通道,而侧重于某个仪表的控制编程。

    · 虚拟仪表驱动类(Virtual Instrument Driver Class), 该部分基于仪表驱动类,提供了对更上层的一个透明的仪表类的驱动,例如示波器,无论是来自Agilent还是Tektronix, 只要是示波器,对于上层的应用而言,都是一致和统一的。这样的好处是上层应用无需关注下层仪表的替换。它的实质是一类仪表的应用集合。

    · 夹具驱动类(Fixture Driver Class)与虚拟夹具驱动类( Virtual Fixture Driver Class)的关系和上述仪表驱动的关系是类似的,不同在于我们将对DUT的配置和操作一般也归于这两类函数,并按照一定的规则来合并虚拟夹具。

    · 对于软件部分的虚拟,我们基于对数据的操作而建立,如程序下载,可以是用BST方式,也可以是JTAG方式。再如数据库的操作,无论数据库是哪种类型,读写和查询都是基础和必要的操作。

    · 基于GUI的MEMU类是一类比较特殊的服务,它提供的是良好的人机交互界面。

    一般而言,在有新的仪表引入,应用第三方软件调用或者说新的图形化界面需求时,我们需要对层相应的函数进行增加和修改。

    5.3高端测试序列层(HighLeverLibraryLayer)

    该层的功能主要有两个:

    1.提供订制或者通用的测试子案,供应用层调用;这些测试子案,都是基于下一层服务而编译成的。

    2.提供测试流程管理,如测试起始控制,测试项目选择功能等,这里是一个测试逻辑控制的部分。

    在需要增加一个新的测试案例的时候,我们可以在原有的子案的基础上进行修改,以加快开发流程。测试流程的管理功能在一定程度上也可以看作是TestPlatform的构建,如果觉得自己没有能力来构建,也可以选择第三方的TestPlatform管理软件,如NI的TestStand。

    5.4顶端应用层(TopLeverApplicationLayer)

    该层的主要功能是根据不同的测试需求,配置测试应用的环境参数,选择下层的测试服务子案来完成测试。这里的配置包括:数据库的配置和选择,平台仪表的配置和选择,测试项目的配置和选择,测试流程的配置和管理等。一般而言,该层主要是写配置文件,调相应资源,选相应软硬件平台。

    六.结论

    构建一个好的自动化测试软件架构,能够标准化测试程序开发,节省应用工程师大量的底层编码时间,使得开发流程加快,开发质量提高。分层的自动化测试软件架构,是我们在大量开发实践中总结的一种行之有效的软件开发和管理体系,我们将进一步积累和完善这一体系。

 参考书目

    《Agilent测试自动化工程师认证培训资料》

    《设计下一代自动化测试系统》徐赟,技术市场工程师,NI中国分公司

 

  作者简介

    王冰泉,上海贝尔阿尔卡特朗讯股份有限公司,光传输工业工程部自动测试平台开发主管

    徐敏,上海贝尔阿尔卡特朗讯股份有限公司,光传输工业工程部经理



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值