充电机与电池管理系统通信协议一致性测试方法、装置、系统及存储介质与流程

文档序号:29445928发布日期:2022-03-30 11:00阅读:392来源:国知局
充电机与电池管理系统通信协议一致性测试方法、装置、系统及存储介质与流程

1.本发明涉及一种充电机与电池管理系统通信协议一致性测试方法、装置、系统及存储介质,属于一致性测试技术领域。


背景技术:

2.在充电机的建设和使用中,不可避免的会出现以下问题:第一,充电机普遍存在安全隐患,安全事故频频发生;第二,充电机质量安全问题,故障率高;第三,充电机故障难以定位,维护难度大。面对这些安全问题,我们不得不更加严格地检测充电机,充电机的测试内容包含电气特性、协议一致性、互操作性测试。由于每个类别的测试项目都比较多,传统人工和半自动的测试方法效率较低,面对复杂的充电机测试几乎已经不能胜任。
3.一致性测试方法是软件自动化测试的重要研究方向,该测试方法是一种黑盒测试,首先根据软件的设计规范说明文档来生成测试用例,接着利用生成的测试用例检测待测系统是否严格遵守设计规范。有限状态机(fsm,finite state machine)模型可以精确地描述软件系统的特征,被应用于许多领域的软件系统建模,长期以来,基于fsm模型的一致性测试被国内外许多学者无论是在理论上还是在应用上都进行了广泛的研究,出现了很多相关的测试方法,某些方法经过多年的改进和完善已相对成熟,能够得到完备的测试用例集。
4.然而在某些特定的测试场景下,待测系统往往包含大量的特殊行为和约束条件,这就增加了fsm模型描述系统的难度,导致基于fsm模型的软件测试不能对一些特殊的测试需求进行处理,增加了测试工作的难度。同时基于fsm模型的某些测试方法生成的测试集规模较大,增加了实际测试工作量,造成了大量的人力消耗。因此如何将一些特殊的测试需求进行通用化处理,使其能够使用相关测试方法进行测试;如何高效的得到规模较小且覆盖度较高的测试集都直接关系到软件测试工作的质量和效率,解决这些问题对实际的软件测试工作具有重大的意义。
5.过去,一些基于模型的测试生成方法和测试准则已被相继提出。例如w方法、uio方法、ds方法、状态覆盖准则、迁移覆盖准则和迁移对覆盖准则等等。然而,由于测试意图的不同,上述这些测试生成方法和测试准则并不能解决所有的问题且具有一定的局限性。例如,虽然w方法具有很强的错误探测能力,但该方法生成的测试序列包含大量的冗余,导致测试成本急剧增加。为此,pw方法和r-pw方法被相继提出。这些方法具有与w方法相同的测试效率,并且可以减少测试序列中的冗余。然而这些被提议的方法同样也有其自身的缺点,例如算法实现的效率问题。
6.通信协议的迭代更新很快,借助专家经验来产生测试用例不仅没有理论支撑而且不能复用,所以研究并设计基于fsm的充电机与bms(电池管理系统)的通信协议一致性测试方法是非常有必要的。


技术实现要素:

