一种多处理器模块故障注入测试装置的制作方法

文档序号:32340335发布日期:2022-11-26 09:33阅读:29来源:国知局
一种多处理器模块故障注入测试装置的制作方法

1.本发明属于网络通讯技术、冗余管理和系统测试技术领域,具体涉及一种多处理器模块故障注入测试装置。


背景技术:

2.在某控制系统中采用多个处理器模块冗余热备份的方式,用以提高整个控制系统的可靠性。如何在系统测试阶段来评估该控制系统的容错性能,并验证该控制系统对异常或故障的处理能力,已成为评价该控制系统可靠性的关键途径。
3.在上述控制系统中,每个处理器模块作为被测设备节点,是该控制系统的核心部件。在对该控制系统进行测试时,对单个处理器模块的测试可以采用单独和其通讯,并人为输入异常参数或者制造硬件链路上的故障等方式来评估其可靠性。对于多个处理器模块冗余热备份的工作方式而言,想要模拟多个处理器模块之间的协同工作以及某个处理器模块故障后切换到其它处理器模块进行工作的情形,存在着较大的困难。现有技术在测试多个处理器模块热备份工作时,通常存在以下缺点:(1)在测试多个处理器模块之间的热备份切换工作时,既无法模拟切换工作的真实性,也无法评估切换实时性的好坏;(2)系统执行完异常测试后,只能得到测试的最终结果,不能随意获取想要的测试中间运行结果,也无法统计测试的覆盖率情况;(3)一旦参与工作的处理器模块的数量发生改变,可能会颠覆当前的测试架构,增加测试工作量。


技术实现要素:

