APP下载

航空电子系统基于需求的自动测试方法*

2010-09-26

电讯技术 2010年8期
关键词:格式化自动测试测试用例

(中国西南电子技术研究所,成都 610036)

1 引 言

随着技术的发展,航空电子系统(以下简称航电系统)从实现方式上必然向着综合化、通用化、模块化方向发展[1],同时适航性、安全性要求也越来越高,更加注重系统的设计测试验证过程。此外,航电系统的开发几乎都是采用“自顶向下”的设计过程,其开发过程一般包括系统定义、系统设计、软硬件开发、系统综合、系统验证、系统认证、用户确认等过程,其中系统验证则是保证系统满足设计要求的必须手段,也是系统认证、用户确认的基础。验证、认证和确认有观察(Inspection)、分析(Analysis)、示范(Demonstration)和测试(Test)等4种方法,其中观察、分析和示范是对不可测试需求项的特殊验证分析过程,而测试则是对可量化、可监控的过程或数据进行测量比对的验证方法。

近几年来,自动化测试工具得到了广泛的应用,基于性能和过程的自动测试已经有很多探讨,但从系统需求出发,验证系统设计的自动测试方法探讨并不多。为此,本文提出了一种基于航空电子系统设计需求的自动测试方法。

2 航空电子系统需求

航空电子系统需求是描述客户或使用者期望达到的目标和要求。从需求的阶段不同,可分为用户需求和系统需求。

用户需求是用户期望最终系统达到的各种功能、性能要求,但是往往在确定用户需求不能够详细界定系统的各种输入、输出条件,故不能直接用于指导系统设计。在论证或前期系统定义阶段,系统设计者的主要目标是深度挖掘用户需求,尽可能的使用户将需求描述正确、完整、一致、精确和简明[2]。

系统需求是用专业、系统的语言全面描述用户或上一级系统的直接需求和隐含的需求。系统需求还需注意可实现性、可验证性和可追溯性。通过系统需求分析应能将所有需求区分为可测试需求和不可测试需求。对于不可测试的需求应能通过观察、分析、示范等方法进行验证,对于可测试的需求在系统设计阶段应设计测试用例和测试方法。

在航空电子系统设计阶段将依据系统需求进行系统段的详细设计(SSDD),制定详细设计文档(DD)、接口控制文档(ICD)以及对系统部件的详细设计要求文档。

系统测试是在各部件分别完成了各自部件级功能性能测试的基础上,基于系统需求依据系统详细设计文档和接口控制文档开展的。主要目的是用于验证系统设计的正确性和各部件在系统流程中工作的正确性。

随着航空电子系统计算机应用程度的不断提高,为保证测试的覆盖性和真实性,系统测试更加强调动态、模拟、综合,自动测试的优势就能够在系统测试中很好地发挥作用[3]。

3 测试流程总体架构

图1给出了基于需求的自动测试流程,整个流程包含4个关键环节,下面就针对这4个环节中涉及到的执行者和执行产品进行阐述。

图1 测试流程图

3.1 行业专家

行业专家挖掘系统需求进行详细设计后,制定出详细设计文档(DD)和接口控制文档(ICD)。其中DD文档详细准确、全面定义了系统在各种输入条件下的响应过程及输出结果,ICD文档定义系统内外各部件的接口格式和协议。这两份文件就是自动测试系统的需求文件。

3.2 行业专家、测试专家

行业专家和测试专家根据ICD和DD借助工具软件编辑生成格式化的接口定义文件、格式化的测试用例文件和测试通路图,即测试策略。

(1)格式化的接口定义文件是ICD的格式化描述,它不仅包含了接口定义,而且还对其中数据元素的模型进行规定,为后期根据该数据模型生成测试数据;

(2)格式化的测试用例文件是测试用例的格式化描述,描述了测试用例如何使用相关的数据块按照哪种时序输入被测系统,和对被测系统输出的那些数据块如何进行检测,同时对检测结果行业专家给出专家性建议;

(3)测试通路图是测试用例执行的关系图,它的每条通路就是一个测试流程,自动测试系统将按照这个流程按照一定策略来执行,给出故障诊断书。因此要求不同通路间应该是正交的。

3.3 预处理模块

预处理模块将根据格式化的接口定义文件和测试用例文件中的描述生成待测试的数据。如“高度”这个数据在某系统中的模型为线性的,那么它将产生边界值和中间值的测试数据。同时,预处理模块也将根据测试用例文件生成验证脚本和专家建议书。

3.4 自动测试模块

自动测试模块是系统自动测试的总控单元,自动调动测试环境各单元工作在相应的测试状态,按照测试策略规定的顺序执行测试,并自动检查记录测试结果,生成测试报告。

自动测试模块以测试通路图为序,按照下面的算法执行并形成分析故障树:

