双十科技关于TestStand自动化测试

Date:2022/12/22 10:28:43 / Read: / Source:本站

双十科技关于TestStand自动化测试
    第1章介绍了标准自动化测试系统架构,测试管理软件位于五层结构模型的最
上层,用于管理和执行测试。在所有的自动化测试系统中,都存在着根据产品而
不同的操作,也存在着对于所有产品都通用的操作,不妨将这些通用操作和特定
操作列举出来,如表2-1所示。特定操作放在代码模块中,由应用开发环境来完
成,而系统级别的操作在不同产品不同测试站之间可以共享,由测试管理软件接
管,测试管理软件同时负责代码模块的管理和执行,这种方式显著提高了代码重
用率,并大大减轻工程师的开发工作量,他们可以使用测试管理软件提供的现成
架构,从而更加专注于代码模块的实现,同时使系统鲁棒性和可扩展性得到保
证。
    TestStand的第一个版本诞生于1998年,作为一款标准商用测试管理软件,拥
有基于图形化的操作界面,具备了测试管理软件所要求的测试管理和执行功能。
然而,TestStand的功能远不止于此,它可以调用大部分主流应用开发环境编写的
代码模块,TestStand也尽量重用这些现有的代码,以减少冗余开发。不仅如此,
TestStand拥有并行执行引擎,可以极大地提高测试效率,满足高容量生产系统最
严苛的生产要求。TestStand的特点959内如下:
    测试管理和执行;
    通用测试架构简化测试软件开发工作;
    具有图形化操作界面;
    支持主流应用开发环境编写的代码模块;
    支持多线程并行测试;
    内建测试策略;
    具有自定制的用户界面设计;
    具有开放式的架构,可自定制;
    自动生成ASCII, HTML, XML, ATML报表;
    支持与Access, Oracle, SQL Server数据库互联。
    由于TestStand的架构是开放的,基于TestStand平台开发的第三方应用和工
具非常丰富。目前TestStand的合作商超过20多家(如图2-1所示),开发了许多
应用和工具,如分布式数据管理、蜂窝测试、音视频测试、开关管理、需求管
理、统计分析、半导体测试、用户界面开发、边界扫描、配置管理等。TestStand
正逐步建立一个强大的社区,使得开发者得以利用这个平台中的社区资源,将
TestStand的应用推广。
    由于自动化测试应用行业涵盖消费电子、汽车、医疗、半导体、通信、航
空、工业机械、能源等,而TestStand自身的特点和优势,使得其在这些行业都有
着非常广泛的应用。图2-2中显示的是截至2013年TestStand的行业应用情况统
计。
图2-2 TestStand的行业应用情况统计
TestStand应用案例
    Lockheed Martin(洛克希德·马丁)公司使用TestStand和LabWinodws/CVI
开发了LM-STAR测试系统,提供对航空电子测试系统的集成支持,用于对JSF战
斗机进行从生产、环境负荷筛选到补给的测试。
    Motorola公司(2011年被Google收购)基于一stStand和LabVIEW开发了综
合测试站,在同一测试平台下可以测试多种不同的蜂窝基站产品,从而使两个测
试小组I丁C和ATE能够使用整合后的统一平台,大大缩减了测试开发成本并简化了
后期的系统更新和维护。
    Texas Instruments(德州仪器)公司通过TestStand与LabVIEW所提供的测
试开发、管理与自动化功能,简化了公司的特性描述作业(Characterization)程
序,以应对日趋复杂的无线与射频装置设计挑战。
    DISTek公司使用TestStand和LabVIEW设计了针对汽车ECU(Electronic
Control Unit)的测试系统,要求系统具备足够的灵活性并能适应硬件平台的变
化,整个系统要覆盖产品的设计、原型、研发和部署阶段。
    Lifeline Systems公司使用TestStand和LabVIEW开发了医疗用的电话和通信
测试系统,用户界面友好,并极大地提高了测试的吞吐率。
    Cochlear公司使用TestStand开发的混合信号测试系统用于新一代听觉植入器
的测试。TestStand现有的测试架构极大地减少了新产品的开发测试时间,同时降
低了风险。
    Flextronics(伟创力)公司基于TestStand开发了专有的F下S通用测试平台。
F丁S平台在Flextronics不同的厂区、不同的产品、不同的操作员中广泛使用
TestStand保证了其运行稳定,并且系统维护的压力大大降低。
2.2 TestStand常用术语
    自动化测试系统它包含了很多测试和操作。在TestStand中,通过序列文件
(Sequence File)、主序列(Main Sequence)、子序列(Subsequence)、步
骤组(Step Group)、步骤(Step)这种树状结构来组织不同的测试和操作(如
图2-3所示)。
图2-3 TestStand测试和操作树状组织结构
Step(步骤)
    步骤是TestStand测试程序中的最小单元,再复杂的测试程序也是由许多步骤
构成的。步骤代表一个特定具体的动作,如初始化仪器、测试项,它可以采用以
下任意一种实现形式:弹出对话框、流程控制、计算表达式等TestStand内部定义
的操作;调用应用开发环境编写的代码模块;调用其他测试子序列
(SubSequence),关于子序列会在后文介绍。
Code Module(代码模块)
    一个步骤可以调用不同应用开发环境编写的代码模块,这是TestStand的一
