System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种针对状态机模型的部件级测试方法和装置制造方法及图纸_技高网

一种针对状态机模型的部件级测试方法和装置制造方法及图纸

技术编号:40700779 阅读:4 留言:0更新日期:2024-03-22 10:58
本发明专利技术提出了一种针对状态机模型的部件级测试方法和装置,属于民机飞行控制软件测试领域。该方法包括识别模型文件,按队列顺序的方式自动导入待测模型,对待测模型进行封装,生成harness模型,调用指定测试用例生成软件,对harness模型进行自动测试用例生成;对模型中状态机进行配置,保存原始模型配置参数,将测试用例加载到模型中进行仿真;对待测模型状态机中所有的状态、转移条件、真值表以及graph function进行遍历解析,识别出所有的含有逻辑运算的表达式,统计出状态机中所有的低级需求目标;识别出每一时刻测试用例加载到模型中所经过的状态机路径;计算出测试用例对低级需求目标的所有覆盖情况。

【技术实现步骤摘要】

本专利技术涉及民机飞行控制软件测试的,具体是涉及一种针对状态机模型的部件级测试方法和装置


技术介绍

1、民机飞行控制系统在研发过程中严格遵循v&v研发流程,传统的设计模式是根据软件设计文档sdd(软件低级需求)手工编写控制系统代码,随着大型民用飞机尤其是大型客机及其苛刻的安全性可靠性要求与过程管理要求,传统的设计模式在软件开发和测试验证方面难以满足民机飞控系统领域需求;而基于模型的设计(mbd)在开发过程中使用模型来替代软件设计文档,进而由模型来自动生成嵌入式代码,代码与模型之间可以自动建立追溯关系,使用模型作为软件低级需求,不仅仅局限于仿真阶段,其在整个开发和验证过程中都非常重要。mbd技术在设计过程中先期进行验证,从而尽早发现设计漏洞,缩短迭代周期,自动代码生成可以进一步减少代码缺陷。

2、在验证自动生成的嵌入式代码与模型(低级需求)的一致性阶段测试中,需要人员设计测试用例作为激励输入。在面对民机大型复杂系统设计如飞控领域会大量使用状态机来描述场景,尤其是在设计自动飞行控制系统时,由于飞机在各个阶段飞行场景特别复杂,导致状态机描述场景时会含有大量逻辑条件判断,且状态转移路径长、状态跳转逻辑极其复杂。测试人员在面对如此复杂的场景根据需求编写测试用例只能勉强覆盖功能需求,难以覆盖低级需求;而在飞控领域模型中针对状态机分解出来的低级需求中,未被执行路径也有可能会产生额外的功能,在某个时间或场景下被激活,造成对系统的危害,而且在机载软件适航审定方面,rtca发布do-331标准来对do-178c基于模型开发和验证进行补充,其中提出进一步消除软件中非预期功能对系统安全的影响。因此,本专利提出一种针对状态机模型的部件级测试方法和装置。


技术实现思路

1、本专利技术的目的是:是设计一种针对状态机模型的部件级测试方法和装置,在对自动生成的代码与模型一致性验证阶段,能够提供测试用例自动生成以及测试用例对低级需求的自动追溯,可以检测出未被覆盖的低级需求目标,大大提高测试效率,提高飞控软件代码的可靠性与安全性。

2、第一方面,本申请提供一种针对状态机模型的部件级测试方法,所述测试方法用于对民机飞行控制软件测试,方法包括:

3、s1,使用windows监控程序对测试项目路径中进行监控,监控项目路径下是否存在待测试模型队列,并存储以下步骤中模型处理的日志;

4、s2,将含有状态机的待测试模型批量存入到该项目测试路径中;

5、s3,识别出模型文件,按队列顺序的方式自动导入待测模型,对待测模型进行封装,生成harness模型,调用指定测试用例生成软件,对harness模型进行自动测试用例生成;

6、s4,对模型中状态机进行配置,保存原始模型配置参数,将测试用例加载到模型中进行仿真,使其能在工作空间中保存所有状态机相关的变量数据,仿真结束后,利用原始配置参数恢复模型原来的配置;

7、s5,对待测模型状态机中所有的状态、真值表以及graph function进行遍历解析,识别出所有的含有逻辑运算的表达式,将所有的逻辑表达式解析分解为逻辑原子,统计出状态机中所有的低级需求目标;

8、s6,对待测模型状态机中所有的转移条件进行遍历解析,统计出状态机中所有的低级需求目标;

9、s7,使用s4步骤中存储的状态机相关的变量数据,识别出每一时刻测试用例加载到模型中所经过的状态机路径;

