概览
欢迎进入设计新一代测试系统的开发者指南。该指南汇总了一系列的技术白皮书,专为帮助您通过开发测试系统,降低成本、提升测试处理能力并顺应今后的需求。这份技术白皮书为选择最合适的软件应用开发环境(ADE),提供指导。下载完整的开发者指南(共120页),查阅ni.com/automatedtest/zhs
1、行业趋势和挑战
随着全球设计和新产品开发的快速发展,测试管理者和测试工程师在开发测试系统时具有了新机会,这极大加速了产品开发周期。测试系统的开发方式由利用专用、即用型(turnkey)测试系统,转为创建模块化测试架构。新一代的测试架构应当容纳多种产品的测试需求并促进新型测试技术的添加,从而在未来实现其他的测试融合。开发强健开放的测试软件架构,对于设计模块化的测试架构至关重要。
随着开发成本在资金投入中的比值增加,我们更需要开发模块化且灵活的测试软件架构。在当今的大多数测试系统中,开发成本(如:系统集成成本和软件开发成本)往往是资金投入的2倍至10倍。测试工程组应当和日益缩短的产品开发周期、设计与测试的全球化保持同步,而这种开发成本的快速增长却正对该能力形成深远影响。当前测试系统的开发手段生成了过多项目,令如今的工程师难以与其保持同步。
对工程师而言,待测产品的复杂性也在迅速提高。而市场却在要求更高的质量和更多的功能。目前,很大程度上,产品在相同空间中可能纳入了更多的压缩功能。测试这类日益增加的功能便需要在您的测试系统中添加新型技术,这对灵活性不高的即用型(turnkey)测试系统便是一项挑战。反之,模块化测试架构却能够根据需要,通过固有手段添加新型功能。模块化的测试软件架构可帮助您缩减开发成本、缩短产品开发周期,并紧跟新产品复杂性的日益增长。
2、定义模块化的测试软件架构
设计高效的测试系统需要模块化的软件架构(图1)和为测试优化的开发工具。欲使测试系统的开发更为迅速、经济,关键在于:通过评估测试软件架构,实现代码最大程度的再利用。检验测试软件架构包括:评估使用中的软件开发工具和学习自行开发测试编码。理解模块化测试软件架构的重要性;理解以模块开发测试的方法而舍弃创建独立应用程序的思想,将大大提高测试软件的再利用。
图1. 测试系统架构
纳入模块化的测试软件架构时,首先应选择软件开发环境,其设计须能轻松连接仪器并快速执行测试所需的各类测量和分析。这些测试软件开发工具包括:NI LabVIEW、NI LabWindows/CVI和用于Visual Studio .NET的NI Measurement Studio。借助适当的测试开发环境,您能够与团队的其他成员及组织中的测试部门,更为轻松地共享测试程序。
选择具有强健软件界面的测试和测量硬件,是定义模块化软件架构的另一个重要层面。NI Measurement & Automation Explorer (MAX)、NI-DAQ、虚拟仪器软件架构(VISA)、NI LabVIEW即插即用驱动、可互换虚拟仪器(IVI)驱动等测量和控制服务软件,可以提供模块化硬件接口,通过利用虚拟通道名称、虚拟设备和仿真接口,对测试系统进行配置和编程。这些模块化的测量和控制服务驱动软件,令您无需开发与测试系统中的特定硬件及通道永久相接的测试程序,从而进一步简化了代码再利用。
设计工程师为建模和验证测试而创建的测试模块,是生产测试部门的整合资产。生产测试工程师可通过NI TestStand等行业标准测试管理软件,将在建模和验证阶段中开发的测试,轻松集成至最终的自动化测试系统。
NI TestStand提供一系列的内置测试管理功能,如:测试模块适配器。无论各项测试的函数原型如何定义,测试模块适配器均能够调用常见测试语言(如:NI LabVIEW、NI LabWindows/CVI、C/C++和Visual Studio .NET)编写的测试。对产品设计和生产团队之间代码最大程度的再利用,在节省测试开发精力的同时确保了生产进度并满足了更高质量的要求。由于灵活的NI TestStand模块适配器可最大程度地压缩培训与代码的应用,从而保证了产品开发周期中最大的代码利用率。
3、NI模块化的测试软件架构
模块化测试软件架构的管理层,负责指导整个测试系统的执行。 NI TestStand的开放式软件架构受到测试管理软件的广泛青睐,并极大推动了可扩展性测试软件架构的轻松执行。NI TestStand提供完全模块化兼开放式的架构,既能接受现成且“原封不动”的使用,也可作为单个组件用以设计完全自定义且基于NI TestStand的测试系统。图2图形化地描述了NI TestStand的架构。
图2. NI TestStand测试管理软件架构
作为NI TestStand架构核心的NI TestStand Engine是一款强大的多线程测试引擎,它具有完整且经过详细描述的API。借助与NI TestStand Engine的通信,模块适配器提供开放的语言接口,以自动化各种语言所编写的测试。过程模型在必须执行的测试代码和系统级函数之间,提供更卓越的模块化。序列编辑器为测试序列提供易于使用且功能强大的开发环境。新近的操作界面由多种程序语言编写的源代码提供,通过快速定制满足您的确切需求。
NI TestStand Engine
NI TestStand Engine是一套用以导出ActiveX/COM的API函数库,可引导NI TestStand架构的所有部件。API令开发者利用导出的1,400多种函数,通过编程在NI TestStand Engine上执行各项操作。执行多线程的NI TestStand Engine可通过同步测试多个单元,提高吞吐能力。还因为引擎自身能够执行容限测试(limit testing),开发者无需将该功能纳入测试代码。由于没有纳入容限测试(limit testing),测试代码的灵活性和重复利用性均获得提高。NI TestStand Engine的另一项功能是:它能像任何的编程语言一样,执行流程控制功能。最后,它还能实现多级用户的访问与管理,提高了测试系统的安全性。
模块适配器
NI TestStand Engine在调用不同语言编写的代码时,利用了NI TestStand配备的不同模块适配器。模块适配器在NI TestStand Engine和NI LabVIEW、NI LabWindows/CVI、.Net、C/C++ DLL、ActiveX/COM和HT Basic编写的测试代码之间,提供了一个开放的语言接口。利用不同语言调用代码,能够重复使用任何已有的传统代码并利用更新的技术。您可以借助代码模块,利用参数的任意数目或NI TestStand API,从代码模块处收发信息。模块适配器提供的其他功能包括:单步执行代码模块进行调试以及利用代码模板提高编程效率。
过程模型
测试UUT不仅需要执行一系列的测试。通常,测试系统必须执行UUT识别、结果记录、测试报告生成等一系列的操作。这些操作及其执行流程的集合称为过程模型。过程模型执行着必要的系统级函数并在多个测试序列中使用它们,从而在测试代码和此类系统级函数之间提供更卓越的模块化。由于NI TestStand配有3个过程模型,用户既可以原封不动地使用,也可以进行完整定制。顺序过程模型每次能够测试1个单元;而批量与并行过程模型则借助NI TestStand的多线程功能,同时测试1个以上的单元。
序列编辑器
序列编辑器向测试工程师提供开发最复杂自动化测试系统时需要的所有功能和工具。用户可利用序列编辑器,创建、调试并修改测试顺序文件(Test Sequence File)。测试顺序文件(Test Sequence File)中的测试步骤能够包含所有测试编程语言开发出的代码模块。此外,序列编辑器包含创建部署套件的工具,可实现测试序列和操作界面的轻松发布。序列编辑器还提供用户管理服务,从而根据NI TestStand管理员设定的权限,防止某些用户使用受到限制的功能。图2中,序列编辑器显示着由NI LabWindows/CVI编写的测试顺序。
图3. NI TestStand序列编辑器
操作界面
归根结底,操作界面是用于NI TestStand的可定制用户界面,能够执行和调试由序列编辑器所创建的测试顺序文件(test sequence file)。在制造车间里,或者当测试或验证系统需要体现出一种自定义的外观和感受时,通常都会使用操作界面。NI TestStand操作界面通过NI TestStand用户界面控件,全面执行顺序文件显示(Sequence File Display)和执行跟踪(Execution Tracing)等常用功能,从而促进开发。NI TestStand中可立即运行的操作界面,由NI LabVIEW、NI LabWindows/CVI、C#、VB和VB .NET编写而成。
4、应用程序开发环境(ADE)
ADE在测试软件架构中扮演着很关键且可视化的角色。借助此类工具,系统开发者可进行系统的设计与组合,以实现测量应用、向终端用户显示信息、连接其他应用程序等多项功能。用于开发测量和自动化应用的ADE,为各个应用领域提供易于使用的设计模型、编译型性能和应用层的编程灵活性。同样重要的是,这些ADE与测量和控制服务软件紧密集成,而控制服务软件则与各种I/O设备连接且范围从小型应用程序到大型系统。
简单易用不仅重要,而且比快速上手和运行更为关键。借助易于使用的ADE,开发者不仅能够通过多种测量设备轻松地集中处理例行程序(routine),还可创建复杂的用户界面、部署并维护应用程序,并在产品设计升级和系统需要扩张时修改程序。
显著的灵活性得益于内部软件架构的使用,然而,当组织为了同迅速发展且处于业务核心之外的技术(如:OS和互联网技术)保持同步而使用专有软件时,常伴随额外的成本耗费。这种行为会将珍贵资源从商业运作中滤除,并往往造成宝贵时间的流失。然而在实际例证中,开发者可以利用专为测量和自动化而设计的现成即用型ADE,快速简便地升级至最新版的OS操作系统,或是通过最低的开发投资与新兴的互联网和XML标准实现集成。亦或是,在使用Visual Basic或Visual C++等ADE时,特定的测量和自动化附加工具可显著削减开发时间。
除了与测量和控制服务软件紧密集成,用以开发测量和自动化系统的ADE还可实现测量的管理和处理。为了最高效地实现此项功能,ADE在环境中直接纳入测量数据类型,令此类测量均能方便地应用于额外的例行程序(routine)处理。为获得最大的开发效率,ADE纳入完整的统计型和数字型分析函数,以及测量应用中常见的高性能信号处理和控制算法。ADE集成了测量和自动化应用中典型的例行程序(routine),其中的函数包括:PID与模糊逻辑控制、降噪、频谱测量、数字滤波、响应测量、信号检测、数值的积分和微分、曲线拟合、分数倍频程分析以及阶次分析。
如需更多信息,请查阅 “选择最合适的软件应用开发环境技术”白皮书。
5、测量和控制服务
选择具有强健软件界面的测试和测量硬件,是定义模块化测试架构的另一个重要层面。NI Measurement & Automation Explorer (MAX)、NI-DAQ、虚拟仪器软件架构(VISA)、NI LabVIEW即插即用驱动、可互换虚拟仪器(IVI)驱动等测量和控制服务软件,可提供模块化硬件接口,对您的测试进行配置和编程。这些模块化的测量和控制服务驱动软件,令您无需开发与测试系统中的特定硬件及通道永久相接的测试程序,从而进一步简化了代码再利用。
配置管理器
MAX等配置管理器,通过统一的系统视图,展现出测量和控制服务软件支持的测量硬件。借助MAX,用户可通过定义通道名称来组织信号或通过指定尺度函数(scaling function)将数字化信号转换为测量数量。配置管理器的主要优势是与ADE的集成。这种集成使得开发者无需繁琐编程,即可将多种测量轻松集成到单个应用程序。缺少了这些配置工具的开发者只得将时间浪费在通过编程配置这些测量函数上。
仪器连接
将现有的传统仪器集成到测试软件架构应利用即插即用仪器驱动和IVI等技术,以促进和这些仪器的通信并增强其可互换性。即插即用仪器驱动是一系列函数,或是NI LabVIEW中的VI,用来控制可编程仪器。由于用户无需学习针对各台仪器的编程协议,仪器驱动在帮助用户利用计算机上的仪器轻松上手的同时,还能节省其开发时间与成本。利用开源(open-source)和具有完整文档说明的仪器驱动,终端用户能够自定义操作,以获得更佳性能。
IVI执行着用以增强仪器可互换性的驱动架构。IVI驱动在各类仪器上使用通用API,并通过分别执行驱动与特定仪器实现通信。通过从各类仪器的特定驱动执行中分离出API,工程师可通过使用兼容IVI的特定示波器,设计系统;系统一经部署,工程师无需重写测试应用程序,即可改变仪器的品牌和模型。
编程工具
驱动能够更胜一筹地通过添加节省时间的开发帮助工具,提供易于使用的API。I/O助手是用于迅速创建测量或激励应用的交互式工具。I/O助手的一个范例是:作为NI-DAQmx驱动部件的DAQ助手。DAQ助手向用户提供无需编程即可配置常见数据采集参数的面板。易于使用的助手与强大的编程环境相互结合,为快速开发和满足广泛应用需求,提供了必备条件。
6、概括:开发模块化的软件架构
模块化的软件架构包含紧密结合的3个层次,提供系统管理、应用开发、测量和控制服务。系统管理软件包含的工具,可帮助您开发整个测试系统的架构、定义执行流程、收集结果,并利用报告或向数据库记录的方式来交流结果。您能根据需要,通过应用程序开发工具,在被测部件上创建特定测试。测量和控制服务提供的界面,帮助软件控制测试系统中的仪器和硬件。