一种基于模型的航天器系统自动化测试方法与流程

文档序号:11519513阅读:331来源:国知局
一种基于模型的航天器系统自动化测试方法与流程

本发明属于系统测试领域,具体是一种基于模型的航天器系统自动化测试方法。



背景技术:

航天器系统是一个复杂系统,由控制分系统、测控分系统、电源分系统、导航分系统等许多分系统组成。航天器系统的研制过程是一个涉及多学科而极其复杂的过程。在实际研制中,航天器系统是分发给多个不同的生产厂商研制,然后不同模块、不同分系统集成到一起组成整个航天器系统,测试过程也是各模块、分系统分别测试然后集成到一起再整体测试,其中,集成之后的接口测试至关重要,而且,集成之后的系统测试任务繁重,目前主要依靠人工测试完成,这势必造成航天器的研制成本高、效率低、周期长、研制过程复杂、易出错等问题。

航天器系统也是一类典型的安全苛刻系统,系统功能一旦失效将引起生命、财产的重大损失以及环境可能遭到严重破坏。传统的人工测试、非形式化验证等方法已无法满足如今航天器系统批产化和安全苛刻的需求。

近年来,自动化测试和形式化验证等方法成为了航空航天、交通运输等领域验证和测试其复杂且安全苛刻系统的重要手段。

基于模型的测试(model-basedtesting,简称mbt)通过建立描述系统行为的形式化模型对被测系统进行测试,它可在系统需求和设计阶段建模,尽早发现系统需求或者设计错误,具有提高测试自动化程度、降低测试和研制成本、提高测试效率、缩短测试周期等诸多优势,是目前学术界和工业界用于形式化验证和测试软件系统的重要方法。

国外在航空航天领域广泛采用基于模型的测试技术进行系统验证,国内也逐渐认识到基于模型的测试技术在辅助实物验证、降低研制风险和成本等方面的重要作用,并展开了基于模型的测试与试验相关的技术研究。然而,大多研究专注于对构建软件仿真测试系统和环境的研制,测试也只是在虚拟仪器或者虚拟测试平台上进行,或者是对航天器系统的功能和性能进行基于模型的测试,并没有在系统级对总体设计和接口设计进行形式化建模和自动验证测试。



技术实现要素:

本发明为了降低航天器系统测试成本和缩短研制周期,以及为了提高测试质量和准确性,提供了一种基于模型的航天器系统自动化测试方法。

具体步骤如下:

步骤一、针对某个被测航天器,根据该被测航天器系统的总体设计方案,为每个业务分别构建一个窗口树模型;

首先,梳理分析被测航天器系统的业务流程,针对每一个业务,按照业务功能类别进行细粒度划分,得到若干个组成部分,每一个组成部分又包括若干个操作,每一个操作称为一个api,属于同一个组成部分的若干个api划分为一类,该类中的所有api作为窗口树模型的一个窗口节点。

w是该被测航天器系统的每个业务包括的窗口节点集合,w={w0,w1,w2,....wj,...wn},n为整数;wj表示该被测航天器系统的第j个窗口节点,wj={apij1,apij2,...apijm},m≥1;w0∈w为被测航天器系统的启动初始窗口;

然后,根据业务流程中被测航天器系统的动态行为,确定当前窗口节点以及从当前窗口节点流转到另一个窗口节点的事件边。

当从一个窗口节点流转到另一个窗口节点时,会调用至少一个api,对api的调用被称为事件;

被测航天器系统的所有窗口节点之间流转的触发事件的集合用ew表示;定义如下:ew=(eventname,api,parameters);eventname表示某事件的名称,唯一标识一个事件;api表示该事件触发时的操作集合,可以为空;parameters表示调用api时的输入参数和输出参数序列。

窗口节点间的流转关系用表示;其中元素(wi,e,wj)∈rw,e表示窗口节点wi与窗口节点wj之间有父子关系,且wi为父节点,wj为子节点,e∈ew表示窗口父节点wi流转到窗口子节点wj的触发事件。

最后,窗口节点以及事件共同形成了窗口树,定义如下:wt=(w,w0,ew,rw,e)。

步骤二、根据该被测航天器系统的业务流程,划分系统行为主体运行时的不同行为状态,构建行为状态转移图模型,形成该被测航天器系统预定的状态转移规则集;

行为主体是被测航天器系统运行过程中的所有计算、存储和传输过程的承担者;

行为状态转移图定义如下:stg=(s,s0,es,rs,e,f)