(1)读取一条通路,形成测试用例集X={x1,x2,x3,…,xi,…,xn};

(2)顺序读取xi│i∈(1,2,3,…,n),进行测试;

(3)如果xi测试通过,那么i=i+1,如果i>n,终止算法,否则重复步骤2;

(4)如果xi测试未通过,姑且认为xi有问题,那么从待测集合中去掉xi形成新的测试用例集X={x1,x2,x3,…,xi-1,xi+1,…,xn},i=1,如果i>n,终止算法,否则重复步骤2;

(5)如果xi测试未通过,若测试用例是前后相关的,也有可能是xi-1引起的,那么从待侧集合中去掉xi-1形成新的测试用例集X={x1,x2,x3,…,xi-2,xi+1,…,xn},i=1,如果i>n,终止算法,否则重复步骤2。

测试策略图是整个系统测试的过程描述,如图2所示,它由若干个测试通路组成。由于上面算法的复杂度为nlgn,相对比较耗时,为了加速测试的进行,可以在保证不同测试通路间正交的前提下,尽可能地缩短每条测试通路的长度,以达到加速测试速度。

自动测试模块可根据测试任务的需要既可选择全部测试通路进行全部测试项目的测试,也可选择需要测试通路进行部分测试项目的测试。

不同测试通路因为是正交的,所以测试通路间的测试用例是不相互影响的。在自动测试模块的控制下,当上一测试通道完成后,根据测试策略自动进入下一测试通道的测试,直到测试策略中的所有通道测试完成。

图2 测试通路执行过程

4 自动测试系统设计实现

4.1 自动测试平台设计

在某航电子系统测试系统设计过程中,采用了上述方法进行设计。首先进行了测试系统网络优化设计,即将目标测试系统复杂拓扑结构优化为总线结构,如图3所示。总线上产生各类激励数据,在测试系统中各单元直接可见,并能根据需要选择使用自身所需要的数据,接受系统控制实现自动测试。

自动测试系统主要由分布式计算机控制处理系统和激励系统组成。其中,分布式计算机控制处理系统完成模拟、仿真、动态数据产生、测试控制等功能,与机载系统及激励系统接口;激励系统在系统集中控制下产生需要的各种射频及数据激励信号,并能进行量化测试。

图3 对目标系统的改造示意图

被测系统即为机载航空电子系统,其相互间的物理及逻辑关系与真实装机情况一致。

该系统网络是总线结构,自动测试软件可以分布在网络中任意节点,仿真目标系统中需要的输入数据,并根据需求自动采集目标系统的响应,根据需求形成测试结果,系统总体构架如图4所示。

图4 航电子系统自动测试系统总体架构

4.2 测试脚本设计

测试脚本是测试过程的格式化描述,它是由一系列测试用例组成,能够引用格式化的接口控制文件,能够被预处理模块和自动测试模块程序解释执行。格式化的规则可根据具体使用的工具和需要进行统一严格的规定。下面是本测试系统设计的一个测试用例示意:

{

/*这是第一个测试用例*/

[1001]

[

验证飞行启动过程,导航设备解算航参情况

]

[

/*说明段*/

‘d1cn01.xml’

‘cnd101.xml’

时间间隔 1ms

时间抖动 1ms

D1CN01-05-init:D1CN01 (逻辑块号=5,物理块号=1,状态=初始态)

D1CN01-05-start:D1CN01 (逻辑块号=5,物理块号=1, 状态=开始)

CND102-03:CND101 (逻辑块号=3,物理块号=2)

]

[

/*时序段*/

D1CN01-05-init ->

waitfor 50

D1CN01-05-start -> CND102-03

]

[

/*验证段*/

D1CN01-05-start: 空速 = 1000

Note: 空速不是1000说明,系统启动过慢,或者温度低于临界值,或者系统故障。

FuncCmp(D1CN01-05-start:经度,D1CN01-05-start:维度,D1CN01-05-start:高度,CND102-03:方位,CND102-03:距离,CND102-03:俯仰)

Note: 系统解算出现异常。

]

}

本测试系统测试脚本主要的语法规则如下:

(1)测试脚本由一个或多个用例组成;

(2)每个测试用例均以“{”和“}”包含,用例中包含编号段、说明段、时序段和验证段,每个段采用“[”和“]”包含;

(3)编号段,编号是一个测试用例的唯一表示,它是由十进制数字组成的在测试策略图中一个测试用例的唯一标识;

(4)说明段声明了时序段和验证段所使用的资源,如所使用的ICD文件和变量的定义,后面方便时序段引用;同时说明段也定义了本测试用例的时间间隔和时间抖动值(即时间精度要求);例子中‘d1cn01.xml’和‘cnd101.xml’ 是后面引用的格式化接口控制文件的声明;“D1CN01-05-init : D1CN01 (逻辑块号=5, 物理块号=1,状态=初始态)”则定义了“D1CN01-05-init”这个变量;时间间隔和时间抖动均为1 ms;

