一种基于CAN信号自动发送的实车测试方法及存储介质与流程

文档序号:28265674发布日期:2021-12-31 18:21阅读:167来源:国知局
一种基于CAN信号自动发送的实车测试方法及存储介质与流程
一种基于can信号自动发送的实车测试方法及存储介质
技术领域
1.本发明涉及车辆制造技术领域,尤其涉及一种基于can信号自动发送的实车测试方法及存储介质。


背景技术:

2.软件测试技术是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现软件产品中所存在的各种问题,检查软件产品的缺陷,对软件产品进行质量控制。
3.长城项目的售后退机问题中不少都是用户在实车使用过程中的黑屏问题,造成退机。根据研究,这是因为实车行车过程中,由于实车测试都是在台架上实现的,极为有限的。
4.简单的单一场景测试,一般是由人工控制车机测试,测试场景单一、测试效率较低;而多场景的车机测试,一般是将采用随机算法生成的随机数据作为测试参数,测试参数的数据量大,且测试参数中存在重复以及无效的随机数据,从而导致测试效率低。


技术实现要素:

5.本发明提供一种基于can信号自动发送的实车测试方法及存储介质,解决了现有的实车测试方案无法有效覆盖实车场景,测试数据不全面、测试效率较低的技术问题。
6.为解决以上技术问题,本发明提供一种基于can信号自动发送的实车测试方法,包括步骤:
7.s1、根据每一can指令的指令信息进行相关性分析,生成状态机;
8.s2、采用尾数法从所述状态机中获取目标can信息集;
9.s3、根据所述目标can信息集获取对应的目标can指令集,并执行进行实车测试。
10.本基础方案根据每一can指令的指令信息进行相关性分析,生成状态迁移阵列,可预先确定每一can指令之间的迁移关系,从而可杜绝随机测试中“悖论”测试的产生,提高实车测试数据价值,降低无效测试的损耗,进而提高测试效率;通过采用尾数法从状态迁移阵列中获取目标can信息集,获取对应的目标can指令集并执行进行实车测试,通过随机发送有效报文,可以有效测试时序相关的绝大部分案例,从而有效覆盖人工手动测试不完全的地方。
11.在进一步的实施方案中,所述步骤s1包括步骤:
12.s11、从每一can指令的指令信息中获取can指令之间的依赖关系;
13.s12、根据所有can指令之间的所述依赖关系进行相关性分析,确定每一can指令的所有可迁移指令,对所有所述可迁移指令进排序后,将所述can指令与对应的所有所述可迁移指令进行关联,得到状态迁移阵列;
14.s13、关联每一所述状态迁移阵列得到状态机。
15.本方案通过从每一can指令的指令信息中获取can指令之间的依赖关系,进行相关性分析,确定每一can指令的所有可迁移指令,对所有可迁移指令进排序后,将can指令与对
应的所有可迁移指令进行关联,得到状态迁移阵列进行实车测试,不仅可覆盖实际车机全部操作场景,还通过依赖关系确定了指令集的可执行性,从而保证每一次测试均可有效执行,降低无效损耗。
16.在进一步的实施方案中,所述步骤s2包括步骤:
17.s21、根据预设规则获取预设无理数的前目标数量位,得到目标序列号;
18.s22、采用尾数法,根据所述目标序列号依次读取对应的所述状态迁移阵列,确定本次测试的指令集编序列中的每一位数;
19.s23、根据所述指令集编序列,依次从所述状态迁移阵列中获取对应的can信息,并整合得到目标can信息集。
20.在进一步的实施方案中,所述根据所述指令集编序列,依次从所述状态迁移阵列中获取对应的can信息具体为:基于当前测试节点或初始测试节点,依次读取所述指令集编序列中的每一位数,从所述状态迁移阵列中匹配相同序号的所述可迁移指令,进而获取对应的can信息。
21.本方案采用预设无理数,根据预设规则获取其前目标数量位得到目标序列号,利用无理数的无限性,可获取到足够多且更为主观的指令集编序列,从而获取到对应目标can信息集以实现多场景的实车自动测试,有效实现对提高车机系统稳定性测试。
22.在进一步的实施方案中,在所述步骤s22中:当从所述指令集编序列中读取的位数的数值,大于当前测试节点或初始测试节点的所述可迁移指令的总数时,进行取余适配。
23.本方案设置取余适配原则,在指令集编序列中读取的位数的数值大于当前测试节点或初始测试节点的可迁移指令的总数时,也可快速确定下一测试节点(可迁移指令),测试系统自动化程度高。
24.在进一步的实施方案中,在所述步骤s22中:所述目标序列号可顺序读取、逆序读取:当本次测试的演算位数超过所述目标序列号的剩余尾数时,即顺序读取所述目标序列号的剩余尾数为0时,则重新按照逆序读取所述目标序列号,确定本次测试的指令集编序列;当逆序读取所述目标序列号的剩余尾数为0时,则重新按照顺序读取所述目标序列号。
25.在进一步的实施方案中,本发明还包括步骤s4:记录当前使用到的所述目标序列号的尾数位数,并将其作为下一轮测试获取所述目标can信息集的载入节点。
26.本方案通过设定目标序列号的顺序读取、逆序读取,不仅可保证可迁移指令的自动匹配,进而保证目标can信息集的获取,以实现系统测试的流畅度;设置尾数记录规则,可提高目标序列号的使用价值,提高测试的全面性。
27.在进一步的实施方案中,所述预设无理数包括圆周率、在进一步的实施方案中,所述预设无理数包括圆周率、
28.在进一步的实施方案中,所述步骤s3包括:
29.s31、根据所述目标can信息集获取对应的目标can指令集;
30.s32、根据所述目标can指令集生成can报文,发送至车机执行,并获取执行结果。
31.本方案根据目标can信息集依次执行获取对应的目标can指令集、生成can报文、发送至车机执行,并获取执行结果,通过完备的台架获得最全的soc日志输出以及mcu的日志输出,可同步测试mcu对报文接收的性能、兼容性。
32.本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序用于实现基于can信号自动发送的实车测试方法。其中,存储介质可以是磁碟、光盘、只读存储器
(read only memory,rom)或者随机存取器(random access memory,ram)等。
附图说明
33.图1是本发明实施例提供的一种基于can信号自动发送的实车测试方法的工作流程图;
34.图2是本发明实施例提供的状态机的数据结构示意图;
35.图3是本发明实施例提供的指令集编序列的获取示意图。
具体实施方式
36.下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。
37.实施例1
38.本发明实施例提供的一种基于can信号自动发送的实车测试方法,如图1所示,在本实施例中,包括步骤s1~s4:
39.s1、根据每一can指令的指令信息进行相关性分析,生成状态机,参见图2,包括步骤s11~s13:
40.s11、从每一can指令的指令信息中获取can指令之间的依赖关系;
41.s12、根据所有can指令之间的依赖关系进行相关性分析,确定每一can指令的所有可迁移指令,对所有可迁移指令进排序后,将can指令与对应的所有可迁移指令进行关联,得到状态迁移阵列;
42.s13、关联每一所述状态迁移阵列得到状态机。
43.本实施例通过从每一can指令的指令信息中获取can指令之间的依赖关系,进行相关性分析,确定每一can指令的所有可迁移指令,对所有可迁移指令进排序后,将can指令与对应的所有可迁移指令进行关联,得到状态迁移阵列进行实车测试,不仅可覆盖实际车机全部操作场景,还通过依赖关系确定了指令集的可执行性,从而保证每一次测试均可有效执行,降低无效损耗。
44.s2、采用尾数法从状态机中获取目标can信息集,参见图3,包括步骤s21~s23:
45.s21、根据预设规则获取预设无理数的前目标数量位,得到目标序列号;
46.在本实施例中,预设无理数包括但不限于圆周率、在本实施例中,预设无理数包括但不限于圆周率、
47.s22、采用尾数法,根据目标序列号依次读取对应的状态迁移阵列,确定本次测试的指令集编序列中的每一位数;
48.当从指令集编序列中读取的位数的数值,大于当前测试节点或初始测试节点的可迁移指令的总数时,进行取余适配。
49.本实施例设置取余适配原则,在指令集编序列中读取的位数的数值大于当前测试节点或初始测试节点的可迁移指令的总数时,也可快速确定下一测试节点(可迁移指令),测试系统自动化程度高。
50.在本实施例中,目标序列号可顺序读取、逆序读取:当本次测试的演算位数超过目标序列号的剩余尾数时,即顺序读取目标序列号的剩余尾数为0时,则重新按照逆序读取目
标序列号,确定本次测试的指令集编序列;当逆序读取目标序列号的剩余尾数为0时,则重新按照顺序读取目标序列号。
51.本实施例通过设定目标序列号的顺序读取、逆序读取,不仅可保证可迁移指令的自动匹配,进而保证目标can信息集的获取,以实现系统测试的流畅度;设置尾数记录规则,可提高目标序列号的使用价值,提高测试的全面性。
52.本实施例采用预设无理数,根据预设规则获取其前目标数量位得到目标序列号,利用无理数的无限性,可获取到足够多且更为主观的指令集编序列,从而获取到对应目标can信息集以实现多场景的实车自动测试,有效实现对提高车机系统稳定性测试。
53.s23、根据指令集编序列,依次从状态迁移阵列中获取对应的can信息,并整合得到目标can信息集。
54.在本实施例中,根据指令集编序列,依次从状态迁移阵列中获取对应的can信息具体为:基于当前测试节点或初始测试节点,依次读取指令集编序列中的每一位数,从状态迁移阵列中匹配相同序号的可迁移指令,进而获取对应的can信息。
55.s3、根据目标can信息集获取对应的目标can指令集,并执行进行实车测试,包括步骤s31~s32:
56.s31、根据目标can信息集获取对应的目标can指令集;
57.s32、根据目标can指令集生成can报文,发送至车机执行,并获取执行结果。
58.本实施例根据目标can信息集依次执行获取对应的目标can指令集、生成can报文、发送至车机执行,并获取执行结果,通过完备的台架获得最全的soc日志输出以及mcu的日志输出,可同步测试mcu对报文接收的性能、兼容性。
59.s4、记录当前使用到的目标序列号的尾数位数,并将其作为下一轮测试获取目标can信息集的载入节点,重复步骤s2~步骤s4。
60.最后,通过重复步骤s2~步骤s4,自动生成大批量的指令集编序列,可模拟出多种不同应用场景下的实车测试环境,实现实车场景的覆盖性测试。
61.在本实施例中,以圆周率为预设无理数为例,参见图3,本实车测试中指令集编序列的获取过程如下:
62.获取圆周率的前1亿位(即前目标数量位,可根据实际的用户需求进行设置),作为目标序列号(即为3.1415926535897932384
……
)。
63.此时,圆周率的每一位数均对应状态机内每个状态迁移阵列内对应指令的序号。
64.以开机节点为初始节点,初次读取目标序列号,读取第i排阵列的第3位(图3中第二排的

),读取第ii排阵列的第1位(图3中第三排的

),读取第iii排阵列的第4位(图3中第四排的

),依次类推,直至无下一排阵列。
65.随后将以上获取到的第二排的

、第三排的

、第四排的

等序号整合为指令集编序列。
66.若在第vii排阵列的可迁移指令的总数仅为6时,其对应的数位为“9”,取余为3,则取第vii排阵列的第三位可迁移指令。
67.若本次匹配仅使用了8位(即3.1415926)则下轮测试时,从目标序列号的第9位开始匹配。
68.本发明实施例根据每一can指令的指令信息进行相关性分析,生成状态迁移阵列,
可预先确定每一can指令之间的迁移关系,从而可杜绝随机测试中“悖论”测试的产生,提高实车测试数据价值,降低无效测试的损耗,进而提高测试效率;通过采用尾数法从状态迁移阵列中获取目标can信息集,获取对应的目标can指令集并执行进行实车测试,通过随机发送有效报文,可以有效测试时序相关的绝大部分案例,从而有效覆盖人工手动测试不完全的地方。
69.实施例2
70.本发明实施例还提供一种存储介质,其上存储有计算机程序,计算机程序用于实现上述实施例1提供的基于can信号自动发送的实车测试方法。其中,存储介质可以是磁碟、光盘、只读存储器(read only memory,rom)或者随机存取器(random access memory,ram)等。
71.上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1