生成测试代码的方法、测试方法、装置及存储介质与流程

文档序号:35702049发布日期:2023-10-12 01:33阅读:51来源:国知局
生成测试代码的方法、测试方法、装置及存储介质与流程

本发明涉及软件测试技术,尤其涉及一种生成测试代码的方法、测试方法、装置及存储。


背景技术:

1、车辆中,涉及大量的can通信,一般用dbc(data base for can)文件来描述相关产品的can通信。在产品(可以为设备或者程序产品)开发完成后,一般需要测试产品是否能够正确基于dbc的描述发送can信号,在此测试中,其中一项测试涉及未使用位测试,即测试产品发送的can信号中,未使用位的值是否为默认值,以测试产品发送的can信号是否正确,从而验证产品的功能是否正确。为了完成未使用位测试,在编写测试脚本(代码)时,需要在脚本中写入未使用位的信息,以使得在测试时,程序能够知道哪些位是未使用的位。

2、在现有的方案中,开发人员可以通过vector公司提供的dbc开发工具中的layout功能,来确定can信号中的未使用位,并基于layout所显示的内容,手动计算掩码,以指示未使用的位,然后将计算的掩码写入测试脚本中。举例而言,如图7所示,是can信号中某一报文(can信号可以包含多个报文)在layout中的示意图,其中纵轴表示字节(byte)0至字节n,横轴表示位(bit)0至位7。如图所示,该报文包括n个字节,在字节0中,位0至位5被使用(以灰色表示),位6和7未被使用,则人工可计算字节0的掩码为“00111111”,其中以0表示未使用位,以1表示使用位;类似地,可以计算字节1的掩码为“01100111”;以此类推,可以计算所有字节的掩码。然后将计算的掩码手动填入测试脚本中,再利用该测试脚本进行测试,就可以实现未使用位的功能测试。

3、在现有的方案中,由开发人员基于layout的布局,人工计算掩码并填入测试脚本中,存在效率低和易于出错的问题。因此,现有技术存在改进的必要。


技术实现思路

1、有鉴于此,本发明实施例提供了一种生成测试代码的方法、测试方法、装置及存储介质,能够提高效率和准确性。

2、本发明实施例公开了一种生成测试代码的方法,该测试代码被执行时用于测试被测设备发送的can信号中的未使用位的值是否为默认值,其中,can信号包括:至少一个报文,每个报文包括:至少一个信号,所述方法包括:获取用于描述can通讯的dbc文件;提取所述dbc文件中的报文信息;根据所述提取的报文信息,计算所述报文所占用的各个字节的掩码,其中,所述掩码用于指示所述报文占用的字节中未使用的位;以及根据所述计算的掩码,生成所述测试代码。

3、其中,所述报文信息包括如下至少一项:报文标识,报文长度,以及报文中各个信号的起始位、信号长度和信号类型。

4、其中,根据所述提取的报文信息,计算所述报文所占用的各个字节的掩码的步骤具体包括:基于所述报文标识区分各个报文;以及对于所述各个报文,基于所述报文中各个信号的起始位、信号长度和信号类型,确定所述报文中各个信号的使用位的信息;基于所述报文的长度,确定所述报文占用的字节;以及基于所述报文占用的字节和所述使用位的信息,计算所述报文占用的各个字节的掩码。

5、其中,基于所述报文中各个信号的起始位、信号长度和信号类型,确定所述报文中各个信号的使用位的信息的步骤具体包括:对于所述报文中的各个信号,基于所述信号类型确定所述信号的字节序为intel或者motoral;当所述信号的字节序为intel时,直接基于所述信号的起始位和信号长度,确定所述信号的使用位的信息;当所述信号的字节序为motoral时,基于所述信号的起始位和信号长度,判断所述信号是否跨字节;以及基于所述信号是否跨字节,确定所述信号的使用位的信息。

6、其中,使用列表的方式来记录所述报文中各个信号的使用位的信息。

7、其中,基于所述报文占用的字节和所述使用位的信息,计算所述报文占用的各个字节的掩码的步骤具体包括:对于所述报文占用的各个字节,判断各个字节的各个位是否在所述列表中;以及基于判断结果,计算所述各个字节的掩码。

8、其中,根据所述计算的掩码,生成所述测试代码的步骤具体包括:提取测试代码模板;以及基于所述计算的掩码,修改所述测试代码模板,以生成所述测试代码。

