一种基于模型的航天器控制器软件测试用例自动生成方法技术

技术编号:33086095 阅读:17 留言:0更新日期:2022-04-15 10:49
本发明专利技术公开一种基于模型的航天器控制器软件测试用例自动生成方法,包括:1)、空间飞行器测试需求形式化建模,用UML状态图对测试需求中航天器的状态以及其转换进行建模得到标准模型;2)、对标准模型预处理,将状态图中包含的测试信息转换成有向图存储;3)、通过有向图可得到不同的覆盖准则下的测试路径;4)、对每一条测试路径划分系统输入输出,并对该路径的输入空间进行等价类划分。5)、对每一个等价类进行赋值操作,得到该逻辑序列上的具体测试用例的序列。本发明专利技术解决了航天器软件需求缺乏统一描述方式的缺点;解决目前测试过程中测试场景的设计完全依赖测试人员经验,无法保障设计的测试场景有效覆盖自主功能全部需求的缺点。的测试场景有效覆盖自主功能全部需求的缺点。的测试场景有效覆盖自主功能全部需求的缺点。

【技术实现步骤摘要】
一种基于模型的航天器控制器软件测试用例自动生成方法


[0001]本专利技术属于软件测试
,是针对航天器控制器软件的功能性测试的一种测试用例自动生成方法。

技术介绍

[0002]软件测试技术以检验软件是否满足需求为目标,并伴随着软件和硬件的发展而逐步发展。软件测试通过执行测试用例,在软件正式投入使用之前发现软件的故障并修复缺陷,是软件开发中不可缺少的环节。
[0003]针对安全关键领域的软件应该更加注重软件的测试,比如航天器上的控制器软件,控制器软件是否正确地运行直接决定航天器能否完成其主体任务、甚至可能关系到航天员的生命安全。这种软件在使用前必须进行充分地测试以尽可能减小故障发生的可能。
[0004]在航天器的软件测试领域,已经有很多相关的工作。这些工作较多的关注软件代码的检查,即为白盒测试。这种白盒测试对于软件测试来说时必不可少的环节,但是不能直接检查航天器控制器软件是否正确地按照预期的功能运行。
[0005]随着我国空间飞行器设计技术的不断演进,空间飞行器已经从硬件主导演进为以数据为基础的软件主导,空间飞行器从原来的电子系统升级为以信息物理技术为支撑的综合电子系统。近年来随着我国空间飞行器技术和设备的不断升级,卫星可以根据任务计划和空间环境自主完成特定任务。空间飞行器不仅可以根据地面指令完成相应任务,还可以根据宇宙空间环境的变化调整任务。空间飞行器的自主与智能水平的提升对其地面测试也提出了新的要求,测试重点由传统的验证硬件功能性能指标为主转变为以验证空间飞行器在真实空间场景中的任务完成能力为主。
[0006]空间飞行器的地面测试多在模拟宇宙空间环境下的测试,目前空间飞行器的软件的功能性测试存在两个问题:1)依靠对需求文档的理解人工设计测试场景,缺少对设计多领域、多目标测试需求的统一描述方式,无法进行自主测试场景生成;2)测试场景的设计完全依赖测试人员的经验,无法保障设计的测试场景能够有效的覆盖自主功能的全部需求。
[0007]基于模型的测试中,软件模型是使用形式化的方法对软件特征的抽象和刻画,常见的、可用于测试用例生成的软件模型包括:有限状态机(FSM)、马尔科夫链模型、UML模型以及时间自动机模型等。其中,UML模型使用较为广泛。在基于UML模型的测试用例自动生成的方法中,大多数将UML图转化为其他的中间形式,比如图或表,然后再使用各种算法进行测试用例的生成,包括深度优先和广度优先的搜索算法和遗传算法等。
[0008]假设某系统待测试的参数共有m个,每个参数分别具有a1,a2,

,a
m
个不同的取值。则进行全面测试需要n=a1×
a2×…×
a
m
次实验,一般情况下,这个值比较大,进行全面实验是不太可能的,即组合爆炸问题。组合测试是一种充分考虑各种因素及其相互作用的科学实用的软件测试方法,这种方法通过设计一组数量较少的测试用例,在庞大的组合空间中选择少量组合进行测试,能有效发现软件故障。
[0009]假设某系统的参数共有n个,每个参数的具体值c
i
是在有限离散集合T
i
中选取,该
集合中有a
i
=|T
i
|(1≤i≤n)个不同的参数取值,设A是一个m
×
n的矩阵,A=(a
i
)
m
×
n
,其第j列表示参数c
j
,它的取值取自有穷符号集合T
j
(j=1,2,

,n),即a
ij
∈T
j
。如果A的任意第i列和第j列两列都满足:T
i
的符号和T
j
的符号的全部两两组合都在第i列和第j列形成的二元有序对中至少出现一次,那么A称为一个两两组合覆盖表(2

way覆盖表),记为CA(m,2,a1×
a2×…×
a
n
),其中m是生成的测试用例个数,2表示是2

