面向机载集中告警设备的自动化测试软件设计

2020-01-16 05:55刘亚民
电子技术与软件工程 2019年21期
关键词:测试软件测试用例总线

文/刘亚民

1 前言

随着对飞机作战能力、执行任务难度以及飞行环境适应性的要求不断提高,机载传感器以及设备的功能也日趋复杂,机内各级别告警信号的数量也日益增多。机载集中告警设备对机上设备发送的告警信号及其告警优先级进行综合处理,及时向飞行员提示当前告警故障,确保飞机安全,提高飞行安全性和可靠性。

为确保机载集中告警设备功能正常,避免飞行事故,需对告警设备进行严格测试,以期被测设备能够对测试设备发送的信号做出正确的响应。机载集中告警设备应处理的数据总线信号数量繁多,逻辑关系复杂,原用测试环境是测试人员手动依据测试用例人为点击测试软件界面上的按钮,模拟机上设备发送各种告警测试信号,并根据界面上所显示的等级告警信息是否符合测试用例的预期测试结果,判断测试结果是否正确。采用人工方式逐个按测试用例输入测试信号,并判定测试通过,存在测试效率低,准确性不稳定,成本高等问题。另外,依据机载集中告警设备的测试需求而编制的信号发送界面,存在规模庞大、维护困难、更改频繁等问题。因此,寻求一种减少人为介入、自动化程度高、可扩展性好的解决方案。

本文中的自动化测试软件是为某型飞机的机载集中告警设备而设计的,包含了测试用例数据库和测试软件两个部分,全面考虑了各测试用例中被测信号与期望结果之间的逻辑关系、总线通信数据与告警数据之间的数据结构等,充分考虑到后期因需求频繁变化导致测试用例变化的情况。

2 自动化测试软件需求分析

为提高可靠性,机载集中告警设备拥有两套控制平台,互为备份,确保在某一平台故障时能实施降级处理,保证设备继续运行。与机载集中告警设备进行交互的机上系统有约二十多个,交互信号形式主要包含ARINC429总线数据和离散信号,其中ARINC429总线数据类型多达一百多种。机载集中告警设备依据通信协议及处理需求的要求,将各路ARINC429总线数据以及离散信号进行逻辑分析,并按照一定策略将紧急程度不同的等级告警信息以ARINC429总线数据的形式发送给显示、音频及记录设备等,为飞行员提供视觉和听觉告警。

图1:数据库中各表格的关系图

图2:自动化测试软件模块组成

图3:自动测试执行模块的工作流程

由此可见,机载集中告警设备具有交互设备数量多、处理信息量庞大、逻辑判断复杂等特点。此外,该设备的研制过程还存在数据处理逻辑、ICD变更频繁等问题。分析机载集中告警设备的产品及研制过程特点,所设计的自动化测试软件需具备以下特征:

(1)能够适应多路ARINC429总线交互的测试环境。

(2)能够涵盖所有交互信号,建立符合告警测试信号输入和等级告警信息输出的复杂逻辑关系的测试处理策略。

(3)能够提供友好的用户界面,方便操作人员根据ICD的内容对告警测试信号、等级告警信息、测试用例等数据信息进行编辑。

(4)自动批量执行测试用例,测试过程应为人不在环的闭环自动测试,即应能模拟机上各系统通过各自ARINC429总线自动发送告警测试信号,并针对机载集中告警设备通过ARINC429总线回复的等级告警信息。

(5)能够进行自动分析判别,在界面上实时显示测试结果。

(6)能根据测试结果自动生成并保存测试报告。

3 自动化测试软件设计

3.1 数据库设计

结合通信协议中机上各系统发送的告警测试信号以及机载集中告警设备输出的等级告警信息的特征,自动化测试软件的数据库主要分为这几个部分:总线信号位域值域表、总线信号位域表、总线信号表、总线数据块表、测试输入表、预期测试结果表等。各表之间的关系如图1所示。

3.1.1 总线信号位域值域表

总线信号位域值域表保存每个ARINC429总线数据中的各个位域的值域定义,包括值域所包含的各数值、对应的数值含义、所属的ARINC429总线数据的位域等字段。

3.1.2 总线信号位域表

总线信号位域表保存每个ARINC429总线数据中各个位域的定义,包括位域名称、起始位置和终止位置、所属的ARINC429总线数据等字段。

3.1.3 总线信号表

总线信号表保存着机上系统发送给机载集中告警设备的和机载集中告警设备回复的每个ARINC429总线数据的定义,包括总线数据名称、规范号、Label号、在数据块中的位置、所属的ARINC429总线数据块等字段。

3.1.4 总线数据块表

总线数据块表保存着ICD中所定义的每个ARINC429数据块的定义,包括总线数据块名称、规范号、传输方向、传输通道号、传输类型、传输周期等字段。

3.1.5 测试输入表

测试输入表用来存放自动化测试软件在每个测试用例中向机载集中告警设备发送的测试输入定义,包括测试用例标识号、测试步骤号、测试输入的总线数据块规范号、总线数据规范号及其中各个位域的值等。

3.1.6 预期测试结果表

预期结果表用来保存每个测试用例中期望从机载集中告警设备处接收到的测试结果定义,与测试输入表中的输入定义存在对应关系,包括测试用例标识号、测试步骤号、预期接收的总线数据块规范号、总线数据规范号及其中各个位域的值等。

3.2 软件设计

