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

动化测试系统的软件架构(转)
⾃动化测试系统的软件架构
⼀.为什么要⾃动化测试系统
随着产品可测性设计和仪表程控制技术的不断完善和提⾼,⾃动化测试系统越来越⼴泛的被应⽤于从产品设计研发到⽣产制造验证的各个环节。⾃动化测试系统之所以风靡,是因为相⽐于⼿动测试系统,它具备以下优点:
* 测试速度快,测试效率⾼
* 重复测试的可靠性⾼,⼀致性好
蒋廷探* 测试操作简单,⼈为参与导致的差错率低
* 仪表利⽤率提⾼,测试成本和费⽤摊薄
由此可见,⾃动化测试系统是测试领域发展的必然⽅向。
绝路狂飙⼆.什么是⾃动化测试系统
就⾃动化测试系统本省⽽⾔,它是⼀个复杂的软硬件集成系统,包括了以下主要元素(见图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,1
394, 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的配置和操作⼀般也归于这两类函数,并按照⼀定的规则来合并虚拟夹具。
GOLDEN COCK· 对于软件部分的虚拟,我们基于对数据的操作⽽建⽴,如程序下载,可以是⽤BST⽅式,也可以是JTAG⽅式。再如数据库的操作,⽆论数据库是哪种类型,读写和查询都是基础和必要的操作。
· 基于GUI的MEMU类是⼀类⽐较特殊的服务,它提供的是良好的⼈机交互界⾯。
⼀般⽽⾔,在有新的仪表引⼊,应⽤第三⽅软件调⽤或者说新的图形化界⾯需求时,我们需要对层相应的函数进⾏增加和修改。
5.3⾼端测试序列层(HighLeverLibraryLayer)
该层的功能主要有两个:
1.提供订制或者通⽤的测试⼦案,供应⽤层调⽤;这些测试⼦案,都是基于下⼀层服务⽽编译成的。
2.提供测试流程管理,如测试起始控制,测试项⽬选择功能等,这⾥是⼀个测试逻辑控制的部分。
在需要增加⼀个新的测试案例的时候,我们可以在原有的⼦案的基础上进⾏修改,以加快开发流程。测试流程的管理功能在⼀定程度上也可以看作是TestPlatform的构建,如果觉得⾃⼰没有能⼒来构建,也可以选择第三⽅的TestPlatform管理软件,如NI的TestStand。
5.4顶端应⽤层(TopLeverApplicationLayer)
该层的主要功能是根据不同的测试需求,配置测试应⽤的环境参数,选择下层的测试服务⼦案来完成测试。这⾥的配置包括:数据库的配置和选择,平台仪表的配置和选择,测试项⽬的配置和选择,测试流程的配置和管理等。⼀般⽽⾔,该层主要是写配置⽂件,调相应资源,选相应软硬件平台。
六.结论
构建⼀个好的⾃动化测试软件架构,能够标准化测试程序开发,节省应⽤⼯程师⼤量的底层编码时间,使得开发流程加快,开发质量提⾼。分层的⾃动化测试软件架构,是我们在⼤量开发实践中总结的⼀种⾏之有效的软件开发和管理体系,我们将进⼀步积累和完善这⼀体系。
参考书⽬:
《Agilent测试⾃动化⼯程师认证培训资料》
《设计下⼀代⾃动化测试系统》徐赟,技术⼯程师,NI中国分公司
作者简介:
王冰泉,上海贝尔阿尔卡特朗讯股份有限公司,光传输⼯业⼯程部⾃动测试平台开发主管
徐敏,上海贝尔阿尔卡特朗讯股份有限公司,光传输⼯业⼯程部经理

本文发布于:2024-09-23 07:23:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/124367.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:测试   仪表   动化
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议