4.(一)要解决的技术问题
5.本发明要解决的技术问题是:如何克服目前的控制系统中“无法模拟切换工作的真实性和无法评估切换实时性的好坏”以及“无法评估冗余系统/模块可靠性”的问题。
6.(二)技术方案
7.为了解决上述技术问题,本发明提供了一种多处理器模块故障注入测试装置,包括测试设备节点和多个被测设备节点,所述测试设备节点包括第一区块链写入模块11、第一获取模块12、判断模块13、统计模块14、第一存储模块15;每个被测设备节点即为一个多处理器模块,包括第二存储模块21、第二获取模块22、故障处理器模块23、第二区块链写入模块24;
8.第一区块链写入模块11,用于从测试设备节点的本地数据库中选取一条故障注入测试用例,并通过区块链网络向所有被测设备节点广播该故障注入测试用例的编号;
9.第二获取模块22,用于从区块链网络中接收到故障注入测试用例的编号后,打开故障注入测试用例编号对应的测试脚本;
10.第二存储模块21,用于保存每个故障注入测试用例对应的测试脚本;
11.故障处理器模块23,用于对测试脚本进行解析处理,提取故障注入测试用例的输入参数信息,执行对应的故障处理;
12.第二区块链写入模块24,用于将每个故障注入测试用例的实际执行结果生成广播信息并发送到区块链网络中;
13.第一获取模块12,用于从区块链网络中获取到故障注入测试用例的实际执行结果;
14.判断模块13,用于将故障注入测试用例的实际执行结果与该故障注入测试用例的预期执行结果相比较,得出该故障注入测试用例是否通过的测试结论;
15.统计模块14,用于基于测试结论统计故障测试覆盖率和故障测试通过率;
16.第一存储模块15,用于将故障注入测试用例的信息和测试结论保存到测试设备节点的本地数据库中将测试结论保存到本地数据库中。
17.优选地,在测试设备节点执行故障注入测试之前,首先生成所有被测设备节点的故障注入测试用例,统计并保存所有故障注入测试用例的个数,第一存储模块15把每条故障注入测试用例的信息保存到本地数据库中。
18.优选地,测试设备节点的本地数据库中存储的内容包括:
19.每条故障注入测试用例的编号:作为数据库的检索项,该编号值唯一;
20.每条故障注入测试用例的说明:简要阐述该故障注入测试用例的目的和用途;
21.每条故障注入测试用例的预期执行结果:列出故障注入测试用例执行过程中被测设备节点所有预期的中间运行结果和最终运行结果;
22.故障注入测试用例的实际执行结果:列出故障注入测试用例执行过程中被测设备节点实际的中间运行结果和最终运行结果;
23.故障注入测试用例是否通过:若预期执行结果和实际执行结果一致,表明测试用例通过;否则,表明测试用例不通过;
24.故障注入测试用例是否被执行:若接收到故障注入测试用例的实际执行结果,表明测试已被执行;否则,表明测试未被执行。
25.优选地,第一区块链写入模块11还用于通过区块链网络向所有被测设备节点广播时间,保证区块链网络内所有被测设备节点的时间同步。
26.优选地,第一区块链写入模块11还用于通过区块链网络向所有被测设备节点发送“启动测试”命令和“停止测试”命令。
27.优选地,故障注入测试用例的编号所对应的测试脚本的内容包括:
28.故障注入测试用例的输入参数信息:包含一项或多项输入参数,通过设置这些输入参数的值,模拟产生各种故障或异常;
29.输入参数的设置间隔时间:故障处理器模块23按照该间隔时间去设置当前的输入参数值,输入参数的设置间隔时间用于模拟在某种时序下被测设备节点对故障或异常的处理情况;
30.是否需要统计本次执行时间:若需要记录被测设备节点某一故障或异常产生前和产生后,被测设备节点的执行时间,则设置此脚本参数为“是”,否则,设置此脚本参数为“否”;
31.测试用例的输出参数值:包含一项或多项输出参数,输出参数包括测试人员关注的所有中间运行结果和最终运行结果。
32.优选地,步骤s2具体为:
33.故障处理器模块23还用于创建一个单独的进程以处理测试设备节点的故障注入测试工作;
34.故障处理器模块23从区块链网络中接收到测试设备节点发送的“启动测试”命令时,启动所述进程开始工作;
35.每一个故障注入测试用例编号对应一个测试脚本,在所述进程中,第二获取模块22从区块链网络中接收到故障注入测试用例的编号后,在本地打开对应该编号的测试脚本;
36.故障处理器模块23按照测试脚本中每个输入参数的设置间隔时间,完成每个输入参数值的设置;
37.故障处理器模块23按照输入参数值执行相应的故障处理;
38.故障处理器模块23将故障处理过程中产生的测试结果保存在相应的输出参数中,第二区块链写入模块24将这些输出参数发送到区块链网络中;
39.故障处理器模块23从区块链网络中接收到测试设备节点发送的“停止测试”命令时,停止所述进程的工作。
40.优选地,故障处理器模块23在设置完一个输入参数后若需要统计本次测试的执行时间,则当开始执行这条故障注入测试用例时,将当前系统时间记录到一区块链账本中;当执行完这条故障注入测试用例时,再次将当前系统时间记录到区块链账本中,通过区块链账本中两次记录时间之差得到本次测试执行时间,将本次测试执行时间生成广播信息并发送到区块链网络中。
41.优选地,所述故障测试覆盖率和故障测试通过率通过以下方法获得:第一区块链写入模块11通过区块链网络向故障处理器模块23发送“停止测试”命令后,统计模块14将已通过的故障注入测试用例个数除以总测试用例个数得到故障测试通过率,将已执行的故障注入测试用例个数除以总故障注入测试用例个数得到故障测试覆盖率。
42.本发明还提供了一种所述装置在网络通讯技术、冗余管理和系统测试技术领域中的应用。
43.(三)有益效果
44.本发明与现有技术相比的优点在于:
45.1、通过该装置能够真实模拟处理器模块的所有潜在故障,并能验证处理器模块之间热备份切换的性能;
46.2、测试设备节点向被测试设备节点发送故障注入测试用例编号,被测试设备节点执行相应编号的测试脚本文件,能够及时获取被测设备节点预期的全部测试中间运行结果,并实时统计故障测试覆盖率;
47.3、当控制系统中处理器模块数量增加或减少时,无需修改测试代码,支持系统扩展并对系统扩展具有良好的适应性。
附图说明
48.图1为本发明的装置总体架构图;
49.图2为本发明的测试设备节点结构图;
50.图3为本发明的被测设备节点结构图。
具体实施方式
51.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
52.本发明提出的一种多处理器模块故障注入测试装置,该装置通过对多处理器模块输入各种不同故障,不仅验证了整个控制系统对故障和异常的处理能力,同时验证了各个处理器模块之间的协同工作以及某个处理器模块故障后切换到其它处理器模块进行工作的功能和性能。该装置可以实时反馈任意想要的测试结果,并充分验证多个处理器模块冗余热备份的工作可靠性。该装置适用于验证冗余系统/模块可靠性的场景,能够获取该系统/模块有关可靠性的定量和定性指标。
53.如图1至图3所示,本发明提出的一种多处理器模块故障注入测试装置,包括测试设备节点和多个被测设备节点,所述测试设备节点包括第一区块链写入模块11、第一获取模块12、判断模块13、统计模块14、第一存储模块15;每个被测设备节点即为一个多处理器模块,包括第二存储模块21、第二获取模块22、故障处理器模块23、第二区块链写入模块24;
54.第一区块链写入模块11,用于从测试设备节点的本地数据库中选取一条故障注入测试用例,并通过区块链网络向所有被测设备节点广播该故障注入测试用例的编号;
55.第二获取模块22,用于从区块链网络中接收到故障注入测试用例的编号后,打开故障注入测试用例编号对应的测试脚本;
56.第二存储模块21,用于保存每个故障注入测试用例对应的测试脚本;
57.故障处理器模块23,用于对测试脚本进行解析处理,提取故障注入测试用例的输入参数信息,执行对应的故障处理;
58.第二区块链写入模块24,用于将每个故障注入测试用例的实际执行结果生成广播信息并发送到区块链网络中;
59.第一获取模块12,用于从区块链网络中获取到故障注入测试用例的实际执行结果;
60.判断模块13,用于将故障注入测试用例的实际执行结果与该故障注入测试用例的预期执行结果相比较,得出该故障注入测试用例是否通过的测试结论;
61.统计模块14,用于基于测试结论统计故障测试覆盖率和故障测试通过率;
62.第一存储模块15,用于将故障注入测试用例的信息和测试结论保存到测试设备节点的本地数据库中将测试结论保存到本地数据库中。
63.在测试设备节点执行故障注入测试之前,首先生成所有被测设备节点的故障注入测试用例,测试设备节点统计并保存所有故障注入测试用例的个数,第一存储模块15把每条故障注入测试用例的信息保存到本地数据库中。
64.测试设备节点的本地数据库中存储的内容包括:
65.每条故障注入测试用例的编号:作为数据库的检索项,该编号值唯一;
66.每条故障注入测试用例的说明:简要阐述该故障注入测试用例的目的和用途;
67.每条故障注入测试用例的预期执行结果:列出故障注入测试用例执行过程中被测设备节点所有预期的中间运行结果和最终运行结果;
68.故障注入测试用例的实际执行结果:列出故障注入测试用例执行过程中被测设备节点实际的中间运行结果和最终运行结果;
69.故障注入测试用例是否通过:若预期执行结果和实际执行结果一致,表明测试用例通过;否则,表明测试用例不通过;
70.故障注入测试用例是否被执行:若接收到故障注入测试用例的实际执行结果,表明测试已被执行;否则,表明测试未被执行。
71.测试设备节点和所有被测设备节点通过区块链网络连接。
72.第一区块链写入模块11还通过区块链网络向所有被测设备节点广播时间,保证区块链网络内所有被测设备节点的时间同步。
73.第一区块链写入模块11还通过区块链网络向所有被测设备节点发送“启动测试”命令和“停止测试”命令。
74.其中,故障注入测试用例的编号所对应的测试脚本的内容包括:
75.故障注入测试用例的输入参数信息:包含一项或多项输入参数,通过设置这些输入参数的值,模拟产生各种故障或异常;
76.输入参数的设置间隔时间:故障处理器模块23按照该间隔时间去设置当前的输入参数值,该参数用于模拟在某种时序下被测设备节点对故障或异常的处理情况;
77.是否需要统计本次执行时间:若需要记录被测设备节点某一故障或异常产生前和产生后,被测设备节点的执行时间,则设置此脚本参数为“是”,否则,设置此脚本参数为“否”;
78.测试用例的输出参数值:包含一项或多项输出参数,输出参数包括测试人员关注的所有中间运行结果和最终运行结果。
79.故障处理器模块23创建一个单独的进程用于处理测试设备节点的故障注入测试工作;
80.故障处理器模块23从区块链网络中接收到测试设备节点发送的“启动测试”命令时,启动所述进程开始工作;
81.每一个故障注入测试用例编号对应一个测试脚本,在所述进程中,第二获取模块22从区块链网络中接收到故障注入测试用例的编号后,在本地打开对应该编号的测试脚本;
82.第二获取模块22按照测试脚本中每个输入参数的设置间隔时间,完成每个输入参数值的设置;
83.第二获取模块22按照输入参数值执行相应的故障处理;
84.第二获取模块22将故障处理过程中产生的测试结果保存在相应的输出参数中,第二区块链写入模块24将这些输出参数发送到区块链网络中;
85.故障处理器模块23从区块链网络中接收到测试设备节点发送的“停止测试”命令时,停止所述进程的工作。
86.其中,若被测设备节点在执行脚本测试的过程中,故障处理器模块23在设置完一个输入参数后若需要统计本次测试的执行时间,则当开始执行这条故障注入测试用例时,将当前系统时间记录到一区块链账本中;当执行完这条故障注入测试用例时,再次将当前系统时间记录到区块链账本中,通过区块链账本中两次记录时间之差得到本次测试执行时间,将本次测试执行时间生成广播信息并发送到区块链网络中。
87.所述故障测试覆盖率和故障测试通过率通过以下方法获得:第一区块链写入模块
11通过区块链网络向故障处理器模块23发送“停止测试”命令后,统计模块14将已通过的故障注入测试用例个数除以总测试用例个数得到故障测试通过率,将已执行的故障注入测试用例个数除以总故障注入测试用例个数得到故障测试覆盖率。
88.当被测设备节点数量增加或者减少时,无需修改被测设备节点的代码,只需修改被测设备节点的测试脚本或者测试设备节点的本地数据库中的内容即可。
89.可以看出,本发明能够及时获取被测设备节点预期的全部测试中间结果,实时统计故障覆盖率,并对系统扩展具有良好的适应性。采用本发明的方案,能完美解决目前技术的“无法模拟切换工作的真实性和无法评估切换实时性的好坏”以及“无法评估冗余系统/模块可靠性”的问题。
90.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1