way覆盖表,当a1=a2=

=a
n
=a时,记为CA(m,2,a
n
)。如果它是能保证上述条件成立的最小正整数,那么A可以称为最小两两组合覆盖表,A的每一行就是一条测试用例。利用两两组合覆盖表进行测试设计的方法称为两两组合覆盖方法、两两组合测试或2

way组合测试。类似地,可以定义三三组合覆盖表(3

way覆盖表)、四四组合覆盖表(4

way覆盖表)等,并统称为多因素组合覆盖表或τ

way覆盖。将利用多因素组合覆盖表进行试验设计的方法称为多因素组合覆盖方法、τ

way组合覆盖方法或τ

way组合测试。
[0010]考虑到已有研究指出,可以触发软件失效的软件输入往往在输入域中集中在一定的连续区域,所以那些离未触发软件缺陷的测试用例更远的测试用例,更有机会覆盖到软件的缺陷。于是自适应随机测试(Adaptive Random Testing,ART)技术指出,软件测试用例需要尽量均匀的分布在输入域中。固定候选集(Fixed Sized Candidate Set ART,FSCS

ART)算法是经典的基于距离的ART(D

ART)算法,首先在输入域内随机生成一个测试用例,将其放入测试用例集E中,然后随机生成k个候选测试用例(候选集C={C1,C2,

,C
k
,})并计算每个候选测试用例c
i
(1≤i≤k)与测试用例集(E={E1,E2,

,E
q
})内所有测试用例的最短距离,选择最短距离最大的候选测试用例作放入测试用例集E中。不断执行上述生成下一个测试用例的过程,直至E中生成了足够的测试用例。
[0011]但是,上述现阶段的测试用例生成的方法不能直接用于航天器控制器软件。首先航天器工作的状态较复杂,航天器从进入轨道到卫星进入正常工作模式,中间需要经过一系列的活动对航天器进行控制。在这个过程中,卫星受到环境变化和地面指令传输的控制,做出相应的动作,有时会给出反馈信号。其次,在现阶段的基于模型的测试方法中,旨在生成测试系统所需要的路径来充分地覆盖到系统的状态或者转移,并没有生成具体的测试值以及考虑生成的具体测试用例在空间上的分布。

技术实现思路

[0012]本专利技术的一个目的是:为了弥补上述方法的不足,本专利技术提出一种基于模型的航天器控制器软件测试用例自动生成方法。该方法提出了使用UML状态图对航天器控制器软件建模的方法,基于该模型,使用有向图来存储模型信息。然后在一定覆盖准则的指导下使用搜索方法在图中找到满足条件的测试路径。在每个测试路径中,使用组合测试的思想,生成若干的互不相交的等价类,每个等价类都本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于模型的航天器控制器软件测试用例自动生成方法,其特征在于:该方法包括以下步骤:步骤1)、空间飞行器测试需求形式化建模,在统一规定的规则下,使用UML状态图对测试需求中航天器的状态以及其转换进行建模,即可完成状态图的构建,得到无二义性的标准模型;步骤2)、对上述标准模型的预处理,将状态图中包含的测试信息,转换成一个有向图进行存储;其中,所述的复合状态图中包含层次信息,所以需要根据航天器自身的特点对所述复合状态图进行展平;步骤3)、通过步骤2)中得到的有向图,可以从中得到不同的覆盖准则下的测试路径——有向图中每一条从起始结点到终止结点的由结点和边组成的路径,都可以代表航天器软件测试的一条测试路径;步骤4)、对步骤3)得到的每一条测试路径划分系统的输入输出,并对该路径上的输入空间进行等价类划分;该步骤将在任意一条测试路径上生成不同的逻辑序列,这些逻辑序列在逻辑上对该任意一条测试路径的转移条件进行充分的覆盖;步骤5)、对步骤4)得到的每一个等价类,进行赋值操作,得到该逻辑序列上的具体的测试用例的序列,其中测试用例包含测试输入以及软件预期输出。2.根据权利要求1所述的一种基于模型的航天器控制器软件测试用例自动生成方法,其特征在于:步骤2)所述的对复合状态图进行展平,具体过程如下:对于某复合状态s
c
,有以下的符号规定:复合状态内部的起始状态为s
c

I
,含有n个子状态s
ci
(1≤i≤n),其中起始状态所连接的子状态为s
c1
;所述展平的原则是:a)一个进入复合状态s
c
的转移t,其源状态为s1,目标状态可能是复合状态s
c
或者其子状态s
ci
;如果所述转移t的目标状态是复合状态s
c
,则在展平后将产生由其源状态s1到起始状态所连接的子状态s
c1
的一条新转移t

;如果所述转移t的目标状态是子状态s
ci
,则在展平后将产生由其源状态s1到子状态s
ci
的一条新转移t

【专利技术属性】
技术研发人员:殷蓓蓓田野张雷郑征孙波李志栋
申请(专利权)人:北京空间飞行器总体设计部
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1