其中,s表示状态转移图中全部状态的有限集合,即被测航天器系统的系统级行为状态的有限集合;s0表示初始状态,s0∈s;es是触发状态转移的事件集合或者事件序列集合,为非空有限集合;rs,e是所有状态转移规则的集合:δ:s×es→s;f是s的子集,表示终止状态的集合。

每个状态转移规则包括前置状态、后置状态和触发状态转移的事件,前置状态在触发状态转移的事件下转移到后置状态。

根据行为状态转移图模型,得到各个状态转移规则,最终形成该被测航天系统的状态转移规则集作为设定目标。

步骤三、运用航天器测试用例自动生成方法遍历被测航天器的窗口树模型,生成测试用例集。

窗口树模型中每一条路径刻画一类系统的运行过程,将每条路径分别作为一个测试用例;每个测试用例是该路径上触发两个相邻窗口之间流转的事件对应的api序列的集合。

具体步骤如下:

步骤301、定义事件序列集合的初始值为空;定义当前遍历路径的输出事件序列thiseventlist的初始值为空;

步骤302、针对当前窗口节点w,定义该节点未处理出度变量degree的初始值为0,临时输出事件序列tempeventlist的初始值为空,节点处理标志位的初始值为0;

当前窗口节点w初始值为窗口树模型的根节点;

步骤303、读取当前窗口节点w的出度赋给变量degree,并判断变量degree是否为0,如果是,将序列thiseventlist追加到事件序列集合,转到步骤309;否则,执行步骤304;

当出度变量degree为0,说明当前窗口节点w是叶子节点,叶子节点的下面没有子节点。

步骤304、顺序读取窗口节点之间的二元关系集cbirs中未处理的二元关系,并将当前二元关系赋给临时变量tempcbirs;判断临时变量tempcbirs是否存在,如果是,转到步骤305;否则,已经读取完,转到步骤309;

二元关系集cbirs是窗口树模型中所有相邻节点的二元关系的集合。

二元关系是由窗口树模型中每一对相邻窗口节点及边组成,用元素fromwindow、edgeid和towindow来表示;

临时变量也是包括元素fromwindow、edgeid和towindow的二元关系。

步骤305、判断临时变量tempcbirs中的项fromwindow是否等于当前窗口节点w,如果是,转到步骤306;否则,返回步骤304;

步骤306、获取临时变量tempcbirs的edgeid项追加到事件序列thiseventlist,并将当前二元关系标记为已处理完毕;

步骤307、当前窗口节点w的变量degree减1,并判断变量degree是否等于0,如果是,将当前窗口节点w的处理标志位标记为已处理节点,设置当前窗口节点w的序列tempeventlist等于上一个窗口节点的序列thiseventlist;否则,设置当前窗口节点w的序列tempeventlist等于上一个窗口节点的序列tempeventlist以及上一个窗口节点的edgeid项;

当前节点为根节点时,临时输出事件序列tempeventlist值为空。

步骤308、当前窗口节点w入堆栈,并读取临时变量tempcbirs的项towindow对应的窗口作为当前窗口节点w,返回步骤302;

步骤309、堆栈中的最上面节点出栈并作为当前窗口节点w,判断当前窗口节点w是否存在,如果存在,转到步骤310;否则,转到步骤311。

步骤310、判断当前窗口节点w的处理标志位标记是否标记为已处理节点,如果是,返回步骤309;否则,将当前窗口节点w的序列tempeventlist赋值给新的路径输出事件序列thiseventlist,返回步骤303;

步骤311、遍历被测航天器系统窗口树模型的其余根窗口节点序列,如果没有遍历完,转到步骤302;否则,得到最终的事件序列集合。

步骤312:针对事件序列集合中的每一个事件,找到该事件对应的api序列,得到事件序列对应的测试用例,最终得到整个事件序列集合对应的测试用例集。

步骤四、将生成的测试用例集,逐条输入到航天器数字化模型与验证原型系统中,获取被测航天器的系统级行为的状态转移序列。

具体为:

首先,上传被测航天器系统的测试用例集到航天器数字化模型与验证原型系统上;

然后,针对当前测试用例,测试人员手动触发一个动作指令,原型系统按照测试用例的行为轨迹模拟被测航天器系统执行任务的行为,在测试用例的每一类操作都设置一个跟踪点,每执行测试用例中的一类操作就记录一下被测航天器系统的行为状态和触发状态转移的事件;直到完成一个测试用例,记录下该测试用例执行全过程中被测航天器系统的不同行为状态和触发状态转移的事件,形成执行该测试用例时被测航天器的系统级行为的状态转移序列;

