可视化测试流程图的代码实现

更新时间:2023-06-07 01:08:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

可视化测试流程图的代码实现

可视化测试流程图的代码实现

文章编号:1000–8829(2005)05–0067–03

·67·

可视化测试流程图的代码实现

A Program Implementation of Visual Test Flow

(1.北京瑞赛科技有限公司 研发中心,北京 100022) 1,21

罗毓敏,周一鸥(2.北京航空航天大学 计算机系,北京 100083)

摘要:介绍了一种测试流程图的可视化图表示,以及采用面向对象设计方法设计的由这种可视化图转换为C++代码的算法。这种方法已经在实际中被验证,对自动化测试技术的发展具有积极的意义。

关键词:可视化技术;自动测试技术;面向对象设计;测试的基本过程 中图分类号:TP311 文献标识码:B

Abstract: A kind of visual express that describe the test flow and a method that transfer the visual express to C++ program based on OOD is introduced. This has been verified by experimental and has positive significance to automatic test technology.

Key words: visual technology;automatic test tech- nology;OOD;base process of test

近年来,随着测试技术的不断发展,与可视化技术结合正日渐成为测量仪器发展的主流。因此可视化自动测试技术在越来越多的领域,特别是生产性测试过程中开始得到日益广泛的应用。

美国等西方国家的一些比较成熟的通用测试系统软件开发平台,比如美国TYX公司的PAWS系统、美国BAE公司开发的TOPTEST系统都在一定程度上支持可视化编程技术。

本研究 对可视化编程技术在自动测试领域的应用进行了全新的尝试,不仅能用可视化图元的形式表示测试流程,还能将可视化流程图转换成C++代码。这是一个庞大而困难的工作。测试流程越复杂,将可视收稿日期:2004–10–19 作者简介:罗毓敏(1972—),女,工程师,在读硕士,主要从事自动测试技术及可视化软件的研究工作;周一鸥(1978—),男,南京人,工程师,本科,主要从事航空发动机测试系统及自动化测试系统的软件设计及开发工作。

化流程图转换成代码的过程也将越困难。其中,选择语句和循环语句的多重嵌套为转换代码工作带来了很大困难。笔者基于面向对象的设计方法(OOD)设计测试程序的可视化对象。OOD方法将具有公共属性和处理方法的对象归纳为一种类,类的实例即对象。用户通过菜单或工具栏可动态地创建类的实例,还可通过图形界面对可视化对象的各种属性进行设置。

1 测试流程的可视化表示

每个测试流程中都包含了一些基本过程:测试过程、条件跳转和循环过程。针对这些基本过程,设计出以下的基本可视化图元:测试图元、条件图元和循环图元。每种图元用一种位图代表,每个位图有惟一的ID值标识;每个可视化图元的属性可在图元的属性对话框中编辑、修改。可视化图元之间的连线表示它们的执行顺序。图1是由测试图元、条件图元和循环图元组成的一个可视化测试流程图。

开始

判断 单元

加交流激励信号

循环 测量功率 循环结束

结束

图1 可视化测试流程图

2 可视化测试流程图的代码实现

从图1中可以看出,每个流程都从开始图元开始

执行,依照连线显示的顺序执行,到结束图元结束整个流程的执行。

2.1 构造测试流程中可执行基本过程的集合

执行测试的流程图时,为了控制整个测试流程的执行顺序,设计了一个主控制函数。这个函数的结构就决定了整个流程的执行过程。在运行主控制函数前,

可视化测试流程图的代码实现

·68· 先要构造测试流程中可执行基本过程的集合。本研究采用深度优先搜索的算法,遍历所有单元,搜索其中的测试过程和循环过程,而条件过程的每个分支都要遍历。具体过程如图2所示。

图2 构造可执行基本过程的集合过程

2.2 主控制函数

主控制函数就是按照一定顺序执行测试流程中可执行基本过程的集合的过程。在可执行基本过程的集合中,根据每个可执行基本过程的惟一标识ID,按照次序依次执行基本过程的函数。主控制函数的执行过程如下:

(1)图元的ID设置为当前运行ID;

(2)以当前运行ID为参数调用OnSwitchFunc函数;

(3)将OnSwitchFunc过程返回值设置为当前运行ID;

(4)如果当前运行ID为结束或终止标志,则主控制函数结束;否则,返回(2)。

《测控技术》2005年第24卷第5期

其中,OnSwitchFunc(long Id) 函数以标识ID为参数,调用该ID对应的基本过程的函数。其格式如下:

