CN117784762A - 车载软件can报文测试方法、装置、设备及介质 - Google Patents
车载软件can报文测试方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117784762A CN117784762A CN202311826119.XA CN202311826119A CN117784762A CN 117784762 A CN117784762 A CN 117784762A CN 202311826119 A CN202311826119 A CN 202311826119A CN 117784762 A CN117784762 A CN 117784762A
- Authority
- CN
- China
- Prior art keywords
- message
- software
- value
- tested
- variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 139
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000004088 simulation Methods 0.000 claims abstract description 32
- 238000004891 communication Methods 0.000 claims description 21
- 238000013524 data verification Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 238000005259 measurement Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种车载软件CAN报文测试方法、装置、设备及介质,属于车辆技术领域。该方法包括:获取待测CAN报文的信息,信息至少包括报文名称、报文标识符和报文信号;根据信息生成系统变量,系统变量包括测试数据;根据待测CAN报文生成仿真代码;控制仿真代码运行,以将报文信号中的数据赋值为测试数据,并读取被测软件接收到赋值后的CAN报文后更新的软件内部变量的值;获取软件内部变量的值,若测试数据的值与软件内部变量的值相同,得到测试结果为通过;若测试数据的值与软件内部变量的值不相同,得到测试结果为不通过。该方法使得整个测试过程全部自动完成,降低测试人员的参与度,减少人工成本和时间成本,降低人工遗漏和出错的风险,提高测试效率。
Description
技术领域
本发明涉及车辆技术领域,尤其涉及一种车载软件CAN报文测试方法、装置、设备及介质。
背景技术
随着汽车电子智能化的不断发展,车载软件的复杂度也不断增加,车辆控制模块之间的通信也更加复杂,用于整车通信的CAN总线(控制器局域网总线,Controller AreaNetwork)数量也随之增加。与此同时,整车SOA架构(面向服务的架构,Service-OrientedArchitecture)所主导的域控制器集成度越来越高,其对CAN通信的处理任务也越来越繁重。为了保证整车功能不受影响,CAN报文接收功能不可以出现任何异常,且性能要满足需求。
现有技术中,会对CAN报文接收功能进行测试,以确保CAN报文接收功能正常。测试过程中,很多步骤都需要测试人员参与,由于CAN报文及信号数量庞大,会耗费巨大的人力成本和时间成本,过多的人工参与会影响测试效率,若测试人员疏忽导致测试遗漏或错误,将会影响测试结果的准确性。
发明内容
鉴于上述问题,提出了本发明以便提供一种解决上述问题的车载软件CAN报文测试方法、装置、设备及介质,可以根据待测CAN报文自动生成系统变量和仿真代码,通过仿真代码对CAN报文中的报文信号进行赋值和对被测软件的内部变量的值进行读取,整个测试过程中全部自动完成,降低测试人员的参与度,从而减少人工成本和时间成本,降低人工遗漏和出错的风险,提高测试效率。
第一方面,本发明提供了一种车载软件CAN报文测试方法,所述方法包括:
获取待测CAN报文的信息,所述信息至少包括报文名称、报文标识符和报文信号;
根据所述信息生成系统变量,所述系统变量包括测试数据;
根据所述待测CAN报文生成仿真代码;
控制所述仿真代码运行,以将所述报文信号中的数据赋值为所述测试数据并读取被测软件接收到赋值后的所述CAN报文后更新的软件内部变量的值;
获取所述软件内部变量的值,若所述测试数据的值与所述软件内部变量的值相同,得到测试结果为通过;
若所述测试数据的值与所述软件内部变量的值不相同,得到所述测试结果为不通过。
可选的,所述获取待测CAN报文的信息之前,所述方法还包括:
判断CAN报文是否为所述被测软件需要接的CAN报文;
若所述CAN报文为所述被测软件需要接收的所述CAN报文,则确定所述CAN报文为所述待测CAN报文,并执行所述获取待测CAN报文的信息的步骤。
可选的,所述系统变量还包括命名空间和具体名称,所述根据所述信息生成系统变量之后,所述方法还包括:
确定所述命名空间为所述报文名称和所述报文标识符,以及所述具体名称为所述报文信号;
根据所述命名空间、所述具体名称和所述测试数据,建立变量文档。
可选的,所述获取所述软件内部变量之后,所述方法还包括:
将所述软件内部变量与所述系统变量一一对应存储到所述变量文档中;
从所述变量文档中获取每个所述系统变量的测试数据和对应的所述软件内部变量,将每个所述测试数据的值与对应的所述软件内部变量的值进行比对。
可选的,所述仿真代码包括发送代码,用于仿真其他软件发送所述CAN报文。
可选的,所述信息还包括报文类型和报文周期,所述获取待测CAN报文的信息之后,所述方法还包括:
判断所述报文类型是否为事件型;
若所述报文类型为所述事件型,则将所述报文周期调整为设定时长。
可选的,所述方法还包括:
判断所述待测CAN报文是否需要进行数据校验;
若所述待测CAN报文需要进行所述数据校验,则为所述待测CAN报文匹配数据校验算法,以增加所述待测CAN报文的真实性。
第二方面,本发明提供了一种车载软件CAN报文测试装置,所述装置包括:
第一获取模块,用于获取待测CAN报文的信息,所述信息至少包括报文名称、报文标识符和报文信号;
第一生成模块,用于根据所述信息生成系统变量,所述系统变量包括测试数据;
第二生成模块,用于根据所述待测CAN报文生成仿真代码;
控制模块,用于控制所述仿真代码运行,以将所述报文信号中的数据赋值为所述测试数据,并读取被测软件接收到赋值后的所述CAN报文后更新的软件内部变量的值;
第二获取模块,用于获取所述软件内部变量的值;
比对模块,用于若所述测试数据的值与所述软件内部变量的值相同,得到测试结果为通过;若所述测试数据的值与所述软件内部变量的值不相同,得到所述测试结果为不通过。
可选的,装置还包括确定模块,用于:
判断CAN报文是否为所述被测软件需要接收的CAN报文;
若所述CAN报文为所述被测软件需要接收的所述CAN报文,则确定所述CAN报文为所述待测CAN报文,并执行所述获取待测CAN报文的信息的步骤。
可选的,所述系统变量还包括命名空间和具体名称,装置还包括建立模块,用于:
确定所述命名空间为所述报文名称和所述报文标识符,以及所述具体名称为所述报文信号;
根据所述命名空间、所述具体名称和所述测试数据,建立变量文档。
可选的,装置还包括第三获取模块,用于:
将所述软件内部变量与所述系统变量一一对应存储到所述变量文档中;
从所述变量文档中获取每个所述系统变量的测试数据和对应的所述软件内部变量,将每个所述测试数据的值与对应的所述软件内部变量的值进行比对。
可选的,所述仿真代码包括发送代码,用于仿真其他软件发送所述CAN报文。
可选的,所述信息还包括报文类型和报文周期,装置还包括调整模块,用于:
判断所述报文类型是否为事件型;
若所述报文类型为所述事件型,则将所述报文周期调整为设定时长。
可选的,装置还包括匹配模块,用于:
判断所述待测CAN报文是否需要进行数据校验;
若所述待测CAN报文需要进行所述数据校验,则为所述待测CAN报文匹配数据校验算法,以增加所述待测CAN报文的真实性。
第三方面,本发明提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如第一方面所述的方法。
本发明实施例中提供的技术方案,至少具有如下技术效果或优点:
本发明实施例提供的一种车载软件CAN报文测试方法、装置、设备及介质,可以先获取待测CAN报文的信息,信息至少包括报文名称、报文标识符和报文信号,根据信息生成系统变量,系统变量包括测试数据,基于测试数据对CAN报文的接收功能进出测试;根据待测CAN报文可以自动生成仿真代码;再控制仿真代码运行,对被测软件进行测试,通过仿真代码将报文信号中的数据赋值为测试数据,并读取被测软件接收到赋值后的CAN报文后更新的软件内部变量的值;最后将获取的软件内部变量的值和测试数据的值进行比对,得到测试结果,其中,若测试数据的值与软件内部变量的值相同,得到测试结果为通过;若测试数据的值与软件内部变量的值不相同,得到测试结果为不通过。该方法使得整个测试过程全部自动完成,降低测试人员的参与度,从而减少人工成本和时间成本,降低人工遗漏和出错的风险,提高测试效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种车载软件CAN报文测试方法的流程图;
图2是本发明实施例提供的一种车载软件CAN报文测试装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本发明实施例提供的一种车载软件CAN报文测试方法的流程图,如图1所示,该方法包括:
步骤S110、获取待测CAN报文的信息。
其中,CAN报文的信息至少包括报文名称、报文标识符(ID)和报文信号,还可以包括报文数据长度(DLC,Date Length Code)。
在本实施例中,可以采用Vector公司的CANoe(CAN open environment,总线开发环境)作为CAN通讯工具。Vector CANoe是一款用于网络和ECU(Electronic Control Unit,电子控制单元)开发、测试和分析的专业工具,具有大量丰富的接口。
可选的,步骤S110之前,方法还包括:
判断CAN报文是否为被测软件需要接收的CAN报文;若CAN报文为被测软件需要接收的CAN报文,则确定CAN报文为待测CAN报文,并执行获取待测CAN报文的信息的步骤。
在本实施例中,可以预先建立通信矩阵表,并将被测软件需要接收的报文信息定义到通信矩阵表中。报文信息包含报文名称、报文ID、报文周期、报文信号名称、报文类型和报文信号限值等。
可理解为,CAN通信时会有很多报文,先判断哪些报文是被测软件需要接收的报文。具体为,对通信矩阵表(excel表格)中的每一行进行查找,看通信矩阵表中中是否定义该CAN报文为被测软件需要接收的CAN报文,若是,则将该CAN报文确定为待测CAN报文,然后从通信矩阵表中获取待测CAN报文的信息。若否,则不执行后续步骤。
在本实施例中,可以根据不同车型、不同的项目建立不同的CAN通信矩阵表,以满足不同的需求,无需针对不同CAN通信矩阵额外进行开发或适配。
可选的,步骤S110之后,方法还包括:
判断报文类型是否为事件型;若报文类型为事件型,则将报文周期调整为设定时长。
其中,报文类型包括事件型和周期型。其中,周期型的报文会按照报文周期发送报文,但事件型的报文不会周期性发送,因此,为了完成事件型报文的测试,则对事件型报文的报文周期进行调整,调整为设定时长,这样无需单独增加触发事件型报文发送的操作,提高测试效率。例如,设定时长设置为100毫秒。
步骤S120,根据信息生成系统变量。
其中,系统变量包括测试数据。
在本实施例中,根据待测CAN报文的信息,按照指定的层级格式生成CANoe应用工程的系统变量。即当识别到一条待测CAN报文时,可以按照xml的格式生成一个父节点:“报文名称-报文ID“,在获取到该报文的报文信号时,生成一个子节点“报文信号名称”。
可选的,系统变量还包括命名空间和具体名称,步骤S120之后,方法还包括:
确定命名空间为报文名称和报文标识符,以及具体名称为报文信号;根据命名空间、具体名称和测试数据,建立变量文档。
可理解为,生成的CANoe工程的系统变量结构为:以“CAN通道-报文名称-报文ID“作为系统变量的Namespace(命名空间),以”报文信号名“作为系统变量的Name(具体名称)。将所有待测CAN报文对应的系统变量保持到指定的变量文档(例如,.xlsx格式文档)中,再保存至指定路径的文件中。其中,变量文档中还可以包括CAN报文周期。
需要说明的是,将所有检测到的待测CAN报文和对应的系统变量都存到变量文档中,以供后续步骤进行调用。
在本实施例中,还可以根据报文信号的信息选定系统变量的数据类型,并设置系统变量中测试数据的初始值、最大值及最小值。其中,数据类型指int、uint等,在通信矩阵表中会定义每个报文信号的数据类型,根据通信矩阵表选择数据类型可以减少资源浪费。
步骤S130、根据待测CAN报文生成仿真代码。
具体为,由于待测CAN报文的信息存储在变量文档中,此时可以根据变量文档中每个报文名称和报文信号生成对应的仿真代码,即自动生成CAPL(Communication AccessProgramming Language,脚本编程语言)脚本代码。可以使用Python语言开发实现,其所生成的CAPL代码在编译后,可以直接导入CANoe应用工程中运行,导入后可以实现系统变量与对应的仿真代码相互关联,可通过系统变量完成CAN仿真节点中CAN报文及报文信号的控制操作。调用仿真接口进行使用。
可选的,步骤S130之后,方法还包括:
判断待测CAN报文是否需要进行数据校验;若待测CAN报文需要进行数据校验,则为待测CAN报文匹配数据校验算法,以增加待测CAN报文的真实性。
在本实施例中,因为有的CAN报文需要安全认证,如果安全认证不通过,则被测软件不会接收,这里对需要认证的报文配置数据校验算法,例如E2E算法,可以仿真控制器实际发送报文时的流程,增加待测CAN报文的真实性。
步骤S140、控制仿真代码运行,以将报文信号中的数据赋值为测试数据,并读取被测软件接收到赋值后的CAN报文后更新的软件内部变量的值。
在本实施例中,通过对CANoe应用工程进行远程控制,使用Python开发语言实现接口控制,读取或者赋值CANoe应用工程的系统变量。
在本实施中,提供了CANoe应用的启动接口,用于启动CANoe应用。提供了CANoe应用的关闭接口,用于关闭CANoe应用。提供了CANoe应用工程的开始测量接口,用于开始测量;若当前CANoe应用未启动,该开始测量接口会提示相关错误信息。提供了CANoe应用工程的停止测量接口,用于停止测量;若当前CANoe应用未启动,该停止测量接口会提示相关错误信息。提供了CANoe应用工程的系统变量的读取接口,用于读取系统变量的值;如果读取时出现错误,提示相关错误信息;如果CANoe应用工程未启动,则该读取接口不执行任何操作。提供了CANoe应用工程系统变量的赋值接口,用于设置该系统变量的值;如果赋值出现错误,提示相关错误信息;如果CANoe应用工程未启动,则该赋值接口不执行任何操作。
其中,仿真代码包括赋值代码和读取代码。
具体为,若测试开始执行,则调用启动接口和开始测量接口,以启动CANoe应用工程并开始测量,从变量文档中识别一条待测CAN报文,并调用赋值接口,运行赋值代码将报文信号中的数据赋值为系统变量的测试数据(最大值、最小值或最大值与最小值之间的随机值中的一个);然后,调用读取接口,运行读取代码读取被测软件接收到赋值后的CAN报文后更新的软件内部变量。当变量文档中所有待测CAN报文都测试完成后,则调用停止测量接口和关闭接口,停止CANoe应用工程测量,并关闭CANoe应用工程。
需要说明的是,最大值、最小值和随机值可以选择其中一个进行赋值,也可以都选择。若都选择,则每次赋值不同的值,执行相同的步骤即可。
在本实施例中,测试过程中,控制被测软件运行源代码,则被测软件在接收到赋值后的CAN报文后,会将软件内部变量的值进行更新。
可选的,仿真代码包括传输代码,用于仿真其他软件发送CAN报文。
可理解为,在测试时,没有软件进行CAN报文的发送,可以通过仿真代码仿真其他软件发送CAN报文。
步骤S150、获取软件内部变量。
具体为,将仿真代码从测试软件中读取的软件内部变量进行调用。
可选的,方法还包括:
将软件内部变量与系统变量一一对应存储到变量文档中;从变量文档中获取每个系统变量的测试数据和对应的软件内部变量,将每个测试数据的值与对应的软件内部变量的值进行比对。
具体为,在获取到软件内部变量后,则在变量文档中匹配对应的报文信号,然后将软件内部变量与报文信号进行一一对应存储。然后对变量文档中所有需要比对的软件内部变量和测试数据进行比对,全部比对之后,可得到测试结果,根据测试结果,生成测试报告。
在本实施例中,可以通过调试器劳特巴赫读取被测软件的软件内部变量,调试器劳特巴赫是一款性能强大的嵌入式软件开发调试工具,其所提供的Python控制接口可以便利地通过Python对劳特巴赫软件Trace32进行远程控制,使用Python语言对Trace32进行控制。
具体为,通过Trace32软件调用调试器劳特巴赫的读取接口,从被测软件的内部变量声明表源代码头文件中读取软件内部变量,不需要开发劳特巴赫对应的CMM脚本;若读取过程出现错误,则提示相关错误信息。通过Trace32软件调用调试器劳特巴赫的赋值接口,可以对软件内部变量进行赋值,若赋值过程出现错误,则提示相关错误信息。通过劳特巴赫Trace32软件自动连接接口,当未能识别到劳特巴赫调试器硬件设备时,提示相关错误信息。
步骤S160、,若测试数据的值与软件内部变量的值相同,得到测试结果为通过;若测试数据的值与软件内部变量的值不相同,得到测试结果为不通过。
可理解为,对测试数据的值和软件内部变量的值进行比对,若测试数据的值与软件内部变量的值相同,说明CAN报文接收功能没有问题,所以测试结果为通过。若测试数据的值与软件内部变量的值不相同,说明CAN报文接收功能有问题,所以测试结果为不通过。
本实施例中的测试方法自动化程度高,无需额外软件开发,同时具有跨项目、跨车型的可移植性,以满足不同测试任务需求。并采用市场上主流的开发工具来实现,具有稳定性强、可扩展性高、覆盖度高、维护成本低的优点。整个测试流程全自动化,可以大幅减少测试人员时间投入,可以有效降低人力及时间成本,同时可以避免人工测试出错的风险。不需要对被测软件额外进行软件开发支持,可直接使用正式的软件进行测试,可达到完全覆盖,同时避免了被测软件额外支持可能导致的问题。实现高效、全面、准确地进行CAN报文接收测试。
基于同样的发明构思,本发明实施例还提供了一种车载软件CAN报文测试装置,图2是本发明实施例提供的一种车载软件CAN报文测试装置的结构框图,如图2所示,该装置200包括第一获取模块210、第一生成模块220、第二生成模块230、控制模块240、第二获取模块250和比对模块260。
第一获取模块210,用于获取待测CAN报文的信息,信息至少包括报文名称、报文标识符和报文信号;
第一生成模块220,用于根据信息生成系统变量,系统变量包括测试数据;
第二生成模块230,用于根据待测CAN报文生成仿真代码;
控制模块240,用于控制仿真代码运行,以将报文信号中的数据赋值为测试数据,并读取被测软件接收到赋值后的CAN报文后更新的软件内部变量的值;
第二获取模块250,用于获取软件内部变量;
比对模块260,用于若测试数据的值与软件内部变量的值相同,得到测试结果为通过;若测试数据的值与软件内部变量的值不相同,得到测试结果为不通过。
可选的,装置200还包括确定模块,用于:
判断CAN报文是否为被测软件需要接收的CAN报文;
若CAN报文为被测软件需要接收的CAN报文,则确定CAN报文为待测CAN报文,并执行获取待测CAN报文的信息的步骤。
可选的,系统变量还包括命名空间和具体名称,装置200还包括建立模块,用于:
确定命名空间为报文名称和报文标识符,以及具体名称为报文信号;
根据命名空间、具体名称和测试数据,建立变量文档。
可选的,装置200还包括第三获取模块,用于:
将软件内部变量与系统变量一一对应存储到变量文档中;
从变量文档中获取每个系统变量的测试数据和对应的软件内部变量,将每个测试数据的值与对应的软件内部变量的值进行比对。
可选的,仿真代码包括发送代码,用于仿真其他软件发送CAN报文。
可选的,信息还包括报文类型和报文周期,装置200还包括调整模块,用于:
判断报文类型是否为事件型;
若报文类型为事件型,则将报文周期调整为设定时长。
可选的,装置200还包括匹配模块,用于:
判断待测CAN报文是否需要进行数据校验;
若待测CAN报文需要进行数据校验,则为待测CAN报文匹配数据校验算法,以增加待测CAN报文的真实性。
可以理解的是,上述实施例提供的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明实施例还提供了一种电子设备,该电子设备可以包括处理器和存储器,其中处理器和存储器可以通过总线或者其他方式互相通信连接。
处理器可以为中央处理器(Central Processing Unit,CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在电子设备的内部或外部。在特定实施例中,存储器可以是非易失性固态存储器。
在一个实例中,存储器可以是只读存储器(Read Only Memory,ROM)。在一个实例中,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例中的任意一种车载软件CAN报文测试方法。
在一个示例中,电子设备还可包括通信接口和总线。其中,处理器、存储器、通信接口通过总线连接并完成相互间的通信。通信接口,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。在合适的情况下,总线可包括一个或多个总线。
另外,结合上述实施例中的车载软件CAN报文测试方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种车载软件CAN报文测试方法。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
本发明实施例提供的一种车载软件CAN报文测试方法、装置、设备及介质,可以先获取待测CAN报文的信息,信息至少包括报文名称、报文标识符和报文信号,根据信息生成系统变量,系统变量包括测试数据,基于测试数据对CAN报文的接收功能进出测试;根据待测CAN报文可以自动生成仿真代码;再控制仿真代码运行,对被测软件进行测试,通过仿真代码将报文信号中的数据赋值为测试数据,并读取被测软件接收到赋值后的CAN报文后更新的软件内部变量的值;最后将获取的软件内部变量的值和测试数据的值进行比对,得到测试结果,其中,若测试数据的值与软件内部变量的值相同,得到测试结果为通过;若测试数据的值与软件内部变量的值不相同,得到测试结果为不通过。该方法使得整个测试过程全部自动完成,降低测试人员的参与度,从而减少人工成本和时间成本,降低人工遗漏和出错的风险,提高测试效率。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种车载软件CAN报文测试方法,其特征在于,所述方法包括:
获取待测CAN报文的信息,所述信息至少包括报文名称、报文标识符和报文信号;
根据所述信息生成系统变量,所述系统变量包括测试数据;
根据所述待测CAN报文生成仿真代码;
控制所述仿真代码运行,以将所述报文信号中的数据赋值为所述测试数据,并读取被测软件接收到赋值后的所述CAN报文后更新的软件内部变量的值;
获取所述软件内部变量的值;
若所述测试数据的值与所述软件内部变量的值相同,得到测试结果为通过;若所述测试数据的值与所述软件内部变量的值不相同,得到所述测试结果为不通过。
2.根据权利要求1所述的车载软件CAN报文测试方法,其特征在于,所述获取待测CAN报文的信息之前,所述方法还包括:
判断CAN报文是否为所述被测软件需要接收的CAN报文;
若所述CAN报文为所述被测软件需要接收的所述CAN报文,则确定所述CAN报文为所述待测CAN报文,并执行所述获取待测CAN报文的信息的步骤。
3.根据权利要求1所述的车载软件CAN报文测试方法,其特征在于,所述系统变量还包括命名空间和具体名称,所述根据所述信息生成系统变量之后,所述方法还包括:
确定所述命名空间为所述报文名称和所述报文标识符,以及所述具体名称为所述报文信号;
根据所述命名空间、所述具体名称和所述测试数据,建立变量文档。
4.根据权利要求3所述的车载软件CAN报文测试方法,其特征在于,所述获取所述软件内部变量之后,所述方法还包括:
将所述软件内部变量与所述系统变量一一对应存储到所述变量文档中;
从所述变量文档中获取每个所述系统变量的测试数据和对应的所述软件内部变量,将每个所述测试数据的值与对应的所述软件内部变量的值进行比对。
5.根据权利要求1所述的车载软件CAN报文测试方法,其特征在于,所述仿真代码包括发送代码,用于仿真其他软件发送所述CAN报文。
6.根据权利要求1所述的车载软件CAN报文测试方法,其特征在于,所述信息还包括报文类型和报文周期,所述获取待测CAN报文的信息之后,所述方法还包括:
判断所述报文类型是否为事件型;
若所述报文类型为所述事件型,则将所述报文周期调整为设定时长。
7.根据权利要求1所述的车载软件CAN报文测试方法,其特征在于,所述方法还包括:
判断所述待测CAN报文是否需要进行数据校验;
若所述待测CAN报文需要进行所述数据校验,则为所述待测CAN报文匹配数据校验算法,以增加所述待测CAN报文的真实性。
8.一种车载软件CAN报文测试装置,其特征在于,所述装置包括:
第一获取模块,用于获取待测CAN报文的信息,所述信息至少包括报文名称、报文标识符和报文信号;
第一生成模块,用于根据所述信息生成系统变量,所述系统变量包括测试数据;
第二生成模块,用于根据所述待测CAN报文生成仿真代码;
控制模块,用于控制所述仿真代码运行,以将所述报文信号中的数据赋值为所述测试数据,并读取被测软件接收到赋值后的所述CAN报文后更新的软件内部变量的值;
第二获取模块,用于获取所述软件内部变量的值;
比对模块,用于若所述测试数据的值与所述软件内部变量的值相同,得到测试结果为通过;若所述测试数据的值与所述软件内部变量的值不相同,得到所述测试结果为不通过。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311826119.XA CN117784762A (zh) | 2023-12-27 | 2023-12-27 | 车载软件can报文测试方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311826119.XA CN117784762A (zh) | 2023-12-27 | 2023-12-27 | 车载软件can报文测试方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117784762A true CN117784762A (zh) | 2024-03-29 |
Family
ID=90392310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311826119.XA Pending CN117784762A (zh) | 2023-12-27 | 2023-12-27 | 车载软件can报文测试方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117784762A (zh) |
-
2023
- 2023-12-27 CN CN202311826119.XA patent/CN117784762A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7895025B2 (en) | Validation method for embedded systems | |
CN109788033B (zh) | 无人车远程调试方法、装置、系统及存储介质 | |
CN112817872A (zh) | 开发测试系统及方法 | |
US9342441B2 (en) | Methodology and tool support for test organization and migration for embedded software | |
CN110928556A (zh) | 轨道车辆用程序自动烧录方法及装置、测试方法及系统 | |
CN111428431A (zh) | 一种支持eda软件的自动化测试并记录的方法及系统 | |
CN113759879A (zh) | 一种基于L3整车架构的车载以太网DoIP诊断刷写测试方法及系统 | |
CN114117977B (zh) | 一种适用于自动验证处理器系统场景的方法 | |
CN109309598B (zh) | 带can功能被测车载模块的采样点自动化测试系统及方法 | |
CN114218882A (zh) | 一种SoC芯片检验方法、装置及相关设备 | |
KR102279776B1 (ko) | 오토사 베이직 소프트웨어 테스팅 자동화 시스템 및 그 방법 | |
CN111277476A (zh) | 网关控制器功能验证方法、装置、计算机设备和存储介质 | |
CN117784762A (zh) | 车载软件can报文测试方法、装置、设备及介质 | |
CN116069635A (zh) | Soc系统的测试方法、装置、计算机设备及存储介质 | |
CN115348200A (zh) | 一种can通信功能测试方法及测试系统 | |
CN114879647A (zh) | Ecu故障码测试系统、电子控制器及汽车 | |
CN113886274A (zh) | 车联网终端的稳定性测试方法、装置、设备及存储介质 | |
CN111752823A (zh) | 一种车载电源应用软件的测试方法、装置及设备 | |
CN117170350B (zh) | 服务的测试方法、装置、电子设备和存储介质 | |
CN111782499A (zh) | 测试用例生成方法及系统 | |
CN115766541B (zh) | 器件测试方法、装置、计算机设备和存储介质 | |
CN117971668A (zh) | 一种仿真测试方法、装置、计算机设备和存储介质 | |
CN114860612A (zh) | 一种汽车软件测试系统及方法 | |
CN111258827B (zh) | 接口模型的确定方法、装置、电子设备及存储介质 | |
CN111240986B (zh) | 一种人工智能设备检测系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |