APP下载

基于ARINC429接口板的嵌入式底层软件测试平台设计

2018-03-27

计算机测量与控制 2018年3期
关键词:软件测试底层嵌入式

(福建省特种设备检验研究院,福建 福州 350008)

0 引言

软件测试是一种实际输出与预期输出间的审核或者比较的过程,即在规定的条件下对程序进行操作,发现程序错误,衡量软件质量,满足设计要求。对于嵌入式底层软件进行测试时,传统的嵌入式底层软件测试平台由于覆盖率低、消耗成本大、丢包率高、数据采集频率小等问题,已经不能满足现代对于软件平台高效测试的要求,又容易受到操作系统中各个因素的制约,使得嵌入式底层软件的测试过多的依赖于调试的平台,不足以进行全面的测试。文献[1]中提出了一种波前控制的软件测试平台,该平台能够对波前处理器中的信息进行采集,根据信息采集速度进行软件测试,导致测试结果易受采集速度影响,测试结果不精;文献[2]中提出一种黑白盒的软件测试平台,该平台通过不同点对软件进行全面检查,并根据采集路径信息,对软件进行测试,使得测试结果受到信息采集路径单一影响,使软件测试平台使用环境受到局限性,丢包率较大。

本文对嵌入式底层软件本信源受到干扰引起随机测试问题进行了研究,提出并设计了基于ARINC429接口板的嵌入式底层软件测试平台。通过实验结果证明,改进设计平台能够提高测试覆盖率,降低丢包率,而且在同一时间内,采集数据也要比传统测试平台采集的数据多,因此,采用改进设计平台能够在实际生活中节省大量时间,并且有效地提高测试效率。

1 ARINC429接口板设计

本文设计的ARINC429接口板是由DSP核心系统、振荡时钟系统、ARINC429收发接口、双口RAM、逻辑译码部分这五个主要部分构成,具体的结构框图如图1所示。

图1 ARINC429接口板结构框图

DSP作为整个接口板的重要核心部分[3],需要充分考虑系统的实时性和数据吞吐能力,因此选择TMS320LF2407芯片作为系统中央处理器,能够为嵌入式底层软件测试平台设计提供高性能、低消耗处理效果。

2 测试平台硬件设计

2.1 平台登录验证模块

嵌入式底层软件测试平台登录验证模块是通过对检验平台的登录来验证用户的身份是否正确,能否与数据库中的用户名和密码一致[4],为客户端的安全提供了保障,通过身份验证,才能到达软件测试平台的主页面进行下一步操作。主要是由于该平台具备良好的保密性能和安全性能,对于不设置注册的账户,其测试平台的身份验证设计如下所示:首先管理员应该设置嵌入式底层软件测试平台的安全功能,比如登录的用户名和密码;然后将设置完的用户名和密码分配给不同的用户,并保存在数据库服务器当中;为了实现用户能够安全的登录需要使用加密算法[5]来保障用户信息存储的安全。

2.2 数据采集与查询模块

对嵌入式底层软件数据进行周期性和连续性的自动采集,将采集后的数据通过测试平台中数据传输中心传送给数据处理中心,并将底层软件需要运行的数据整理到数据库中进行保存,管理人员通过嵌入式底层软件运行信息的显示,能够实时对软件运行状态进行监测。

对于嵌入式底层软件测试平台数据的查询主要是通过对指定软件运行时间与类型进行查询,并通过服务器接收嵌入式底层软件运行的数据,使用表格或者折线[6]的形式表示出查询的结果,能够为软件评估数据的诊断提供支持。

2.3 平台评估与维护模块

嵌入式底层软件测试平台的监测功能主要是由预警信息组成的[7],通过对底层软件变化状态的监测能够实现软件评估与维护。针对电力系统运行信息的维护需要采用人工神经网络[8]诊断方法对底层软件各个部分的运行状态进行监测,如果出现不正常现象,那么该测试平台就会出现报警的信息,指示灯闪烁。此时工作人员就可以通过该平台获得报警信息,能够在短时间内完成软件测试平台的评估与维护。

2.4 软件测试工具链模块

基于ARINC429接口板的嵌入式底层软件测试平台最重要的部分是具有符合自身平台的开发工具,其中GNU Tools包含了嵌入式应用系统[9],其全面的源码能够为嵌入式环境提供配套的工具链[10]。该工具使用能够为代码编译开发、结构测试与软件工程提供工具,将这三者结合在一起形成工具链,能够满足测试平台独立性要求。通过使用工具链能够为编译程序增加自动插入测试的功能,编译流程如图2所示。

图2 编译流程