10、s8,在工作空间中对每一时刻测试用例所经过的全部状态机路径上的所有执行动作依次进行计算,利用数据字典获取全部路径上的所有逻辑原子变量的数值,统计出测试用例对低级需求目标的所有覆盖情况。

11、s9,将生成的测试用例文件与对低级需求目标的覆盖结果文件自动存入输出文件夹中,把s7步骤完成的模型文件自动从特定路径下移除,继续s1步骤。

12、进一步的,s4包括:

13、搜索待测模型中与状态机直接连接的信号线,并且将状态机的输入信号名一一映射在信号线上,获取信号线的属性,将其datalogging属性激活;同时遍历状态机中所有状态,激活这些状态的datalogging属性。

14、进一步的,s5包括;

15、s5-1:遍历所有状态机中所有状态;

16、s5-2:获取每一个状态上的entry、during、exit分区的所有表达式;

17、s5-3:遍历每一个分区的表达式,判断是否为逻辑表达式;

18、s5-4:利用抽象语法树对逻辑表达式解析分解成逻辑原子变量;

19、s5-5:遍历每一个逻辑原子变量数值的可能性(true和false),即可获取所有状态的低级需求目标。

20、进一步的,s5-4包括:

21、使用抽象语法树编写逻辑表达式的语法文件,使其能够识别所有含有逻辑运算的表达式,并且形成树形结构,叶子节点为原子变量以及运算符号,对二叉树进行前序遍历得到逻辑原子变量。

22、进一步的,s6包括:

23、s6-1:遍历所有的状态;

24、s6-2:获取当前状态向外跳转的所有转移线;

25、s6-3:遍历当前转移线上的低级需求目标;

26、s6-4:获取当前转移线连接的目标对象;

27、s6-5:判断该目标对象是否为状态;

28、s6-6:若该目标对象不是状态,则获取目标对象上的转移线,继续重复s6-3步骤;若该目标对象是状态,则结束搜索。

29、进一步的,s7包括:

30、s7-1:遍历所有的状态;

31、s7-2:获取当前时刻被激活的状态;

32、s7-3:获取该激活状态的根节点状态;

33、s7-4:判断该根节点状态所处的分区;若该根节点所处的分区为exit和during分区,则输出当前时刻被激活的状态;若该根节点所处的分区为entry分区,则输出上一时刻被激活的状态;

34、s7-6:获取以该状态为根节点所有的叶子节点状态;

35、s7-7:继续重复s7-2步骤。

36、进一步的,s8中的统计出测试用例对低级需求目标的所有覆盖情况,具体包括:

37、搜寻某一时刻测试用例所经过状态机的路径;

38、对每一时刻所经过状态机路径上的所有表达式依次进行计算,计算完成后存入到工作空间中;

39、对含有逻辑运算的部分进行解析成原子变量,从工作空间和数据字典中匹配相应的数值,形成该测试用例所覆盖的低级需求目标。

40、进一步的,s1包括:

41、获取特定模型路径并创建句柄,转换文件名为多字节字符串,获取重命名的文件名,设置类型过滤器,监听文件创建、更改、删除、重命名,存储当前被更改的文件的信息,从而达到模型处理的日志信息。

42、第二方面,本申请提供一种针对状态机模型的部件级测试装置本文档来自技高网...

【技术保护点】

1.一种针对状态机模型的部件级测试方法,其特征在于,所述测试方法用于对民机飞行控制软件测试,方法包括:

2.根据权利要求1所述的方法,其特征在于,S4包括:

3.根据权利要求1所述的方法,其特征在于,S5包括;

4.根据权利要求3所述的方法,其特征在于,S5-4包括:

5.根据权利要求1所述的方法,其特征在于,S6包括:

6.根据权利要求1所述的方法,其特征在于,S7包括:

7.根据权利要求1所述的方法,其特征在于,S8中的统计出测试用例对低级需求目标的所有覆盖情况,具体包括:

8.根据权利要求1所述的方法,其特征在于,S1包括:

9.一种针对状态机模型的部件级测试装置,其特征在于,所述装置包括,

【技术特征摘要】

1.一种针对状态机模型的部件级测试方法,其特征在于,所述测试方法用于对民机飞行控制软件测试,方法包括:

2.根据权利要求1所述的方法,其特征在于,s4包括:

3.根据权利要求1所述的方法,其特征在于,s5包括;

4.根据权利要求3所述的方法,其特征在于,s5-4包括:

5.根据权利要求1所述的方法,其...

【专利技术属性】
技术研发人员:薛琪琪任阳阳张馨洋王文浩苗伟涛陈虹竹卢钊李珂张丹涛
申请(专利权)人:中国航空工业集团公司西安飞行自动控制研究所
类型:发明
国别省市:

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

1