编辑推荐
适读人群 :本书适合从事工业自动化测试的工程技术人员和产品经理阅读,也可作为高等学校相关专业的教学用书。 系统介绍工业自动化测试管理软件TestStand的实用功能和常见问题的解决方法。本书附带的光盘中不仅有书中的范例,还包含TestStand 2013评估版安装程序、LabVIEW 2013评估版安装程序、LabWindows/CVI 2013评估版安装程序。
内容简介
本书以作者多年的实际项目经验为基础,系统介绍了工业自动化测试管理软件TestStand的实用功能和常见问题的解决方法。全书内容共15章,包括基础入门和高级进阶两部分。其中,基础入门部分(第1~9章)介绍工业自动化测试管理的基础知识,使读者对TestStand有较完整的认识;高级进阶部分(10~15章)主要介绍TestStand自定制、面向对象模型、编程技巧和优化策略、TestStand开放式架构,引导读者从测试管理的角度来考虑问题,实现对项目的复杂度和需求进行综合评估,逐步成长为团队核心开发人员。
值得一提的是,所有软件的本质都是一种工具,运用它解决项目中的实际问题是基本,而能不局限于软件自身并在解决问题的过程中了解整个行业的动态和发展趋势,逐步形成全局化的眼光和思路,这才是本书希望传达的信息。
作者简介
胡典钢,NI(美国国家仪器公司)资深区域应用工程师,NI中国首位双架构师——LabVIEW架构师和TestStand测试管理架构师,GSDZone社区TestStand专栏作者,主导和参与了半导体、通信、医疗、航空、消费电子等行业多个大型项目的自动化测试开发工作。
目录
第1章 自动化测试展望
1.1 自动化测试
1.2 自动化测试系统
1.3 评估引入自动化测试
1.4 自动化测试趋势
1.5 标准自动化测试系统架构
第2章 走进TestStand
2.1 初识TestStand
2.2 TestStand常用术语
2.3 TestStand组件
2.4 熟悉序列编辑器
2.4.1 序列编辑器视图
2.4.2 序列编辑器主界面布局
2.4.3 TestStand重要路径
2.4.4 运行主序列
2.4.5 序列编辑器中的快捷键
第3章 TestStand系统和结构
3.1 TestStand思想
3.2 换一种方式执行主序列
3.3 TestStand开放式架构
第4章 动手创建序列
4.1 创建序列
4.2 步骤内置属性
4.3 使用任意模块适配器
4.3.1 合格/失败测试
4.3.2 数值限度测试
4.3.3 多数值限度测试
4.3.4 字符串测试
4.3.5 动作
4.3.6 应用开发环境
4.4 调用特定模块适配器
4.5 无模块适配器
4.5.1 Statement(声明)
4.5.2 Label(标签)
4.5.3 Message Popup(消息对话框)
4.5.4 流程控制步骤
4.5.5 Synchronization(同步)
第5章 TestStand数据空间
5.1 TestStand数据空间
5.2 变量
5.2.1 Locals(局部变量)
5.2.2 Parameters(参量)
5.2.3 FileGlobals(文件全局变量)
5.2.4 StationGlobals(站全局变量)
5.3 属性
5.3.1 Step Property(步骤属性)
5.3.2 RunState Property(运行时属性)
5.3.3 ThisContext(当前上下文)
5.4 表达式
5.5 自定义数据类型
5.5.1 TestStand默认数据类型
5.5.2 自定义数据类型
5.5.3 使用容器传递数据给代码模块
5.5.4 数据类型匹配
5.6 工具
5.6.1 属性导入/导出工具
5.6.2 属性加载器
第6章 在TestStand中调试
6.1 TestStand执行窗口
6.2 在序列中调试
6.2.1 断点
6.2.2 单步执行
6.2.3 交互式执行步骤
6.2.4 调试相关的工作站选项
6.2.5 Find工具
6.3 调试代码模块
6.4 序列分析器
6.4.1 分析序列文件
6.4.2 自定制序列分析器
第7章 TestStand常用配置
7.1 序列编辑器选项
7.2 TestStand工作站选项
7.3 搜索路径
7.4 配置模块适配器
7.4.1 LabVIEW模块适配器
7.4.2 LabWindows/CVI模块适配器
7.4.3 C/C++ DLL模块适配器
7.5 报表选项
7.6 数据库选项
7.6.1 数据库选项
7.6.2 数据库查看器
第8章 并行测试
8.1 并行测试概述
8.2 TestStand中的多线程结构
8.3 多线程过程模型
8.3.1 在新的执行中运行序列
8.3.2 并行过程模型
8.3.3 批量过程模型
8.4 数据空间的独立性
8.5 同步步骤
8.5.1 等待
8.5.2 上锁/解锁
8.5.3 自动协作
8.5.4 通知和队列
8.5.5 集合点
8.6 常用多线程测试模式
8.6.1 混合多线程模式
8.6.2 资源局部共享模式
8.6.3 主/从模式
8.7 使用并行测试的注意事项
8.7.1 竞争
8.7.2 资源冲突
8.7.3 死锁
第9章 用户管理
9.1 工作站选项用户管理
9.2 用户管理器
9.3 识别用户权限
第10章 自定义步骤
10.1 自定义步骤概述
10.2 创建自定义步骤
10.2.1 自定义步骤添加属性
10.2.2 自定义步骤添加子步骤
10.2.3 自定义步骤类型管理
10.2.4 创建代码模板
10.3 步骤模板
第11章 TestStand API
11.1 TestStand API概览
11.2 TestStand API的组织结构
11.2.1 继承性
11.2.2 包含性
11.3 使用TestStand API
11.3.1 在TestStand中使用TestStand API
11.3.2 在代码模块中使用TestStand API
11.4 监测序列执行状态
第12章 过程模型
12.1 过程模型概述
12.2 过程模型的结构
12.2.1 执行入口点
12.2.2 配置入口点
12.2.3 过程模型回调序列
12.2.4 引擎回调序列
12.3 解析过程模型
12.3.1 过程模型回调序列归类
12.3.2 Model Plug-In模型插件
12.3.3 过程模型支持文件
12.4 过程模型自定制示例
12.4.1 提示机制
12.4.2 修改默认回调序列
12.4.3 错误处理
12.4.4 修改结果收集
12.5 序列层级结构
第13章 用户界面设计
13.1 用户界面概述
13.2 TestStand自带用户界面
13.3 TestStand UI控件
13.3.1 管理控件
13.3.2 可视化控件
13.4 单执行用户界面的开发
13.5 用户界面消息UIMessage
13.6 多执行用户界面
13.7 加载配置参数
13.8 启动选项
13.9 菜单
13.9.1 LabVIEW用户界面菜单
13.9.2 CVI用户界面菜单
13.10 TestStand语言包
13.11 Front-End回调序列
第14章 报表自定制
14.1 修改结果收集
14.1.1 额外结果
14.1.2 自定义步骤
14.1.3 插入子属性
14.2 报表生成
14.2.1 属性标记
14.2.2 报表生成过程
14.2.3 通过回调序列修改报表
14.3 自定制样式表文件
14.4 报表格式对比
第15章 系统部署和性能优化
15.1 系统部署概述
15.2 系统部署的准备工作
15.3 部署过程
15.3.1 TestStand部署工具
15.3.2 部署过程中常见的问题
15.3.3 在目标系统安装
15.4 优化系统性能
附录
附录A 随书光盘内容
附录B 操作符/函数
参考文献
前言/序言
序
1998年我们发布了TestStand 1.0,当时的宏伟目标是为自动化测试系统软件的开发者提供一个高质量的带有开放式可扩展架构和高性能组件的模块化体系。现实中,我们经常看到工程师与自行开发或是某些集成商提供的欠成熟且功能单一的测试执行器做斗争,而这些执行器的开发和维护常受限于持续投入的缺乏、规模太小或技术和质量问题。在为自动化测试系统开发提供一个行业性平台时,我们面临的挑战是没有两家公司在需求和优先级上是相似的。幸运的是,NI公司拥有异常庞大而多样化的测试和测量用户,这是我们在设计和构建TestStand过程中作为输入和意见反馈的宝贵资源。我们别无选择,只能努力让TestStand的每个方面都很灵活、可配置且某些功能支持插件模式。那个时候,某种程度上要达到这种要求看起来很离谱,甚至现在看来仍然是这样。从用户界面、过程整合、文件格式、并行、结果存储、报表、测试配置,一直到编程语言和集成开发环境的选择,TestStand提供了灵活性、扩展机制甚至组件的源代码,来确保测试系统的开发者能借助这些高度模块化、功能内聚且被广泛验证的组件单元来设计自己想要的系统。
由于TestStand有很多种方式实现应用和定制,对于TestStand的开发者来说,需要了解用什么样的定制或配置来实现他们想要的系统,这不是一种容易的事情。幸运的是,这就是本书要告诉我们的。由于拥有非常丰富的实际项目经验,作者能够准确地呈现TestStand的概念和原理,并将理论知识与实际应用案例相结合。本书所涵盖的TestStand主题,无论从深度还是广度方面,都毫无疑问地创造了世界上极其优秀的TestStand中文学习资源。我非常欣赏作者在撰写本书的过程中所表现出的勤奋、主动和热情,也期望本书能帮助更多的开发者在使用TestStand构建他们的系统中获益。
James Grey NI公司研发部首席工程师,TestStand之父
前言
刚进NI(National Instruments)公司的时候,部门就安排了一次为期5天的TestStand内部课程培训,由资深应用工程师授课。那时候笔者还不太了解TestStand,但对它的广泛应用已有所体会,以电子行业为例,在全球顶级的15家电子产品制造商中,就有14家使用了TestStand,且它几乎每年都会推出新版本,足见其生命力之强。
开始,一些敏锐的科学家和工程师发现,在开发自动化测试系统时,随着系统复杂程度的增加,测试项增多,管理这些测试项变得非常困难。如果中间插入测试项,或者测试项之间要调整顺序时,必须对测试代码做很大的改动,当频繁进行这些操作时,工作量变得非常大且异常烦琐,从而造成维护上的困难。而且,自动化测试系统往往是一个混合平台,需要用到不同仪器厂商的设备,基于不同语言编写的硬件驱动,要求软件具备统一接口,以调用使用不同语言编写的代码模块。另外,当产品升级或设计全新产品时,相应测试系统的大部分代码需要重写,而这其中包含序列号追踪、用户管理、测试流程控制、报表生成、数据存储、用户界面更新、系统配置、弹出提示窗口等一些非常通用的操作,如果能把这些通用部分提取出来作为框架模板,然后用户在这个模板上进行开发,无疑可以大大节省开发时间。再者,在产品测试过程中需要将每项测试结果和产品的规格上下限做对比,随着测试项增多,相应的规格上下限也急剧增多,管理它们就变得非常重要,有时甚至需要在某个关键测试项不合格时,立即停止对产品的测试,这就涉及测试的管理策略问题。随着开发经验日益丰富,工程师不再满足于现有系统的测试效率,而要提高测试效率,自然会想到引入多个产品的并行测试。然而,引入并行测试需要考虑的问题很多,包括线程的管理追踪、线程安全、线程之间的通信、数据空间等,而要做到这些并不简单。总之,TestStand在这样的背景下诞生了。
TestStand是一个现成可用的自动化测试管理软件,用于从组织自动化原型创建、控制设计认证到执行生产测试的整个过程。它与LabVIEW、LabWindows/CVI、Visual Basic和Visual C 等所有主流测试编程环境兼容,且能调用任何编译过的动态链接库(DLLs)、ActiveX自动化服务器、EXE可执行程序,甚至传统开发语言,如HTBasic和HP-VEE。利用TestStand强大的兼容性,可以非常方便地在一个系统中将传统和现代测试编程环境结合起来。由于TestStand与LabVIEW、LabWindows/CVI编程语言完全兼容,开发人员可以更加方便地在TestStand中对程序进行调试、修改或设置断点。此外,TestStand具有极其开放的架构,为满足特定需求,用户可自行对其功能进行修改,例如自定义用户界面和报表生成格式,或根据不同的测试需求自行定义执行顺序。建立在高速、多线程执行引擎基础上,TestStand的性能可满足极其严格的测试吞吐量要求。TestStand让工程师将精力集中在更重要的任务上,如考虑如何为产品建立测试策略,再考虑如何利用这个策略开发出应用程序等;而相对简单通用的工作,如运行序列、执行、报表生成和数据库记录等,均由TestStand来完成。TestStand在提高自动化测试开发效率、加快测试速度、降低测试系统整体成本方面具有非常显著的优势。
笔者曾主导或参与了TestStand方面一些大型项目的开发,深深体会到TestStand的强大和用户需求的多样性,并且很幸运地结识了许多非常优秀的工程师,有机会和他们进行交流,探讨TestStand的开发技巧、资源使用效率、并行测试等话题。在此摘录一些:
“TestStand提供了成熟的框架、快速的开发模式,从过程模型、操作界面到用户管理、报表生成、数据库记录等,在着手新项目开发时,我只需要关注产品测试项本身,其他都可以复用,这极大地节省了开发时间。”
——黄华勇 vivo移动通信工程测试经理
“TestStand的调试功能比较突出,设置的测试模式丰富,使得调试起来很方便。尤其是定位一些产品功能性的问题,因为公司产品功能相对复杂,测试项非常多。”
——陈中梁 华为终端资深测试装备开发工程师
基于TestStand工业自动化测试管理前言“TestStand有助于功能模块标准化、平台化,减少重复开发工作量。在其框架的基础上,我们能通过一定程度的自定制开发出适合公司使用的通用自动化测试平台。”
——袁秋 迈瑞生命信息与支持事业部装备开发技术经理
“在TestStand中进行测试管理是一件非常轻松的事情,它对测试序列的调度能力可以让使用者非常方便地编辑测试序列。此外,TestStand的多线程管理能力很强,稳定性非常高。”
——林晓斌 亚马逊资深测试工程师
“TestStand自带的并行测试模型大大简化了多线程管理的工作,通过优化策略可以提高资源利用率进而显著缩短测试时间,满足产能要求,而且其内在同步机制很好地解决了并行测试中竞争、资源冲突、死锁等问题。”
——郭恒章 Bose中国测试经理
编写本书的动力
在一个硬件趋于同质化的时代,如何提高核心竞争力?由于摩尔定律推动而带来的飞速发展,硬件的性能越来越强大,这种势头导致不同厂家之间硬件的性能趋于同质化,而真正体现差异性的方面则在于软件及其带来的用户体验。这种现象普遍存在于各个行业,如消费电子、无线终端、半导体、汽车、仪器仪表等。以仪器仪表行业为例,各种硬件指标,如带宽、频率范围、采样率、绝对精度,在不同厂家的同级别仪器之间差别并不是很大,将这些仪器用于搭建自动化测试系统时,真正影响测试效率、系统开发周期、系统更新升级成本以及系统可靠性的是测试开发软件。在这个以软件为核心的时代,TestStand正是自动化测试领域非常重要的一个软件平台,它具备加速自动化测试系统的开发及完善产品的原型验证、开发测试、系统级测试并缩短产品上市周期等独特的优势,近年来得到了广泛的应用,而对其系统性介绍资料的需求也越来越突出。
笔者刚进入NI公司时,作为应用工程师,一部分工作是通过电话或电子邮件解决客户的技术问题,并接手一些项目验证。有些项目难题无法直接解决,需要查阅用户手册和内部数据库,而内部数据库的知识点往往是回答某个具体问题,并没有归纳整体项目案例或者整理一系列有代表性的问题,经常花费相当长的时间才找到有价值的资料。在部门经理的支持下,笔者和另一位同事设想将平时做的项目验证和比较系统的技术问题以文档的形式记录下来,供部门内部参考,以节省大家的时间,并把这项工作命名为Knowledge Sharing(以下简称为KS)。作为KS的第一任编辑,笔者向部门的全体同事征稿,题材不限。出乎意料的是,我们在短时间内就收到了很多文章,这些文档还引起了广泛讨论甚至争辩,大家都觉得从这种文档式的知识分享中受益良多。由于KS当初的目的是在应用工程部门内部实现知识分享,因此许多文章在写作时没有介绍基础知识,并省略了一些较粗浅的细节。这对于内部交流没有影响,但是对于大部分客户,则跳跃性太大,无法参考。另外,我们对KS进
TestStand工业自动化测试管理 电子书 下载 mobi epub pdf txt