航空机载软件测试工具链设计与应用

航空机载软件测试工具链设计与应用

天津航天中为数据系统科技有限公司天津300301

摘要:随着航空飞行器研制发展,航空机载软件呈现出了数量多,代码量大,逻辑复杂等特点。航空机载软件的研发也采用了基于模型的系统工程方法,系统设计能力得到了较大提升;多个型号飞机并行研制增加了机载系统数量,需要同时开发、测试和维护的软件产品数量多、软件状态复杂。传统的软件测试的模式已经难以适应当前的航空机载软件的研发。如何提前发现问题,保障软件质量对传统模式下的软件测试提出了挑战。

关键词:测试工具链;测试自动化;交叉测试环境;Devops

引言:

通过在企业内部开展航空机载软件测试工具链设计与应用的探索,深切感觉工具链的实质是让工具环境、自动化能力成为软件研制的一部分,以技术能力解决过去用人工加流程要解决的问题。但工具链只是人、机、料、法、环的其中一环,代表着一种新的思考方式和文化。相信随着国内机载软件研制能力的持续进步,更多的理念能够融入研制流程,提高软件研制水平。文章主要针对航空机载软件测试工具链设计与应用方面进行分析,希望能够给相关人士提供重要的参考价值。

1.背景

近年来,随着科学技术的迅速发展以及高新技术在新一代战斗机中的大规模运用,航空机载系统的能力不断提升,系统的综合化和复杂度也越来越高。航空机载软件是实现飞机功能的重要载体,与以往三代飞机相比,新一代飞机除了软件规模及复杂度呈指数上升以外,机载软件的研制主要发生了以下两大变化:首先,系统设计模式发生了变化。基于模型的系统工程方法在型号中逐步推广及实践。MBSE主张以模型的形式支撑系统和软件设计,持续贯穿整个系统研制过程。MBSE的使用,软件设计人员基于系统模型,在完成软件需求分解、软件架构与功能设计后,代码可通过模型驱动的开发手段自动生成,大大提高了软件开发的效率。其次,多个型号并行研制,需要并行开发、测试和维护的软件产品数量多、软件状态复杂。随着机载软件在飞机所占功能比例越来越大,重要度越来越高,软件从原来附属于成品设备,剥离出来作为产品来进行管理,相应的技术管理要求更为严格;企业在承担型号任务上,从原有一两型飞机研制向多型号并行研制转变,同时承担的有人飞机、无人飞机达到十多个,软件产品研制呈型号多、产品多、技术状态多的“三多”特点。新的系统设计模式采用及软件多项目并行的现状,对现有以人工方式为主的机载软件测试提出了巨大的挑战,需要与之适配的软件测试手段。挑战主要包括以下两个方面:首先,MBSE方法的引入,带来了测试工作的“左移”和“右移”。测试左移是指测试向软件研制的早中期移动,测试模式将向测试驱动开发(TDD)模式转变。在软件研制的早中期,软件版本发布频繁,需求变更范围大,要求版本迭代周期为1~2周完成一个版本的软件测试工作,对测试效率要求非常高;测试右移是指测试向软件研制的验收、维护阶段移动。系统及软件设计人员很重视软件验收测试的效果,要求测试人员对系统功能进行完整的功能覆盖测试。针对系统、外场试飞反馈的故障,要求测试人员能够对故障进行分析,对系统、软件问题快速复现和定位其次,由于软件多产品线并行,软件测试工作量十分巨大。在型号进度要求相近的情况下,各个软件需要同时开展软件测试,按照传统的手工执行测试的方式,存在测试人员瓶颈的问题。近年来,Devops理念在互联网企业取得广泛的推广和应用。Devops可以看作开发、技术运营和质量保证三者的交集,是一种重视“软件开发人员”和“IT运维技术人员”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

2.工具链设计

2.1业务流程