然后,执行下一个测试用例,直至获得覆盖所有测试用例的被测航天器的系统级行为的状态转移序列。

步骤五、通过模型检测算法判断系统级行为的状态转移序列中的每一步状态转移是否遵循设定的状态转移规则集中的规则;如果是,则说明被测航天器系统通过测试用例集的测试;否则,在行为状态转移序列中至少存在一次状态转移没有遵循状态转移规则,被测航天器系统未通过测试。

具体步骤如下:

步骤501、分别设置已处理队列初始值为空,反例队列初始值为空;

步骤502、顺序读取被测航天器系统级行为的状态转移序列,获取当前状态转移序列的当前状态currentst和下一状态nextst;

当前状态转移序列初始值为第一个状态转移序列。

步骤503、顺序读取预定的状态转移规则集中的每一条状态转移规则;

步骤504、判断当前状态currentst和下一状态nextst是否遵循预定的状态转移规则;如果遵循,则转入步骤505;否则,跳转到步骤507;

步骤505、将当前状态转移序列的当前状态和下一状态全部存入已处理队列;

步骤506、判断被测航天器系统级行为的状态转移序列是否全部遍历完;如果是,进入步骤508;否则,转到步骤502,将当前状态转移序列的下一状态nextst值作为下一个状态转移序列的当前状态currentst,同时读取下一个状态转移序列新的下一状态nextst。

步骤507、判断预定的状态转移规则是否全部读出,如果全部读出,将当前的状态转移序列的当前状态和下一状态存入反例队列,返回步骤502;否则,返回步骤503;

步骤508、判断反例队列中是否为空,如果是,输出被测航天器系统通过测试;否则,在行为状态转移序列中至少存在一次状态转移没有遵循状态转移规则,输出被测航天器系统未通过测试用例集的测试,并输出反例队列。

与现有技术相比,本发明具有以下优点:

(1)本发明一种基于模型的航天器系统自动化测试方法,采用形式化的建模方法建立被测航天器系统的窗口树模型,更准确地刻画被测航天器系统的系统级动态行为,使得对被测航天器系统的自动验证更加严谨和准确,进而提高被测航天器系统的测试质量。现有技术采用uml或sysml等具有半形式化语义的面向对象建模语言对被测系统进行建模,不能精确刻画被测航天器系统级动态行为。

(2)本发明一种基于模型的航天器系统自动化测试方法,通过建立刻画系统级行为的窗口树模型并采用模型检测算法,在系统设计阶段就对航天器系统进行测试验证,不仅能够改善先制造后测试带来的测试和研制成本增加以及研制周期延长等问题,同时也能很大程度提高航天器系统测试质量。现有的航天领域的系统测试大多是在实物上进行,即使引入基于模型的测试,大多专注于对构建软件仿真测试系统和环境的研制,测试也只是在虚拟仪器或者虚拟测试平台上进行,或者是对航天器系统的功能和性能进行基于模型的测试,并没有在系统级对总体设计和接口设计进行形式化建模和自动验证测试。

附图说明

图1是本发明一种基于模型的航天器系统自动化测试方法流程图;

图2是本发明遍历被测航天器系统的窗口树模型生成测试用例集的方法流程图;

图3是本发明基于模型检测算法检测系统级行为状态转移序列是否遵循状态转移规则的方法流程图;

图4是本发明实施例中星对地遥测数据采集和下发业务中构建的窗口树模型;

图5是本发明实施例中星对地遥测数据采集和下发业务中构建的状态转移图模型。

具体实施例

下面结合附图对本发明的具体实施方法进行详细说明。

本发明通过在被测航天器设计阶段对其进行测试,采用形式化的方法,根据系统设计方案建立被测航天器系统的窗口树模型,根据业务流程划分被测航天器系统运行时的行为状态,构建系统行为状态转移图,然后遍历窗口树生成测试用例集,在被测航天器数字化模型与验证原型系统运行所生成的测试用例集,并设置跟踪点,获取原型系统运行到跟踪点时的系统行为状态,记录系统级行为的状态转移序列,最后通过模型检测算法检查所获得的行为状态转移序列是否遵循状态转移规则,从而自动验证被测航天器系统总体设计以及模块之间的接口;通过采用基于模型的测试技术,降低航天器系统测试和研制成本,缩短整个研制周期,减少实物测试风险,通过采用形式化方法和模型检测算法提高航天器系统测试的质量和准确性;具体是一种基于模型的航天器系统自动化测试方法,如图1所示,具体步骤如下:

步骤一、针对某个被测航天器,根据该被测航天器系统的总体设计方案,为每个业务分别构建一个窗口树模型;

