-
0 引言
-
根据SAE ARP 4754A所规定的民用飞机研制流程,民用飞机应在早期设计阶段进行飞机级需求的确认与验证工作[1]。在传统的工作中,这一过程主要基于需求文档完成。近年来,以场景作为工具,在场景中进行测试工作,完成需求的确认与验证的方法逐渐受到工业界的关注。而要实现基于场景的测试,首先要解决的问题是测试用例的生成[2],在以往的工作中测试用例由测试人员手动编写完成,存在着效率低和容易遗漏的缺点,基于场景模型自动生成测试用例逐渐成为研究的热点。本研究采用SysML活动图构建民用飞机运行场景模型,提出了基于场景模型的测试用例生成和排序方法,为后续实施基于场景的自动化测试提供了理论基础。
-
1 基于场景的测试
-
基于场景的测试最早应用于软件工程领域,通过软件的具体应用场景来生成测试用例,以期找出软件中的错误[3]。近年来,逐步应用于自动驾驶等领域,通过建立测试场景数据库来进行驾驶安全性测试工作[4-5]。在民机领域,主要利用场景分析来进行需求的捕获工作[6-7],但由于民机本身作为一个复杂产品,加上其所处的环境具有多重影响因素,基于场景进行相应的工作还处在初步阶段[8-10],有很大的进步空间。
-
2 民机运行场景建模
-
2.1 建模步骤
-
民机运行场景是指飞机在交付后投入载客运行阶段所处的环境。在建立场景模型的过程中首先需要明确构建场景的目的,即构建场景的用途。其次明确场景中的主要参与方,根据飞机所处不同的飞行阶段,由飞机、航空公司和空中管制单位交替参与,最后需要确定各参与方自身在场景中所需完成的任务和参与方之间的交互过程。
-
2.2 运行场景模型基本元素
-
根据前文所述,场景模型应具备描述各参与方本身的任务流程和各参与方之间交互过程的功能,可采用SysML活动图建立运行场景模型,构成场景模型的基本元素如表1所示。
-
2.3 运行场景模型实例
-
本研究以飞机在进近过程中触发TAWS模式1下降率过大告警这一场景为例,建立模型。根据2.1小节所述的建模步骤,首先应明确的是建立场景的目的,即验证飞机在遭遇下降率过大这一情况时能否脱离告警包线爬升至安全高度,进而确定本场景的参与方为飞机和进近管制,最后确定各参与方相应的任务流程。下降率过大告警的示意图如图1所示。告警包线方程如图2所示。当飞机进入外层告警包线时,系统将发出“SINKRATE”语音警告,直至飞机脱离告警包线。若飞机继续进入内层告警曲线时,则将发出“PULL UP”语音告警。值得说明的是,本研究不考虑陡峭进近等特殊情况。
-
图2中外层告警包线斜线部分方程如公式(1)所示:
-
式中,RA为无线电高度,单位为ft,DR为下降率,单位为ft/min。
-
内层告警包线方程底部斜线如公式(2)所示:
-
上部斜线公式如公式(3)所示:
-
式中,变量名称与单位与公式(1)一致。
-
根据以上信息,可以建立如图3所示的场景模型。
-
图3 场景模型实例
-
3 测试用例生成方法
-
测试用例生成方法如图4所示,场景的测试用例由测试路径和测试数据组合而成。对于测试路径,从建立的模型中提取结构信息,搜索初始点到终点的路径即可得到测试路径。对于测试数据,则需要分析模型各节点的内容信息,确定关键参数的取值范围,进而获得测试数据。最后将测试路径和测试数据结合可以得到测试用例,进而可以得到用于该场景的测试用例集。
-
图4 测试用例生成方法
-
3.1 测试路径生成方法
-
在以往利用活动图生成测试路径的过程中,首先将活动图转化为有向图,在有向图中搜索测试路径,然而由于循环结构和并发结构测试路径的多样性,这种方法所产生的测试路径充分性难以得到保障。因此本文提出如图5所示的测试路径生成方法,首先将建立的场景活动图模型保存为XML文件,从XML文件中提取出原活动图的节点和边的信息,将活动图转换为有向图,然后识别出有向图中的循环与并发结构,并用复合节点替代,生成简化后的有向图。利用深度优先搜索算法,在简化后的有向图中搜索从初始节点到流终点和初始节点到结束节点间的所有路径,即可得到初始测试路径。在得到初始测试路径后,处理其中的复合节点,即可得到最终测试路径。
-
3.1.1 初级测试路径生成方法
-
根据前面所述的方法,将2.3小节所建立的场景活动图模型转化为图6所示的有向图模型。
-
图6中各节点编号所对应的原活动图内容如表2所示。替换规则是用活动图节点的简称加数字序号代替原活动图节点。
-
图5 测试路径生成方法
-
图6 有向图模型
-
进而识别图6中的循环和并发结构,采用复合节点L1代替循环结构,用复合节点C1代替并发结构,可以得到图7所示简化后的有向图。
-
图7 简化后的有向图
-
3.1.2 最终测试路径生成方法
-
在生成初始的测试路径后,还需处理复合节点所替代的循环与并发结构以生成最终的测试路径。
-
1)循环结构测试路径生成方法
-
如图8所示是一个典型的循环结构,根据不同的输入情况,可能多次触发判断条件,执行循环活动,通过设置循环次数得到测试路径。本研究设置循环次数为1次。可以得到两条测试路径:
-
(1)A1→A2→A3→DN1→A4
-
(2)A1→A2→A3→DN1→A2→A3→DN1→A4
-
2)并发结构测试路径生成方法
-
图9所示的是一个典型的并发结构,并发结构由分叉节点开始,当控制流进入分叉节点后会分成具有并发关系的多个线程,当执行完各自线程上的活动后,这些线程汇聚到汇合节点,在汇合节点同步后,控制流才能继续向下执行。
-
图8 循环结构
-
图9 并发结构
-
并发结构的测试路径基于排列的方式生成,首先对并发结构内的所有活动做一次排列可以得到4!=24种组合,添加A2>A3>A4这一限制条件后可以得到如下四条测试路径:
-
(1)FN1→A1→A2→A3→A4→JN1
-
(2)FN1→A2→A1→A3→A4→JN1
-
(3)FN1→A2→A3→A1→A4→JN1
-
(4)FN1→A2→A4→A4→A1→JN1
-
利用3.1.1及3.1.2节所述测试路径生成方法处理建立的场景模型,可以得到14条测试路径,表3中展示部分测试路径。
-
3.2 测试数据生成方法
-
测试用例中的测试数据是从活动图的节点中获取的,要生成测试数据,需要分析活动图的节点的内容,找到能生成测试数据的信息。以本研究所建立的场景模型为例,关键参数是飞机的无线电高度(RA)和下降率(DR),有三个节点A1、A3和A8需要测试数据。
-
首先需要确定飞机初始的下降率和无线电高度,本研究设置飞机的初始下降率为2 000ft/min,初始无限电高度为2 500ft,即为A1节点的测试数据。
-
图10 测试用例
-
参考模式1外层告警包线的判断条件确定RA的取值范围为10ft~2 450ft,DR的取值下界为964ft/min,取值上界无限制。若想触发外层告警,DR与RA的取值还应满足外层告警包线方程,可将A3节点测试数据取为(DR=3 500,RA=1 400)。
-
参考模式1内层告警包线的判断条件确定RA的取值范围为10ft~2 450ft,DR的取值下界为1 482ft/min,取值上界无限制。若想触发内层告警,DR与RA的取值还应满足内层告警包线方程,可将A8节点测试数据取为(DR=4 500,RA=1 000)。
-
3.3 测试用例
-
将生成的测试数据插入到最终测试路径中即可获得如图10所示的5条测试用例。
-
4 测试用例排序方法
-
为了提高后续测试工作的效率,引入测试用例重要度这一参数,将生成的测试用例进行排序,优先执行重要度高的测试用例。测试用例重要度计算如式(4)所示:
-
式中,Wtest case为测试用例重要度, 为测试过程所占权重,其计算方法如公式(5)所示,即由测试路径上各节点的权值求和后取算数平均值得到,W2为测试预期结果所占权重。r为动态参数,取值在0~1之间,用于调节测试过程与测试预期结果之间的关系,若r的取值范围在0~0.5,则认为测试过程不如测试结果重要,若r的取值范围在0.5~1,则认为测试过程比测试预期结果重要。若r取0.5,则认为测试过程和测试预期结果同等重要。
-
式中,n为该条路径上活动节点的数量,Wi为活动节点的权值。
-
测试路径上活动节点权值的分配原则如下:活动节点位于单一泳道内,且不与其他泳道交互的权值定为1;活动节点与其他泳道有交互的权值定为2。
-
测试预期结果也即测试用例的期望输出,表现为场景中飞机的最终状态。测试预期结果权重可以按如下规则分配:
-
若测试预期结果表明飞行安全未受到影响,飞机可以继续完成飞行任务,则其权值定为1;若测试预期结果表明飞行安全受到中等程度影响,但飞机经过调整后可以继续完成飞行任务的,权值定为2;若测试预期结果表明飞行安全受到较严重影响,可能造成飞机损毁、人员伤亡,例如迫降等情况,权值定为3;若测试预期结果表明飞行安全受到非常严重影响,造成飞机严重损毁、人员伤亡,例如飞机坠毁,权值定为4。
-
按照上述方法计算图10所给测试用例的重要度,其排序结果如表4所示。
-
5 结论
-
本文构建民用飞机典型运行场景,基于场景模型生成测试用例,引入测试用例重要度这一概念,对生成的测试用例进行排序,解决了进行基于场景测试的初步问题。下一步研究将细化场景模型的颗粒度,同时构建场景的仿真模型,关注测试用例的自动执行,打通基于场景的自动化测试途径,实现基于场景的需求确认和验证。
-
参考文献
-
[1] Society of Automotive Engineers(SAE).Guidelines for development of civil aircraft and systems:SAEARP4754A[S].U.S.:SAE,2010.
-
[2] 陆清,吴双,赵喆,等.数字孪生技术在飞机设计验证中的应用[J].民用飞机设计与研究,2019(3):1-8.
-
[3] 曹明,尹新.基于场景的软件测试用例设计方法研究[J].科学技术创新,2019(14):74-75.
-
[4] 马仲男,陈铭.基于自动驾驶道路测试数据的场景仿真[J].电子技术,2021,50(3):28-29.
-
[5] 任秉韬,邓伟文,白雪松,等.面向智能驾驶测试的仿真场景构建技术综述[J].中国图象图形学报,2021,1:1-12.
-
[6] 赵良玉,叶俊杰,何琪,等.基于MBSE的民机起飞场景仿真[J].系统仿真学报,2021,33(10):2499-2510.
-
[7] YIN T,FU S.Workload-oriented flight scenario for evaluation of pilot-aircraft interaction[J].Procedia Engineering,2014,80:656-667.
-
[8] ZHU H Y,MENG H,LU S S,et al.The flight scenarios development method for cockpit design and evaluation of civil aircraft[C].Cham:Springer,2020.
-
[9] ZHANG X,DING X,WANG K.A MBSE based flight scenario identification approach for civil aircraft certification test[C].[S.I.:s.n.],2020.
-
[10] HE Y W,SUN Y C,ZHANG X N,et al.Operational scenario analysis method for civil aircraft based on requirement capture[C].CHINA:IOP Publishing,2021.
-
[11] Honeywell International Inc.Product Specification for the Enhanced Ground Proximity Warning System[S].U.S.:Honeywell International Inc,2009.
-
[12] 何方.飞机环境综合监视模型与系统设计研究[D].上海:上海交通大学,2016.
-
[13] 钱云燕.“地形感知与告警系统”阈值研究[D].上海:上海交通大学,2013.
-
摘要
大型民用飞机研制是一项多系统、多学科交联的复杂系统工程,民用飞机主制造商应在早期设计过程中进行需求的确认和验证工作,以找出设计中的缺陷,减少后续迭代设计成本,缩短设计周期,提高产品的竞争力。通过引入软件工程领域基于场景测试的方法,利用场景作为工具,以飞机在进近过程中触发TAWS模式1告警为实例,采用SysML活动图构建民机运行场景模型,基于场景模型生成测试用例,同时引入测试用例重要度对测试用例进行排序,用于指导后续的测试工作,为实现基于场景的需求确认和验证提供了支撑。
Abstract
The development of large-scale civil aircraft is a complex system engineering of multi-system and multi-disciplinary cross-linking. The main manufacturer of civil aircraft should implement requirements validation and verify work in the early design process to find out the defects, reduce the cost of subsequent iterations of design, shorten the design cycle and improve the competitiveness of the product. In this paper, we introduce the scenario-based testing method in software engineering field by using scenario as a tool. Taking the aircraft triggering TAWS mode 1 warning during approach as an example, we used SysML activity diagram to construct the civil aircraft operation scenario model and generate test cases. Introduce the test case importance to rank the test cases for guiding the subsequent testing work, which can provide support for realizing the scenario-based requirement validation and verification.
Keywords
Scenario-based testing ; operation scenario ; test case ; SysML