一种控制器测试方法、装置、设备及存储介质与流程

专利2022-05-10  7



1.本发明实施例涉及自动化测试技术领域,尤其涉及一种控制器测试方法、装置、设备及存储介质。


背景技术:

2.随着汽车电子技术的发展,车上的电子控制单元(electronic control unit,ecu)已达到几十甚至上百个,当ecu出现问题或者技术更新时,常常需要升级ecu。
3.在ecu升级过程中,为了确保升级包不被恶意篡改,在升级过程后期,需要对升级包进行完整性和合法性校验。现有ecu程序升级系统通常关注于对升级程序本身的检测,而缺少对ecu自身的系统性的测试方法。


技术实现要素:

4.本技术提供一种控制器测试方法、装置、设备及存储介质,以实现对控制器自身功能的自动化测试。
5.第一方面,本发明实施例提供了一种控制器测试方法,包括:
6.接收对控制器进行升级的初始升级包;
7.对所述初始升级包进行修改,得到目标升级包;
8.根据所述目标升级包,对所述控制器进行升级;
9.根据升级结果,对所述控制器进行功能测试。
10.第二方面,本发明实施例还提供了一种控制器测试装置,该装置包括:
11.接收对控制器进行升级的初始升级包;
12.对所述初始升级包进行修改,得到目标升级包;
13.根据所述目标升级包,对所述控制器进行升级;
14.根据升级结果,对所述控制器进行功能测试。
15.第三方面,本发明实施例还提供了一种控制器测试设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如本发明实施例中任一实施例所提供的控制器测试方法。
16.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如本发明实施例中任一实施例所提供的控制器测试方法。
17.本实施例方案通过对升级包的源文件、数字摘要及数字签名进行修改的方式,对控制器进行升级,并根据升级结果,对控制器自身进行功能测试,从而实现了对控制器自身功能的自动化测试,节约了测试的人力和时间成本。
附图说明
18.图1是本发明实施例一中的一种控制器测试方法的流程图;
19.图2是本发明实施例二中的一种控制器测试方法的流程图;
20.图3是本发明实施例三中的一种控制器测试方法的流程图;
21.图4是本发明实施例四中的一种控制器测试装置的结构示意图;
22.图5是本发明实施例五中的一种计算机设备的结构示意图。
具体实施方式
23.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部结构。
24.实施例一
25.图1为本发明实施例一提供的一种控制器测试方法的流程图,本实施例适用于对控制器完整性与合法性功能有自动化测试需求的情况,该方法可以由控制器测试装置来执行,该装置可采用软件和/或硬件的方式实现。如图1所示,该方法具体包括如下步骤:
26.s110、接收对控制器进行升级的初始升级包。
27.具体的,可以由测试人员在测试界面中上传初始升级包;还可以在控制器所属设备本地存储空间或关联存储设备中,预先存储初始升级包,并在需要对控制器进行功能测试时,从控制器所属设备本地或关联存储设备中进行初始升级包的查找获取。其中,控制器为汽车内部的ecu,所述初始升级包可以是控制器出现问题或需要技术更新时所需要的数据包。
28.示例性的,控制器可以直接根据所接收到的初始升级包进行升级。然而,由于不同控制器对不同类型的初始升级包的格式识别能力不同,因此,在接收到对控制器进行升级的初始升级包之后,还可以根据控制器的初始升级包进行格式识别,并对初始升级包进行格式转换。
29.具体可以是,控制器能够识别的文件格式为二进制文件,若接收到的初始升级包的文件格式为二进制文件,则无需对初始升级包进行格式转换,反之,若接收到的初始升级包格式为其他文件格式,则将初始升级包进行文件格式转换,转换成二进制文件。示例性的,若控制器能够识别其他文件格式,则可以将初始升级包转换成与控制器能够识别的文件格式相对应的格式。
30.在一个可选例子中,所述初始升级包中可以包括源文件、所述源文件的数字摘要、和对所述源文件的数字签名中的至少一种。
31.其中,所述数字摘要是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数,即散列函数(hash function)。数字摘要就是采用单向哈希函数将需要加密的明文“摘要”成一串固定长度(128位)的密文这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。
32.其中,数字签名是非对称密钥加密技术与数字摘要技术的应用。所述数字签名(又称公钥数字签名)可以是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。
一套数字签名通常定义两种互补的运算,例如,公私钥对中的公钥用于签名,相应的私钥用于签名验证。
33.可以理解的是,通过数字摘要或源文件能够验证控制器的完整性功能,通过数字签名能够验证控制器的合法性功能,从而达到基于初始升级包的数据验证控制器完整性与合法性功能的目的。
34.s120、对所述初始升级包进行修改,得到目标升级包。
35.其中,所述目标升级包可以通过任意修改方式对初试升级包进行修改后得到。具体的,测试人员可以通过个人计算机(personal computer,pc)端的输入界面完成对初始升级包的修改,得到目标升级包。其中,对初始升级包的修改具体可以是通过相关技术人员预设修改规则的方式,由系统进行自动修改。预设修改规则可以基于待修改数据的类型不同,进行对应设置,也可以统一设置成相同修改规则,本实施例对比不进行限制。
36.在一个可选实施例中,所述对所述初始升级包进行修改,包括:对所述初始升级包中的待修改数据进行至少部分数据的数据增加、数据删除、数据替换和数据移位操作中的至少一种;其中,所述待修改数据包括源文件、所述源文件的数字摘要、和对所述源文件的数字签名中的至少一种。
37.具体的,对初始升级包进行修改可以是对初始升级包中待修改数据进行至少部分数据的修改。其中,待修改数据可以包括源文件、所述源文件的数字摘要、和对所述源文件的数字签名中的至少一种。
38.可选的,对初始升级包中的待修改数据进行修改的方式,可以采用对至少部分数据进行数据增加、数据删除、数据替换、和数据移位等操作中的至少一种。
39.示例性的,对源文件、源文件的数字摘要、或对源文件的数字签名进行数据增加,可以是:将源文件、源文件的数字摘要、或对源文件的数字签名的末字节增加一位,也可以是中间字节增加一位,还可以是首字节增加一位等数据增加的方式。
40.示例性的,对源文件、源文件的数字摘要、或对源文件的数字签名进行数据删除,可以是:将源文件、源文件的数字摘要、或源文件的数字签名的末字节删除一位,也可以是中间字节删除一位,还可以是首字节删除一位等其他数据删除的方式。
41.示例性的,对源文件、源文件的数字摘要、或对源文件的数字签名进行数据替换,可以是:将源文件、源文件的数字摘要、对源文件的数字签名的末字节进行替换,替换成其他二进制数据,也可以是替换中间字节,还可以是替换首字节等其他数据替换的方式。
42.示例性的,对源文件、源文件的数字摘要、或对源文件的数字签名进行数据移位,可以是:将源文件、源文件的数字摘要、或对源文件的数字签名的末字节数据前移一位,也可以是中间字节向前或向后移一位,还可以是首字节向后移动一位等其他数据移位方式。
43.具体的,对初始升级包的修改,可以通过预设修改规则的方式,由系统自动化进行。预设修改规则可以是上述可选实施例中任意一种,例如可以是数据增加、数据替换、数据删除或数据移位等。
44.本可选实施例通过采用数据增加、数据删除、数据替换和数据移位等修改初始升级包的方式,实现了初始升级包的源文件、源文件的数字摘要、或对源文件的数字签名的自动化修改。
45.在一个可选实施例中,所述对所述初始升级包进行修改,包括:确定所述待修改数
据的存储路径;基于所述存储路径,对所述待修改数据进行修改处理。
46.具体的,可以根据初始升级包中待修改数据,如源文件、源文件的数字摘要、或对源文件的数字签名,进行存储路径的预先设置。例如,可以针对不同的待修改数据,分别设置不同存储路径,并对应保存各待修改数据的存储路径。其中,存储路径可以包括存储地址和长度信息等中的至少一种。
47.示例性的,若要对待修改数据中的源文件进行修改,则需要确定待修改数据中的源文件的存储位置;基于源文件的存储位置获取源文件,并对源文件的数据进行相应的修改。
48.上述技术方案通过获取初始升级包中待修改数据的存储位置的方式,获取待修改数据,并对其进行相应修改,从而实现了对待修改数据的精准定位,便于对数据修改过程进行控制,避免由于误修改,导致控制器功能测试结果准确度降低等情况的发生。
49.s130、根据所述目标升级包,对所述控制器进行升级。
50.其中,对所述控制器进行升级的方式可以是控制器局域网络(controller area network,can)升级的升级方式或基于以太网协议诊断通讯(diagnostic communication over internet protocol,doip)技术升级的升级方式。基于不同的升级方式,控制器与仿真采集工具的连接方式不同。其中,基于can的升级方式连接控制器进行通信时,进行波特率和通道等参数配置。基于doip的升级方式连接控制器进行通信时,进行网际互连协议(internet protocol,ip)地址等参数的配置。其中,不同采集方式所对应的仿真采集工具可以相同或不同,具体所使用的仿真采集工具可以由技术人员根据需要或经验值进行人为设定,或通过大量试验确定。
51.具体的,根据目标升级包,可以选择任意升级方式,搭配合适的仿真采集工具,实现对控制器进行自动升级。示例性的,可以采用vn16xx系列仿真采集工具,基于can的升级方式实现对控制器的升级,也可是采用canoe仿真采集工具,基于doip的升级方式实现对控制器的升级,也可以是选择其他仿真采集工具或升级方式实现对控制器的升级,本实施例对此不进行限制。
52.具体的,相关测试人员在获取到目标升级包后,进行升级方式选择,测试人员可以选择任意测试方式对控制器进行自动升级,不同升级的方式对本测试功能的方案不产生影响。
53.s140、根据升级结果,对所述控制器进行功能测试。
54.其中,所述升级结果可以分为程序升级成功与程序升级失败;若升级结果为程序升级成功,则控制器的功能测试不通过;若程序升级结果为升级失败,则控制器的功能测试通过。
55.具体的,若目标升级包所修改的数据为源文件,且程序升级失败,则表示功能测试通过;若目标升级包所修改的数据为源文件,且程序升级成功,则表示功能测试不通过。若目标升级包所修改的数据为数字摘要,且程序升级失败,则表示功能测试通过;若目标升级包所修改的数据为数字摘要,且程序升级成功,则表示功能测试不通过。若目标升级包所修改的数据为数字签名,且程序升级失败,则表示功能测试通过;若目标升级包所修改的数据为数字签名,且程序升级成功,则表示功能测试不通过。
56.本实施例方案通过对升级包的源文件、数字摘要及数字签名进行修改的方式,对
控制器进行升级,并根据升级结果,对控制器自身进行功能测试,从而实现了对控制器自身功能的自动化测试,节约了测试的人力和时间成本。
57.实施例二
58.图2为本发明实施例二提供的控制器测试方法的流程图,本实施例以上述实施例为基础,进行了优化改进。
59.进一步的,将操作“对所述初始升级包进行修改,得到目标升级包”,细化为“对所述初始升级包中的数字摘要和/或所述源文件进行修改”;相应的,将操作“根据升级结果,对所述控制器进行功能测试”,细化为“根据所述目标升级包的源文件,生成参考数字摘要;若升级失败,且所述参考数字摘要与所述目标升级包中的数字摘要不同,则对所述控制器的完整性测试通过”,以完善对控制器的完整性测试机制。
60.如图2所示,该方法包括以下具体步骤:
61.s210、接收对控制器进行升级的初始升级包。其中,所述初始升级包中包括源文件和/或所述源文件的数字摘要。
62.s220、对所述初始升级包中的数字摘要和/或所述源文件进行修改,得到目标升级包。
63.具体的,若想要检测控制器的完整性,则可以对升级包中的数据摘要或源文件进行修改,并通过数字摘要技术验证升级包的完整性。可选的,可以修改初始升级包中的数字摘要,源文件不作修改,得到目标升级包;或者可选的,还可以修改初始升级包中的源文件,数字摘要不作修改,得到目标升级包。需要说明的是,为了后续步骤中目标升级包的源文件或数字摘要之间能够进行有效比对,通常需要选择数据摘要和源文件中的其中至少一个,进行修改。
64.s230、根据所述目标升级包,对所述控制器进行升级。
65.s240、根据所述目标升级包的源文件,生成参考数字摘要。
66.可选的,若目标升级包中修改的数据为数字摘要,则根据目标升级文件包中的源文件生成参考数字摘要。其中,参考数字摘要为依据目标升级文件中的未修改的源文件,所生成的数字摘要。
67.可选的,若目标升级包中修改的数据为源文件,则根据目标升级包中修改后的源文件生成参考数字摘要。其中,参考数字摘要为依据目标文件中的修改后的源文件,所生成的数字摘要。
68.示例性的,可以采用预先设置的哈希函数,根据目标升级包中的源文件,生成一串固定长度的密文,得到参考数字摘要。
69.s250、若升级失败,且所述参考数字摘要与所述目标升级包中的数字摘要不同,则对所述控制器的完整性测试通过。
70.具体的,若通过s230对控制器的升级失败,且通过s240获取到的参考数字摘要与所述目标升级包中的数字摘要相同,则认为控制器的完整性测试不通过。若通过s230对控制器的升级失败,且通过s240获取到的参考数字摘要与所述目标升级包中的数字摘要不同,则认为对控制器的完整性测试通过。若通过s230对控制器的升级成功,则控制器的完整性测试不通过。
71.本实施例方案通过修改源文件或数字摘要的方式,将修改后得到的目标升级包进
行升级得到升级结果;根据目标升级包中的源文件生成参考摘要,并将参考摘要与目标升级包的数字摘要进行对比,从而测试控制器完整性功能是否通过,实现了对控制器完整性功能的自动化测试。
72.实施例三
73.图3为本发明实施例三提供的控制器测试方法的流程图,本实施例以上述实施例为基础,进行了优化改进。
74.进一步的,将操作“对所述初始升级包进行修改,得到目标升级包”,细化为“对所述初始升级包中的数字签名进行修改”;相应的,将操作“根据升级结果,对所述控制器进行功能测试”,细化为“对所述目标升级包中的数字签名进行验签;若升级失败,且验签失败,则对所述控制器的合法性测试通过”,以完善对控制器的完整性测试机制。
75.如图3所示,该方法包括以下具体步骤:
76.s310、接收对控制器进行升级的初始升级包。其中,所述初始升级包中包括对所述源文件的数字签名。
77.s320、对所述初始升级包中的数字签名进行修改,得到目标升级包。
78.可选的,可以通过数字签名技术验证控制器的合法性。通过对初始升级包中的数字签名进行修改,得到目标升级包。
79.s330、根据所述目标升级包,对所述控制器进行升级。
80.s340、对所述目标升级包中的数字签名进行验签。
81.具体的,对目标升级包中的数字签名可以通过控制器的验签数据进行验签。其中,不同车辆的控制器对应的验签数据不同。
82.在一个可选实施例中,对所述目标升级包中的数字签名进行验签,包括:根据所述控制器所属车辆的车辆属性,确定验签数据;根据所述验签数据,对所述目标升级包中的数字签名进行验签处理。
83.其中,车辆属性可以包括车辆品牌、车辆型号、和车辆种类等属性中的至少一种,不同车辆属性的车辆对应的验签数据不同。根据车辆属性选择验签数据,并根据所选择验签数据,对目标升级包的数字签名进行验签。具体的,根据控制器所属的车辆属性,确定验签数据;根据验签数据确定与控制器所述车辆对应的私钥;通过获取到的私钥,对目标升级包中的数字签名进行验证。
84.s350、若升级失败,且验签失败,则对所述控制器的合法性测试通过。
85.具体的,若通过s330对控制器的升级失败,且通过s340对目标升级包中的数字签名验签成功,则认为控制器的合法性测试不通过。若通过s330对控制器的升级失败,且通过s340对目标升级包中的数字签名验签失败,则认为对控制器的合法性测试通过。反之,若通过s330对控制器的升级成功,则控制器的合法性测试不通过。
86.本实施例方案通过修改的数字签名的方式,将修改后得到的目标升级包进行升级得到升级结果,根据不同车辆的车辆属性获取验签数据,对目标升级包中的数字签名进行验证,并根据升级结果与验证结果测试控制器合法性功能是否通过,实现了对控制器合法性功能的自动化测试。
87.实施例四
88.图4为本发明实施例四提供的一种运控制器测试装置的结构示意图。本发明实施
例所提供的一种控制器测试装置可执行本发明任意实施例所提供的一种控制器测试方法,具备执行方法相应的功能模块和有益效果。该装置可采用软件和/或硬件的方式实现,如图4所示,所述控制器测试装置具体包括:接收模块410、修改模块420、升级模块430,测试模块440。
89.其中,接收模块410,用于接收对控制器进行升级的初始升级包;
90.修改模块420,用于对所述初始升级包进行修改,得到目标升级包;
91.升级模块430,用于根据所述目标升级包,对所述控制器进行升级;
92.测试模块440,用于根据升级结果,对所述控制器进行功能测试。
93.本实施例方案通过对升级包的源文件、数字摘要及数字签名进行修改的方式,对控制器进行升级,并根据升级结果,对控制器自身进行功能测试,从而实现了对控制器自身功能的自动化测试,节约了测试的人力和时间成本。
94.可选的,接收模块410,具体用于:
95.所述初始升级包中包括源文件、所述源文件的数字摘要、和对所述源文件的数字签名中的至少一种。
96.可选的,修改模块420,具体用于:
97.对所述初始升级包中的数字摘要和/或所述源文件进行修改;
98.测试模块440,具体用于:
99.根据所述目标升级包的源文件,生成参考数字摘要;
100.若升级失败,且所述参考数字摘要与所述目标升级包中的数字摘要不同,则对所述控制器的完整性测试通过。
101.可选的,修改模块420,具体用于:
102.对所述初始升级包中的数字签名进行修改。
103.测试模块440,具体用于:
104.对所述目标升级包中的数字签名进行验签;
105.若升级失败,且验签失败,则对所述控制器的合法性测试通过。
106.测试模块440,具体还用于:
107.根据所述控制器所属车辆的车辆属性,确定验签数据;
108.根据所述验签数据,对所述目标升级包中的数字签名进行验签处理。
109.可选的,修改模块420,具体用于:
110.对所述初始升级包中的待修改数据进行至少部分数据的数据增加、数据删除、数据替换和数据移位操作中的至少一种;
111.其中,所述待修改数据包括源文件、所述源文件的数字摘要、和对所述源文件的数字签名中的至少一种。
112.可选的,修改模块420,具体还用于:
113.确定所述待修改数据的存储路径;
114.基于所述存储路径,对所述待修改数据进行修改处理。
115.上述控制器测试装置可执行本技术任意实施例所提供的控制器测试方法,具备执行各控制器测试方法相应的功能模块和有益效果。
116.实施例五
117.图5为本发明实施例五提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器510、存储器520、输入装置530和输出装置540;设备中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;设备中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线连接为例。
118.存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的控制器测试方法对应的程序指令/模块(接收模块410、修改模块420、升级模块430和测试模块440)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的控制器测试的方法。
119.存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据(如前述实施例所涉及的初始升级包、目标升级包、和升级结果等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
120.输入装置530可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的信号输入。输出装置540可包括显示屏等显示设备。
121.实施例六
122.本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种控制器测试方法,该方法包括:
123.接收对控制器进行升级的初始升级包;
124.对所述初始升级包进行修改,得到目标升级包;
125.根据所述目标升级包,对所述控制器进行升级;
126.根据升级结果,对所述控制器进行功能测试。
127.当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的控制器测试方法中的相关操作。
128.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例各个实施例所述的方法。
129.值得注意的是,上述控制器测试装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护
范围。
130.注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由所附的权利要求范围决定。
转载请注明原文地址: https://doc.8miu.com/read-1350361.html

最新回复(0)