窗口树模型用于描述被测航天器的系统级动态行为,用于模拟被测航天器系统的信息交互,而被测航天器系统的信息交互是通过api调用实现;对各组成部分所提供的操作即api进行细粒度划分得到窗口,一个窗口中包含若干操作。

构建被测航天器系统的窗口树模型具体过程如下:

首先要梳理并分析被测航天器系统的业务流程,针对每一个业务,将其整个业务功能按照类别进行细粒度划分,得到若干个组成部分,每一个组成部分又包括若干个操作,每一个操作称为一个api,属于同一个组成部分的这若干个api划分为一类,该类中的所有api构成窗口树模型的一个窗口节点。

w是该被测航天器的每个业务包括的窗口节点集合,w={w0,w1,w2,....wj,...wn},n为整数;wj表示该被测航天器的第j个窗口节点,wj={apij1,apij2,...apijm},m≥1;w0∈w为被测航天器系统的启动初始窗口;

所述窗口是系统可调用的一类api的集合,可以严格定义如下:

w=(api)

其中,api表示系统可调用的api的集合,是被测系统中的各种组成部分所提供的所有操作;集合中api可为1个或者多个。

然后,根据业务流程中被测航天器系统的动态行为,确定窗口树模型中当前窗口节点以及从当前窗口节点流转到另一个窗口节点的事件边。

当从一个窗口节点流转到另一个窗口节点时,会调用至少一个api,对api的调用被称为事件;

事件是窗口流转的基本行为,一个事件是某一个api的调用;被测航天器系统的所有窗口节点之间流转的触发事件的集合用ew表示;定义如下:ew=(eventname,api,parameters);eventname表示某事件的名称,唯一标识一个事件;api表示该事件触发时的操作集合;parameters表示调用api时的输入参数和输出参数序列。

窗口节点间的流转关系用表示;其中元素(wi,e,wj)∈rw,e表示窗口节点wi与窗口节点wj之间有父子关系,且wi为父节点,wj为子节点,e∈ew表示窗口父节点wi流转到窗口子节点wj的事件。

最后,窗口节点以及事件共同形成了窗口树,是一个四元组,由所有窗口的集合、初始窗口、被测系统的窗口之间流转的事件集合和窗口之间的流转关系四个要素组成,定义如下:wt=(w,w0,ew,rw,e)。

本实施例中,被测航天器系统包括数管分系统、测控分系统、导航分系统、控制分系统以及电源分系统。其中,数管分系统又由遥控单元、数管计算机以及4个远置单元组成,其它分系统又分别携带一款核心的单机。

为了测试航天器的系统级动态行为,本实施例将被测航天器系统(执行任务的功能或者主要功能)按照业务划分为地对星遥控指令发送及其处理和星对地遥测数据采集和下发等。

窗口树模型包括上行窗口树模型和下行窗口树模型两个模型;所述上行窗口树模型用于描述地对星的指令发送和处理;所述下行窗口树模型用于描述星对地的数据采集和下发。

步骤二、根据该被测航天器系统的业务流程,划分系统行为主体运行时的不同行为状态,构建行为状态转移图模型,形成该被测航天器系统预定的状态转移规则集;

行为状态是被测航天器系统行为主体的状态;行为主体是被测航天器系统运行过程中的所有计算、存储和传输过程的承担者;

本实施例中,被测航天器系统行为主体包括地面端、测控分系统应答机、数管分系统遥控单元、数管分系统远置单元a、数管分系统远置单元b、数管分系统远置单元c、数管分系统远置单元d、导航分系统导航任务单元、控制分系统姿态轨道控制器、电源分系统火工品管理器、数管分系统数管计算机和数管分系统总线监听。

所述被测航天器系统运行时的行为状态就是指地面端、测控分系统应答机、数管分系统遥控单元、数管分系统远置单元a、数管分系统远置单元b、数管分系统远置单元c、数管分系统远置单元d、导航分系统导航任务单元、控制分系统姿态轨道控制器、电源分系统火工品管理器、数管分系统数管计算机和数管分系统总线监听的行为状态。

行为状态转移图是被测航天器系统的系统级行为状态转移的自动机模型,是一个五元组,由全部状态的有限集合、开始状态、状态转移的触发事件或者事件序列的集合、状态转移规则集和终止状态集组成,定义如下:stg=(s,s0,es,rs,e,f)

其中,s表示状态转移图中全部状态的有限集合,即被测航天器系统的系统级行为状态的有限集合;s0表示初始状态,s0∈s;es是触发状态转移的事件集合或者事件序列集合,为非空有限集合;rs,e是所有状态转移规则的集合:δ:s×es→s;f是s的子集,表示终止状态的集合。

