本发明涉及自动化测试,尤其是涉及一种车辆软件接口测试方法、装置及系统、上位机及存储介质。
背景技术:
1、软件开发中的模块化是一种设计模式,它可以将一个大型的软件系统划分成多个独立的模块,每个模块都有自己的功能和接口,并且能够与其他模块独立地工作。模块化可以将代码划分成可重用的部分,降低代码的冗余和重复,提高代码的复用性。
2、模块化开发使得开发人员更加关注模块之间的接口和依赖关系。通过测试软件模块之间交互的接口,开发人员可以提前发现潜在的问题,从而提高软件质量和可靠性。随着软件系统的不断扩大,接口之间的依赖性也不断增加,这更加凸显了接口测试的必要性。
3、目前ecu(electronic control unit,电子控制单元)采用asw(applicationsoftware,应用层软件)-bsw(basic software,底层软件)同步开发的策略。对于接口测试,需要首先对asw和bsw进行集成,然后对集成之后的软件进行接口测试。这种测试方式存在如下三方面的问题:①由于被测试软件(集成之后的软件)包括所有软件模块,因此被测试的接口数量多,测试工作量巨大;②由于软件本身的复杂性,因此问题耦合程度高,难以定位根本问题;③由于在完成软件模块的集成之后才进行接口测试,因此需要等待较长时间,同时预留较多的测试时间,影响软件开发项目的交付时间。
技术实现思路
1、本发明的目的在于提供一种车辆软件接口测试方法、装置及系统、上位机及存储介质,以解决上述问题中的至少一个。
2、第一方面,本发明实施例提供了一种车辆软件接口测试方法,应用于上位机;包括:
3、向车辆的被测控制器发送初始化指令;其中,所述被测控制器包括被测bsw模块及其接口测试模块,所述接口测试模块注入有所述被测bsw模块的测试项说明信息,所述接口测试模块用于基于所述测试项说明信息响应所述上位机的测试指令;
4、当接收到所述被测控制器针对所述初始化指令返回的正反馈时,基于预设的测试协议,向所述被测控制器依次发送多个预设的测试项对应的测试指令,并基于各个所述测试项的测试结果数据,确定所述被测bsw模块的测试结果;其中,所述测试协议是基于所述被测bsw模块的测试内容确定的通信协议,所述测试协议定义的报文格式包括测试项标识字段,以及测试参数字段或测试结果字段。
5、进一步地,所述基于预设的测试协议,向所述被测控制器依次发送多个预设的测试项对应的测试指令,并基于各个所述测试项的测试结果数据,确定所述被测bsw模块的测试结果,包括:
6、当对所述被测控制器进行当前测试项的测试时,基于所述测试协议,向所述被测控制器发送所述当前测试项对应的当前测试指令;判断是否接收到所述被测控制器针对所述当前测试指令返回的正反馈的应答报文,得到接收判断结果;当所述接收判断结果为是时,基于所述应答报文对应的测试结果数据,确定所述当前测试项的检测结果;
7、在完成所述被测控制器所有所述测试项的测试后,基于各个所述测试项的检测结果,确定所述被测bsw模块的测试结果。
8、进一步地,所述基于所述测试协议,向所述被测控制器发送所述当前测试项对应的当前测试指令,包括:
9、当所述当前测试项属于输入接口测试时,向所述被测控制器发送所述当前测试项对应的当前请求报文,同时控制预设的输入输出设备向所述被测控制器提供相应的输入信号;其中,所述当前请求报文包括所述当前测试项对应的测试项标识和测试参数数据,所述输入输出设备包括网络信号收发器和/或物理信号输入输出板卡。
10、进一步地,所述车辆软件接口测试方法还包括:
11、当所述接收判断结果为否时,确定所述被测bsw模块的测试结果为测试不通过。
12、进一步地,所述基于所述应答报文对应的测试结果数据,确定所述当前测试项的检测结果,包括:
13、当所述当前测试项属于输入接口测试时,接收所述被测控制器在返回所述应答报文之后发送的数据反馈报文,从所述数据反馈报文中解析得到测试结果数据,并基于所述测试结果数据与预设的标准测试结果数据的比对结果,确定所述当前测试项的检测结果;
14、当所述当前测试项属于输出接口测试时,对与所述被测控制器连接的输入输出设备进行输出信号检测,得到测试结果数据,并基于所述测试结果数据与预设的标准测试结果数据的比对结果,确定所述当前测试项的检测结果;其中,所述输入输出设备包括网络信号收发器和/或物理信号输入输出板卡。
15、进一步地,所述车辆软件接口测试方法还包括:
16、在完成所述当前测试项的测试后,判断是否完成所述被测控制器所有所述测试项的测试,得到完成判断结果;
17、当所述完成判断结果为否时,将所述当前测试项的下一个测试项更新为当前测试项,并重新对所述被测控制器进行更新后的当前测试项的测试;
18、当所述完成判断结果为是时,向所述被测控制器发送测试完成指令。
19、第二方面,本发明实施例还提供了一种车辆软件接口测试装置,应用于上位机;包括:
20、初始化模块,用于向车辆的被测控制器发送初始化指令;其中,所述被测控制器包括被测bsw模块及其接口测试模块,所述接口测试模块注入有所述被测bsw模块的测试项说明信息,所述接口测试模块用于基于所述测试项说明信息响应所述上位机的测试指令;
21、测试模块,用于当接收到所述被测控制器针对所述初始化指令返回的正反馈时,基于预设的测试协议,向所述被测控制器依次发送多个预设的测试项对应的测试指令,并基于各个所述测试项的测试结果数据,确定所述被测bsw模块的测试结果;其中,所述测试协议是基于所述被测bsw模块的测试内容确定的通信协议,所述测试协议定义的报文格式包括测试项标识字段,以及测试参数字段或测试结果字段。
22、第三方面,本发明实施例还提供了一种上位机,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的车辆软件接口测试方法。
23、第四方面,本发明实施例还提供了一种车辆软件接口测试系统,包括第三方面所述的上位机,还包括分别与所述上位机连接的输入输出设备和程控电源;所述输入输出设备包括网络信号收发器和物理信号输入输出板卡,所述程控电源用于为被测控制器供电;
24、所述上位机用于在对所述被测控制器进行接口测试时,通过所述输入输出设备向所述被测控制器提供相应的输入信号,或者检测所述被测控制器向所述输入输出设备发出的输出信号。
25、第五方面,本发明实施例还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面所述的车辆软件接口测试方法。
26、本发明实施例提供的车辆软件接口测试方法、装置及系统、上位机及存储介质,在进行车辆软件接口测试时,向车辆的被测控制器发送初始化指令;其中,被测控制器包括被测bsw模块及其接口测试模块,接口测试模块注入有被测bsw模块的测试项说明信息,接口测试模块用于基于测试项说明信息响应上位机的测试指令;当接收到被测控制器针对初始化指令返回的正反馈时,基于预设的测试协议,向被测控制器依次发送多个预设的测试项对应的测试指令,并基于各个测试项的测试结果数据,确定被测bsw模块的测试结果;其中,测试协议是基于被测bsw模块的测试内容确定的通信协议,测试协议定义的报文格式包括测试项标识字段,以及测试参数字段或测试结果字段。这样在被测控制器中设置被测bsw模块的接口测试模块,该接口测试模块注入有被测bsw模块的测试项说明信息,能够响应基于预设的测试协议通信的上位机的测试指令,该测试协议是基于被测bsw模块的测试内容确定的,所定义的报文格式包括测试项标识字段,以及测试参数字段或测试结果字段,从而可以完成被测bsw模块的接口测试。这种车辆软件接口测试方式可以在软件开发过程中不断地对bsw模块进行接口测试,保证bsw模块的可靠性,从而避免对集成之后的软件进行接口测试方式所存在的测试工作量巨大、难以定位根本问题以及影响软件开发项目的交付时间的问题,提高软件开发效率和测试效率,节省了人力和物力。