航空机载软件的研制阶段分为F(设计方案)、C(初样设计)、S(试样试制)、D(设计鉴定)、P(批型)阶段。软件测试主要集中在C、S、D阶段,各阶段测试业务需求如下:在C阶段,软件需求、软件架构功能代码已经确定,硬件目标系统仍未设计完成。应采用测试驱动开发方式,尽早考虑,有利于保证后续自动化软件测试的开展。该阶段软件测试的主要工作参与软件需求的讨论,进行测试需求分解;根据测试需求,搭建软件单元、配置项自动化测试框架。在S阶段,由于系统设计变更和软件功能设计更改,软件需求、代码变更十分频繁。该阶段的软件研制具有以下两个特点:一是机载系统状态批次增多,软件状态复杂,测试人员要清楚识别、区分软件版本状态;二是机载软件研制S阶段周期较长,软件开发以增量迭代的方式进行,待测试软件较上一版本变化量小,但累计发放版本多,每个版本均需要保证软件测试质量。针对S阶段的软件研制特点,该阶段软件测试的主要工作为建立测试流水线机制,一条测试流水线对应一项软件的测试环境配置,保证软件版本及测试受控;根据软件需求、设计文档,进行测试设计,使用测试流水线驱动自动化单元、配置项测试;根据软件变更单,进行软件变更影响域分析工作,进行回归测试。在D阶段,该阶段软件已通过设计鉴定,文档、代码状态稳定。该阶段飞机各项科研试飞工作仍在继续,软件仍需排故、升级及维护保障。该阶段软件测试为保证与真实环境一致性,以确认测试为主,主要在系统综合试验台进行;另外,全系统仿真环境配合进行补充功能验证,可帮助问题的定位、排查。

2.2工具链架构

工具链定义:多个工具结合使用时,可以支持和构建领域工程的工作流。结合企业内机载软件测试业务需求,对工具技术架构进行了规划,工具链构建应当求精而不追求面面俱到,设计准则归纳为4个字:“小”、“独”、“轻”、“松”。“小”是指粒度小,只关注某个任务的实现。在构建测试流水线时,要细分流水线的环节步骤。最好一个环节对应到一个工具;“独”是指每个微服务是单独的进程。减少甚至不做工具之间的集成,降低调用服务的复杂度;“轻”是指轻量级的通信机制,尽量使用HTTP接口。在不要求实时性前提下,减少中间件的使用,降低系统复杂性;“松”是指工具链层间、工具之间要松耦合,可独立部署。其中,服务层是将软件测试业务流程中使用的开发和测试工具环境,封装为服务的形式提供测试人员使用。包括代码构建、静态分析、代码审查、单元测试和配置项测试工具。调度层内建一套驱动服务层、集群层的持续集成环境。

2.3工具环境

工具环境是将软件测试业务流程中使用的开发和测试工具,封装为服务的形式提供测试人员使用。工具环境包括代码构建、静态分析、代码审查、单元测试和配置项测试工具。工具环境的构建思路是整合现有的软件测试,将现有脱机使用的测试工具往服务器进行迁移,形成企业内部测试资源池;引入优秀的开源工具,特别是在代码级、单元级测试,往通用软件测试思路转变;开发、测试工具在与调度层进行集成时,要保持“独”和“松”的原则,开发、测试工具之间不做集成开发,通过流程引擎进行调度[1]。

结论:

简而言之,随着航空机载软件研制能力的发展,对传统的、以人工为主的软件测试提出了挑战;基于Devops思想,测试团队提出了一种航空机载软件测试工具链设计方案,实现了机载软件的自动化测试。同时,设计的交叉测试环境采用虚拟化和仿真的手段,使嵌入式软件能够在普通的电脑运行和测试,解决嵌入式软件测试硬件不足的问题。

参考文献:

[1]李昌,邓矢斧,冯雷,等.基于全数字的航空机载软件验证平台研究[J].计算机测量与控制,2019,26(6):130-133.

标签:;  ;  ;  

航空机载软件测试工具链设计与应用
下载Doc文档

猜你喜欢