自动化测试软件运行在Windows操作系统中,使用C#语言进行开发,不仅拥有简单友好的自动测试操作界面,测试人员可以直观地监控当前每个测试输入、预期结果、实测数据以及用例通过情况,而且提供编辑数据库中ARINC429总线信号、ARINC429总线数据块、测试用例设计的用户界面,解决了后期因ICD或者处理逻辑变更而导致的总线信号或者测试用例设计的变化问题。图2是自动化测试软件的模块组成,主要包含六个模块:数据库管理模块、通信协议管理模块、测试用例管理模块、ARINC429总线通信模块、自动测试执行模块、测试结果输出模块。

3.2.1 数据库管理模块

数据库管理模块是测试用例管理模块、通信协议管理模块以及自动测试执行模块访问数据库的中间层,通过使用ADO.NET组件与数据库建立连接,或进行数据交互。ADO.NET提供了DataSet类,可通过DataAdapter类中的Fill方法将数据库中各个表的数据存储入DataSet中,在内存中建立一个访问数据库的程序模块与数据库之间的数据缓冲区,这样可以断开数据库处理其中的数据,避免频繁访问数据库。由于DataSet与基础数据库断开连接,代码无需经常调用数据库,因而显著地提高了性能。

初始时,数据库管理模块通过OleDbConnection实现与数据库之间建立连接,通过Fill方法将数据库中的总线信号位域值域表、总线信号位域表等各表数据存入DataSet中。同时,定义多个操作函数实现对各表进行查询、删除、插入、更新操作。对数据库各表的操作主要使用了微软公司提供的LINQ技术,它的最大特点就是能够把查询功能直接引入到.NET Framework3.5所支持的编程语言(如C#、Visual Basic.NET)中,并整合为一体,从而查询操作成为编程语言的一部分,可以向创建编程语言代码的方法一样,方便地创建查询操作表达式。

3.2.2 通信协议管理模块

通信协议管理模块是用户通过特定界面管理数据库中总线信号位域值域表、总线信号位域表、总线信号表、总线数据块表的接口,用户可以根据通信协议的内容灵活配置各ARINC429总线数据块、数据块中各ARINC429总线信号、总线信号中各位域以及位域的各个值域数值,为设计测试用例中的测试输入以及预期输出结果提供基础信息。由于ARINC429总线信号与ARINC429总线数据块之间、位域以及位域中的各个值域数值存在一对多的关系,ARINC429总线信号和总线信号中的位域存在一对一的关系,因此软件设计了三个页面,分别用于根据ICD的内容编辑ARINC429总线信号、各个位域以及ARINC429总线数据块的配置,操作人员在定义各个ARINC429总线信号的具体信息后,才能将其与对应的位域及ARINC429总线数据块进行关联定义。

图4:自动测试软件信息编辑界面

3.2.3 测试用例管理模块

由于单一的ARINC429数据块的测试输入和预期输出不能满足机载集中告警设备的功能验证要求,测试用例管理模块通过界面获取操作人员输入的ARINC429总线数据块及其中各个信号的赋值,并按照操作人员输入的测试步骤数据依次将单一的ARINC429数据块的输入及其对应的预期测试输出进行组合,形成复杂的测试用例存入数据库中。

3.2.4 ARINC429总线通信模块

ARINC429总线通信模块是自动化测试软件与专用测试设备中多个ARINC429通信扩展卡EP-H5272直接进行交互的驱动层,将ARINC429通信扩展卡的参数设置、打开、关闭、读写的函数进行封装,更易于进行底层硬件的调试与维护。考虑机载集中告警设备响应较为迅速以及自动化测试软件进行测试分析的实时性,在ARINC429总线通信模块中设计了一个读取ARINC429通信扩展卡数据的线程,将ARINC429总线数据的读取与其他线程如主界面线程分开,避免因读取通信扩展卡数据导致响应延迟的问题,该读取线程由自动测试执行模块中的主界面线程负责它的开启和结束。

3.2.5 自动测试执行模块

自动测试执行模块是整个自动化测试软件的核心,主要负责测试用例的抽取和执行、预期和实测结果的对比和判别、测试最终结果的显示、主界面的消息响应等。自动测试执行模块通过解析数据库中各个测试用例,依次逐条对每个测试用例的每条测试输入中要求发送的ARINC429数据块进行赋值,通过对应的ARINC429通道发送至机载集中告警设备。模块在限定时间内读取机载集中告警设备反馈的ARINC429总线数据,与对应测试用例的预期测试输出进行数值比对,判断反馈数据是否与预期一致。软件使用线程的方式执行自动测试,以便于使主界面能够实时显示测试输入输出数据、测试进度以及最终测试结论。自动测试执行模块的工作流程如图3。

4 测试软件执行结果及分析

面向机载集中告警设备的自动化测试软件通过以上方式设计,能够为操作人员提供便捷的测试信息编辑界面(如图4),自动生成测试报告,功能运行正常。软件测试人员针对机载集中告警设备的需求共设计了1490个测试用例,全部执行时间2247s,远低于人工测试执行时间。

5 结束语

机载集中告警设备的自动化测试软件采用数据库、ADO.NET、LINQ等技术,使得对机载集中告警设备的测试流程转变为对数据库中测试数据的编辑,其测试软件不再依赖ICD文件设计程序架构和执行逻辑,解决了研发过程中因为ICD或者功能逻辑变化而修改测试软件的情况。此外,该软件大大降低了人工介入程度,实现了对测试效率、准确性、稳定性等方面的要求。

猜你喜欢
测试软件测试用例总线
基于SmartUnit的安全通信系统单元测试用例自动生成
网络自适应测试软件运行方法设计
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
基于混合遗传算法的回归测试用例集最小化研究
基于依赖结构的测试用例优先级技术
多通道ARINC429总线检查仪
远程开放教育学生自主学习能力评价的研究
基于EtherCAT总线的ROV控制系统设计
软件回归测试用例选取方法研究