一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于进程间通信机制的故障注入验证方法、系统及终端与流程

2021-11-24 22:16:00 来源:中国专利 TAG:


1.本技术涉及驱动软件测试技术领域,特别是涉及一种基于进程间通信机制的故障注入验证方法、系统及终端。


背景技术:

2.在复杂的软件系统设计实现时,除了正常的处理逻辑,还需要大量的错误异常处理工作。在软件系统设计实现完成后,针对所有分支的完备覆盖测试,是保证软件质量、保证系统在网运行的重要环节。为确保分支覆盖测试的顺利进行,需要针对错误异常在代码中添加相应的错误处理分支,但是在测试验证过中,许多故障却很难注入。因此,如果进行故障注入是个重要的技术问题。
3.目前,在软件测试验证过程中注入故障的方法,通常是采用模拟故障的方法。具体地,通过修改代码进行打桩,模拟故障,每次打桩后需要重新编译再安装系统进行测试,测试完成后需要修改回原来的代码,并重新编译以及安装系统。
4.然而,目前在软件测试验证过程中注入故障的方法,由于每次打桩后需要重新编译再安装系统进行测试,且测试完毕后要修改回原来代码并重新编译、安装系统,这些操作太繁琐,导致故障注入效率较低。而且打桩代码写死后无法进入正常分支,还需要后续处理,也会导致故障注入效率较低。


技术实现要素:

5.本技术提供了一种基于进程间通信机制的故障注入验证方法、系统及终端,以解决现有技术中的故障注入方法使得故障注入效率较低的问题。
6.为了解决上述技术问题,本技术实施例公开了如下技术方案:
7.一种基于进程间通信机制的故障注入验证方法,所述方法包括:
8.创建用于进程间通信的命名管道;
9.对所获取的命令进行解析,获取到对应的消息,并将所述消息发送至所述命名管道;
10.利用所述命名管道,将所述消息从第一进程发送至第二进程;
11.解析来自所述第一进程的消息,并根据解析结果设置变量的值,所述变量包括:调试开关以及注入故障的条件;
12.根据所述变量的值模拟注入故障,并根据所述注入故障控制业务代码进入相应分支进行验证。
13.可选地,对所获取的命令进行解析,获取到对应的消息,并将所述消息发送至所述命名管道的方法,包括:
14.获取用户输入的命令;
15.根据所述命令封装对应的消息;
16.将所述消息发送至所述命名管道。
17.可选地,所述第一进程为解析命令的进程,所述第二进程为处理业务的进程。
18.可选地,所述调试开关为:debug_on,所述注入故障的条件包括:condition1_debug和condition2_debug,且当debug_on为true时,注入故障,当debug_on为false时,不注入故障。
19.可选地,所述命名管道采用消息队列。
20.可选地,所述方法应用于linux平台。
21.一种基于进程间通信机制的故障注入验证系统,所述系统包括:
22.命名管道创建模块,用于创建用于进程间通信的命名管道;
23.第一解析模块,用于对所获取的命令进行解析,获取到对应的消息,并将所述消息发送至所述命名管道;
24.发送模块,用于利用所述命名管道,将所述消息从第一进程发送至第二进程;
25.第二解析模块,用于解析来自所述第一进程的消息,并根据解析结果设置变量的值,所述变量包括:调试开关以及注入故障的条件;
26.故障模拟模块,用于根据所述变量的值模拟注入故障,并根据所述注入故障控制业务代码进入相应分支进行验证。
27.可选地,所述第一解析模块包括:
28.命令获取单元,用于获取用户输入的命令;
29.封装单元,用于根据所述命令封装对应的消息;
30.消息发送单元,用于将所述消息发送至所述命名管道。
31.可选地,所述命名管道为消息队列。
32.一种终端,所述终端包括:处理器以及与所述处理器通信连接的存储器,其中,
33.所述存储器中存储有可被所述处理器执行的指令,所述指令被所述处理器执行,以使所述处理器能够如上任意一项所述的基于进程间通信机制的故障注入验证的方法。
34.本技术还提供一种终端,该终端也具有如上基于进程间通信机制的故障注入验证方法和系统相应的技术效果,在此不再赘述。
35.本技术的实施例提供的技术方案可以包括以下有益效果:
36.本技术提供一种基于进程间通信机制的故障注入验证方法,该方法首先创建用于进程间通信的命名管道,其次对所获取的命令进行解析,获取到对应的消息,并将消息发送至命名管道,然后利用命名管道,将消息从第一进程发送至第二进程,再解析第一进程的消息,并根据解析结果设置变量的值,最后根据变量的值模拟注入故障,并根据注入故障控制业务代码进入相应分支进行验证。本实施例中的故障注入验证方法,通过命令行输入不同的参数,利用命名管道在线控制业务处理代码进入不同的流程分支,能够有效降低分支覆盖测试的难度,提高故障注入效率,从而提高软件开发效率。而且利用命名管道的进程间通信机制,对代码分支的控制更加灵活,有利于进一步提高故障注入效率。
37.本技术还提供一种基于进程间通信机制的故障注入验证系统,该系统主要包括:命名管道创建模块、第一解析模块、发送模块、第二解析模块和故障模拟模块。其中,通过命名管道创建模块,能够创建用于进程间通信的命名管道,本实施例利用命名管道控制代码流程分支,通过第一解析模块对命令进行解析获取到对应消息,并将其发送至命名管道,再通过发送模块控制命名管道将消息从第一进程发送至第二进程,利用第二解析模块解析第
一进程的消息,并设置变量的值,最后通过故障模拟模块,根据变量的值模拟注入故障,根据注入故障控制业务代码进入相应的分支进行验证,从而实现代码流程分支,这种结构能够有效降低分支覆盖测试的难度,从而提高故障注入效率,进而提高软件开发效率。
38.本技术还提供一种终端,该终端也具有如上基于进程间通信机制的故障注入验证方法和系统相应的技术效果,在此不再赘述。
39.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
40.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
41.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本技术实施例所提供的一种基于进程间通信机制的故障注入验证方法的流程示意图;
43.图2为本技术实施例所提供的一种基于进程间通信机制的故障注入验证系统的结构示意图。
具体实施方式
44.为了使本技术领域的人员更好地理解本技术中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
45.为了更好地理解本技术,下面结合附图来详细解释本技术的实施方式。
46.实施例一
47.参见图1,图1为本技术实施例所提供的一种基于进程间通信机制的故障注入验证方法的流程示意图。由图1可知,本实施例中基于进程间通信机制的故障注入验证方法,主要包括如下过程:
48.s1:创建用于进程间通信的命名管道。
49.本实施例中命名管道可以采用消息队列,也就是创建用于进程间通信的消息队列,利用消息队列实现不同进程间的通信,从而进行在线故障注入测试。
50.s2:对所获取的命令进行解析,获取到对应的消息,并将消息发送至命名管道。
51.具体地,步骤s2包括如下过程:
52.s21:获取用户输入的命令。
53.s22:根据命令封装对应的消息。
54.s23:将封装后的消息发送至命名管道。
55.根据以上步骤s21