9、本发明实施例的一种测试方法,通过执行测试代码来对被测设备发送的can信号执行未使用位功能测试,其中,所述测试代码至少部分通过本发明实施例的生成测试代码的方法生成,且所述测试方法在执行所述测试代码时,所述方法执行如下步骤:获取所述被测设备发送的can信号;获取所述测试代码中的掩码;基于所述获取的掩码,确定所述can信号各个报文中的未使用位的信息;基于所述未使用位的信息,提取所述各个报文中对应位的数据;以及通过判断所述提取的数据是否为预设值,以生成测试结果。

10、本发明实施例的一种生成测试代码的装置,该生成的测试代码用于测试被测设备发送的can信号中的未使用位的值是否为默认值,其中,can信号包括:至少一个报文,每个报文包括:至少一个信号,所述装置包括:获取模块,用于获取用于描述can通讯的dbc文件;信息提取模块,用于提取所述dbc文件中的报文信息;掩码计算模块,用于根据所述提取的报文信息,计算所述报文所占用的各个字节的掩码,其中,所述掩码用于指示所述报文占用的字节中未使用的位;以及代码生成模块,用于根据所述计算的掩码,生成所述测试代码。

11、本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令被处理器执行时,实施根据本发明实施例的方法。

12、本发明实施例的有益效果:

13、本发明实施例,直接基于从dbc文件中提取的报文信息来计算报文所占用的各个字节对应的掩码,该掩码可以指示各个字节中未使用的位,并基于计算的掩码自动生成测试代码。此种方式,直接基于dbc文件中的信息进行掩码计算和测试代码生成,无需人工参与,因此准确性和效率均能够得到提高。



技术特征:

1.一种生成测试代码的方法,该测试代码被执行时用于测试被测设备发送的can信号中的未使用位的值是否为默认值,其中,can信号包括:至少一个报文,每个报文包括:至少一个信号,其特征在于,所述方法包括:

2.如权利要求1所述的生成测试代码的方法,其特征在于,所述报文信息包括如下至少一项:报文标识,报文长度,以及报文中各个信号的起始位、信号长度和信号类型。

3.如权利要求2所述的生成测试代码的方法,其特征在于,根据所述提取的报文信息,计算所述报文所占用的各个字节的掩码的步骤具体包括:

4.如权利要求3所述的生成测试代码的方法,其特征在于,基于所述报文中各个信号的起始位、信号长度和信号类型,确定所述报文中各个信号的使用位的信息的步骤具体包括:

5.如权利要求3所述的生成测试代码的方法,其特征在于,使用列表的方式来记录所述报文中各个信号的使用位的信息。

6.如权利要求5所述的生成测试代码的方法,其特征在于,基于所述报文占用的字节和所述使用位的信息,计算所述报文占用的各个字节的掩码的步骤具体包括:

7.如权利要求1所述的生成测试代码的方法,其特征在于,根据所述计算的掩码,生成所述测试代码的步骤具体包括:

8.一种测试方法,其特征在于,通过执行测试代码来对被测设备发送的can信号执行未使用位功能测试,其中,所述测试代码至少部分通过如权利要求1~7中任一项所述的方法生成,且所述测试代码被执行时,所述方法执行如下步骤:

9.一种生成测试代码的装置,该生成的测试代码用于测试被测设备发送的can信号中的未使用位的值是否为默认值,其中,can信号包括:至少一个报文,每个报文包括:至少一个信号,其特征在于,所述装置包括:

10.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令被处理器执行时,实施根据权利要求1至8中任一项所述的方法。


技术总结
本发明实施例公开了一种生成测试代码的方法,该测试代码被执行时用于测试被测设备发送的CAN信号中的未使用位的值是否为默认值,其中,CAN信号包括:至少一个报文,每个报文包括:至少一个信号,所述方法包括:获取用于描述CAN通讯的DBC文件;提取所述DBC文件中的报文信息;根据所述提取的报文信息,计算所述报文所占用的各个字节的掩码,其中,所述掩码用于指示所述报文占用的字节中未使用的位;以及根据所述计算的掩码,生成所述测试代码。本发明实施例,可以准确和高效地生成测试代码。

技术研发人员:喻耀靖
受保护的技术使用者:大陆软件系统开发中心(重庆)有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1