System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及汽车软件错误检测,涉及对于汽车软件代码进行抽象解释,并通过自动生成的合约为汽车代码的错误检测追加上下文环境,综合利用抽象解释与上下文合约实现一种全新的检测汽车软件错误的方法,具体为一种检测汽车软件错误的方法、装置、介质及设备。
技术介绍
1、当前,汽车软件非常复杂,往往由数千万至数亿行代码组成。对于事关人身安全的汽车软件,从aspice,iso 26262等标准的最佳实践出发,建议使用完整的静态代码分析来证明不存在代码错误。然而,开发人员往往会把这种代码层面的分析作为一种负担,因为它需要比较长的时间来完成,并且由于错误检测的过程中缺少代码运行的上下文环境,会产生较多的误报。
2、鉴于上述,有必要对当前使用的汽车软件错误检测方式进行改进。
技术实现思路
1、本专利技术的目的是提供一种检测汽车软件错误的方法、装置、介质及设备,利用抽象解释和自动生成的合约,在汽车软件开发的早期阶段检测软件错误,以提高汽车软件的质量和可靠性。
2、为实现本专利技术的目的,本专利技术实施例的第一方面提供了一种检测汽车软件错误的方法,包括如下步骤:
3、步骤1:对将要测试的汽车软件代码进行分析,形成对于代码结构与语义的抽象值描述;
4、步骤2:自动化的进行上下文的合约推导,并生成可供整个汽车软件代码检测过程使用的上下文数据库;
5、步骤3:结合汽车软件架构中定义的功能模块与上下文合约,实施验证任务,并提出分析结果,提示汽车软件代码中存在
6、可选地,所述步骤1,具体包括如下步骤:
7、步骤1.1:进行函数依赖性分析,确定所分析汽车软件代码的完整接口;
8、步骤1.2:在完成依赖性分析之后,基于依赖关系生成桩函数;
9、步骤1.3:基于结构化的桩函数,生成验证驱动程序便于启动测试;
10、步骤1.4:生成被测试函数的抽象值。
11、可选地,在步骤1.1中,所述完整接口包括接口类型、关联函数和全局变量。
12、可选地,在步骤2中,合约自动化生成的实现过程包括如下步骤:
13、步骤2.1:基于接口描述的合约生成:
14、步骤2.2:基于抽象解释的合约生成。
15、与第一方面相对应地,本实施例的第二方面提供了一种检测汽车软件错误的装置,包括如下单元:抽象解释单元、自动生成合约单元以及软件错误检测单元;
16、所述抽象解释单元用于对将要测试的汽车软件代码进行分析,形成对于代码结构与语义的抽象值描述;
17、所述自动生成合约单元用于自动化的进行上下文的合约推导,并生成可供整个汽车软件代码检测过程使用的上下文数据库;
18、所述软件错误检测单元用于结合汽车软件架构中定义的功能模块与上下文合约,实施验证任务,并提出分析结果,提示汽车软件代码中存在的错误信息。
19、可选地,所述所述抽象解释单元,具体用于执行如下步骤:
20、步骤1.1:进行函数依赖性分析,确定所分析汽车软件代码的完整接口;
21、步骤1.2:在完成依赖性分析之后,基于依赖关系生成桩函数;
22、步骤1.3:基于结构化的桩函数,生成验证驱动程序便于启动测试;
23、步骤1.4:生成被测试函数的抽象值。
24、可选地,在步骤1.1中,所述完整接口包括接口类型、关联函数和全局变量。
25、可选地,所述自动生成合约单元用于合约自动化生成的实现过程包括如下步骤:
26、步骤2.1:基于接口描述的合约生成;
27、步骤2.2:基于抽象解释的合约生成。
28、本实施例的第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的检测汽车软件错误的方法的步骤。
29、本实施例的第四方面提供了一种设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的检测汽车软件错误的方法的步骤。
30、与现有技术相比,本专利技术的有益效果为:
31、本专利技术提供了一个能够在汽车软件开发过程中低成本检测运行时错误的方法,使开发人员能够快速获得反馈并在基于错误清单迭代工程源文件时解决问题。和传统检测技术相比,本专利技术具有如下的优势:提高测试效率:自动生成测试合约,可以大幅提高测试效率。提高测试准确性:抽象解释的数学方法,可以保证测试合约的准确性。增强测试覆盖率:可以有效地提高测试覆盖率,减少测试遗漏。
本文档来自技高网...【技术保护点】
1.一种检测汽车软件错误的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种检测汽车软件错误的方法,其特征在于,所述步骤1,具体包括如下步骤:
3.根据权利要求2所述的一种检测汽车软件错误的方法,其特征在于,在步骤1.1中,所述完整接口包括接口类型、关联函数和全局变量。
4.根据权利要求1所述的一种检测汽车软件错误的方法,其特征在于,在步骤2中,合约自动化生成的实现过程包括如下步骤:
5.一种检测汽车软件错误的装置,其特征在于,包括如下单元:抽象解释单元、自动生成合约单元以及软件错误检测单元;
6.根据权利要求5所述的一种检测汽车软件错误的装置,其特征在于,所述所述抽象解释单元,具体用于执行如下步骤:
7.根据权利要求6所述的一种检测汽车软件错误的装置,其特征在于,在步骤1.1中,所述完整接口包括接口类型、关联函数和全局变量。
8.根据权利要求5所述的一种检测汽车软件错误的装置,其特征在于,所述自动生成合约单元用于合约自动化生成的实现过程包括如下步骤:
9.一种计算机可读存
10.一种设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-4中任一项所述的检测汽车软件错误的方法的步骤。
...【技术特征摘要】
1.一种检测汽车软件错误的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种检测汽车软件错误的方法,其特征在于,所述步骤1,具体包括如下步骤:
3.根据权利要求2所述的一种检测汽车软件错误的方法,其特征在于,在步骤1.1中,所述完整接口包括接口类型、关联函数和全局变量。
4.根据权利要求1所述的一种检测汽车软件错误的方法,其特征在于,在步骤2中,合约自动化生成的实现过程包括如下步骤:
5.一种检测汽车软件错误的装置,其特征在于,包括如下单元:抽象解释单元、自动生成合约单元以及软件错误检测单元;
6.根据权利要求5所述的一种检测汽车软件错误的装置,其特征在于,所述所述抽象解释单元...
【专利技术属性】
技术研发人员:赵秋俊,鞠伟男,周书华,邵学彬,张秀丽,苏煜,刘丽萍,王诗萌,盛苗苗,王磊,刘宏伟,肖紫芸,朱立爽,李丹阳,李奇,张金超,
申请(专利权)人:中汽研软件测评天津有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。