System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于软件高级需求收集代码结构覆盖率的方法技术_技高网

一种基于软件高级需求收集代码结构覆盖率的方法技术

技术编号:41315951 阅读:3 留言:0更新日期:2024-05-13 14:57
本发明专利技术提出了一种基于软件高级需求收集代码结构覆盖率的方法,该方法包括:基于软件高级需求对机载软件的功能进行分析,划分功能模块,编写软件高级测试用例;将源代码用工具自动插桩,用桩代码替换原文件进行编译;将编译后生成的目标码烧写进FCM;执行软件高级测试用例;确定覆盖率信息输出时机,串口收集打印的覆盖率信息;将覆盖率信息整合,用测试工具进行分析,得到覆盖率分析报告;本发明专利技术有助于从功能层级上发现冗余代码,为控制耦合数据耦合分析提供证据;提高测试效率;通用性强,提高了软件的质量和可靠性。

【技术实现步骤摘要】

本专利技术属于机载软件覆盖率收集的,尤其涉及一种基于软件高级需求收集代码结构覆盖率的方法


技术介绍

1、机载软件安全性一直是广泛关注的问题,软件测试是保证机载软件安全性的一个重要手段。do-178c明确要求使用代码结构覆盖率作为测试完整性的唯一手段。软件测试越彻底,代码结构覆盖率越高,软件包含缺陷的可能性就越小。

2、随着软件集成测试以及控制耦合数据耦合概念被引入标准,传统基于函数单元测试收集代码结构覆盖率的方法已不能满足适航要求。


技术实现思路

1、专利技术目的:本专利技术提供一种基于软件高级需求从上层收集代码结构覆盖率的方法,用于提供软件可靠性证明,为控制耦合数据耦合分析提供证据,填补软件集成测试的空缺,以满足适航要求。

2、第一方面,本申请提供了一种基于软件高级需求收集代码结构覆盖率的方法,所述方法包括:

3、基于软件高级需求对机载软件的功能进行分析,得到分析结果;

4、基于所述分析结果编写测试用例;

5、基于所述分析结果确定代码规模;

6、若所述代码规模大于等于阈值,将机载软件的所有源代码划分成部件,对源代码按部件集合方式用测试工具自动插桩,生成桩代码;

7、将所述桩代码替换源代码,结合系统架构确定代码结构覆盖率信息打印输出时机并编写相应的代码,编译烧写;

8、执行所述测试用例,串口收集代码结构覆盖率信息;

9、修改所述代码结构覆盖率信息格式,并用测试工具分析所述代码结构覆盖率信息;

10、若所述代码结构覆盖率已满,结束流程。

11、优选地,所述方法还包括:

12、若所述代码规模小于阈值,对机载软件的所有源代码以系统集合方式用测试工具自动插桩,生成桩代码。

13、优选地,所述方法还包括:

14、若所述代码结构覆盖率未满,且基于软件高级需求收集不到,结束流程。

15、优选地,所述方法还包括:

16、若所述代码结构覆盖率未满,且基于软件高级需求能够收集到,基于软件高级需求补充设计测试用例,重复执行测试用例的步骤。

17、优选地,所述阈值是基于目标板的flash和开发工具编译桩代码后生成的目标码确定的。

18、优选地,所述将所述桩代码替换源代码,结合系统架构确定代码结构覆盖率信息打印输出时机并编写相应的代码,编译烧写,包括:

19、若系统为分时分区架构,可采取两种方式进行代码结构覆盖率信息打印;

20、若部件较小,打印的信息较少,可在时间片较长且在执行靠后的任务中直接添加打印,确保添加打印的任务在部件所有任务之后执行且不会造成覆盖率信息打印丢失;

21、若部件较大,打印的信息较多,采用第一种方法将导致任务超时,打印的覆盖率信息丢失,因此需创建软实时任务,当所有任务执行完成后,通过切任务规划表执行打印任务。

22、优选地,所述执行所述测试用例,包括:

23、执行软件高级测试用例,观察实际输出与预期输出以及不插桩代码执行结果是否一致,若一致,则覆盖率收集结果有效。

24、优选地,所述基于软件高级需求对机载软件的功能进行分析,得到分析结果,包括:

25、基于软件高级需求设计软件高级测试用例;

26、基于软件高级需求,确定代码规模较大时部件的划分策略;将耦合关系较深的功能划为一个部件,无耦合关系或耦合关系较浅的放在另外的部件里。

27、第二方面,本申请还提供了一种基于软件高级需求收集代码结构覆盖率的装置,所述装置包括:

28、第一分析模块,用于基于软件高级需求对机载软件的功能进行分析,得到分析结果;

29、第一编写模块,用于基于所述分析结果编写测试用例;

30、确定模块,用于基于所述分析结果确定代码规模;

31、生成模块,用于若所述代码规模大于等于阈值,将机载软件的所有源代码划分成部件,对源代码按部件集合方式用测试工具自动插桩,生成桩代码;

32、第二编写模块,用于将所述桩代码替换源代码,结合系统架构确定代码结构覆盖率信息打印输出时机并编写相应的代码,编译烧写;

33、执行模块,用于执行所述测试用例,串口收集代码结构覆盖率信息;

34、第二分析模块,用于修改所述代码结构覆盖率信息格式,并用测试工具分析所述代码结构覆盖率信息;若所述代码结构覆盖率已满,结束流程。

35、第三方面,本申请还提供了一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如前所述的步骤。

36、本专利技术的优点是:

37、1、从功能层级上发现冗余代码;

38、2、为控制耦合数据耦合分析提供证据;

39、3、填补软件集成测试的空白;

40、4、为最差执行时间分析提供证据;

41、5、覆盖率是直接基于目标机上收集的;

42、6、提高测试效率;

43、7、满足适航要求;

44、8、通用性强,可应用于其它领域结构覆盖率收集;

45、9、提高了软件的质量和可靠性。

本文档来自技高网...

【技术保护点】

1.一种基于软件高级需求收集代码结构覆盖率的方法,其特征在于,所述方法包括:

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

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

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

5.根据权利要求2所述的方法,其特征在于,所述阈值是基于目标板的FLASH和开发工具编译桩代码后生成的目标码确定的。

6.根据权利要求1所述的方法,其特征在于,所述将所述桩代码替换源代码,结合系统架构确定代码结构覆盖率信息打印输出时机并编写相应的代码,编译烧写,包括:

7.根据权利要求6所述的方法,其特征在于,所述执行所述测试用例,包括:

8.根据权利要求1所述的方法,其特征在于,所述基于软件高级需求对机载软件的功能进行分析,得到分析结果,包括:

9.一种基于软件高级需求收集代码结构覆盖率的装置,其特征在于,所述装置包括:

10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-8任一项所述的步骤。

...

【技术特征摘要】

1.一种基于软件高级需求收集代码结构覆盖率的方法,其特征在于,所述方法包括:

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

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

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

5.根据权利要求2所述的方法,其特征在于,所述阈值是基于目标板的flash和开发工具编译桩代码后生成的目标码确定的。

6.根据权利要求1所述的方法,其特征在于,所述将所述桩代码替换源代码,结合系统架构确定代码结...

【专利技术属性】
技术研发人员:樊英侯国超田佳
申请(专利权)人:中国航空工业集团公司西安飞行自动控制研究所
类型:发明
国别省市:

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

1