通用测试仪器流程控制软件设计

2023-07-17 07:37来韩忠李晓明
计算机时代 2023年7期
关键词:自动测试

来韩忠 李晓明

关键词:XML;测试仪器;流程自动化;自动测试

0 引言

自动测试系统(Automatic Test System,ATS),通常是指能够对被测对象自动进行功能/性能指标测试、故障诊断与定位的一类系统的统称,它在航空航天或者军工领域应用很广泛[1]。在目前的自动测试系统软件中,有使用Python 开发的自动测试系统[2、3],也有利用LabVIEW 软件和程控仪器组成的自动测试系统[4]。这种交互以计算机代码的形式固化在测试程序中,修改非常的不方便;另外,对于不同的测试流程需要开发不同的程序代码,无疑提高了开发的成本和测试的周期。

一般来说,对于各个被测设备或同一个设备不同功能,会有不同的测试流程。对于传统的自动测试系统,可能就需要重新编写硬代码来满足当前的测试任务、这样做不仅耗时耗力,其更新成本也是巨大。

基于以上考虑,我们决定设计符合本课题组实际的XML 描述方法。此外,设计了一种基于XML 的通用测试仪器流程控制软件;设计了解析方式及其对应的XML 结构,用户只需配置XML 中的标签描述信息,新增或减少XML 中的各个标签即可实现截然不同的测试流程。

本文中使用了Java 语言来对该软件做代码实现,主要有以下两个原因:一、Java由于有jvm[5(] Java虚拟机)的存在,有一次编译到处运行的特点,对于平台具有无关性。二、Java 有许多已经集成好的XML 解析工具[6]如jdom、dom4j 等。最后通过实验验证了该软件可以正常工作并按照输入的XML 流程执行自动测试任务。

1 基于XML的自动测试流程描述语言设计与实现

对于基于XML 的自动测试流程描述语言设计的设计是整个通用测试仪器流程控制软件的基础。

1.1 自动测试流程描述语言的实现

本文提出的自动测试流程描述语言中各个主要标签及其功能如表1 所示。

其中Unit 和Task 下定义的是具体流程的标签,表2 定义了所有具体流程的标签。

XML 文件的标签的树形关系如图1 所示。

1.2 流程解析结果数据结构设计

流程解析的数据结构用于映射当前XML 文件中的标签和标签中的属性值,并且按照HashTable 的数据格式存入解析结果ParsedResult 中,方便运行软件时利用键值对来查询。程序中有关流程的解析节点之间的类关系如图2 所示。

Step 为Exec、If、True、False、For、While、Parallel 的共同接口,表示单步运行的流程。

其中Exec 为单步流程的终点,同时Exec 也在整个Task 流程中可以用来表示单次的单元测试(Unit)。

1.3 流程XML 解析结果JavaBean 设计

ParsedResult 作为流程XML 文件解析结果的信息载体,其属性内容如表3 所示。

2 通用测试仪器流程控制软件设计与实现

通用测试仪器流程控制软件由自动测试管理器(AUTManager)、测试任务管理器(TaskManager)、动作注册管理器(ActionManager)、可执行单步流程(Step)、单元测试任务(Unit)、测试任务(Task)组成。

其中自动测试管理器负责对整个自动流程测试任务的执行,测试任务管理器负责对标准流程XML 进行解析并生成自动流程测试任务执行所需要的测试任务配置对象,动作注册管理器负责对动作进行注册,可执行单步流程是最小的可执行单元,单元测试是由各种可执行单步流程所组成的,整个测试任务也是由可执行单步流程和单元测试组成的。其中通用测试仪器流程控制软件工作架构图如图3 所示。

2.1 通用测试仪器流程控制软件设计

本文提出的通用测试仪器流程控制软件作为自动测试软件流程控制的核心,需要从流程XML 文件中得到运行整个自动测试流程运行所需的信息并对其进行管理。本软件的设计将利用前面设计的数据结构。

2.2 通用测试仪器流程控制软件工作流程设计

当软件开始运作之后,会产生一个单例[7]对象名为AUTManager,其负责整个自动测试实验的执行,其下包含两个的单例对象分别为TaskManager(负责测试生成对XML 解析结果的配置对象)和ActionManager(负责实现对动作的注册),AUTManager中的DoAUT()方法为整个自动测试软件工作流程。整个测试软件的工作流程图如图4 所示。

3 实例测试

本文實验使用某串口调试工具模拟被测设备,来测试本流程测试自动化软件能否正常工作即按照流程XML 对被测设备进行自动测试。

实验设备:一台X86 架构的计算机、实验室自研的通用嵌入式测试仪器系统、一个带有HDMI 接口的显示器。

实验设计:一台计算机运行包含本通用测试仪器流程控制软件核心代码的地测软件客户端。计算机与测试仪器系统用网线相连。通用嵌入式测试仪器系统同时又连接显示器。用测试仪器系统的前端模块模拟被测设备,开启测试仪器系统侦听本机约定好的端口。开启地测软件客户端,即读取流程XML 文档并开始运行自动测试流程。由测试仪器系统向流程测试自动化软件发送必要的数据(测试部分由被测设备发送不同数据可能引起不同流程的功能)。在测试仪器系统和流程测试自动化软件的控制台信息面板上观察整个测试流程是否按照XML 文档中规定的自动测试流程运行。

图5 是实验室自研的通用嵌入式测试仪器系统。

图6 是包含本通用测试仪器流程控制软件核心代码的地测软件客户端。

按照本文提出的流程XML 文件标签定义和层级关系编写流程XML 协议描述文件。该协议描述文件的内容(节选)如图7 所示。

按照流程XML 描述文件中的测试任务标签下对于整个测试任务的定义,即可形成本次自动测试任务流程表如表4 所示。

图8 为通用嵌入式测试仪器系统的控制面板上显示的接收与发送数据,对比自动测试任务流程表4 可以发现完全按照预设的流程执行了。这证实了通用测试仪器流程控制软件的控制测试流程的能力。

4 结论

本文提出的基于XML 的通用测试仪器流程控制软件是一种控制流程的软件方法。针对XML 文件具有可扩展性的特点,设计了本文提出测试软件的XML标签流程描述文档,用户只需要按照指定的格式描述整个自动测试流程即可在无测试人员手动操作的情况下完成整个自动测试任务。实验结果表明,通过该通用测试仪器流程控制软件可以成功的完成不同设备不同测试流程的测试任务。通过对流程描述XML文件中标签的组合和标签属性的修改不仅可以完成通用的流程操作如顺序执行、条件判断和循环执行等,还可以处理好产生分支测试流程并行运行等复杂情况,验证了本自动化测试软件的有效性、通用性。同时,也表明本文提出的自动测试流程标准化的软件解决方法在自动测试领域[8]有重要的参考价值。

猜你喜欢
自动测试
JXG-50S型相敏轨道电路接收器自动测试台
可并行测试的电磁兼容自动测试系统的实现
关于某型雷达自动测试系统的几点认识和建议
某型制导武器通用自动测试系统方案设计
基于ATE与BIT组合的NAMP自动测试与故障诊断系统设计
一种卫星低频接口自动测试系统