大特点。TestStand是如何识别这些代码模块并和它们进行数据交互呢?这借助于
Module Adapter(模块适配器),TestStand集成了针对不同语言的模块适配
器,使得步骤调用代码模块时,TestStand能解析代码模块,既能数据传入,也能
获取返回值。TestStand目前支持LabVIEW,  LabWindows/CVI ,  C/C +
+、.NET, ActiveX/COM, HTBasic等语言,如图2-4所示。
图2-4 TestStand支持的编程语言
Sequence(序列)
    序列是一系列步骤的有序组合。将不同的步骤按顺序排列,就形成了一个序
列。默认情况下,构成序列的步骤将按顺序执行,除非有些步骤修改了默认设置
导致执行出现跳转,通常测试程序将包含多个序列。
Step Groups(步骤组)
    为了更好地对步骤进行组织,TestStand将每个序列分成三个步骤组,分别是
Setup Group(设置组)、Main Group(主体组)、Cleanup Group(清理
组)。每个步骤组里面包含一系列步骤。
设置组:一般包含初始化仪器、治具、待测件,以及资源分配的步骤。
主体组:序列的主体部分,包含大部分步骤如待测件的测试。
    清理组:通常包含关闭系统电源,恢复测试仪器、治具、待测件到初始状
态,资源的释放和关闭等操作。
    将一个序列按上述划分成三个步骤组带来两个好处:一是开发人员可以根据
步骤的功能目的而将其放在合适的组,整个序列将变得更加有序;二是TestStand
中有一些内在机制可以确保在测试系统运行过程中遇到错误、产品测试失败或者
操作人员终止测试时,TestStand会自动跳转到清理组,等待清理组运行完成后才
退出。这种机制保证了测试仪器、治具、待测件在遇到意外时也能够回到预设定
的状态,从而保护整个系统。设置组和清理组可以为空,不包含任何步骤。
Sequence Fi一e(序列文件)
    在TestStand树状结构的最顶端是序列文件。一个序列文件中可以包含多个序
列。一般而言,会有一个MainSequence(主序列)和其他若干个序列,由于整个
序列可以作为一个步骤被调用,因此序列可以调用其他序列,被调用的序列称为
子序列。子序列类似于LabVIEW中的子VI、文本编程中的子函数,将一系列相关
的步骤放到子序列中,并作为一个步骤被主序列调用,这使得主序列变得很简
洁,而且这样更容易实现模块化,使得代码的复用变得更简单。子序列可以是同
一个序列文件中的,也可以来自于不同的序列文件。对于测试程序而言,它的执
行是从序列文件的主序列开始的,主序列在执行的过程中会调用子序列。
TestStand通过这样一种层次化的结构,使得测试管理变得非常有序。
2.3 TestStand组件
    TestStand如何实现测试管理?这需要了解它的系统组成,TestStand包含许
多组件:Sequence Editor(序列编辑器)、User Interface(用户界面)、
TestStand Engine(TestStand引擎)、Module Adapters(模块适配器)、
TestStand Deployment Utility ( TestStand部署工具),如图2-5所示
(TestStand部署工具相对独立,没有在图中列举)。
图2-5 TestStand系统组成
TestStand Engine(TestStand引擎)
    图2-5简单地显示了TestStand组件之间的相互关系,可以看到,TestStand引
擎是TestStand系统的核心部分。TestStand引擎其实是一个基于ActiveX的自动化
服务器,通过应用程序接口API将其功能开放给客户端,客户端通过TestStand
API得以创建、编辑、执行或调试序列。在TestStand体系中,序列编辑器、用户
界面、模块适配器都属于其客户端。可以把TestStand引擎比喻成一只看不见的
手,因为它本身没有界面,但它在后台支撑着一切功能。
Sequence Editor(序列编辑器)
    序列编辑器(如图2-6所示)是TestStand中最重要的一个开发工具,
TestStand大部分的开发工作都是在序列编辑器中完成。它提供了一个图形化的开
发环境,测试开发人员可以在序列编辑器中创建、编辑、执行或调试序列。图形
化的开发环境非常方便,举个例子,在序列编辑器中通过拖拽就可以添加一个步
骤到序列中,但底层其实涉及一系列动作,TestStand需要首先创建一个步骤对
象,然后设置对象属性,最后把这个对象添加到主序列中,这一系列动作是通过
TestStand API访问TestStand引擎来完成的,但对用户而言,只是做了一个拖拽
的动作。大部分时候我们不需要直接访问TestStand引擎,序列编辑器的图形化界
面简化了用户创建复杂应用的过程。其实,TestStand提供了一个分层体系结构:
表达层(用户看到的)和逻辑层(用户的某个操作所对应的在后台执行的操
作)。序列编辑器和后面介绍的用户界面都属于表达层,而TestStand引擎及
TestStand API属于逻辑层。我们只在某些场合通过TestStand API直接访问

Author:admin


现在致电 0755-28905930 OR 查看更多联系方式 →

Go To Top 回顶部