每个状态转移规则包括前置状态、后置状态和触发状态转移的事件,前置状态在触发状态转移的事件下转移到后置状态。

根据行为状态转移图模型,得到各个状态转移规则,最终形成该被测航天系统的状态转移规则集作为设定目标。

步骤三、运用航天器测试用例自动生成方法遍历被测航天器的所有窗口树模型,生成测试用例集。

窗口树模型中每一条路径刻画一类系统的运行过程,将每条路径分别作为一个测试用例;每个测试用例是该路径上触发两个相邻窗口之间流转的事件对应的api序列的集合。

如图2所示,具体步骤如下:

步骤301、定义事件序列集合的初始值为空;定义当前遍历路径的输出事件序列thiseventlist的初始值为空;

步骤302、针对当前窗口节点w,定义该节点未处理出度变量degree的初始值为0,临时输出事件序列tempeventlist的初始值为空,节点处理标志位的初始值为0;

当前窗口节点w初始值为窗口树模型的根节点;

步骤303、读取当前窗口节点w的出度赋给变量degree,并判断变量degree是否为0,如果是,将序列thiseventlist追加到事件序列集合,转到步骤309;否则,执行步骤304;

当出度变量degree为0,说明当前窗口节点w是叶子节点,叶子节点的下面没有子节点。

步骤304、顺序读取窗口节点之间的二元关系集cbirs中未处理的二元关系,并将当前二元关系赋给临时变量tempcbirs;判断临时变量tempcbirs是否存在,如果是,转到步骤305;否则,已经读取完,转到步骤309;

二元关系集cbirs是窗口树模型中所有相邻节点的二元关系的集合。

二元关系是由窗口树模型中每一对相邻窗口节点及边组成,用元素fromwindow、edgeid和towindow来表示;

临时变量也是包括元素fromwindow、edgeid和towindow的二元关系。

步骤305、判断临时变量tempcbirs中的项fromwindow是否等于当前窗口节点w,如果是,转到步骤306;否则,返回步骤304;

步骤306、获取临时变量tempcbirs的edgeid项追加到事件序列thiseventlist,并将当前二元关系标记为已处理完毕;

步骤307、当前窗口节点w的变量degree减1,并判断变量degree是否等于0,如果是,将当前窗口节点w的处理标志位标记为已处理节点,设置当前窗口节点w的序列tempeventlist等于上一个窗口节点的序列thiseventlist;否则,设置当前窗口节点w的序列tempeventlist等于上一个窗口节点的序列tempeventlist以及上一个窗口节点的edgeid项;

当前节点为根节点时,临时输出事件序列tempeventlist值为空。

步骤308、当前窗口节点w入堆栈,并读取临时变量tempcbirs的项towindow对应的窗口作为当前窗口节点w,返回步骤302;

步骤309、堆栈中的最上面节点出栈并作为当前窗口节点w,判断当前窗口节点w是否存在,如果存在,转到步骤310;否则,转到步骤311。

步骤310、判断当前窗口节点w的处理标志位标记是否标记为已处理节点,如果是,返回步骤309;否则,将当前窗口节点w的序列tempeventlist赋值给新的路径输出事件序列thiseventlist,返回步骤303;

步骤311、遍历被测航天器系统窗口树模型的其余根窗口节点序列,如果没有遍历完,转到步骤302;否则,得到最终的事件序列集合。

步骤312:针对事件序列集合中的每一个事件,找到该事件对应的api序列,得到事件序列对应的测试用例,最终得到整个事件序列集合对应的测试用例集。

步骤四、将生成的测试用例集,逐条输入到航天器数字化模型与验证原型系统中,获取被测航天器的系统级行为的状态转移序列。

具体为:

首先,上传被测航天器系统的测试用例集到航天器数字化模型与验证原型系统上;

然后,针对当前测试用例,测试人员手动触发一个动作指令,如发送遥控指令;原型系统按照测试用例的行为轨迹模拟被测航天器系统执行任务的行为,在测试用例的每一类操作都设置一个跟踪点,每执行测试用例中的一类操作就记录一下被测航天器系统的行为状态和触发状态转移的事件;直到完成一个测试用例,记录下该测试用例执行全过程中被测航天器系统的不同行为状态和触发状态转移的事件,形成执行该测试用例时被测航天器的系统级行为的状态转移序列;