{…

switch(Id) {

case 过程1:

调用过程1的函数,并返回集合中的下一基本过程的ID作为该函数的返回值 break;

case 过程2:

调用过程2的函数, 并返回集合中的下一基本过程的ID作为该函数的返回值 break;

… case 结束过程: 返回结束标志 break; } …}

2.3 基本过程生成的函数

每个基本过程都生成一个自己的执行函数,在这

个函数中除了根据此基本过程属性的要求执行相关的

测试步骤,还要将该基本过程后面的所有条件跳转单元的相关过程递归查询出来,并返回条件跳转单元的ID。具体的递归子过程如图3所示。 2.4 循环过程生成的函数

循环过程的函数代码包括从循环开始到循环结束之间的所有基本过程的执行函数的代码。查找循环过程中包含的基本过程集合是一个复杂的过程,具体过程如下:

(1)得到与循环图元连接的循环结束图元,并将该单元压入搜索堆栈;

(2)判断堆栈是否为空;若为空,则退出;否则到(3);

(3)弹出栈顶图元,并获取图元的所有输入路径; (4)判断是否遍历所有的路径,若已经遍历,回到(2);

(5)得到当前路径的输出端的图元;该图元如果是条件判断单元,则压入堆栈,并回到(4);否则查看该单元是否在集合中,若在集合中,回到(4);否则,查看该单元是否是循环结束单元,若是,获取与该结束单元连接的循环单元;否则,将该单元压入搜索堆栈中,并放入结果集合中,并返回到(4);

(6)判断该循环单元是否在结果集合中;若在,回到(4),否则,放入结果集合,压入搜索堆栈,并返回到(4)。

查找到循环过程中包含的基本过程集合后,可以

可视化测试流程图的代码实现

可视化测试流程图的代码实现

图3 递归子过程的执行过程

容易地实现循环过程的函数代码。循环过程的函数具体步骤如下:

①查找循环过程中包含的基本过程集合,将这些基本过程的惟一标识构造一个长整形数组;

②搜索循环开始单元后的图元,根据ID值调用OnSwitchFunc函数执行基本过程的函数;

③判断返回值是否在构造的长整形数组内,若不在则说明跳出循环函数,否则继续;

④循环执行②、③步骤,直到循环结束单元; ⑤执行到循环结束单元,调用递归子过程(如图3)得到函数的返回值,循环过程的函数执行完毕。

·69·

以上至顶向下详细地介绍了整个由可视化流程图到C++代码的转换算法,由此就可以将一个复杂的可视化图转换成C++代码。

3 实际应用

本研究已经将这种可视化的表示和代码的实现运

用在所开发的通用测试程序软件开发平台中。该平台主要是基于VXI总线技术的ATE(automatic test equipment)研制。用户不仅可以方便地进行可视化流程图的编辑,还可以随时添加新的可视化图元,并对流程图配置仪器资和路径,形成最终的测试流程,再使用本算法将流程图转化成对应的C++代码,经编译链接生成可执行的测试程序。将测试程序拿到所研制的测试程序运行平台运行,经过验证,生成的代码很好地体现了流程图的测试流程,能够在运行平台中稳定地运行,完成测试任务。

4 结束语

本文介绍了一种使用可视图表示测试流程,并将可视化图转换成C++代码的方法。这种方法在实际中

已被验证是可行和有效的。使用这种方法,不仅大大简化了用户对测试流程的编辑工作,而且提高了测试效率,对自动测试技术的发展具有积极的意义。 参考文献:

[1] National Instruments. LabWindows/CVI standard Libraries

Reference Manual[Z], 1994.

[2] Beethe D C, Hunt W L. A visual engineering environment for

test software development[J]. HP Journal, 1992, 43(4): 72-76. [3] 张世萁,等.自动测试系统[M].成都:电子科技大学出版社,

1994.

[4] 陈光礻

禹 .VXI 总线测试平台技术[M].成都:电子科技大学出版社,1996-10.

[5] Rijinders F M, Spoeler H J W, Groen F C A .Distributed

visual programming environment: applications within data-acquisition[C]. Proceedings of the IMtc,1993:690-693, 1994.

[6] 杨江,等.在LabWindows 上构造复杂多任务应用程序[J].测

控技术,2000,(1).

欢迎订阅《测控技术》月刊

欢迎发布广告信息

● 订阅代号:82–533 ● 定价:10.00元/期 ● 每月18日出刊

本文来源:https://www.bwwdw.com/article/2bj1.html

Top