CN109271306A - 基于故障注入的寿命试验方法、装置、设备及介质 - Google Patents
基于故障注入的寿命试验方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN109271306A CN109271306A CN201811154960.8A CN201811154960A CN109271306A CN 109271306 A CN109271306 A CN 109271306A CN 201811154960 A CN201811154960 A CN 201811154960A CN 109271306 A CN109271306 A CN 109271306A
- Authority
- CN
- China
- Prior art keywords
- test
- platform
- implementing result
- crash simulation
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明适用于核电技术领域,提供了一种基于故障注入的寿命试验方法、装置、设备及介质。所述方法包括:试验平台接收用户的试验指令;生成失效模拟命令;将所述失效模拟命令发送到所述嵌入式计算平台;嵌入式计算平台采用在被测软件中预先注册的Kprobes接口,执行所述失效模拟命令,并将所述被测软件的输出保存到预设的输出文件中;根据所述输出文件判断所述失效模拟命令的执行结果,并将所述执行结果发送给试验平台;试验平台根据所述执行结果执行相应的操作,并将所述执行结果记录在日志中。本发明的技术方案实现了基于故障注入的软件加速寿命试验,能够在有限的时间内收集到充分的数据进行可靠性评估,缩短试验时间,提高试验效率。
Description
技术领域
本发明属于核电技术领域,尤其涉及一种基于故障注入的寿命试验方法、装置、设备及介质。
背景技术
随着软件行业的发展,大型软件的复杂度越来越高,单纯的软件功能测试已经很难充分的暴露软件中的缺陷,同时受限于测试资源等因素可靠性测试也难以开展。特别是对高安全可靠要求的工业控制软件,如飞控系统和核电仪控系统等,由于其设计失效率低,很难在有限的时间内收集到充分的数据进行可靠性的评估。
加速寿命试验是在超出正常应力水平的加速环境下的一种可靠性试验方法,目前,针对硬件的加速寿命试验方面已经比较成熟,如热老化试验等,但在软件方面尚无可靠的方法进行加速寿命试验。
故,有必要提供一种技术方案,以解决上述技术问题。
发明内容
有鉴于此,本发明实施例提供了一种基于故障注入的寿命试验方法、装置、设备及介质,以解决现有技术软件加速寿命试验能力低的问题。
本发明实施例的第一方面提供了一种基于故障注入的寿命试验方法,包括试验平台执行的如下步骤:
接收用户的试验指令;
根据所述试验指令,生成嵌入式计算平台能够识别的失效模拟命令;
将所述失效模拟命令发送到所述嵌入式计算平台;
接收所述嵌入式计算平台返回的对所述失效模拟命令的执行结果,根据所述执行结果执行相应的操作,并将所述执行结果记录在日志中。
本发明实施例的第二方面提供了一种故障注入的寿命试验方法,包括嵌入式计算平台执行的如下步骤:
接收试验平台发送的失效模拟命令;
采用在被测软件中预先注册的Kprobes接口,执行所述失效模拟命令,并将所述被测软件的输出保存到预设的输出文件中;
根据所述输出文件判断所述失效模拟命令的执行结果,并将所述执行结果发送给试验平台。
本发明实施例的第三方面提供了一种基于故障注入的寿命试验装置,包括试验平台,所述试验平台包括:
指令接收模块,用于接收用户的试验指令;
命令生成模块,用于根据所述试验指令,生成嵌入式计算平台能够识别的失效模拟命令;
命令发送模块,用于将所述失效模拟命令发送到所述嵌入式计算平台;
结果记录模块,用于接收所述嵌入式计算平台返回的对所述失效模拟命令的执行结果,根据所述执行结果执行相应的操作,并将所述执行结果记录在日志中。
本发明实施例的第四方面提供了一种基于故障注入的寿命试验装置,包括嵌入式计算平台,所述嵌入式计算平台包括:
命令接收模块,用于接收试验平台发送的失效模拟命令;
命令执行模块,用于采用在被测软件中预先注册的Kprobes接口,执行所述失效模拟命令,并将所述被测软件的输出保存到预设的输出文件中;
结果发送模块,用于根据所述输出文件判断所述失效模拟命令的执行结果,并将所述执行结果发送给试验平台。
本发明实施例的第五方面提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于故障注入的寿命试验方法中试验平台执行的步骤或者嵌入式计算平台执行的步骤。
本发明实施例的第六方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于故障注入的寿命试验方法中试验平台执行的步骤或者嵌入式计算平台执行的步骤。
上述基于故障注入的寿命试验方法、装置、设备及介质中,试验平台接收用户的试验指令,并根据所该试验指令,生成嵌入式计算平台能够识别的失效模拟命令,然后将该失效模拟命令发送到嵌入式计算平台,嵌入式计算平台采用在被测软件中预先注册的Kprobes接口,执行接收到的失效模拟命令,并将被测软件的输出保存到预设的输出文件中,根据输出文件判断失效模拟命令的执行结果,并将执行结果发送给试验平台,试验平台接收嵌入式计算平台返回的执行结果后,根据该执行结果执行相应的操作,并将该执行结果记录在日志中,从而实现了基于故障注入的软件加速寿命试验,能够在有限的时间内收集到充分的数据进行可靠性评估,缩短试验时间,提高试验效率,为工程应用提供可能。同时,使用基于Linux内核的Kprobes接口,能够在任意位置插入任意代码,增强故障模拟能力,无须依赖第三方库,实现对硬件层、系统层和应用层的故障模式进行灵活的模拟注入,提高试验的有效性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的基于故障注入的寿命试验方法的实现流程图;
图2是本发明一实施例提供的基于故障注入的寿命试验方法中步骤S2的实现流程图;
图3是本发明一实施例提供的基于故障注入的寿命试验方法中步骤S6的实现流程图;
图4是本发明一实施例提供的基于故障注入的寿命试验方法中试验平台根据应力水平和试验次数确定是否提示用户继续进行试验的实现流程图;
图5是本发明一实施例提供的基于故障注入的寿命试验系统的示意图;
图6是本发明一实施例提供的基于故障注入的寿命试验装置的示意图;
图7是本发明另一实施例提供的基于故障注入的寿命试验装置的示意图
图8是本发明一实施例提供的计算机设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
请参阅图1,图1示出了本发明实施例提供的一种基于故障注入的寿命试验方法的实现流程,本发明实施例的执行主体包括试验平台和嵌入式计算平台,其具体可以是计算机。详述如下:
S1:试验平台接收用户的试验指令。
具体地,试验指令的指令类型包括但不限于故障注入命令、单个故障移除命令、故障查询命令、故障移除命令和停止试验命令等。
试验指令可以包括指令类型、故障模式ID等配置信息。
S2:试验平台根据所述试验指令,生成嵌入式计算平台能够识别的失效模拟命令。
具体地,试验平台对接收到的试验指令进行解析,提取试验指令中的配置信息,根据配置信息生成失效模拟命令,该失效模拟命令能够被嵌入式平台识别和执行。
进一步地,如图2所示,步骤S2具体可以通过如下步骤S21至步骤S23实现,详述如下:
S21:获取所述试验指令的指令类型。
具体地,试验平台根据试验指令的配置信息,确定试验指令的指令类型。指令类型包括故障注入命令、单个故障移除命令、故障查询命令、故障移除命令和停止试验命令。
S22:若所述指令类型为故障注入命令,则按照预设的生成方式生成待注入的故障模式序列。
具体地,若试验平台根据步骤S22确定指令类型为故障注入命令,则进一步根据配置信息中的故障模式ID等故障模式信息,按照预设的生成方式,生成待注入的故障模式序列。
其中,预设的生成方式可以由用户手动选择或者根据目标应力水平自动生成。
S23:按照预设的命令格式,将所述待注入的故障模式序列封装成所述失效模拟命令。
具体地,试验平台按照预设的命令格式,将步骤S22生成的待注入的故障模式序列封装成失效模拟命令。
失效模拟命令具体可以包括单个故障注入、单个故障移除、查询所有故障、移除所有故障和停止试验5种类型的命令。多个故障注入命令可以通过单个故障注入命令的拼接实现。
预设的命令格式可以根据应用的需要预先设置,例如,单个故障注入的命令格式为insmod kprobe_{failure_id}.ko procsee_name,单个故障移除的命令格式为rmmodkprobe_{failure_id},其中,process_name为进程名,failure_id为故障模式ID。
假设待注入的故障模式序列为<f1,f2,f3,f4>,则生成的失效模拟命令依次为为“insmod kprobe_1.ko process_name”、“insmod kprobe_2.ko process_name”、“insmodkprobe_3.ko process_name”、“insmod kprobe_4.ko process_name”。
在图2对应的实施例中,针对故障注入命令按照预设的生成方式生成待注入的故障模式序列,该生成方式可以是根据目标应力水平自动生成,从而能够通过应力水平的构建,定量的进行故障注入,为可靠性评估提供依据,并且通过故障序列的生成,并按照预设的命令格式,将待注入的故障模式序列封装成失效模拟命令,可实现对软件故障的自动批量注入,提高试验效率。
S3:试验平台将所述失效模拟命令发送到所述嵌入式计算平台。
具体地,试验平台将步骤S2生成的失效模型命令发送到嵌入式平台。
试验平台和嵌入式计算平台之间的通信方式由socket实现,嵌入式计算平台开启socket服务,当试验平台需要发送消息时,由试验平台创建socket客户端建立与嵌入式计算平台之间的连接,进行通信。
S4:嵌入式计算平台接收试验平台发送的失效模拟命令。
具体地,嵌入式计算平台通过socket服务接收试验平台发送的失效模拟命令。
S5:嵌入式计算平台采用在被测软件中预先注册的Kprobes接口,执行所述失效模拟命令,并将所述被测软件的输出保存到预设的输出文件中。
具体地,嵌入式计算平台使用Kprobes接口,执行对被测软件的失效模拟命令,对硬件层、系统层和应用层的故障模式进行模拟注入,采用修改系统调用返回值来模拟故障模式,系统调用返回值保存在特定的寄存器中,并将被测软件的输出以时间为索引,按照预设的输出格式写入预设的输出文件中。
Kprobes接口为Linux内核提供的中断接口,Kprobes提供了一个可以动态地在内核任意位置插入用户指定代码的能力。Kprobes把用户指定的内核地址的第一个字节替换成int3指令,当内核执行到该int3指令处时会产生一个软中断,Kprobes机制事先注册了该软中断的处理函数pre_handler和post_handler,Kprobes可以在任意位置插入任意代码,从而能够增强故障模拟能力强,无须依赖第三方库。
S6:嵌入式计算平台根据所述输出文件判断所述失效模拟命令的执行结果,并将所述执行结果发送给试验平台。
具体地,嵌入式计算平台向试验平台发送的执行结果包括:故障注入命令执行结果、故障移除命令结果、故障查询命令结果、停止试验结果和发送失效数据等。
进一步地,如图3所示,步骤S6具体可以通过如下步骤S61至步骤S63实现,详述如下:
S61:在预设的时间读取所述输出文件。
具体地,嵌入式计算平台在预设的时间读取输出文件。
预设的时间具体可以是以接收到试验平台发送的失效模拟命令的时间为起点的一段时间。
S62:若所述输出文件中记录的输出与预设的期望输出不一致,则确认发生失效,并将失效数据和失效时间作为所述执行结果发送给所述试验平台。
具体地,嵌入式计算平台对输出文件进行校验,若输出文件中记录的输出与预设的期望输出不一致,则确认校验未通过,即判定为发生失效,此时记录失效发生的时间,并将失效数据和失效时间作为执行结果发送给试验平台。
S63:若所述输出文件中记录的输出与预设的期望输出一致,则向所述试验平台发送试验成功的执行结果。
具体地,若输出文件中记录的输出与预设的期望输出一致,则确认未发生失效,即判定试验成功,并将试验成功的执行结果发送给试验平台。
在图3对应的实施例中,通过对输出文件的校验进行失效检测,并向试验平台返回失效模拟命令的的执行结果,实现了对寿命试验结果的及时监测。
S7:试验平台接收所述嵌入式计算平台返回的对所述失效模拟命令的执行结果,并将所述执行结果记录在日志中。
具体地,试验平台接收嵌入式计算平台返回的执行结果,并将执行结果记录在日志中。
日志用以记录用户对软件的操作和软件的错误信息及其对应的发生时间,为维护人员提供参考依据。将用户的每个操作点进行写日志操作,并对每个功能类的关键代码块使用try、catch处理,在catch代码块中进行写日志操作,将错误信息和时间戳写进日志文件。
日志中记录的事件包括但不限于:故障模式序列生成的结果、故障模式查询和修改的记录、故障注入相关命令生成、发送和执行的结果,以及网络通信异常等。
进一步地,若执行结果包含失效数据和失效时间,则试验平台终止此次试验。
在图1对应的实施例中,试验平台接收用户的试验指令,并根据所该试验指令,生成嵌入式计算平台能够识别的失效模拟命令,然后将该失效模拟命令发送到嵌入式计算平台,嵌入式计算平台采用在被测软件中预先注册的Kprobes接口,执行接收到的失效模拟命令,并将被测软件的输出保存到预设的输出文件中,根据输出文件判断失效模拟命令的执行结果,并将执行结果发送给试验平台,试验平台接收嵌入式计算平台返回的执行结果后,根据该执行结果执行相应的操作,并将该执行结果记录在日志中,从而实现了基于故障注入的软件加速寿命试验,能够在有限的时间内收集到充分的数据进行可靠性评估,缩短试验时间,提高试验效率,为工程应用提供可能。同时,使用基于Linux内核的Kprobes接口,能够在任意位置插入任意代码,增强故障模拟能力,无须依赖第三方库,实现对硬件层、系统层和应用层的故障模式进行灵活的模拟注入,提高试验的有效性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
进一步地,在一实施例中,如图4所示,在步骤S7之后,基于故障注入的寿命试验方法还包括试验平台执行的如下步骤:
S8:读取当前的应力水平和预设的试验次数阈值。
具体地,试验平台读取数据库中记录的当前的应力水平,以及预设的试验次数阈值。
S9:若所述当前的应力水平未达到所述试验次数阈值对应的应力水平,则提示所述用户继续进行试验。
具体地,若试验平台判断当前的应力水平未达到试验次数阈值对应的应力水平,则确认还可以继续试验,并采用预设的提示方式向用户发出继续进行试验的提醒信息。
在图4对应的实施例中,试验平台通过读取当前的应力水平和预设的试验次数阈值,并通过判断当前的应力水平是否达到试验次数阈值对应的应力水平,提醒用户是否继续进行试验,使得用户能够及时了解当前的寿命试验的程度。
进一步地,在一实施例中,如图5所示,提供了一种基于故障注入的寿命试验系统,该寿命试验系统包括试验平台、嵌入式计算平台和被测系统,被测系统包括被测应用软件、应用软件输出和被测应用软件所在的实时Linux操作系统。其中,该试验平台具体为宿主机,通过该基于故障注入的寿命试验系统能够实现对应用软件进行故障注入和加速寿命试验。
该基于故障注入的寿命试验系统包括失效模拟器、寿命试验控制模块、故障模式序列生成模块、命令生成模块、通信模块、日志模块、失效检测模块,以及故障数据库管理模块和试验任务管理模块等。
其中,失效模拟器用于模拟硬件层、系统软件和应用软件的故障模式,实现故障注入。
寿命试验控制模块用于控制加速寿命试验的全过程,统一管理各模块,使各模块协同工作,动态收集与显示寿命试验过程的相关信息,并提供故障查询、故障移除功能。
数据库包括故障数据库和寿命试验任务库两部分,分别记录故障模式相关数据和寿命试验任务相关数据。
故障模式序列生成模块通过访问故障数据库,根据目标应力水平按照预设的生成方式,生成待注入应用软件的故障模式序列。
命令生成模块实现将用户命令转化成失效模拟器的可执行命令。
通信模块分别分布在宿主机和嵌入式计算平台上,实现两者之间的通信。
失效检测模块用于监测应用软件的输出,在产生失效的情况下将失效时间发送给寿命试验控制模块,由控制模块保存失效数据,并终止整个寿命试验。
日志模块用于收集各个功能模块的操作记录和产生的错误信息。
故障数据库管理模块用于对故障相关信息的查询、更新、增加、删除。
试验任务管理模块用于对不同的寿命试验进行管理,保证各个寿命试验任务的独立性和可维护性。
其中,通信模块、失效模拟器和失效检测模块三个模块部署在嵌入式计算平台,包括寿命试验控制模块在内的其他模块部署在宿主机。嵌入式计算平台和宿主机通过通信模块进行连接交互。
进一步地,故障数据库管理模块管理故障数据库,可以实现对数据库的数据查询、修改、增加和删除功能,包括错误行为、故障模式、故障模式影响指标和故障注入方案参数等数据的查询、修改、增加和删除。
进一步地,寿命试验任务管理模块对不同的寿命试验进行管理,保证各个寿命试验任务的独立性和可维护性,可以实现新建任务、查看任务、删除任务、生成失效数据集和应力水平配置等功能。其中,新建任务可以根据输入的寿命试验任务信息在系统中创建一个新的寿命试验试验任务;查看任务能够查看历史任务,查看的内容可以包括但不限于任务的名称、描述、失效数据集,以及应力水平数据;删除任务可以删除一个历史任务;生成失效数据集可以根据当前试验任务的结果对失效数据集进行处理,生成正常的失效数据;应力水平配置可以针对不同试验定制不同的应力水平。
对应于上文实施例所述的基于故障注入的寿命试验方法,图6示出了本发明实施例提供的基于故障注入的寿命试验装置的示意图,为了便于说明,仅示出了与本发明实施例相关的部分。
请参阅图6,该基于故障注入的寿命试验装置包括试验平台,所述试验平台包括:
指令接收模块61,用于接收用户的试验指令;
命令生成模块62,用于根据所述试验指令,生成嵌入式计算平台能够识别的失效模拟命令;
命令发送模块63,用于将所述失效模拟命令发送到所述嵌入式计算平台;
结果记录模块64,用于接收所述嵌入式计算平台返回的对所述失效模拟命令的执行结果,根据所述执行结果执行相应的操作,并将所述执行结果记录在日志中。
进一步地,命令生成模块62包括:
类型获取子模块621,用于获取所述试验指令的指令类型;
序列生成子模块622,用于若所述指令类型为故障注入命令,则按照预设的生成方式生成待注入的故障模式序列;
封装子模块623,用于按照预设的命令格式,将所述待注入的故障模式序列封装成所述失效模拟命令。
进一步地,所述试验平台还包括:
数据读取模块65,用于读取当前的应力水平和预设的试验次数阈值;
提醒模块66,用于若所述当前的应力水平未达到所述试验次数阈值对应的应力水平,则提示所述用户继续进行试验。
本发明实施例提供的一种基于故障注入的寿命试验装置中各模块实现各自功能的过程,具体可参考前述方法实施例的描述,此处不再赘述。
对应于上文实施例所述的基于故障注入的寿命试验方法,图7示出了本发明另一实施例提供的基于故障注入的寿命试验装置的示意图,为了便于说明,仅示出了与本发明实施例相关的部分。
请参阅图7,该基于故障注入的寿命试验装置包括包括嵌入式计算平台,所述嵌入式计算平台包括:
命令接收模块71,用于接收试验平台发送的失效模拟命令;
命令执行模块72,用于采用在被测软件中预先注册的Kprobes接口,执行所述失效模拟命令,并将所述被测软件的输出保存到预设的输出文件中;
结果发送模块73,用于根据所述输出文件判断所述失效模拟命令的执行结果,并将所述执行结果发送给试验平台。
进一步地,结果发送模块73包括:
文件读取子模块731,用于在预设的时间读取所述输出文件;
校验失败子模块732,用于若所述输出文件中记录的输出与预设的期望输出不一致,则确认发生失效,并将失效数据和失效时间作为所述执行结果发送给所述试验平台;
校验成功子模块733,用于若所述输出文件中记录的输出与预设的期望输出一致,则向所述试验平台发送试验成功的执行结果。
本发明实施例提供的一种基于故障注入的寿命试验装置中各模块实现各自功能的过程,具体可参考前述方法实施例的描述,此处不再赘述。
本发明实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现前述方法实施例中的基于故障注入的寿命试验方法,或者,该计算机程序被处理器执行时前述装置实施例中基于故障注入的寿命试验装置中各模块/单元的功能,为避免重复,这里不再赘述。
可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号和电信信号等。
请参阅图8,图8是本发明一实施例提供的计算机设备的示意图。如图8所示,该实施例的计算机设备8包括:处理器80、存储器81以及存储在存储器81中并可在处理器80上运行的计算机程序82,例如基于故障注入的寿命试验程序。处理器80执行计算机程序82时实现上述各个方法实施例中的步骤,例如图1所示的步骤S1至步骤S7。或者,处理器80执行计算机程序82时实现上述各装置实施例中各模块的功能,例如图6所示模块61至模块64的功能,或者图7所示模块71至模块73的功能。
示例性的,计算机程序82可以被分割成一个或多个单元,一个或者多个单元被存储在存储器81中,并由处理器80执行,以完成本发明。一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序82在所述计算机设备8中的执行过程。
例如,计算机程序82可以被分割成指令接收模块、命令生成模块、命令发送模块和结果记录模块,各模块具体功能如下:
指令接收模块,用于接收用户的试验指令;
命令生成模块,用于根据所述试验指令,生成嵌入式计算平台能够识别的失效模拟命令;
命令发送模块,用于将所述失效模拟命令发送到所述嵌入式计算平台;
结果记录模块,用于接收所述嵌入式计算平台返回的对所述失效模拟命令的执行结果,根据所述执行结果执行相应的操作,并将所述执行结果记录在日志中。
进一步地,命令生成模块包括:
类型获取子模块,用于获取所述试验指令的指令类型;
序列生成子模块,用于若所述指令类型为故障注入命令,则按照预设的生成方式生成待注入的故障模式序列;
封装子模块,用于按照预设的命令格式,将所述待注入的故障模式序列封装成所述失效模拟命令。
进一步地,计算机程序82还可以被分割成:
数据读取模块,用于读取当前的应力水平和预设的试验次数阈值;
提醒模块,用于若所述当前的应力水平未达到所述试验次数阈值对应的应力水平,则提示所述用户继续进行试验。
又例如,计算机程序82可以被分割成命令接收模块、命令执行模块和结果发送模块,各模块具体功能如下:
命令接收模块,用于接收试验平台发送的失效模拟命令;
命令执行模块,用于采用在被测软件中预先注册的Kprobes接口,执行所述失效模拟命令,并将所述被测软件的输出保存到预设的输出文件中;
结果发送模块,用于根据所述输出文件判断所述失效模拟命令的执行结果,并将所述执行结果发送给试验平台。
进一步地,结果发送模块包括:
文件读取子模块,用于在预设的时间读取所述输出文件;
校验失败子模块,用于若所述输出文件中记录的输出与预设的期望输出不一致,则确认发生失效,并将失效数据和失效时间作为所述执行结果发送给所述试验平台;
校验成功子模块,用于若所述输出文件中记录的输出与预设的期望输出一致,则向所述试验平台发送试验成功的执行结果。
计算机设备8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等终端设备。计算机设备8包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是计算机设备8的示例,并不构成对计算机设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备8还可以包括输入输出设备、网络接入设备、总线等。
处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器81可以是计算机设备8的内部存储单元,例如计算机设备8的硬盘或内存。存储器81也可以是计算机设备8的外部存储设备,例如计算机设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器81还可以既包括计算机设备8的内部存储单元也包括外部存储设备。存储器81用于存储所述计算机程序以及计算机设备8所需的其他程序和数据。存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于故障注入的寿命试验方法,其特征在于,所述寿命试验方法包括试验平台执行的如下步骤:
接收用户的试验指令;
根据所述试验指令,生成嵌入式计算平台能够识别的失效模拟命令;
将所述失效模拟命令发送到所述嵌入式计算平台;
接收所述嵌入式计算平台返回的对所述失效模拟命令的执行结果,根据所述执行结果执行相应的操作,并将所述执行结果记录在日志中。
2.根据权利要求1所述的寿命试验方法,其特征在于,所述根据所述试验指令,生成嵌入式计算平台能够识别的失效模拟命令包括:
获取所述试验指令的指令类型;
若所述指令类型为故障注入命令,则按照预设的生成方式生成待注入的故障模式序列;
按照预设的命令格式,将所述待注入的故障模式序列封装成所述失效模拟命令。
3.根据权利要求1所述的寿命试验方法,其特征在于,所述接收所述嵌入式计算平台返回的对所述失效模拟命令的执行结果,并将所述执行结果记录在日志中之后,所述寿命试验方法还包括:
读取当前的应力水平和预设的试验次数阈值;
若所述当前的应力水平未达到所述试验次数阈值对应的应力水平,则提示所述用户继续进行试验。
4.一种基于故障注入的寿命试验方法,其特征在于,所述寿命试验方法包括嵌入式计算平台执行的如下步骤:
接收试验平台发送的失效模拟命令;
采用在被测软件中预先注册的Kprobes接口,执行所述失效模拟命令,并将所述被测软件的输出保存到预设的输出文件中;
根据所述输出文件判断所述失效模拟命令的执行结果,并将所述执行结果发送给试验平台。
5.根据权利要求4所述的寿命试验方法,其特征在于,所述根据所述输出文件判断所述失效模拟命令的执行结果,并将所述执行结果发送给试验平台包括:
在预设的时间读取所述输出文件;
若所述输出文件中记录的输出与预设的期望输出不一致,则确认发生失效,并将失效数据和失效时间作为所述执行结果发送给所述试验平台;
若所述输出文件中记录的输出与预设的期望输出一致,则向所述试验平台发送试验成功的执行结果。
6.一种基于故障注入的寿命试验装置,其特征在于,所述寿命试验装置包括试验平台,所述试验平台包括:
指令接收模块,用于接收用户的试验指令;
命令生成模块,用于根据所述试验指令,生成嵌入式计算平台能够识别的失效模拟命令;
命令发送模块,用于将所述失效模拟命令发送到所述嵌入式计算平台;
结果记录模块,用于接收所述嵌入式计算平台返回的对所述失效模拟命令的执行结果,根据所述执行结果执行相应的操作,并将所述执行结果记录在日志中。
7.根据权利要求6所述的寿命试验装置,其特征在于,所述命令生成模块包括:
类型获取子模块,用于获取所述试验指令的指令类型;
序列生成子模块,用于若所述指令类型为故障注入命令,则按照预设的生成方式生成待注入的故障模式序列;
封装子模块,用于按照预设的命令格式,将所述待注入的故障模式序列封装成所述失效模拟命令。
8.一种基于故障注入的寿命试验装置,其特征在于,所述寿命试验装置包括嵌入式计算平台,所述嵌入式计算平台包括:
命令接收模块,用于接收试验平台发送的失效模拟命令;
命令执行模块,用于采用在被测软件中预先注册的Kprobes接口,执行所述失效模拟命令,并将所述被测软件的输出保存到预设的输出文件中;
结果发送模块,用于根据所述输出文件判断所述失效模拟命令的执行结果,并将所述执行结果发送给试验平台。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述的基于故障注入的寿命试验方法的步骤,或者,所述处理器执行所述计算机程序时实现如权利要求4或5所述的基于故障注入的寿命试验方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的基于故障注入的寿命试验方法的步骤,或者,所述计算机程序被处理器执行时实现如权利要求4或5所述的基于故障注入的寿命试验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811154960.8A CN109271306A (zh) | 2018-09-30 | 2018-09-30 | 基于故障注入的寿命试验方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811154960.8A CN109271306A (zh) | 2018-09-30 | 2018-09-30 | 基于故障注入的寿命试验方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109271306A true CN109271306A (zh) | 2019-01-25 |
Family
ID=65195425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811154960.8A Pending CN109271306A (zh) | 2018-09-30 | 2018-09-30 | 基于故障注入的寿命试验方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109271306A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150179A (zh) * | 2022-04-25 | 2022-10-04 | 深圳星云智联科技有限公司 | 软硬生命老化控制方法和相关装置、芯片、介质和程序 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101334754A (zh) * | 2008-08-05 | 2008-12-31 | 浙江大学 | 基于故障注入的嵌入式系统测评方法 |
CN102270173A (zh) * | 2011-07-21 | 2011-12-07 | 哈尔滨工业大学 | 基于scsi驱动层的故障注入工具 |
CN102402484A (zh) * | 2011-11-30 | 2012-04-04 | 北京航空航天大学 | 一种嵌入式软件的可靠性增长测试自动试验装置及其方法 |
CN102571498A (zh) * | 2012-02-09 | 2012-07-11 | 华为技术有限公司 | 故障注入控制方法和装置 |
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
CN104461865A (zh) * | 2014-11-04 | 2015-03-25 | 哈尔滨工业大学 | 云环境下分布式文件系统可靠性测试套件 |
CN105528284A (zh) * | 2014-09-28 | 2016-04-27 | 华为技术有限公司 | 一种内核故障注入方法及电子设备 |
US20170024299A1 (en) * | 2015-07-21 | 2017-01-26 | International Business Machines Corporation | Providing Fault Injection to Cloud-Provisioned Machines |
CN107025171A (zh) * | 2017-03-10 | 2017-08-08 | 深圳航天科技创新研究院 | 一种实现虚拟验证系统故障注入的方法 |
-
2018
- 2018-09-30 CN CN201811154960.8A patent/CN109271306A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101334754A (zh) * | 2008-08-05 | 2008-12-31 | 浙江大学 | 基于故障注入的嵌入式系统测评方法 |
CN102270173A (zh) * | 2011-07-21 | 2011-12-07 | 哈尔滨工业大学 | 基于scsi驱动层的故障注入工具 |
CN102402484A (zh) * | 2011-11-30 | 2012-04-04 | 北京航空航天大学 | 一种嵌入式软件的可靠性增长测试自动试验装置及其方法 |
CN102571498A (zh) * | 2012-02-09 | 2012-07-11 | 华为技术有限公司 | 故障注入控制方法和装置 |
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
CN105528284A (zh) * | 2014-09-28 | 2016-04-27 | 华为技术有限公司 | 一种内核故障注入方法及电子设备 |
CN104461865A (zh) * | 2014-11-04 | 2015-03-25 | 哈尔滨工业大学 | 云环境下分布式文件系统可靠性测试套件 |
US20170024299A1 (en) * | 2015-07-21 | 2017-01-26 | International Business Machines Corporation | Providing Fault Injection to Cloud-Provisioned Machines |
CN107025171A (zh) * | 2017-03-10 | 2017-08-08 | 深圳航天科技创新研究院 | 一种实现虚拟验证系统故障注入的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150179A (zh) * | 2022-04-25 | 2022-10-04 | 深圳星云智联科技有限公司 | 软硬生命老化控制方法和相关装置、芯片、介质和程序 |
CN115150179B (zh) * | 2022-04-25 | 2024-01-02 | 深圳星云智联科技有限公司 | 软硬生命老化控制方法和相关装置、芯片、介质和程序 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090271351A1 (en) | Rules engine test harness | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN108134708B (zh) | 监控第三方接口的方法和装置 | |
CN109165170B (zh) | 一种自动化请求测试的方法及系统 | |
CN101013968A (zh) | 自动接口测试框架 | |
US20130091486A1 (en) | Generating a compliance data model for it control | |
CN109460223A (zh) | 一种api网关管理系统及其方法 | |
CN112905437B (zh) | 一种测试用例的方法、装置及存储介质 | |
CN107819611B (zh) | 基于iec61850多服务端仿真的客户端测试方法 | |
CN109726830A (zh) | 设备巡检方法、装置、电子设备及存储介质 | |
CN104731566A (zh) | 集成开发环境测试装置、方法及系统 | |
CN109885474A (zh) | 测试用例编辑方法及装置、终端和计算机可读存储介质 | |
CN107147711A (zh) | 应用服务更新方法及装置 | |
CN108449313A (zh) | 电子装置、互联网服务系统风险预警方法及存储介质 | |
CN109447384A (zh) | 风控系统的验证方法、装置、设备及存储介质 | |
CN109739704A (zh) | 一种接口测试方法、服务端及计算机可读存储介质 | |
CN107679423A (zh) | 分区完整性检查方法及装置 | |
CN105550103B (zh) | 一种基于自定义测试脚本的自动化测试方法 | |
CN107122307B (zh) | 一种物联网执行系统 | |
CN109271306A (zh) | 基于故障注入的寿命试验方法、装置、设备及介质 | |
CN116599881A (zh) | 云平台租户建模测试的方法、装置、设备及存储介质 | |
CN111694752B (zh) | 应用测试方法、电子设备及存储介质 | |
CN112433946A (zh) | 接口测试管理方法、装置、设备及存储介质 | |
CN115437903A (zh) | 接口测试方法、装置、设备、存储介质及程序 | |
CN112579455B (zh) | 一种接口自动化测试方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190125 |
|
RJ01 | Rejection of invention patent application after publication |