跟踪点是根据被测航天器系统的状态转移图而设置的,目的是为了在被测航天器系统的原型系统上运行测试用例时在跟踪点获取原型系统的系统级行为状态,进而和状态转移图中相应的状态转移规则进行比对检查。

行为状态转移序列,是在原型系统上运行上述测试用例集时根据所设置的跟踪点获得的原型系统的所有行为状态转移的序列。

然后,执行下一个测试用例,直至获得覆盖所有测试用例的被测航天器的系统级行为的状态转移序列。

步骤五、通过模型检测算法判断系统级行为的状态转移序列中的每一步状态转移是否遵循设定的状态转移规则集中的规则;如果是,则说明被测航天器通过测试用例集的测试;否则,在行为状态转移序列中至少存在一次状态转移没有遵循状态转移规则,被测航天器未通过测试。

如图3所示,具体步骤如下:

步骤501、分别设置已处理队列初始值为空,反例队列初始值为空;

步骤502、顺序读取被测航天器系统级行为的状态转移序列,获取当前状态转移序列的当前状态currentst和下一状态nextst;

当前状态转移序列初始值为第一个状态转移序列。

步骤503、顺序读取预定的状态转移规则集中的每一条状态转移规则;

步骤504、判断当前状态currentst和下一状态nextst是否遵循预定的状态转移规则;如果遵循,则转入步骤505;否则,跳转到步骤507;

步骤505、将当前的状态转移序列的当前状态和下一状态全部存入已处理队列;

步骤506、判断被测航天器系统级行为的状态转移序列是否全部遍历完;如果是,进入步骤508;否则,转到步骤502,将当前状态转移序列的下一状态nextst值作为下一个状态转移序列的当前状态currentst,同时读取下一个状态转移序列新的下一状态nextst;

步骤507、判断预定的状态转移规则是否全部读出,如果全部读出,将当前的状态转移序列的当前状态和下一状态存入反例队列,返回步骤502;否则,返回步骤503;

步骤508、判断反例队列中是否为空,如果是,输出被测航天器系统通过测试用例集的测试;否则,在行为状态转移序列中至少存在一次状态转移没有遵循状态转移规则,输出被测航天器系统未通过测试用例集的测试,并输出反例队列。

实施例:

针对被测航天器系统的星对地遥测数据采集和下发业务进行基于模型的测试的步骤如下:

第一步,针对本实施例的被测航天器,根据该被测航天器系统的总体设计方案,为星对地遥测数据采集和下发业务构建下行窗口树模型。

首先,星对地遥测数据采集和下发的业务流程如下:

(a)数管分系统远置单元a、远置单元b、远置单元c和远置单元d按照一定时间间隔主动采集各个分系统以及相邻远置单元的遥测数据(按类型分端口采集),通过1553b发给数管计算机。

(b)数管计算机收到远置单元a、b、c、d所有的数据后进行封装,并通过专门的端口传给远置单元a。

(c)远置单元a收到所有采集数据后再进行封装设置标志位,然后发送给测控分系统的下行。

(d)测控分系统发送收到远置单元a的数据后进行加密发送回地面。

具体信息流转如下:

数管分系统.远置单元a.采集、b.采集、c.采集、d.采集—>数管分系统.远置单元a.遥测数据发送、b.遥测数据发送、c.遥测数据发送、d.遥测数据发送—>数管分系统.数管计算机.遥测数据接收—>数管分系统.数管计算机.封装—>数管分系统.数管计算机.发送—>数管分系统.远置单元a.数据包接收—>数管分系统.远置单元a.封装—>数管分系统.远置单元a.下发数据—>测控分系统.应答机.下行接收—>测控分系统.下行调制—>测控分系统.应答机.下行发送—>地面.接收。

然后,根据被测航天器系统总体设计方案,形式化描述被测航天器系统级动态行为;

被测航天器系统星对地遥测数据采集和下发业务划分为:(1)数管分系统.远置单元a.采集模块和数管分系统.远置单元a.遥测数据发送模块窗口,(2)数管分系统.远置单元b.采集模块和数管分系统.远置单元b.遥测数据发送模块窗口,(3)数管分系统.远置单元c.采集模块和数管分系统.远置单元c.遥测数据发送模块窗口,(4)数管分系统.远置单元d.采集模块和数管分系统.远置单元d.遥测数据发送模块窗口,(5)数管分系统.总线监听.监听模块和数管分系统.总线监听.分发模块窗口,(6)数管分系统.数管计算机.遥测数据接收模块窗口,(7)数管分系统.数管计算机.封装模块和数管分系统.数管计算机.发送模块窗口,(8)数管分系统.远置单元a.接收数据包模块、数管分系统.远置单元a.封装模块和数管分系统.远置单元a.下发数据模块窗口,(9)测控分系统.应答机.下行接收模块、测控分系统.应答机.下行调制模块和测控分系统.应答机.下行发送模块窗口,(10)地面.发送模块和地面.接收模块窗口,以及(11)遥测数据存储模块窗口。