由图2可知:通过编译的流程可将各种源代码编译成汇编码。根据从测试数据库中得到的函数和变量进行测试,并按照系统的架构进行调用,如果函数调用位置为编译起始端和结束端,那么就可以确定语句中的分支和循环为整个编译开始处和结束处。

3 软件设计

基于ARINC429接口板嵌入式底层软件测试平台覆盖率的提高主要通过对数据采集、处理、传输部分的完善进行了设计。

3.1 数据采集

在该平台中存在各种各样的离线数据和在线数据,需要实时的对数据进行采集来完成软件平台的离线测试与在线测试。

1)经过离线测试的结果获取离线数据,并将此信息录入到基于ARINC429接口板的嵌入式底层软件测试平台的数据库当中。

2)经过在线数据测试的结果获取在线数据,通过测试平台的开发,能够将不同的数据库进行连接,从而使线路、开关和变压器实时运行的数据信息被共享到嵌入式底层软件测试平台的数据库当中。

通过对上述运行数据的收集,能够使数据库与软件测试平台的装置进行通信,并采用单向采集的方式,保证了测试平台数据采集信息的安全。

3.2 数据处理

对于数据的处理需要使用测试平台的数据处理中心,其位于底层软件的服务器端口处,主要包括数据库服务器和应用服务器。

3.2.1 数据库服务器

该服务器的主要功能是不断的将采集器中的数据信息进行收集,并按照测试的原则进行标准化处理,将处理之后的数据信息全部储存在数据库。

3.2.2 应用服务器

该服务器的主要功能是应用业务的逻辑思维来完成逻辑处理与数据库之间的连接。采用模块化的方法对不同客户端发送的请求进行实时的反馈,并将反馈结果传送到客户端。对于数据库的连接,需要对平台数据进行增加删减等工作。

3.3 数据传输

作为数据信息传输的媒介,应用服务器上的平台应用接口需要通过网络进行发布,而测试的客户端也需要与服务器进行数据的传输。

4 软件实现

基于ARINC429接口板的测试平台是宿主机和目标机交联实现软件测试的,即Host/Target方式。是指编码连接和测试分析都运行在Host机器上,而被测试程序运行在Target机器上。目标与测试平台之间的通信均通过通信转换接口模块完成。通信模块可以和Host程序运行在同一台测试机上,也可以运行在独立的机器上,通过以太网与测试机连接,示意图3如下所示。

图3 ARINC429接口板的软件测试模式示意图

通过用户操作,开启软件测试平台的主程序。软件屏幕模拟器会对用户操作进行录制,将录制结果分别发送三个子程序进行各自的功能处理。发送至界面子程序:通过界面绘制,将用户操作记录传送到Web界面端,经过Web界面对信息进行处理,使UI控件获取到相应的界面信息进行界面优化,同时,Web界面信息也会通过界面指令传至脚本回放,等待信息回放处理,反之,回放信息也能反馈给Web界面,进行界面信息处理。发送至脚本子程序,将记录的用户操作信息,按照操作指令,传至脚本,经由脚本指令转化,传至脚本回放。发送至主程序,将记录的用户操作信息传至编译器,使用Python脚本语言进行开发,将脚本回放中的信息进行回放,结合回放信息,生成测试结果。以此,完成基于ARINC429接口板的嵌入式底层软件测试平台软件部分的实现。给出软件实现流程图如图4所示。

图4 软件实现流程图

5 实验结果与分析

为了验证基于ARINC429接口板底层软件测试平台的有效性,测试平台界面在VC++6.0环境下进行开发及试验分析。

5.1 测试平台覆盖率

针对测试平台的覆盖率,需要对用户登录信息、历史数据信息、实时数据、网络信息等进行收集,如表1~2所示。

表1 传统测试平台信息覆盖率(%)

表2 改进测试平台信息覆盖率(%)

根据上述收集到的数据,将改进设计平台与传统平台覆盖率(%)进行对比,结果如图5所示。

图5 两种测试平台的覆盖率对比结果

由图5可知:改进设计测试平台覆盖率要高于传统设计平台。由于基于ARINC429接口板的嵌入式底层软件测试平台能够对数据进行实时的采集,通过使用数据库服务器和应用服务器处理中心对软件各部分进行了测试。数据采集能够实现嵌入式底层软件离线测试和在线测试;针对业务的逻辑性处理和数据库之间连接,能将收集到的数据进行处理;通过传送数据能够完成嵌入式底层软件运行数据的采集、处理、传输以及在客户端方面的应用,使用改进设计的测试平台能够提高平台的覆盖率。

5.2 测试平台丢包率

