由此,设计一种通用自动测试系统来完成对外购 嵌入式模块的验收,这是一项具有重要应用价值的任 务。这种通用自动测试系统一般分为硬件、软件两部 分。硬件设计一般针对各型号模块的结构和布局配合 不同的适配器完成测试工作;软件设计则包括测试界 面管理,各种接口的测试应用软件,通信,测试结果数 据管理和测试报告自动生成等功能。
测试软件采用C/S模式进行应用程序开发,分为 测试台和控制台两部分。测试台用于对嵌入式模块各 测试项目进行本地测试,各测试项目都有特定的测试 方法,如IDE接口测试,一般通过对磁盘进行文件系 统的读、写、删除操作实现;主频及存储器可以通过测 试软件EVEREST Ultimate Edtion进行测试。控制台 负责测试命令的发送,测试结果的接收、存储、查询及 测试报告的自动生成。各型号嵌入式模块的功能及性 能不同,其测试项目也略有差异。测试软件控制台至少要提供给测试人员两种测试方式:分项目进行测试 和对测试项目按照设定的测试顺序自动完成测试。控 制台和测试台的通信采用网络套接字方式,两部分可 分别设计实现,对开发平台开发语言没有强制性限制, 这是采用C/S结构最大的优势。
1 软件网络通信设计
TCP/IP协议在基本的IP数据包上增加了可靠性 和流量控制,并定义了一种可靠的面向连接的服务。 套接字是一种网络编程接口,应用程序通过这种接口 可以和网络中不同的应用程序进行通信。因此,设计 实现自动测试系统软件的网络通信可以在TCP/IP协 议的基础上使用套接字,这样就可以在统一的平台下 实现控制台设计。而且可以针对不同型号外购模块的 特性选用合适的平台完成测试台的设计。测试台和控 制台通信流程如图1所示。
2 数据库设计
自动测试系统控制台需通过直接操作数据库实现 对测试数据的存储及查询管理CONTROL ENGINEERING China版权所有,目前常用的开发平台 都提供了直接操纵数据库的方式如ODBC、ADO、DAO 等。如果是Windows平台,底层数据库可以选用Mi. crosoft SQL Server,它是一个高性能数据库管理系统, 在数据完整性的维护方面有着很强的优势,因为它可 以在整个IJAN内部保证数据库信息的完整性和一致 性,因此在许多单位得到应用。如果是Linux平台,则 可以先安装Sybase的SQL Server客户端,通过Sybase 的客户端可以实现对Microsoft SQL Server的访问。
在数据库设计方面,至少应为每个测试项目提供 一张单独的数据表,用于记录该测试项的所有相关数 据;为每种类型的嵌入式模块提供一张单独的数据表, 用于记录该型号模块一次测试的项目及其结果;还应 有一张数据表存储所有测试的信息,如测试时间、测试 模块、测试项目、测试人员等。
3 软件设计中的几个问题
3.1 开发平台不同数据类型结构不统一
在不同的处理器中有不同的字长,表2为Linux 支持的体系结构和它们的字长的对照表 。
3.2 数据库备份及恢复策略的选择
创建数据库备份是为了可以恢复已损坏的数据 库。但是,备份和恢复数据必须根据特定环境进行自 定义,并且必须使用可用资源。因此需要有一个备份 和恢复策略实现对数据库的可靠恢复。 自动测试系统数据库的备份和恢复由控制台完 成。程序访问数据库首先要解决数据源的配置问题, 在Windows操作系统下,使用Windows提供的SQL— configDatasource函数进行数据源的动态注册或使用 . udl文件都可以实现对数据源的配置。
定期备份数据库是最稳妥的防止磁盘故障(主要 是系统发生故障)的方法,它能有效地恢复数据,这是 一种比较廉价的保险方式,同时也是最简单的确保能 恢复大部分信息的方法 。结合SQL Server自身带有 的备份功能(DTS),经实验,把数据库全部定时备份到 某个目录,或者在程序中添加功能代码,保证程序每次 退出前都对数据库进行备份,以上两种策略都具有很 好的备份速度和良好的稳定性。
3.3 测试报告的设计与生成
测试报告是把测试的过程和结果写成文档,并对 发现的问题和缺陷进行分析,为纠正模块存在的质量 问题提供依据,同时为模块的验收和交付打下基础。 自动测试系统的测试报告由程序自动生成,应该包括 测试时间、测试人员、被测模块类型、测试项目、标称 值、测试所得数据和测试结论等。对于IDE接口等在 测试过程中存在故障数据的,还应在测试报告中给出 测试使用数据及故障情况评测。
目前比较成熟的文字报告生成方式主要有:基于 平台的报告生成控件,如LabVIEW 报告生成工具箱 (LabVIEW report generation toolkit);微软开发平台提 供的用于直接调用WORD、EXCEL的API函数;利用 脚本语言生成固定的报告模板,如在VC或VB平台下 使用VBA脚本语言。
针对不同的被测模块,被测项目可能不同。因此, 一种高效的测试报告生成方式是,通过从数据库中读 取有效数据,以表格的方式生成测试报告,并且要为该 功能提供统一的接口,在接口处指定被测模块类型等 信息。这样在不同被测模块的测试控制窗口都可以调 用同一个接口来实现测试报告的自动生成。即使有些 自动测试系统要求实现测试报告的实时生成,即一次 测试完成后直接生成测试报告www.cechina.cn,也提倡使用统一的接 口从数据库读取数据,这样可以避免在测试报告生成 过程中引发测试数据存储方面的问题。经实际工程验 证,这样的方式提高了软件的稳定性,同时在效率方面 没有太大影响。
4 结束语
开发外购嵌入式模块的自动测试系统具有很高的 应用价值,随着硬件设备的模块化设计成为一种潮流, 各类测试手段日趋完善,注重自动测试系统软件开发 和使用过程的通用性,将成为今后自动测试系统软件 设计的一种趋势。
参考文献:
[1] 吕辉.现代测控技术[M].西安:电子科技大学出版社, 2006-05.
[2] Love R.Linux内核设计与实现[M].第2版.陈莉君,康 华,张波www.cechina.cn,译.北京:机械工业出版社,2006-01.
[3] 陈万米,何智伟.Microsoft SQL Server数据库安全备份和 恢复策略[J].微型电脑应用,2000,16(1).