7.本发明的目的在于克服现有技术中的不足,提供一种充电机与电池管理系统通信协议一致性测试方法、装置、系统及存储介质,能够保证协议在不同实体之间的通信一致性,使得测试方法不仅有理论支持而且复用能力强。
8.为达到上述目的,本发明是采用下述技术方案实现的:
9.第一方面,本发明提供了一种充电机与电池管理系统通信协议一致性测试方法,包括:
10.获取充电机和电池管理系统在每个充电阶段的交互流程和报文信息;
11.基于交互流程和报文信息获取每个充电阶段的fsm图;
12.基于fsm图获取每个充电阶段中充电机和电池管理系统的状态以及需要的输入和期望的输出;
13.将状态作为节点,输入和输出作为边,使用uio方法生成测试序列;
14.基于测试序列采用递归算法生成测试用例,根据测试用例生成测试用例集;
15.基于测试用例集测试充电机与电池管理系统通信协议一致性。
16.可选的,所述充电阶段包括握手阶段、参数配置阶段、充电阶段和充电结束阶段。
17.可选的,所述使用uio方法生成测试序列包括:
18.对于每个状态构建其uio序列,将每个状态以及通过相应边转换后的状态的uio序列进行组合得到测试子序列;
19.基于广度优先生成树算法遍历fsm图得到广度优先生成树,并基于广度优先生成树得到引导序列;
20.结合引导序列和测试子序列生成测试序列。
21.可选的,所述对于每个状态构建其uio序列包括:
22.针对fsm图中任一未获得uio序列的状态,求出其所有包含边个数为k的输入序列和输出序列;
23.检查所述输入序列和输出序列是否唯一,若是,则将输入序列和输出序列作为相应状态的uio序列;若否,则k=k+1,并重复上述步骤,直至每个状态均查找到uio序列或k》2n^2;
24.其中,k为正整数,n为fsm图中状态的数量。
25.可选的,所述基于广度优先生成树算法遍历fsm图得到广度优先生成树,并基于广度优先生成树得到引导序列包括:
26.从fsm图中预设的初始状态开始,广度优先遍历fsm图中的所有状态;
27.在遍历过程中,若当前状态已被访问过,则跳过当前状态继续遍历,构造一棵无重复状态的广度优先生成树;
28.在广度优先生成树中选取从初始状态至任一状态的路径作为所述状态的引导序列。
29.可选的,所述结合引导序列和测试子序列生成测试序列包括:
30.对于每个测试子序列,在其前面加上相应状态对应的引导序列,得到初始测试序列,利用边与边之间的暗含关系消除冗余测试序列得到最终的测试序列。
31.可选的,所述基于测试序列采用递归算法生成测试用例包括:
32.对任一测试序列,若其包含边个数为1,则产生一条测试用例;
33.若其包含边个数为n且n》1,则判断已有测试用例中是否有针对包含边个数为1测试子序列的测试用例,
34.若有,则将所述测试用例作为测试前置条件,针对最后一组边设计测试用例;若没有,则对前n-1条边组成的序列求测试用例;
35.其中,每个测试用例包含的内容有前置条件、测试步骤和预期结果。
36.第二方面,本发明提供了一种充电机与电池管理系统通信协议一致性测试装置,所述装置包括:
37.数据获取模块,用于获取充电机和电池管理系统在每个充电阶段的交互流程和报文信息;
38.fsm图获取模块,用于基于交互流程和报文信息获取每个充电阶段的fsm图;
39.参数获取模块,用于基于fsm图获取每个充电阶段中充电机和电池管理系统的状态以及需要的输入和期望的输出;
40.测试序列获取模块,用于将状态作为节点,输入和输出作为边,使用uio方法生成测试序列;
41.测试用例获取模块,用于基于测试序列采用递归算法生成测试用例,根据测试用例生成测试用例集;
42.一致性测试模块,用于基于测试用例集测试充电机与电池管理系统通信协议一致性。
43.第三方面,本发明提供了一种充电机与电池管理系统通信协议一致性测试系统,包括处理器及存储介质;
44.所述存储介质用于存储指令;
45.所述处理器用于根据所述指令进行操作以执行根据上述任一项所述方法的步骤。
46.第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述任一项所述方法的步骤。
47.与现有技术相比,本发明所达到的有益效果:
48.本发明提供的一种充电机与电池管理系统通信协议一致性测试方法、装置、系统及存储介质,使用fsm形式化描述充电机和bms之间的充电过程,更容易保证协议的不同实体之间的通信一致性。在fsm的基础之上使用uio方法来生成测试序列并得到最终的测试用例集,这种测试方法不仅有理论支撑而且复用能力强。根据测试序列生成测试用例时,采用递归算法可以让每一个测试用例都有完整的输入输出,前置用例也被考虑在内。
附图说明
49.图1是本发明实施例提供的一种充电机与电池管理系统通信协议一致性测试方法方法流程图;
50.图2是本发明实施例提供的充电机状态psm图;
51.图3是本发明实施例提供的fsm广度优先生成树图。
具体实施方式
52.下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
53.实施例一:
54.如图1所示,本发明实施例提供了一种充电机与电池管理系统通信协议一致性测试方法,包括以下步骤:
55.(1)获取充电机和电池管理系统在每个充电阶段的交互流程和报文信息;通过分析gb/t 27930-2015《电动汽车非车载传导式充电机与电池管理系统之间的通信协议》,将整个充电流程分为四个阶段,包括握手阶段、参数配置阶段、充电阶段和充电结束阶段。
56.(2)基于交互流程和报文信息获取每个充电阶段的fsm图。
57.(3)基于fsm图获取每个充电阶段中充电机和电池管理系统的状态以及需要的输入和期望的输出。
58.(4)将状态作为节点,输入和输出作为边,使用uio方法生成测试序列;
59.如图2所示,图中l1-l41为边,s0-s10为节点;
60.对于每个状态构建其uio序列,将每个状态以及通过相应边转换后的状态的uio序列进行组合得到测试子序列;
61.基于广度优先生成树算法遍历fsm图得到广度优先生成树,并基于广度优先生成树得到引导序列;
62.结合引导序列和测试子序列生成测试序列。
63.具体的,对于每个状态构建其uio序列包括:
64.针对fsm图中任一未获得uio序列的状态,求出其所有包含边个数为k的输入序列和输出序列;
65.检查输入序列和输出序列是否唯一,若是,则将输入序列和输出序列作为相应状态的uio序列;若否,则k=k+1,并重复上述步骤,直至每个状态均查找到uio序列或k》2n2;
66.其中,k为正整数,n为fsm图中状态的数量。
67.具体的,基于广度优先生成树算法遍历fsm图得到广度优先生成树,并基于广度优先生成树得到引导序列包括:
68.从fsm图中预设的初始状态开始,广度优先遍历fsm图中的所有状态;
69.在遍历过程中,若当前状态已被访问过,则跳过当前状态继续遍历,构造一棵无重复状态的广度优先生成树;如图3所示;
70.在广度优先生成树中选取从初始状态至任一状态的路径作为状态的引导序列。
71.具体的,结合引导序列和测试子序列生成测试序列包括:
72.对于每个测试子序列,在其前面加上相应状态对应的引导序列,得到初始测试序列,利用边与边之间的暗含关系消除冗余测试序列得到最终的测试序列。暗含关系:如果一个正常状态转移到自身的条件是在不超时的情况下不进行输入或进行不正确的输入,那么对这种状态转移的测试就会暗含在该状态转移到超时状态当中,因此,可以消除测试序列的冗余。其中,每个测试用例包含的内容有前置条件、测试步骤和预期结果。
73.(5)基于测试序列采用递归算法生成测试用例,根据测试用例生成测试用例集;
74.对任一测试序列,若其包含边个数为1,则产生一条测试用例;
75.若其包含边个数为n且n》1,则判断已有测试用例中是否有针对包含边个数为1测试子序列的测试用例,
76.若有,则将测试用例作为测试前置条件,针对最后一组边设计测试用例;若没有,则对前n-1条边组成的序列求测试用例。
77.(6)基于测试用例集测试充电机与电池管理系统通信协议一致性。
78.例如:
79.如果要对t1=g1,e3={l1,l4,l5}这个测试序列(测试序列是由引导序列g和测试子序列e组成)生成测试用例,首先判断有没有测试路径为l1,l4的测试序列,可以发现没有,因此,需要先生成l1,l4的测试用例。要生成l1,l4的测试用例,首先判断有没有测试路径为l1的测试用例,可以发现没有,因此,要首先生成路径为l1的测试用例。在生成测试用例时,用例的编号是由测试序列t1-t23决定的,测试具体操作和预期结果分别指的是fsm图中边上代表的输入输出。
[0080][0081][0082]
有了测试用例t1-1之后,便可以生成测试子路径l1,l4的测试用例,具体测试用例如下:
[0083][0084][0085]
有了l1,l4这个测试子序列的测试用例之后,便可以生成针对测试序列t1={l1,l4,l5}的测试用例了,具体的测试用例内容如下:
[0086][0087]
上面得到的测试用例便是根据测试序列t1=g1,e3={l1,l4,l5}得到的测试用例。
[0088]
实施例二:
[0089]
本发明实施例提供了一种充电机与电池管理系统通信协议一致性测试装置,装置包括:
[0090]
数据获取模块,用于获取充电机和电池管理系统在每个充电阶段的交互流程和报文信息;
[0091]
fsm图获取模块,用于基于交互流程和报文信息获取每个充电阶段的fsm图;
[0092]
参数获取模块,用于基于fsm图获取每个充电阶段中充电机和电池管理系统的状态以及需要的输入和期望的输出;
[0093]
测试序列获取模块,用于将状态作为节点,输入和输出作为边,使用uio方法生成测试序列;
[0094]
测试用例获取模块,用于基于测试序列采用递归算法生成测试用例,根据测试用例生成测试用例集;
[0095]
一致性测试模块,用于基于测试用例集测试充电机与电池管理系统通信协议一致性。
[0096]
实施例三:
[0097]
本发明实施例提供了一种充电机与电池管理系统通信协议一致性测试系统,包括处理器及存储介质;
[0098]
存储介质用于存储指令;
[0099]
处理器用于根据指令进行操作以执行根据上述任一项方法的步骤。
[0100]
实施例四:
[0101]
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述任一项方法的步骤。
[0102]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0103]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0104]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0105]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0106]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1