TCL脚本语言在测试系统中的应用

来源:互联网 发布:爱壁纸hd for mac 编辑:程序博客网 时间:2024/04/28 05:14
作者:中兴通讯 本部动力测试部 韩小宾

      摘要:本文论述了当前测试系统的技术实现的特点和利弊;提出通过TCL脚本语言的应用,有效的提高测试系统的扩展性和可管理性,从而提高测试系统的效率和可用性。       关键字:TCL脚本、测试系统 

1  引言

随 着通信电源设备自动化和智能化程度的提高,电源系统可以在更为复杂的环境条件下处理各种异常情况,同时用户对电源的技术性能也已非常重视,新的功能需求不 断提出,电源厂家也大力投入新产品的开发。首先应不断推出性能价格比更优的新产品。其次通过改进性能、增加新功能、改变结构外观等不断推出新品种、新系 列,全方位满足用户的不断增长的需求。随着产品系列的不断完善,测试的工作量变得巨大,需要提高测试效率来保证产品的稳定性和可靠性。这就要求厂家搭建电 源系统方便快捷的测试系统,提高电源系统的长期可靠性、电网适应性、操作和维护的方便性,减少维护费用。

测试系统的搭建的方式很多,当前主要有两种:

一 种测试系统是利用商用的测试仪器通信接口(如GPIB或者串口),结合图形化的开发软件(如LabVIEW等);这种测试系统成本相对较高,开发周期短; 适合对标准功能和性能指标进行快速高效的测试,测试操作人员主要是测试用例的选择和测试结果的判断,主要用在生产过程中的检验测试;

另一种是为了测试待测系统某些特殊功能或者性能指标,自行开发的信号源和采集器,相应的控制软件也是自行研发,其中测试内容和测试过程定义都是固化在控制软件中,测试内容的增加和改变、测试过程的调整变化都需要修改控制软件;

当 前的测试系统在功能和性能方面都在不断改进,已经在测试覆盖率、测试效率等方面有了很大的提升,但是在扩展性和灵活性方面还存在一些不足之处,测试过程的 步骤和数据分布在程序中,更改或者增加测试用例都需要开发人员更改软件,使用人员只能进行选择和设置。测试用例的数量也是很有限,无法根据待测设备和测试 情况及时补充测试用例。

为了改善自动化测试系统的扩展性、灵活性和可管理性,就需要采用脚本方式分离测试程序和测试过程、分离测试用例和测试数据的方法。

2  TCL脚本介绍

Tcl (Tool Command Language) 语言是一种可嵌入的命令脚本化语言 (Command Script Language)。“可嵌入”是指把很多应用有效,无缝地集成在一起;“命令”是指每一条 Tcl 语句都可以理解成命令加参数的形式。

Tcl是基于字符串的解释型命令语言,一种简明,高效,可移植性好的编程语言。具有高层编程语言、好的可移植性和扩展性、支持重用、简单易学等特点;

其中重要的扩展部分Tk (Tool Kit) 是基于 Tcl 的图形程序开发工具箱,可快速地开发基于图形界面 Windows 的程序。

TCL语言作为应用的粘合剂,适合与C集成使用,C 程序调用Tcl/Tk 的解释器来运行Tcl/Tk脚本;C函数也可以作为 Tcl/Tk 过程。

TCL脚本语言最初就是基于整合测试系统而开发出来的,测试系统中众多的测试仪器工具需要集中控制,按照测试用例执行流程统一调度协调。同时TCL脚本语言的特点也很适合好的测试用例在扩展性、重用和管理等方面的要求

3  TCL脚本在测试系统中应用模型

针 对现在的两种类型的测试系统,TCL脚本的应用相应的也可以有两种方式,对于自行开发的测试系统,只需要进行小的改动嵌入TCL脚本,主要是实现测试系统 各个组件的粘合协调并提供扩展能力,将测试用例部分从程序中分离出来;对于主要是测试仪器的集成类型的测试系统,则可以完全由TCL脚本来完成测试系统的 构建和管理。

下面就两种方式分别建立相应的应用模型:

3.1  嵌入TCL脚本的测试系统模型

在该模型中,通过测试系统管理程序中对TCL脚本解释器的调用,实现对测试过程定义和测试用例的扩展;在仪器控制API层与应用界面之间嵌入TCL脚本扩展接口模块测试过程的调用和测试用例的执行,并在界面显示测试过程和测试结果。

这 种方式的测试系统通过TCL脚本的嵌入实现测试用例的脚本化,实现测试系统与测试用例的分离,在测试用例的扩展和重用方面有很大提升;同时也可以看到,测 试仪器工具和装置等的控制封装还是集成在测试系统应用程序中,在增加或者改变测试环境时则需要修改测试系统应用程序,因此主要适用于测试环境相对稳定的测 试系统中。

3.2   基于TCL脚本的测试系统模型

为 了使测试系统可用性更强,对仪器工具的控制和测试过程进行两级封装,首先是仪器控制命令的封装,仪器的一项功能可能需要有多次指令和返回的交互才能完成, 直接使用指令的编程工作量很大,对这些指令进行封装,实现仪器控制接口API,达到每一项功能可以用一个控制函数实现;同时,将仪器的配置情况和连接情况 用数据文件的形式保存,硬件环境的更改时只需要更新该配置数据文件。

第 二层封装是测试过程的封装,对于基本的测试项目,预先完成测试过程的脚本描述,留出数据接口,测试人员在使用测试系统时可以设定相关数据,对测试过程直接 调用完成测试用例的执行。同时测试人员可以编写自己的测试用例,通过对仪器控制命令和基本测试过程的调用实现需要的测试过程。

测试系统的界面设计可以利用其中的TK扩展包来开发,可以快捷高效地实现,并与测试用例很好地集成。完成测试脚本的生成、测试用例的管理、测试脚本的执行、测试结果的保存和测试报告的生成等功能。

该 模型在应用中可以很方便地扩展使得测试系统更加完善,一部分是测试用例和测试数据的划分,为了使测试用例的重用性更强,模型中把测试用例和测试数据分离, 测试用例脚本中描述测试过程和数据处理,而测试数据中包括测试输入和期望结果等内容。另一部分是测试管理支持,测试管理工具一般都能够很好地管理测试脚 本,通过测试管理工具管理的测试用例与TCL脚本的关联和调用执行,这只需要在测试系统应用中留有命令行接口,就可以实现测试过程的集成管理,测试计划、 测试设计、测试执行及结果输出、测试数据记录分析及度量工作等都可以在一个管理平台上完成。

4  总结

测试系统中引入TCL脚本,使得测试系统的扩展性增强,功能和测试用例的增加、完善和修改不再需要升级软件,测试人员可以根据测试需要随时更改测试过程和测试输入数据,使测试用例更加丰富全面;

通过仪器控制命令的封装使测试人员更关注测试过程的设定;

测试用例和测试数据的分离使测试用例脚本的重用性大大提升,使得测试用例设计方法得以充分应用。