触发以上窗口流转的相应事件如下:(1)数管分系统.远置单元a.采集(远置单元b,参数类型,遥测参数),(2)数管分系统.远置单元a.遥测数据发送,(3)数管分系统.远置单元a.采集(测控分系统.应答机,参数类型,遥测参数),(4)数管分系统.远置单元b.采集(远置单元c,参数类型,遥测参数),(5)数管分系统.远置单元b.遥测数据发送,(6)数管分系统.远置单元b.采集(导航分系统,参数类型,遥测参数),(7)数管分系统.远置单元c.采集(控制分系统,参数类型,遥测参数),(8)数管分系统.远置单元c.遥测数据发送,(9)数管分系统.远置单元c.采集(远置单元d,参数类型,遥测参数),(10)数管分系统.远置单元d.采集(远置单元a,参数类型,遥测参数),(11)数管分系统.远置单元d.遥测数据发送,(12)数管分系统.远置单元d.采集(电源分系统,参数类型,遥测参数),(13)数管分系统.总线监听.监听模块,(14)数管分系统.总线监听.分发(数管计算机,(15)数管分系统.数管计算机.遥测数据接收,(16)数管分系统.数管计算机.封装,(17)数管分系统.数管计算机.发送,(18)数管分系统.远置单元a.接收数据包,(19)数管分系统.远置单元a.封装,(20)数管分系统.远置单元a.下发数据,(21)测控分系统.应答机.下行接收,(22)测控分系统.应答机.下行调制,(23)测控分系统.应答机.下行发送,(24)地面.接收。

构建的被测航天器系统星对地遥测数据采集和下发业务的窗口树模型如图4所示,为方便表示,将被测航天器系统星对地遥测数据采集和下发业务窗口树模型中的窗口分别表示为w1至w11,各窗口对应的api分别表示为api11、api12、api21、api22、api31、api32、api41、api42、api51、api52、api61、api71、api72、api81、api82、api83、api91、api92、api93、api101、api102和api111,触发窗口流转的相应事件分别表示为e101至e124。

图中窗口流转w1→w5→w6→w7→w8→w9→w10→w11的触发事件序列e101,e102,e113,e114,e115,e116,e117,e118,e119,e120,e121,e122,e123,e124相应的api序列的集合{(api11,api12),(api51,api52),api61,(api71,api72),(api81,api82,api83),(api91,api92,api93),(api101,api102),api111}就是一个测试用例。

第二步,构建被测航天器系统星对地遥测数据采集和下发业务的行为状态转移图模型,形成该被测航天器系统业务预定的状态转移规则集;

本实施例中,被测航天器系统行为主体包括地面端、测控分系统应答机、数管分系统遥控单元、数管分系统远置单元a、数管分系统远置单元b、数管分系统远置单元c、数管分系统远置单元d、导航分系统导航任务单元、控制分系统姿态轨道控制器、电源分系统火工品管理器、数管分系统数管计算机和数管分系统总线监听。相应地,被测航天器系统运行时的行为状态就是指地面端、测控分系统应答机、数管分系统遥控单元、数管分系统远置单元a、数管分系统远置单元b、数管分系统远置单元c、数管分系统远置单元d、导航分系统导航任务单元、控制分系统姿态轨道控制器、电源分系统火工品管理器、数管分系统数管计算机和数管分系统总线监听的行为状态。

根据预定航天器系统星对地遥测数据采集和下发业务流程,划分该业务运行时的行为状态如下:(101)卫星.空状态、(101)数管分系统.远置单元a.准备采集、(102)数管分系统.远置单元a.准备发送数据、(103)数管分系统.远置单元b.准备采集、(104)数管分系统.远置单元b.准备发送数据、(105)数管分系统.远置单元c.准备采集、(106)数管分系统.远置单元c.准备发送数据、(107)数管分系统.远置单元d.准备采集、(108)数管分系统.远置单元d.准备发送数据、(109)数管分系统.总线监听.监听、(110)数管分系统.总线监听.准备分发、(111)数管分系统.数管计算机.准备接收数据、(112)数管分系统.数管计算机.封装、(113)数管分系统.数管计算机.准备发送、(114)数管分系统.远置单元a.准备接收数据、(115)数管分系统.远置单元a.封装、(116)数管分系统.远置单元a.准备下发数据、(117)测控分系统.应答机.准备接收、(118)测控分系统.应答机.准备调制、(119)测控分系统.应答机.准备发送、(120)地面.准备接收和(121)地面.结束状态。

触发以上状态转移的事件包括(101)开始遥测、(102)数管分系统.远置单元a.采集(测控分系统,参数类型,遥测参数)、(103)数管分系统.远置单元a.遥测数据发送、(104)数管分系统.远置单元a.采集(远置单元b,参数类型,遥测参数)、(105)数管分系统.远置单元b.采集(导航分系统,参数类型,遥测参数)、(106)数管分系统.远置单元b.遥测数据发送、(107)数管分系统.远置单元b.采集(远置单元c,参数类型,遥测参数)、(108)数管分系统.远置单元c.采集(控制分系统,参数类型,遥测参数)、(109)数管分系统.远置单元c.遥测数据发送、(110)数管分系统.远置单元c.采集(远置单元d,参数类型,遥测参数)、(111)数管分系统.远置单元d.采集(电源分系统,参数类型,遥测参数)、(112)数管分系统.远置单元d.遥测数据发送、(113)数管分系统.远置单元d.采集(远置单元a,参数类型,遥测参数)、(114)数管分系统.总线监听.监听、(115)数管分系统.总线监听.分发(数管计算机)、(116)数管分系统.数管计算机.遥测数据接收、(117)数管分系统.数管计算机.封装、(118)数管分系统.数管计算机.发送、(119)数管分系统.远置单元a.接收数据包、(120)数管分系统.远置单元a.封装、(121)数管分系统.远置单元a.下发数据、(122)测控分系统.应答机.下行接收、(123)测控分系统.应答机.下行调制、(124)测控分系统.应答机.下行发送和(125)地面.接收。

为方便表示,将被测航天器系统星对地遥测数据采集和下发业务运行时的系统级行为状态分别表示为s101至s122,触发行为状态转移的事件分别表示为e101至e125。

构建的被测航天器系统星对地遥测数据采集和下发业务的状态转移图模型如图5所示。

相应地,被测航天器系统星对地遥测数据采集和下发业务的预定的状态转移规则如表1所示。

表1

第三步,运用航天器测试用例自动生成方法遍历窗口树模型,生成被测航天器的测试用例集。

根据上述航天器测试用例自动生成方法遍历被测航天器系统星对地遥测数据采集和下发业务的窗口树模型,生成该业务的测试用例集如下,共包含四个测试用例:

{{(api11,api12),(api51,api52),api61,(api71,api72),(api81,api82,api83),(api91,api92,api93),(api101,api102),api111},{(api21,api22),(api51,api52),api61,(api71,api72),(api81,api82,api83),(api91,api92,api93),(api101,api102),api111},{(api31,api32),(api51,api52),api61,(api71,api72),(api81,api82,api83),(api91,api92,api93),(api101,api102),api111},{(api41,api42),(api51,api52),api61,(api71,api72),(api81,api82,api83),(api91,api92,api93),(api101,api102),api111}}

第四步,将生成的测试用例集,输入到航天器数字化模型与验证原型系统,模拟被测航天器系统执行任务,设置跟踪点,获取被测航天器系统执行任务过程中的不同行为状态以及触发状态转移的事件,获得被测航天器的系统级行为的状态转移序列。

将第三步中生成的测试用例集输入到航天器数字化模型与验证原型系统,模拟被测航天器系统的星对地遥测数据采集和下发业务,执行数管分系统的远置单元a、数管分系统的远置单元b、数管分系统的远置单元c和数管分系统的远置单元d采集并发送遥测数据给地面的遥测数据采集和发送任务,得到该业务的状态转移序列如下:

{(s101,e101,s102),(s102,e102,s103),(s103,e103,s110),(s110,e114,s111),(s111,e115,s112),(s112,e116,s113),(s113,e117,s114),(s114,e118,s115),(s115,e119,s116),(s116,e120,s117),(s117,e121,s118),(s118,e122,s119),(s119,e123,s120),(s120,e124,s121),(s121,e125,s122)}

第五步,通过模型检测算法判断系统级行为的状态转移序列中的每一次状态转移是否遵循状态转移规则集中的规则;

根据上述步骤五的模型检测算法,判断第四步中得到的被测航天器系统的星对地遥测数据采集和下发业务的状态转移序列中的每一次状态转移都遵循第二步中生成的预定的状态转移规则;得出结论,该被测航天器系统业务通过测试用例集的测试。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1