分别收集传统测试平台与改进设计的平台在5分钟内数据采集并处理过程中软件测试平台丢包率的情况,测试结果如表3所示。

表3 两种测试平台丢包率(%)对比结果

由表3可知:传统测试平台的丢包率情况存在较大的延迟情况,对于数据的处理大约维持在11.17 Mbit/s左右,而丢包率大约维持在8.15 Mbit/s。传统的测试平台在设计的时候采用了LaaS的构建方法对管理工具进行了设计,该方法包含了大量的计算步骤,过程繁琐,计算所耗费的时间较长,因此对软件平台的测试会出现延迟的情况,使得丢包的概率增加,得出的测试结果不准确。而改进测试平台设计的方法不会出现延迟的情况,对于数据的处理大约维持在101.7 Mbit/s左右,而丢包率大约维持在0.0283 Mbit/s左右。

由此看出:改进测试平台的丢包率较低,在实际的嵌入式底层软件测试过程中可以忽略不计,测试的结果比较准确。

5.3 测试平台性能

为了验证改进测试平台的性能,将数据采集的频率(MB/s)作为衡量传统测试平台与改进测试平台性能好坏的标准,结果如图6所示。

图6 两种测试平台的数据采集频率对比结果

由图6可知:由于改进设计的测试平台能够将软件中的数据进行连续性的采集,并且在短周期内能够快速的采集大量的软件信息,因此,在同一时间内,改进测试平台采集的数据要比传统测试平台采集的数据多。

综上所述,改进设计的基于ARINC429接口板的嵌入式底层软件测试平台,其覆盖率较高,对于改进测试平台丢包率情况,改进设计平台明显比传统平台更准确,而且在同一时间内,采集数据也要比传统测试平台采集数据多,因此,采用改进设计平台能够在实际生活中节省大量时间,并且有效地提高测试效率。

6 结束语

基于ARINC429接口板的嵌入式底层软件测试平台能减少成本,并使测试的频率加快,大大缩短了平台运行时间。合理的设计测试平台不仅能够满足测试基本要求,还能保证软件质量,通过对嵌入式系统软件测试平台进行改进设计能够解决多目标测试难点,能够提高测试的覆盖率,并降低了丢包率,数据采集的频率也大大增强,为软件测试平台安全有效运行提供保障,也为测试标准奠定了更加坚实基础。

[1] 王 亮, 陈 涛, 贾建禄,等. 自适应光学波前处理器的软件测试研究[J]. 电子测量与仪器学报, 2016, 30(2):193-199.

[2] 梁浩然, 周宽久, 崔 凯,等. 基于PEFSM行为模型的黑盒测试用例生成方法[J]. 计算机科学, 2017, 44(4):234-240.

[3] 王 博, 白晓颖, 张 超,等. 基于接口自动机与符号执行的嵌入式软件测试用例生成[J]. 计算机学报, 2015, 28 (11):2125-2144.

[4] 刘连生, 梁林林. 使用Andriod智能手机的ARINC429总线系统设计[J]. 电光与控制, 2016, 19 (5):104-107.

[5] 杨文豪, 焦新泉, 储成群. 基于嵌入式操作系统VxWorks的PXI实时读写接口设计[J]. 仪表技术与传感器, 2016, 31 (10):98-101.

[6] 孙 磊, 杨海燕, 吴 际,等. 基于IMA平台的嵌入式软件设计模型仿真及实时性分析方法[J]. 计算机科学, 2015, 42(12):95-97.

[7] 郑巧彦. 多差异嵌入式设备的节能任务调度模型仿真[J]. 计算机仿真, 2015, 32(3):426-429.

[8] 韩鸿凌, HANHong-ling. 基于FPGA的嵌入式处理器与PC/104总线接口实现[J]. 电测与仪表, 2015, 39(s1):72-74.

[9] 郭文生, 汪 勇, 杨 霞,等. Codecomb:基于符号执行的嵌入式软件测试案例自动生成与缺陷检测[J]. 小型微型计算机系统, 2017, 38(6):1250-1255.

[10] 刘 飞, 蒲海峰, 李柯达,等. 一种弹载嵌入式软件数学模型测试方法的设计与实现[J]. 弹箭与制导学报, 2016, 36(3):25-27.

猜你喜欢

软件测试底层嵌入式
基于IMX6ULL的嵌入式根文件系统构建
航天企业提升采购能力的底层逻辑
软件测试方向人才培养“1+X”融合研究
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
基于ARM嵌入式的关于图像处理的交通信号灯识别
TS系列红外传感器在嵌入式控制系统中的应用
关于 Web 应用系统的软件测试的研究
回到现实底层与悲悯情怀