乐于分享
好东西不私藏

知识丨机载嵌入式软件的自动化测试架构设计

知识丨机载嵌入式软件的自动化测试架构设计

摘要:为了保证机载软件的安全性和可靠性,根据嵌入式机载软件系统的测试需求研究并设计了一种自动化系统测试的架构。从测试平台硬件组成、软件架构设计、测试过程设计及应用效果等方面描述了该测试平台的设计思路。经验证表明,该测试平台可根据不同的软件系统测试需求进行环境搭建,并以脚本方式编写对应的测试用例。测试软件经配置后可自动运行测试脚本并实时监控,生成测试日志。此设计提高了测试设备的重用性,提高了系统测试开发效率。

关键词:嵌入式软件;自动化测试;系统测试;测试平台;Python语言

01

概述

随着计算机技术和飞机设计的不断发展,机载软件的功能日渐增多,软件设计也越来越复杂。而飞机这种交通工具的特殊性也对机载软件系统的可靠性、安全性提出了更高的要求,因此需要通过全面、多样的测试手段对机载软件系统进行测试,保证软件的功能、性能达到设计要求,运行稳定可靠。

当前机载软件多为嵌入式软件,一般传统的嵌入式计算机软件系统测试都是基于各种通用仪器或专用设备对被测系统的运行进行监测,这种专用测试设备的开发周期长、成本高、复用性差[1,2],且大多无法在其他嵌入式系统中进行重用,不利于嵌入式软件系统的快速更新迭代,同时也是一种极大的资源浪费。

为了提高测试设备的重用性,简化测试流程,提高测试效率,从而保证产品质量,提出了一种基于机载嵌入式软件系统的自动化测试方法。该自动化测试方法采用主流的上/下位机架构,可模拟机载设备的飞行状态输入,并通过自动化测试平台进行测试,便于对测试数据进行监控、记录和处理。

02

系统结构

1

硬件架构

测试平台由上位机、下位机、通信网络等部分组成[3]。系统硬件结构图如图1所示。

上位机工作在主控计算机上,下位机工作在测试计算机上;上、下位机通过网络通信协同完成系统测试。

主控计算机(上位机)采用Windows操作系统,主要用于开发、运行自动化测试软件、控制测试进程、记录测试结果等。主控机通过网络向下位机发送操作指令,待测试计算机(下位机)采用Linux操作系统,主要功能为接收上位机的指令,解析指令后调用相应板卡完成操作,并向上位机返回操作结果。

系统通过ARINC429总线、离散量、以太网和AFDX网络等方式对被测设备的各个方面进行综合测试。

2

软件架构

测试平台的软件分为3部分:(1)运行在上位机(主控计算机)上的有界面的测试软件;(2)运行在下位机(测试计算机)上的软件;(3)用Python开发的接口模块部分。

主测试软件,即自动化测试软件,包含人机交互界面,通过以太网与测试主机相连,可通过调用编写的脚本,通过下位机对被测设备上的软件进行测试[4]。主测试软件在测试过程中向被测软件提供输入数据激励,模拟被测软件外部环境,并对反馈数据进行处理,得出软件功能是否正常的结论,并记录测试日志。若得出软件功能异常的结论,则通过界面显示错误信息,帮助测试人员及时了解故障信息。

下位机驱动,通过以太网接收主控机的命令,通过驱动调用板卡发送相应消息,并获取反馈数据通过以太网发送给主控机。

使用Python开发的接口,和测试软件共同工作在主控机上。通过对测试计算机上通信板卡的驱动进行封装并生成Python接口,上位机可通过Python命令调用板卡进行发送。

系统软件部署结构图如图2所示。

02

测试设计

测试过程:

(1)创建测试项目,确定测试用例

根据项目具体的测试需求和测试环境,确定测试方案、测试项目和测试用例[5]。

(2)编写测试脚本

测试脚本通过生成指令获取反馈数据来进行测试。上位机自动化测试软件采用Python语言开发实时测试脚本,以实现数据发送、获取,日志生成,测试结果反馈,多线程等功能,完成测试用例的测试目标。

(3)配置测试环境

根据项目测试方案和测试用例需求,搭建测试需要的硬件环境和网络环境,部署测试需要的通信板卡,配置上下位机间的以太网通信接口IP及同测试设备相连的接口IP,保证测试设备–上位机–下位机间的以太网通信和数据通信畅通。

(4)测试设备自检

由测试设备发出自检测命令,被测设备对自身的硬件做自检测,并将检测的结果返回给用户[6]。自检程序属于自动化测试软件的一部分,在每次启动测试软件后自动运行,可检测以太网环境、AFDX板卡、A429接口等是否正常运行,输入输出是否正确。

(5)修改测试配置文件

根据测试用例编写相应测试脚本后,通过修改配置文件,配置自动化测试中调用的测试脚本及运行次数,并配置测试设备件号、测试地点、测试时间等记录项,在自动测试时记录在测试日志文件中。

(6)自动化测试

上位机自动化测试软件能够一键式自动执行配置文件中指定的测试脚本,进行全自动测试[7],按照脚本预先设定的顺序发送激励、接受数据,并对接收数据进行处理和判断,形成测试结果,并实时显示在测试软件界面上。

(7)测试过程监控及日志记录

自动化测试软件中,测试监控窗口由用户定义,在测试过程中实时显示此次测试运行的脚本名称、测试结果、测试成功次数、测试失败次数等信息,若有测试失败,则还会显示相应的测试未通过项。测试中所有的关键步骤都会记录日志,以备发生故障时进行故障排查。

以上为进行功能测试时的一般步骤。在进行数据处理速度等需要高时间精度、需要短时间并发大量数据的性能测试时,若使用上位机发送命令–调用下位机板卡发送激励的方法,(1)会形成一定的通信延时,(2)测试命令只能串行发送,不能较好地对被测件的性能进行测试,因此在文中的测试架构中,经针对性设计,在对网络环境进行配置后,可在下位机编写测试脚本,直接调用通信板卡发送激励数据,并接收数据进行性能测试。如此即可弥补仅用上位机进行测试的弊端。

03

应用效果

采用该测试架构设计对待测嵌入式软件进行系统测试后,测试人员可根据测试需求编写相应测试脚本,并使用自动化测试软件自动运行各项功能测试。如图3所示,测试过程中,可实时看到脚本运行结果、运行次数,当有错误出现时,软件界面报错,并在告警栏显示告警信息;测试完成后,对测试结果自动总结,并生成报告。

04

结语

该测试架构设计采用主控机+测试主机+被测件的硬件设计[3],硬件环境和网络环境均可配合不同的测试需求进行针对性更改,具有较好的复用性;通过网络环境的配置,既可在主控机上运行自动化测试,也可在测试主机上直接进行性能测试,测试架构较为灵活。在使用自动化测试软件进行测试时,测试人员可通过编写测试脚本实现测试用例,测试过程中测试脚本执行、测试结果收集、测试日志生成均为自动化执行,降低了嵌入式软件的系统测试工作量,极大地提升了测试效率,进而提升了软件质量。如何利用各种测试方法和手段开发出具有普适性的的测试方法,是广大相关行业人员的共同目标[8]。此测试架构设计也将随着嵌入式系统测试方法与手段的应用发展不断改进。

《软件研发与应用作者:李昌,蒋友毅,宋雁翔,冯雷,作者单位:成都飞机设计研究所,成都 610091)转载此文章仅以传知识为目的如有任何版权问题请及时联系我们!