本发明涉及故障注入测试,具体为一种周期同步注入故障方法。
背景技术:
1、故障注入是软件工程和系统开发中的重要实践,可以帮助开发团队发现并修复潜在的问题,提高系统的稳定性和可靠性。通过模拟和测试系统在异常情况下的行为,可以改进系统的设计和实现,确保系统在面对意外情况时能够健壮地运行;一套完整、高效的故障注入方法必不可少。而传统的静态注入故障方法每注入一个故障都需要修改源代码,并重新编译和烧录加载软件,操作复杂效率低且对计算机硬件设备性能要求极高;动态注入故障方法则因需通过人工操作,存在时间差无法保证同周期故障注入。
2、中国专利,公开号:cn116302730a,公开日:2023年06月23日,公开了一种故障注入方法和装置,该方法包括:将每一个故障活动项采用图形化标识来表示;其中,每个故障活动项分别具备正常、运行和异常三种状态的图形化标识;根据预设操作将所选的多个故障活动项对应的图形化标识组成故障序列;执行所述故障序列实现故障注入。然而该发明主要是实现了一种通过设置故障活动的图形化标识序列完成故障注入的方法,无法实现多个主控单板平台子系统在周期内同步实现故障注入并进行故障注入的自动化测试。
技术实现思路
1、本发明的目的是针对现有技术中多个主控单板平台子系统在周期内同步进行故障注入并进行故障注入测试困难的问题;设计了一种周期同步注入故障方法,通过定义故障类型的全局变量信息,使用软调协议解析全局变量信息内存地址获取系统当前周期号,根据当前周期号计算故障注入点,多个系统在故障注入点同步执行故障注入程序并检测故障注入是否成功;克服了多个主控单板平台子系统在周期内同步进行故障注入并进行故障注入测试困难的问题,提高故障注入测试工作效率。
2、为解决上述技术问题,本发明采用的技术方案为:一种周期同步注入故障方法,包括以下步骤:
3、s1、根据测试要求建立故障注入测试用例库,按照故障注入方式以及测试功能需求对所述故障测试用例库中的故障注入用例进行分类,针对故障类型定义故障注入全局变量信息;
4、s2、分配存储故障注入全局变量的内存地址;
5、s3、解析故障注入全局变量的内存地址,通过软调协议读内存功能获取故障注入全局变量的参数信息;
6、s4、根据参数信息计算开始故障注入周期号,确定故障注入点;
7、s5、根据注入点,对多个主控单板平台子系统进行周期同步故障注入,并自动检测故障注入结果。
8、本发明中,通过定义故障类型的全局变量信息,使用软调协议解析全局变量信息内存地址获取系统当前周期号,根据当前周期号计算得到故障注入点,使得多个系统在故障注入点同步执行故障注入程序并检测故障注入是否成功,实现了多系统周期同步故障注入。
9、优选的,所述故障注入全局变量信息包括:开始故障注入周期号、故障注入周期数、丢弃雷达报文个数以及修改雷达报文个数;通过定义的故障注入全局变量信息能准确定位故障注入节点,并可根据报文信息判断故障注入是否成功,其中,开始故障注入周期号用于记录故障注入执行结果,实现了故障注入的自动化测试。
10、优选的,所述软调协议包括被动端和主动端,所述主动端连接测试工具对外提供的通信接口,所述被动端与各主控单板平台子系统进行数据交互,所述软调协议通过所述被动端及所述主动端分别为测试工具和主控单板平台子系统提供读内存、写内存以及函数接口调用功能;计算机平台在启动初始化函数中加入所述软调协议第一函数接口的调用,在周期运行函数中加入所述软调协议第二函数接口的调用。
11、本发明中,通过软调协议能同时对主控单板平台子系统内存进行读写操作,便于解析计算机elf文件获取故障注入全局变量内存地址,从而获取计算开始故障注入周期号需要的参数信息,并使用软调协议的写内存功能来实现故障的注入。
12、优选的,所述s3包括如下步骤:
13、s31、使用所述软调协议建立测试工具与多个主控单板平台子系统的连接;
14、s32、测试工具解析计算机软件elf文件,获取全部故障注入全局变量名称以及对应的内存地址;
15、s33、根据当前周期号对应的全局变量名称,查询并匹配该全局变量的内存地址。
16、本发明中,测试工具解析elf格式文件获取全局变量的内存地址,为计算开始故障注入周期号提供了数据源。
17、优选的,测试工具和各主控单板平台子系统使用同一个elf文件的数据。
18、本方案中,通过操作同一个elf格式文件,获取同一个周期号,保证开始故障注入周期号计算的准确性以及获取的内存地址的正确性,确保各主控单板平台子系统在周期内同步完成故障注入。
19、优选的,所述s4包括如下步骤:
20、s41、通过所述软调协议读内存功能获取第一个主控单板平台子系统当前运行的周期号;
21、s42、设定通信延迟时间,再根据通信延迟时间、周期运行长度以及第一个主控单板平台子系统当前运行的周期号计算开始故障注入周期号,确定故障注入周期。
22、优选的,所述开始故障注入周期号包括如下计算过程:
23、
24、式中,n为开始故障注入周期号,m为当前周期号,t为通信延迟时间,c为周期长度。
25、本发明中,通过将通信延迟以及周期长度参与开始故障注入周期号的计算,均衡了各主控单板平台子系统运行的时间差。
26、优选的,所述s5包括如下步骤:
27、s51、判断故障注入条件是否满足,若满足,则执行步骤s52;
28、s52、测试工具根据所述开始故障注入周期号,接收输入的故障注入信息,并判断注入故障的类型,匹配故障注入全局变量的内存地址;
29、s53、封装所述开始故障注入周期号与所述故障注入信息得到故障报文,并通过所述软调协议写内存功能将所述故障报文同时写入至多个主控单板平台子系统中相应的故障注入全局变量的内存地址;
30、s54、多个主控单板平台子系统周期同步解析所述故障报文,并执行故障注入的程序,输出故障注入执行日志;
31、s55、多个主控单板平台子系统周期检查故障执行状态以及所述故障注入执行日志,判断故障注入执行结果;
32、s56、根据所述故障注入执行结果,分析判断故障注入用例的执行结果;若存在主控单板子系统未执行到故障注入周期,该系统故障注入周期数为0,则运行步骤s53;以实现自动化故障注入用例测试。
33、本发明中,通过软调协议写内存功能将故障信息写入各主控单板平台子系统全局变量的内存地址中,实现了故障的注入;同时,通过检查故障注入执行日志判断故障注入结果,并根据故障注入结果执行相应的策略,实现了故障注入的自动化测试。
34、优选的,所述步骤s51包括如下步骤:
35、如果当前周期号大于或等于开始故障注入周期号,且当前周期号小于雷达报文开始故障注入周期号与雷达报文故障注入周期数之和,则表示满足故障注入条件;通过比较当前周期号与开始故障注入周期号、雷达报文故障注入周期数,判断是否需要注入故障,提高了对主控单板平台子系统执行故障注入的精准性和全局变量的内存资源利用率。
36、优选的,测试工具根据接收的用户输入数据,依次进行所述故障注入测试用例库中其他故障注入用例的自动化测试;测试工具根据人工输入的信息判断需要注入的故障类型,自行完成故障注入并自动监测是否注入完成,提高了故障注入效率以及测试效率,节约了人工测试成本。
37、本发明的有益效果:
38、1、本发明通过软调协解析系统平台文件获取故障注入全局变量信息,计算出开始故障注入周期号,为各主控单板平台子系统能在同周期同步运行故障注入程序提供了可靠性数据支撑;2、本发明通过执行完故障注入程序后周期检查故障注入状态,判断故障注入结果,实现了周期同步注入故障的测试需求,提高了测试质量及效率;
39、3、本发明通过获取当前周期号、计算开始故障注入周期号、获取故障注入全局变量内存地址、组包故障写内存报文并发送故障报文给多个主控单板平台子系统操作,达到自动化故障注入测试的目的。
1.一种周期同步注入故障方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的周期同步注入故障方法,其特征在于:所述故障注入全局变量信息包括:开始故障注入周期号、故障注入周期数、丢弃雷达报文个数以及修改雷达报文个数。
3.根据权利要求1所述的周期同步注入故障方法,其特征在于:所述软调协议包括被动端和主动端,所述主动端连接测试工具对外提供的通信接口,所述被动端与各主控单板平台子系统进行数据交互,所述软调协议通过所述被动端及所述主动端分别为测试工具和主控单板平台子系统提供读内存、写内存以及函数接口调用功能;计算机平台在启动初始化函数中加入所述软调协议第一函数接口的调用,在周期运行函数中加入所述软调协议第二函数接口的调用。
4.根据权利要求1所述的周期同步注入故障方法,其特征在于:所述s3包括如下步骤:
5.根据权利要求4所述的周期同步注入故障方法,其特征在于:测试工具和各主控单板平台子系统使用同一个elf文件的数据。
6.根据权利要求1所述的周期同步注入故障方法,其特征在于:所述s4包括如下步骤:
7.根据权利要求6所述的周期同步注入故障方法,其特征在于:所述开始故障注入周期号包括如下计算过程:
8.根据权利要求1或6所述的周期同步注入故障方法,其特征在于:所述s5包括如下步骤:
9.根据权利要求8所述的周期同步注入故障方法,其特征在于:所述步骤s51包括如下步骤:,如果当前周期号大于或等于开始故障注入周期号,且当前周期号小于雷达报文开始故障注入周期号与雷达报文故障注入周期数之和,则表示满足故障注入条件。
10.根据权利要求1-8任一项所述的周期同步注入故障方法,其特征在于:还包括,测试工具根据接收的用户输入数据,依次进行所述故障注入测试用例库中其他故障注入用例的自动化测试。