(5)时序段定义了测试的激励数据和输出数据及其时序,测试系统按照给定的时序给被测系统输入一系列数据,同时检测系统对其的响应。例子中,“D1CN01-05-start -> CND102-03”左侧的‘D1CN01-05-start’表示输入块而右侧的‘CND102-03’表示系统对‘D1CN01-05-start’块的响应输出;而‘waitfor’则表示等待时间,合在一起就是按照一定的时序给被测系统输入一系列数据,检测系统对其的响应;

(6)验证段定义了该次测试的验证方式和失败原因/建议。对系统的响应进行运算判断系统的响应是否符合系统的设计,为了更方便进行计算验证的方式是使用Lua脚本;

(7)注释,在脚本中任意位置需要进行注释说明的地方可以进行注释,每个注释采用“/*”和“*/”包含,解析软件不对其进行处理。

4.3 测试结果的生成和分析

自动测试系统的最终输出将包含测试日志、测试故障分析和测试报告3份报告。

(1)测试日志:是测试过程的客观描述,它详细记录整个测试过程;

(2)测试故障分析:根据重新分析整理测试过程,形成故障分析树,并以图形化的方式直观的显示;

(3)测试报告:统计测试过程中的各类数据,同时汇总综合专家库中的建议和故障分析树中的推测,形成要求格式的测试报告。

5 结 论

本文论述了应用于航空电子系统验证的基于需求自动测试分析系统的原理和流程,可以看出自动测试有3个关键方面:

(1)形式化描述测试接口和过程:系统设计文件(DD、ICD等)往往是采用航空电子系统专用语言,而非格式化语言进行描述。格式化是自动分析测试的前提,需要收集大量行业信息素材,分类归纳最后给出准确的格式化描述;

(2)测试策略设计:测试策略设计中应以系统故障模式及影响分析确定的故障树模型和系统设计流程进行设计。为了加速测试过程,让结果更具时效性,需要对生成故障树的过程进行简化,目前一些可用的方式有基于Petri网(知识-对象-推理)的方法和基于BP神经网络(学习期-工作期)等多种方式[4];

(3)对数据的有效处理:测试完成会留下大量的数据,这将为我们分析目标系统中存在和潜在的问题提供支撑。可以利用如正交试验(DOE)等来解决主要影响因素的选取和输出特性目标的确定[5]。

如果说测试是科学的基础,那么自动分析测试就是科学技术的提速机,为科学技术的发展提供充足的动力。

参考文献:

[1] 姚拱元,吴建明,陈若玉.航空电子系统综合技术的发展与模块化趋势[J].航空电子技术,2002,33(1):1-10,44.

YAO Gong-yuan,WU Jian-ming,CHEN Ruo-yu.The Growth of Avionics Integration Technologies and Trends of The Modularization[J]. Avionics Technology, 2002,33(1):1-10,44.(in Chinese)

[2] 卢梅,李明树.软件需求工程-工具及方法评述[J].计算机研究与发展,1999,36(11):1289-1300.

LU Mei,LI Ming-shu.Review of Methods and Tools of Software Requirements Engineering[J]. Journal of Computer Research & Development,1999,36(11):1289-1300.(in Chinese)

[3] 史彦斌.航空电子综合测试系统的发展现状及趋势[J].计测技术,2005,25(4):1,31.

SHI Yan-bin.The Development Actuality and Tendency of Aviation Electronic Equipment Integrated Detection System[J].Aviation Metrology & Measurement Technology, 2005,25(4):1,31.(in Chinese)

[4] 马敏.并行多任务自动测试系统分层化建模及其关键技术研究[D].成都:电子科技大学, 2009.

MA Min.Study on Hierarchical Modeling Method and Key Technologies of Parallel Multi-task Automatic Test System[D].Chengdu:University of Electronic Science and Technology of China,2009. (in Chinese)

[5] 于秀山.正交试验设计方法在测试用例设计中的应用[J].计算机工程与应用,2004,20(18):62-63.

YU Xiu-shan.The Application of Orthogonal Testing Method in Test Case Design[J].Computer Engineering and Applications, 2004,20(18):62-63.(in Chinese)

猜你喜欢

格式化自动测试测试用例
现代人守则:昏死之前请把手机格式化
基于SmartUnit的安全通信系统单元测试用例自动生成
JXG-50S型相敏轨道电路接收器自动测试台
基于混合遗传算法的回归测试用例集最小化研究
关于某型雷达自动测试系统的几点认识和建议
格式化
基于依赖结构的测试用例优先级技术
基于ATE与BIT组合的NAMP自动测试与故障诊断系统设计
一种卫星低频接口自动测试系统