s23可知,获取用户输入的命令行之后,封装对应的消息并发送
给命名管道,如果用户输入“set debug_on true”时,通过步骤s22,会封装“将变量debug_on修改为true”的对应消息。
56.s3:利用命名管道,将消息从第一进程发送至第二进程。
57.本实施例中第一进程为解析命令的进程,第二进程为处理业务的进程。也就是利用命名管道,将封装后的消息从解析命令的进程发送至处理业务的进程。
58.s4:解析来自第一进程的消息,并根据解析结果设置变量的值。
59.其中,该变量包括:调试开关以及注入故障的条件。调试开关为:debug_on,注入故障的条件包括:condition1_debug和condition2_debug,也就是模拟的判断条件。当调试开关debug_on为true时,注入故障,可通过命令行控制condition1_debug和condition2_debug这两个故障注入条件,从而选择待执行的进程

当调试开关debug_on为false时,不注入故障,代码按照原有逻辑处理。
60.本实施例中调试开关以及注入故障的条件,这些变量都能通过命令行在线更改,非常方便,有利于提高软件测试的灵活性和效率。
61.继续参见图1可知,设置变量的值以后,执行步骤s5:根据变量的值模拟注入故障,并根据注入故障控制业务代码进入相应分支进行验证。
62.本实施例中的方法主要应用于linux平台。实际应用中,本实施例中的方法可以采用软件实现,采用软件实现时,可以采用c语言。
63.实施例二
64.在图1所示实施例的基础上参见图2,图2为本技术实施例所提供的一种基于进程间通信机制的故障注入验证系统的结构示意图。
65.由图2可知,本实施例中基于进程间通信机制的故障注入验证系统,主要包括:命名管道创建模块、第一解析模块、发送模块、第二解析模块和故障模拟模块。
66.其中,命名管道创建模块,用于创建用于进程间通信的命名管道;第一解析模块,用于对所获取的命令进行解析,获取到对应的消息,并将消息发送至命名管道;发送模块,用于利用命名管道,将消息从第一进程发送至第二进程;第二解析模块,用于解析来自第一进程的消息,并根据解析结果设置变量的值,变量包括:调试开关以及注入故障的条件;故障模拟模块,用于根据变量的值模拟注入故障,并根据注入故障控制业务代码进入相应分支进行验证。本实施例中的命名管道可采用消息队列来实现。
67.进一步地,第一解析模块包括:命令获取单元、封装单元和消息发送单元。其中,命令获取单元,用于获取用户输入的命令;封装单元,用于根据命令封装对应的消息;消息发送单元,用于将消息发送至所述命名管道。
68.该实施例中基于进程间通信机制的故障注入验证系统的工作原理和工作方法,在图1所示的实施例中已经详细阐述,在此不再赘述。
69.实施例三
70.本技术还提供一种终端,该终端包括:处理器以及与处理器通信连接的存储器,其中,存储器中存储有可被处理器执行的指令,指令被处理器执行,以使处理器能够执行如上基于进程间通信机制的故障注入验证方法。
71.处理器所执行的基于进程间通信机制的故障注入验证方法如下:
72.s1:创建用于进程间通信的命名管道;
73.s2:对所获取的命令进行解析,获取到对应的消息,并将消息发送至命名管道;
74.s3:利用命名管道,将消息从第一进程发送至第二进程;
75.s4:解析来自第一进程的消息,并根据解析结果设置变量的值,变量包括:调试开关以及注入故障的条件;
76.s5:根据变量的值模拟注入故障,并根据注入故障控制业务代码进入相应分支进行验证。
77.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献