CN102354298A - 基于staf的高端容错机故障注入自动化测试平台及方法 - Google Patents
基于staf的高端容错机故障注入自动化测试平台及方法 Download PDFInfo
- Publication number
- CN102354298A CN102354298A CN2011102124908A CN201110212490A CN102354298A CN 102354298 A CN102354298 A CN 102354298A CN 2011102124908 A CN2011102124908 A CN 2011102124908A CN 201110212490 A CN201110212490 A CN 201110212490A CN 102354298 A CN102354298 A CN 102354298A
- Authority
- CN
- China
- Prior art keywords
- fault
- test
- task
- staf
- server
- 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
Images
Abstract
基于STAF的高端容错机故障注入自动化测试平台及方法,涉及故障注入技术。本发明提供了一种适用于高端容错计算机故障注入测试的自动化测试平台及方法。本发明采用软件嵌入分布式测试环境实现,所述软件中的应用层为运行在总控端服务中的应用程序,利用关系型数据库和文件系统来管理自动化测试过程中的数据和信息,并提供友好的图形界面;代理层运行在应用层和实现层中间实现任务代理,负责执行用户从界面中提交的自动化测试任务;实现层封装了自动化测试控制服务器与各种平台的测试代理间通信、执行各种自动化测试具体操作。本发明是基于开源的自动化测试工具STAF构建的、分布式的、自动化的、可集成多种软件故障注入工具的故障注入平台。
Description
技术领域
本发明涉及故障注入技术。
背景技术
航天、金融、邮电等领域中应用的计算机系统在运行过程中不可避免会受到各种环境的干扰。如果系统发生故障,会造成严重的后果和重大损失。为了提高计算机系统的可靠性,满足长运行时间的要求,通常需要包含容错功能,这对容错系统本身的可靠性又提出了较高要求,使系统在发生故障时,仍然能可靠的运行,容忍故障的发生。
由此可见,系统中所采用的容错技术必须进行测试和分析,从而保证所设计的容错系统真正实现能够对预定故障正确处理的目标,然而在实验中开发的容错计算机系统面临着如何在使用前进行测试的问题,如果在系统出现问题时再对其进行测试和分析,就会造成重大损失,因此必须系统投入使用之前,进行故障模拟和故障分析,进而评价系统容错能力。
故障注入技术是用于验证容错系统设计正确性和评价容错性能的重要方法。现有的故障注入技术大部分采用故障注入工具实现,但是,注入的故障种类比较单一,并且同时只能够向一台目标服务器进行故障注入,不适用于对高端容错计算机的故障注入测试需求。
发明内容
鉴于高端容错计算机故障注入测试的实际需求,本发明设计了一种基于STAF的高端容错机故障注入自动化测试平台及方法。
本发明所述的基于STAF的高端容错机故障注入自动化测试平台是基于下述分布式测试环境建立的,所述分布式测试环境是基于STAF搭建的自动化、分布式测试环境,该环境包括控制机、测试代理服务器组、FTP服务器、监视器、目标服务器和数据服务器,
其中,控制机,是整个测试环境中的控制端,用于管理、控制整个自动化测试流程;它通过底层的STAF服务,向测试环境中的各个测试结点提交自动化测试任务,同时监视测试结点的任务执行情况,并将任务执行进展相关数据发送给监视器;
监测器,用于将控制机发送的任务执行进展相关数据显示输出,还用于实时显示目标服务器的系统关键性能信息,所述系统关键性能信息包括目标服务器的CPU性能参数、内存使用率、磁盘IO速率、网络速率等,还用于在监控结束后导出监控日志和日志分析文件;
FTP服务器,保存与故障注入自动化测试相关的所有文件和脚本,通过文件系统服务下载到指定的计算机,所述指定的计算机包括目标服务器,测试代理服务器;
数据服务器,用于收集和存储故障注入实验生成的所有结果;
目标服务器,是待测高端容错计算机,是基于故障注入方法进行可用性评测的目标对象;
测试代理服务器组,用于监听并接收控制机发送来的测试任务信息,并执行相应的测试操作,同时反馈测试过程和结果给控制器;该测试代理服务器组由两台测试代理服务器组成,其中,一台测试代理服务器用于运行负载发生器,实现根据控制机的命令产生负载信息给目标服务器;另一台测试代理服务器用于执行向目标服务器注入故障,观察系统对故障的反应,结合负载变化,分析系统相关性能,实现向目标服务器模拟注入故障,评测相关性能的任务;
基于上述分布式测试环境的故障注入自动化测试平台由软件实现,它包括应用层、代理层和实现层,其中,
应用层为运行在总控端服务中的应用程序,该应用程序利用关系型数据库和文件系统来管理自动化测试过程中的数据和信息,并提供友好的图形界面与用户交互;
代理层,运行在应用层和实现层中间,实现任务代理,在后台运行,负责执行用户从界面中提交的自动化测试任务;所述任务代理由任务控制代理背景程序组成,
实现层,指运行在自动化测试控制服务器最底层的STAF进程及其提供的包括STAX在内的各种服务,在该层,封装了自动化测试控制服务器与各种平台的测试代理间通信、执行各种自动化测试具体操作。
本发明所述测试相关的文件和脚本包括:负载发生器安装程序及工作脚本、故障注入服务安装程序及工作脚本、测试监控服务安装程序及工作脚本。
本发明所述的应用层能够把展现和逻辑完全分离开来,增强了系统的可拓展性和可维护性。
本发明所述的应用层是按照MVC应用模型的设计思想设计的,该应用层中的总控端服务由视图层、控制器和模型三个部分组成,其中:
视图层View,用于根据控制器发送的数据提供人机交互界面,实现与评测人员的信息交互,例如:可以选择现场制定测试参数,或选择直接从监测机上的SQL数据库中读取测试参数文件;
所述视图层的代码全部是软件界面的布局,不包含业务逻辑;
控制器Controller,负责分析用户请求并调用合适的模型来处理,还用于实现模型与视图层之间的数据交互;还用于提供人机交互界面需要显示的事件及响应给视图层,还负责数据的组织,然后交由Model中的STAF传输或者交由DB存储,
本发明所述的模型,封装了各种业务逻辑,用于在控制器的调用下实现相应的逻辑动作。
所述模型包括测试策略生成管理模块、用户管理模块、测试代理资源管理模块、动态部署模块、自动化测试任务管理模块、测试日志管理模块、结果回收模块、结果分析模块和结果显示模块,其中:
测试策略生成管理模块:用于接收测试参数或测试参数文件,并根据所述测试参数或测试参数文件生成命令控制字;
用户管理模块:用于管理系统用户信息,并控制系统访问权限;
测试代理资源管理模块:用于管理整个测试系统中的测试机资源,对这些资源进行合理分配利用;
动态部署模块:根据人工测试流程采用消息触动机制,应用文件系统服务将FTP服务器上保存的相应程序及脚本分发到分布式测试环境中;
自动化测试任务管理模块:用于负责自动化测试任务的上传、分类、查询、提交、中断等测试流程中的相关操作;
测试日志管理模块:用于管理包括自动化测试任务的实时运行日志、测试报告、历史记录等信息;
结果回收模块:用于实时收集目标系统面对故障的不同反应,并根据所述反映生成故障注入结果;
结果分析模块:运行于监测机内,用于分析从目标机传来的故障注入结果,并计算相关指标,生成结果报表;
结果显示模块:用于将结果分析模块发送的结果报表显示在用户界面上,同时保存于监测机的数据库中。
基于上述故障注入自动化测试平台的自动化测试方法为:
1)准备工作,在待测目标机上安装负载模拟子系统;
2)控制机从FTP服务器上下载最新的负载发生器和故障注入的安装代码及配套的安装、执行脚本;
3)根据配置文件,控制机利用STAF的FS服务将上述安装代码及配套的安装、执行脚本分发、部署到相应的测试代理、服务器上,运行安装脚本,安装相关程序;
4)受限于可用性测试套件运行流程,控制机检查目标服务器的运行状况;
5)控制机在加载负载发生器的测试代理上运行执行脚本,向对应的目标服务器上施加负载;
6)控制机在加载故障注入的测试代理上运行执行脚本,开始对目标服务器进行故障注入;
故障注入完毕后,加载故障注入的测试代理将测试结果送回控制机。
本发明是基于开源的自动化测试工具STAF(Software Testing AutomationFramework)构建的、分布式的、自动化的、可集成多种软件故障注入工具的故障注入平台。
附图说明
图1是本发明所述的故障注入自动化测试系统的分布式测试环境的结构示意图。图2具体实施方式五中所述的故障注入自动化测试原理示意图。图3是本发明所述的自动化测试平台软件架构示意图。
具体实施方式
具体实施方式一:本实施方式所述的基于STAF的高端容错机故障注入自动化测试平台,是基于下述分布式测试环境建立的,所述分布式测试环境是基于STAF搭建的自动化、分布式测试环境,该环境包括控制机4、测试代理服务器组、FTP服务器5、监视器3、目标服务器7(待测高端容错计算机)和数据服务器6,
其中,控制机4,是整个测试环境中的控制端,用于管理、控制整个自动化测试流程;它通过底层的STAF服务,向测试环境中的各个测试结点提交自动化测试任务,同时监视测试结点的任务执行情况,并将任务执行进展相关数据发送给监视器3;
监测器,用于将控制机4发送的任务执行进展相关数据显示输出,还用于实时显示目标服务器7的系统关键性能信息,所述系统关键性能信息包括目标服务器7的CPU性能参数、内存使用率、磁盘IO速率、网络速率等,还用于在监控结束后导出监控日志和日志分析文件;
FTP服务器5,保存与故障注入自动化测试相关的所有文件和脚本,通过文件系统服务下载到指定的计算机,所述指定的计算机包括目标服务器7,测试代理服务器;
数据服务器6,用于收集和存储故障注入实验生成的所有结果;
本实施方式中,采用SQL数据库文件作为存储数据的形式,此处统一收集各个被测高端容错机的测试实验结果,方便评测人员管理、分析。
目标服务器7,也是待测高端容错计算机,是基于故障注入方法进行可用性评测的目标对象;等同于前文介绍的故障注入平台中的目标机,根据故障注入平台的工作原理,目标机需要下载安装故障注入服务程序;
测试代理服务器组,用于监听并接收控制机4发送来的测试任务信息,并执行相应的测试操作,同时反馈测试过程和结果给控制器;为了模拟真实环境下的目标系统,该测试平台在运行负载的条件下进行故障注入,因此该测试代理服务器组由两台测试代理服务器组成,其中,一台测试代理服务器2用于运行负载发生器,实现根据控制机4的命令产生负载信息;另一台测试代理服务器1用于执行向对应的目标服务器7注入故障,观察系统对故障的反应,结合负载变化,分析系统相关性能。实现向特定服务器模拟注入故障,评测相关性能的任务;
基于上述分布式测试环境的故障注入自动化测试平台有软件实现,它包括应用层、代理层和实现层,其中,
应用层为运行在总控端服务中的应用程序,该应用程序利用关系型数据库和文件系统来管理自动化测试过程中的数据和信息,并提供友好的图形界面与用户交互;
代理层,运行在应用层和实现层中间,实现任务代理,在后台运行,负责执行用户从界面中提交的自动化测试任务;所述任务代理由任务控制代理背景程序组成,
实现层,指运行在自动化测试控制服务器最底层的STAF进程及其提供的包括STAX在内的各种服务,在该层,封装了自动化测试控制服务器与各种平台的测试代理间通信、执行各种自动化测试具体操作。
对于高层来说,实现层可以当作是透明的。
本实施方式中所述测试相关的文件和脚本包括:负载发生器安装程序及工作脚本、故障注入服务安装程序及工作脚本、测试监控服务安装程序及工作脚本。
本实施方式中的基于STAF的高端容错机故障注入自动化测试平台可以实现对多个故障注入目标的多种故障注入,当需要对多个故障注入目标进行故障注入时,所述分布式测试环境中包括多个目标服务器7,每个目标服务器7的对应配有一个测试代理服务器组,参见图1中虚框内部所示。
具体实施方式二,本实施方式是对具体实施方式一所述的基于STAF的高端容错机故障注入自动化测试平台中的应用层做进一步说明,本实施方式中,应用层是按照MVC应用模型的设计思想设计的,该应用层中的总控端服务由视图层、控制器和模型三个部分组成,其中:
视图层View,用于根据控制器发送的数据提供人机交互界面,实现与评测人员的信息交互,例如:可以选择现场制定测试参数,或选择直接从监测机上的MySQL数据库中读取测试参数文件。
所述视图层的代码全部是软件界面的布局,不包含业务逻辑;
控制器Controller,负责分析用户请求并调用合适的模型来处理,还用于实现模型与视图层之间的数据交互,例如将模型处理结果数据进行组织并发送给视图层实现显示,将视图层输入的数据进行组织之后发明模型;还用于提供人机交互界面需要显示的事件及响应给视图层,在这一部分中,还会负责数据的组织,然后交由Model中的STAF传输或者交由DB存储,
所述控制器实现的是业务逻辑部分。
本发明所述的应用层能够把展现和逻辑完全分离开来,增强了系统的可拓展性和可维护性。
本发明所述的应用层是按照MVC应用模型的设计思想设计的,该应用层中的总控端服务由视图层、控制器和模型三个部分组成,其中:
视图层View,用于根据控制器发送的数据提供人机交互界面,实现与评测人员的信息交互,例如:可以选择现场制定测试参数,或选择直接从监测机上的SQL数据库中读取测试参数文件;
所述视图层的代码全部是软件界面的布局,不包含业务逻辑;
控制器Controller,负责分析用户请求并调用合适的模型来处理,还用于实现模型与视图层之间的数据交互;还用于提供人机交互界面需要显示的事件及响应给视图层,还负责数据的组织,然后交由Model中的STAF传输或者交由DB存储,
模型,封装了各种业务逻辑,用于在控制器的调用下实现相应的逻辑动作。
具体实施方式三,本实施方式是对具体实施方式二所述的基于STAF的高端容错机故障注入自动化测试平台中的模型做进一步说明,所述模型包括测试策略生成管理模块、用户管理模块、测试代理资源管理模块、动态部署模块、自动化测试任务管理模块、测试日志管理模块、结果回收模块、结果分析模块和结果显示模块,其中:
测试策略生成管理模块:用于接收测试参数或测试参数文件,并根据所述测试参数或测试参数文件生成命令控制字;
用户管理模块:用于管理系统用户信息,并控制系统访问权限;
测试代理资源管理模块:用于管理整个测试系统中的测试机资源,对这些资源进行合理分配利用;
动态部署模块:根据人工测试流程采用消息触动机制,应用文件系统服务将FTP服务器5上保存的相应程序及脚本分发到分布式测试环境中;需要指出的是,此处的任务调度支持多台待测高端容错计算机故障注入任务的并行执行;
自动化测试任务管理模块:用于负责自动化测试任务的上传、分类、查询、提交、中断等测试流程中的相关操作;
测试日志管理模块:用于管理包括自动化测试任务的实时运行日志、测试报告、历史记录等信息;
结果回收模块:用于实时收集目标系统面对故障的不同反应,并根据所述反映生成故障注入结果;
结果分析模块:运行于监测机内,用于分析从目标机传来的故障注入结果,并计算相关指标,生成结果报表;
结果显示模块:用于将结果分析模块发送的结果报表显示在用户界面上,同时保存于监测机的数据库中。方便评测人员查询。
具体实施方式四,本实施方式是对具体实施方式二所述的基于STAF的高端容错机故障注入自动化测试平台中的应用层实现任务代理过程的进一步说明,本实施方式中,所述应用层实现任务代理的流程为:首先向底层的STAF注册一个标志此代理(Agent)进程唯一身份的句柄,记为STAFHandle;接着以一定的时间间隔不断地监测数据库中的数据变化,获取所有处于“等待执行”状态的任务列表,然后调用类AutoTestJobExecutor来逐个执行这些任务;在任务控制代理的过程中,监听STAF消息队列,一旦接收到用户发送的停止消息(MSG_STOP),任务控制代理在退出自身进程前,并通知底层STAF停止正在运行的所有任务,并更新这些任务在数据库中的状态为“已中止”。该种方法相比于直接终止任务控制代理进程的方式更为安全,确保了数据的完整性。
本实施方式中所述的任务控制代理使用多线程的方法来支持多任务并发执行,每一个线程都独立处理一个自动化测试任务的执行过程。为了防止并发的多个任务使用同一台测试代理,在执行任务之前,利用STAF的信号量服务来申请对目标机器的使用权限,在任务结束时再释放该资源,从而确保在执行任务的过程中,目标测试代理不会被其他的任务使用,进而保证一台测试代理在任意时刻最多只为一个自动化测试任务所占用。
具体实施方式五,本实施方式是对具体实施方式四所述的基于STAF的高端容错机故障注入自动化测试平台中的类AutoTestJobExecutor执行某一任务的过程的进一步说明,本实施方式中,所述类AutoTestJobExecutor封装了执行某个自动化测试任务的所有细节,执行自动化测试任务的具体过程为:
1)根据测试任务编号(job Id)从数据库读取任务信息,所述任务信息包括目标机器、任务XML文件、入口函数、所有参数值,所述参数值是指测试数据;
2)注册一个STAF句柄,若失败,则执行步骤12);
3)申请对目标机器的MUTEX访问资源,若失败,则执行步骤11);
4)记录任务开始时刻为t1。
5)向底层STAF的STAX Service提交任务,若提交失败,则更改数据库中该任务状态为“执行失败”,然后执行步骤10);
6)更新数据库,更改该任务状态为“正在执行”;
7)向STAF提出等待,直到STAX返回任务结果RC或超过最长等待时间tmax,如果超时,则更新数据状态为“等待超时”,然后执行步骤10);
8)记当前时刻为t2,统计任务执行时间为t=t2-t1;
9)若RC为0,则更改该任务状态为“成功”,否则更改该任务状态为“失败”;
10)释放MUTEX资源;
11)注销STAF句柄。
具体实施方式五,本实施方式是对具体实施方式一所述的基于STAF的高端容错机故障注入自动化测试平台中的故障注入管理服务模块的进一步说明,本实施方式中,所述故障注入管理服务模块中包括多个故障注入工具和多个构件,每个构件在实现层发送的命令的控制下负责控制一个故障注入工具实现故障注入,每个故障注入工具在实现故障注入之后,将故障注入结果反馈给实现层。
本实施方式中,所述多个故障注入模块包括:Ptrace故障注入工具、基于内核模拟的寄存器故障注入工具、软件实现的内存故障注入工具、基于PAL实现的MCA错误故障注入工具、SCSI驱动层故障注入工具和文件系统故障注入工具。
故障注入模块是该测试平台的一个核心模块,在整个测试流程中发挥重要的作用,本文采用基于构件的方式开发该模块。如图3所示,故障注入模块由多个构件组成,其中每个构件对应一种故障注入方法,它们以并联的方式与故障注入管理服务连接。当需要增加或删除故障注入方法时,只需增删其中的构件即可。这种方式实现了故障注入平台的灵活组态,同时也减小了各故障注入工具间的耦合度。上述构件均由三部分组成,其开发遵循统一的标准。构件行为描述了构件所能实现的功能,即对应故障注入工具的功能。构件属性代表构件的状态,具体通过ID与描述信息唯一标识各故障注入工具。构件接口是供外部模块使用的方法,具体通过动态链接库的方式提供四个接口函数:初始化、获取工具信息、接收消息及退出运行。故障注入模块由多个构件组成,其中每个构件对应一种故障注入方法,它们以并联的方式与主控模块连接。当需要增加或删除故障注入方法时,只需增删其中的构件即可。这种方式实现了故障注入平台的灵活组态,同时也减小了各模块间的耦合度。
本实施方式中的Ptrace故障注入工具,用于通过访问和修改进程内存映像中的寄存器值,实现故障注入;是基于UNIX通用的Ptrace()系统调用开发而成的。
该故障注入工具运行在用户态,针对应用进程层注入寄存器故障。Ptrace提供了一种使父进程得以监视和控制子进程的方式,能够访问和修改子进程中的寄存器和内存映像,因而可以实现对进程的断点调试和跟踪等。
Ptrace故障注入工具能够注入寄存器故障和内存故障。故障类型包括位翻转,恒0,恒1,随机错等。触发方式包括单步调试触发和计时触发两种。Ptrace故障集如下表所示:
表1Ptrace故障注入工具故障集
寄存器故障注入工具,是基于内核模拟实现的,它利用kprobe调试接口,对内核时钟中断处理程序进行拦截,将故障注入代码插入到时钟中断处理程序中,访问和修改指定进程的内核堆栈中存储的寄存器值,从而实现寄存器故障的模拟;
该故障注入程序以内核模块的方式运行在内核中,针对所有进程注入寄存器故障。故障类型包括位翻转,恒0,恒1等,故障持续时间可以是瞬时、永久或者间隔的。
表2基于内核模拟的寄存器故障注入工具故障集
内存故障注入工具,它是基于软件实现的memFI故障注入工具,利用/dev/mem虚拟文件,修改物理内存地址内容,实现故障注入,对于用户态虚拟内存地址,可以通过查询页表,转换成物理内存地址,然后进行故障注入。
该故障注入工具以内核模块的方式运行在内核中,针对物理内存地址空间进行故障注入,可以更真实地模拟内存故障。memFI内存故障注入工具能够对物理地址空间和用户态虚拟地址空间进行内存故障注入,故障类型包括位翻转,恒0,恒1,随机错等。
表3软件实现的内存故障注入工具故障集
MCA错误故障注入工具,它是基于PAL固件提供的故障注入例程开发而成的,该过程提供了一种向指定处理器的Cache、TLB及寄存器堆注入硬件错误的方式,所注入的错误能够被机器检查架构检测到,并由硬件、固件和操作系统三者配合共同处理故障,对于Linux,目前可支持2.6.18及以上的主要内核版本。
MCA故障注入工具运行于内核模块中,调用固件层程序以模拟产生MCA错误。能够向CPU中的Cache,TLB和寄存器堆等部件分别注入三种不同等级的错误:可纠正,可恢复,致命。
表4基于PAL实现的MCA错误故障注入工具故障集
SCSI驱动层故障注入工具,是对存储器实现故障注入的工具。
目标系统的存储设备主要为本地磁盘和通过光纤连接的磁盘阵列。通过多路径聚合驱动的支持,对上述存储设备的访问,均是经由SCSI驱动层到块设备驱动层,然后到达实际的物理存储设备。在SCSI层可以拦截到所有对存储设备的访问。通过在SCSI驱动层拦截并修改SCSI命令,可以模拟存储设备发生故障。
SCSI驱动层故障注入工具运行于SCSI驱动层,可以注入扇区读写错误,设备掉线等故障。故障类型包括顺时故障和永久故障。
表5SCSI驱动层故障注入工具故障集
文件系统故障注入工具,用于模拟文件系统发生故障,导致文件和目录访问异常的情况。该工具主要通过拦截文件系统类系统调用,以模拟读写延迟,读写错误,打开关闭错误等故障,注入位置包括普通文件和目录文件。
表6文件系统故障注入工具故障集
本实施方式中,还包括集容错测试套件,所述集容错测试套件利用集成的多种故障注入工具获取相关信息来得到一定指标。其中:
本实施方式所述的测试平台主要用于评测高端容错计算机的可用性,而系统可用性评测问题可转换为关键子系统冗余单元可用性评测问题;冗余单元的划分和确定则是通过测量敏感性、相关度、MTTR等指标实现。因此,故障注入平台的主要目标就是集成多种故障注入工具,模拟注入目标系统不同层次上的故障,通过收集和分析系统面对故障的反应信息,获取系统的敏感性、相关度、MTTR等指标。
所述集容错测试套件包括:MTTR基准测试套件、系统健壮度基准测试套件、敏感度基准测试套件、容错机制有效性基准测试套件、相关性基准测试套件、系统可用性基准测试套件和系统性能相关的服务拒绝率基准测试套件,下面逐一对每个测试套件进行说明:
1)MTTR基准测试套件
应用于关键领域的高端容错计算机对系统可用性有着很高要求,而平均系统修复时间是系统可用性指标的重要影响因素。本套件通过对各种故障的维修时间进行测试,计算系统平均修复时间,指标反映了目标系统在故障下的修复能力。
平均修复时间用来描述系统从故障中恢复的平均时间。MTTR指标计算方法是各种引起系统失效的故障下系统修复时间的加权平均值,以秒为单位。MTTR越小,表明系统从故障中恢复的能力越强,容错机制越有效。
2)系统健壮度基准测试套件
高端容错计算机要求系统对于各类软硬件故障具有很强的容错能力。目标系统的健壮度测试通过对系统进行软硬件故障注入,考察故障对系统的影响。本测试套件的目的在于综合评价目标系统对潜在引起系统失效的故障的容忍能力和在故障下系统提供服务的能力。
各类软硬件故障对系统有不同级别影响,分为在线可恢复,在线不可恢复和对系统透明。由经典数据结合目标系统特征形成各级故障对系统影响的权值,并按照经验统计数据中故障分布形成大量测试用例。使用故障注入工具向待测目标系统注入故障,通过目标系统在故障注入后的表现获得在线可恢复故障率、在线不可恢复故障率、透明故障率,结合各级故障权值,计算得到系统的健壮度指标。
3)敏感度基准测试套件
高端容错计算机系统对关键模块都采取了冗余措施,以保障在单个模块失效时系统能够正常运行。在容错系统中,当待测可替换模块的失效数目到达特定阈值时,导致系统失效,这一阈值定义为系统对待测模块的敏感度。敏感度测试从系统对某一类冗余模块失效的容忍能力角度考察了系统健壮性。
使用故障注入工具向一定负载下的系统的待测可替换模块注入软硬件故障,使其失效,然后使其冗余模块逐个失效。当系统失效时,停止故障注入,此时失效的该类模块总数即为待测模块的Sw。
4)容错机制有效性基准测试套件
高端容错计算系统的高可用特性要求高端容错计算系统具有很强的检错能力和纠错能力。通过容错机制有效性基准测试,可以考察高端容错计算系统对于不同类型的故障的检测、诊断和恢复的能力,通过故障注入等手段加速故障产生以检测系统容错机制的有效性。
故障检测覆盖率在数值上等于系统检测出的故障数与实际发生的故障总数之比,系统故障恢复率在数值上等于系统恢复成功的故障数与实际发生的故障总数之比。
本套件采用故障注入技术来加速故障出现,向待测高端容错计算机系统施加一定强度负载的同时注入故障,在这种模拟环境下统计注入故障种类和数量、恢复故障种类和数量、检测故障的种类和数量,记录故障的检错时间和纠错时间,计算目标系统在该负载强度下的故障检测覆盖率和系统故障恢复率。
5)相关性基准测试套件
本套件的目的就是通过故障注入等手段加速故障发生,通过相关性基准测试,考察高端容错计算系统对于故障传播的隔离能力。
由于实际应用环境中与高端容错计算机类似的高端系统出现故障概率较低,因此本套件采用故障注入技术来加速故障出现。向待测高端容错计算机系统施加一定强度负载的同时,针对某个FRU多次注入故障,并密切监控系统内所有FRU的状态。记录该FRU发生故障后,其他FRU发生故障的事件,并进行统计,进而计算不同FRU之间的相关度。
6)系统可用性基准测试套件
一个重点同时也是难点的问题是如何评测平均可用度A,可用性描述了一个可维修系统在某时刻处于正常运行状态的能力。国内外目前还没有行业通用的可用性基准测试程序。本套件需要通过静态建模和动态测试相结合的方式开发可用性基准测试集。
通过失效率/修复率和故障分布的经验数据(现正在与CMU相关课题组联系,得到该课题组常年跟踪的多台高端计算机的失效数据,可以以此作为权威的失效分布经典数据),以及开发设计阶段的系统数据,构建系统可用性测试模型;同时,通过所开发的可用性测试工具,包括软硬件故障注入工具集、系统负载模拟、性能处理测试集等综合测试手段,通过对研究过程中所搭建的模拟仿真系统以及模拟目标系统的HP Superdome进行测试,研究系统部件级的相关度和敏感度问题,以及工作负载与可用性关系的分析,通过对可替换模块的测试,经过反复修正,最终对目标系统可用性进行测量与评估,得到目标系统的可用性指标是否达到设计需求。
7)系统性能相关的服务拒绝率基准测试套件
高端容错计算系统应用于事务连接处理频繁的关键领域如银行、电信等,能否及时处理事务连接直接关系到关键领域对外提供服务的质量。本套件通过系统性能相关的服务拒绝率测试,可以考察高端容错计算系统在特定负载下对外提供服务的质量。由系统性能相关的服务拒绝率的定义可以看出,其数值等于特定负载下,规定时间内待测系统不能完成处理的事务连接数与收到的处理事务连接总数之比。本套件的评测方法是,在待测高端容错系统上运行模拟负载子系统的服务器端,该服务器端模拟行业典型应用对于事务连接的处理,在另外一台计算机上运行模拟负载子系统的客户端,根据测试用户的要求生成事务连接,并记录没有在规定响应时间内完成处理的事务连接数。
采用本实施方式所述的测试平台完成自动化测试任务的过程的原理参见图2所示,故障注入自动化测试的过程是模拟手工故障注入流程而来,图左侧部分为故障注入实验手动业务流程,首先需要手动搭建测试环境:从统一存放故障注入程序及负载发生器程序的服务器上下载最新的安装文件;在测试机上安装运行负载发生器,向待测高端容错机施加一定压力的负载;根据故障注入平台的实现原理,分别在待测机及测试机上安装运行故障注入服务及测试监控服务。待环境搭建成功后,测试人员通过故障注入平台提供的配置接口,设置故障注入实验测试参数,生成测试用例。故障注入平台执行测试用例,进行故障注入实验。为了获取有意义的测试指标,实验需要重复进行多次。
为了实现故障注入自动化测试,我们对手动流程进行分析,提取出其中一致性的工作。例如,在某测试节点上安装测试程序,这个动作涉及两个变量,一个是文件路径及文件名,一个是测试节点的IP地址,但执行方式是相同的(项目开发中,所有程序默认生成可执行文件,通过安装脚本执行安装工作)。因此,我们可以统一使用程序调用服务,执行时传入不同的数据即可。在这种思想的指导下,我们将手动测试流程中的8个步骤划分为2个集合,应用相关服务,将2个集合对应生成自动化测试系统中的2个模块:动态部署、测试任务控制。此外,增加测试监控模块实时监视故障注入任务的执行情况。
根据上述分析,本实施方式所述的基于STAF的高端容错机故障注入自动化测试平台的自动化测试方法的过程为:
7)准备工作,在待测目标机上安装负载模拟子系统;
由于需要对目标系统进行负载压力测试,待测目标机上需预先安装负载模拟子系统。其安装过程比较复杂,且需要人工干预,所以此过程不纳入可用性自动化测试平台中。所述负载模拟子系统位于实现负载发生器的一台测试代理服务器中。
8)控制机4从FTP服务器5上下载最新的负载发生器和故障注入(包括服务器端和监测端)的安装代码及配套的安装、执行脚本;
9)根据配置文件,控制机4利用STAF的FS服务将上述安装代码及配套的安装、执行脚本分发、部署到相应的测试代理、服务器上,运行安装脚本,安装相关程序;
10)受限于可用性测试套件运行流程,控制机4检查目标服务器7的运行状况;
11)控制机4在加载负载发生器的测试代理上运行执行脚本,向对应的目标服务器7上施加负载;
12)控制机4在加载故障注入(监测端)的测试代理上运行执行脚本,开始对目标服务器7进行故障注入;
13)故障注入完毕后,加载故障注入(监测端)的测试代理将测试结果送回控制机4。
表7中列举3个故障注入模块的例子,每个模块对应一个构件,其构件的开发遵循统一的标准。具体如表7所示:
表7构件设计标准
构件间的通信或与主控模块的通信有两种方式:消息传递和回调函数。通过异步的消息机制进行构件间信息的流动时,所传播的消息遵循预先定义的统一格式:每条消息均由目的id、源id、模块id、消息长度、消息内容组成。本系统中主要支持两类消息:命令控制字和故障注入结果,所有待处理消息都被放到一个消息列表中。主控模块不断地从消息列表中提取消息,并向所有模块进行广播,故障注入模块的三种构件通过其接口函数接收到消息。通常,该消息为命令控制字,包含了故障注入的各种参数。故障注入结果通过回调函数的方式由故障注入模块中的构件交付给控制构件。该回调函数由控制构件预先定义,具体实现将消息发送至全局的消息列表中,而故障注入模块的三种构件都保存了上述回调函数接口指针。
Claims (10)
1.基于STAF的高端容错机故障注入自动化测试平台,其特征在于,所述测试平台是基于下述分布式测试环境建立的,所述分布式测试环境是基于STAF搭建的自动化、分布式测试环境,该环境包括控制机(4)、测试代理服务器组、FTP服务器(5)、监视器(3)、目标服务器(7)和数据服务器(6),
其中,控制机(4),是整个测试环境中的控制端,用于管理、控制整个自动化测试流程;它通过底层的STAF服务,向测试环境中的各个测试结点提交自动化测试任务,同时监视测试结点的任务执行情况,并将任务执行进展相关数据发送给监视器(3);
监测器,用于将控制机(4)发送的任务执行进展相关数据显示输出,还用于实时显示目标服务器(7)的系统关键性能信息,所述系统关键性能信息包括目标服务器(7)的CPU性能参数、内存使用率、磁盘IO速率、网络速率等,还用于在监控结束后导出监控日志和日志分析文件;
FTP服务器(5),保存与故障注入自动化测试相关的所有文件和脚本,通过文件系统服务下载到指定的计算机,所述指定的计算机包括目标服务器(7),测试代理服务器;
数据服务器(6),用于收集和存储故障注入实验生成的所有结果;
目标服务器(7),是待测高端容错计算机,是基于故障注入方法进行可用性评测的目标对象;
测试代理服务器组,用于监听并接收控制机(4)发送来的测试任务信息,并执行相应的测试操作,同时反馈测试过程和结果给控制器;该测试代理服务器组由两台测试代理服务器组成,其中,一台测试代理服务器(2)用于运行负载发生器,实现根据控制机(4)的命令产生负载信息给目标服务器(7);另一台测试代理服务(1)器用于执行向目标服务器(7)注入故障,观察系统对故障的反应,结合负载变化,分析系统相关性能,实现向目标服务器(7)模拟注入故障,评测相关性能的任务;
基于上述分布式测试环境的故障注入自动化测试平台由软件实现,它包括应用层、代理层和实现层,其中,
应用层为运行在总控端服务中的应用程序,该应用程序利用关系型数据库和文件系统来管理自动化测试过程中的数据和信息,并提供友好的图形界面与用户交互;
代理层,运行在应用层和实现层中间,实现任务代理,在后台运行,负责执行用户从界面中提交的自动化测试任务;所述任务代理由任务控制代理背景程序组成,
实现层,指运行在自动化测试控制服务器最底层的STAF进程及其提供的包括STAX在内的各种服务,在该层,封装了自动化测试控制服务器与各种平台的测试代理间通信、执行各种自动化测试具体操作。
2.根据权利要求1所述的基于STAF的高端容错机故障注入自动化测试平台,其特征在于,所述测试相关的文件和脚本包括:负载发生器安装程序及工作脚本、故障注入服务安装程序及工作脚本、测试监控服务安装程序及工作脚本。
3.根据权利要求1所述的基于STAF的高端容错机故障注入自动化测试平台,其特征在于,所述的应用层是按照MVC应用模型的设计思想设计的,该应用层中的总控端服务由视图层、控制器和模型三个部分组成,其中:
视图层View,用于根据控制器发送的数据提供人机交互界面,实现与评测人员的信息交互,例如:可以选择现场制定测试参数,或选择直接从监测机上的SQL数据库中读取测试参数文件;
所述视图层的代码全部是软件界面的布局,不包含业务逻辑;
控制器Controller,负责分析用户请求并调用合适的模型来处理,还用于实现模型与视图层之间的数据交互;还用于提供人机交互界面需要显示的事件及响应给视图层,还负责数据的组织,然后交由Model中的STAF传输或者交由DB存储,
模型,封装了各种业务逻辑,用于在控制器的调用下实现相应的逻辑动作。
4.根据权利要求3所述的基于STAF的高端容错机故障注入自动化测试平台,其特征在于,所述模型包括测试策略生成管理模块、用户管理模块、测试代理资源管理模块、动态部署模块、自动化测试任务管理模块、测试日志管理模块、结果回收模块、结果分析模块和结果显示模块,其中:
测试策略生成管理模块:用于接收测试参数或测试参数文件,并根据所述测试参数或测试参数文件生成命令控制字;
用户管理模块:用于管理系统用户信息,并控制系统访问权限;
测试代理资源管理模块:用于管理整个测试系统中的测试机资源,对这些资源进行合理分配利用;
动态部署模块:根据人工测试流程采用消息触动机制,应用文件系统服务将FTP服务器(5)上保存的相应程序及脚本分发到分布式测试环境中;
自动化测试任务管理模块:用于负责自动化测试任务的上传、分类、查询、提交、中断等测试流程中的相关操作;
测试日志管理模块:用于管理包括自动化测试任务的实时运行日志、测试报告、历史记录等信息;
结果回收模块:用于实时收集目标系统面对故障的不同反应,并根据所述反映生成故障注入结果;
结果分析模块:运行于监测机内,用于分析从目标机传来的故障注入结果,并计算相关指标,生成结果报表;
结果显示模块:用于将结果分析模块发送的结果报表显示在用户界面上,同时保存于监测机的数据库中。
5.根据权利要求1所述的基于STAF的高端容错机故障注入自动化测试平台,其特征在于,所述应用层实现任务代理的流程为:首先向底层的STAF注册一个标志此代理进程唯一身份的句柄,记为STAFHandle;接着以一定的时间间隔不断地监测数据库中的数据变化,获取所有处于“等待执行”状态的任务列表,然后调用类AutoTestJobExecutor来逐个执行这些任务;在任务控制代理的过程中,监听STAF消息队列,一旦接收到用户发送的停止消息MSG_STOP,任务控制代理在退出自身进程前,并通知底层STAF停止正在运行的所有任务,并更新这些任务在数据库中的状态为“已中止”。
6.根据权利要求5所述的基于STAF的高端容错机故障注入自动化测试平台,其特征在于,所述类AutoTestJobExecutor封装了执行某个自动化测试任务的所有细节,执行自动化测试任务的具体过程为:
1)根据测试任务编号job Id从数据库读取任务信息,所述任务信息包括目标机器、任务XML文件、入口函数、所有参数值,所述参数值是指测试数据;
2)注册一个STAF句柄,若失败,则执行步骤12);
3)申请对目标机器的MUTEX访问资源,若失败,则执行步骤11);
4)记录任务开始时刻为t1;
5)向底层STAF的STAX Service提交任务,若提交失败,则更改数据库中该任务状态为“执行失败”,然后执行步骤10);
6)更新数据库,更改该任务状态为“正在执行”;
7)向STAF提出等待,直到STAX返回任务结果RC或超过最长等待时间tmax,如果超时,则更新数据状态为“等待超时”,然后执行步骤10);
8)记当前时刻为t2,统计任务执行时间为t=t2-t1;
9)若RC为0,则更改该任务状态为“成功”,否则更改该任务状态为“失败”;
10)释放MUTEX资源;
11)注销STAF句柄。
7.根据权利要求1所述的基于STAF的高端容错机故障注入自动化测试平台,其特征在于,所述故障注入管理服务模块中包括多个故障注入工具和多个构件,每个构件在实现层发送的命令的控制下负责控制一个故障注入工具实现故障注入,每个故障注入工具在实现故障注入之后,将故障注入结果反馈给实现层。
8.根据权利要求7所述的基于STAF的高端容错机故障注入自动化测试平台,其特征在于,所述多个故障注入模块包括:Ptrace故障注入工具、基于内核模拟的寄存器故障注入工具、软件实现的内存故障注入工具、基于PAL实现的MCA错误故障注入工具、SCSI驱动层故障注入工具和文件系统故障注入工具。
9.根据权利要求8所述的基于STAF的高端容错机故障注入自动化测试平台,其特征在于,
Ptrace故障注入工具,用于通过访问和修改进程内存映像中的寄存器值,实现故障注入;寄存器故障注入工具,是基于内核模拟实现的,它利用kprobe调试接口,对内核时钟中断处理程序进行拦截,将故障注入代码插入到时钟中断处理程序中,访问和修改指定进程的内核堆栈中存储的寄存器值,从而实现寄存器故障的模拟;
内存故障注入工具,它是基于软件实现的memFI故障注入工具,利用/dev/mem虚拟文件,修改物理内存地址内容,实现故障注入,对于用户态虚拟内存地址,可以通过查询页表,转换成物理内存地址,然后进行故障注入;
MCA错误故障注入工具,它是基于PAL固件提供的故障注入例程开发而成的,该过程提供了一种向指定处理器的Cache、TLB及寄存器堆注入硬件错误的方式,所注入的错误能够被机器检查架构检测到,并由硬件、固件和操作系统三者配合共同处理故障,
SCSI驱动层故障注入工具,是对存储器实现故障注入的工具。
10.基于权利要求1所述的基于STAF的高端容错机故障注入自动化测试平台的自动化测试方法,其特征在于,所述自动化测试的过程为:
1)准备工作,在待测目标机上安装负载模拟子系统;
2)控制机(4)从FTP服务器(5)上下载最新的负载发生器和故障注入的安装代码及配套的安装、执行脚本;
3)根据配置文件,控制机(4)利用STAF的FS服务将上述安装代码及配套的安装、执行脚本分发、部署到相应的测试代理、服务器上,运行安装脚本,安装相关程序;
4)受限于可用性测试套件运行流程,控制机(4)检查目标服务器(7)的运行状况;
5)控制机(4)在加载负载发生器的测试代理上运行执行脚本,向对应的目标服务器(7)上施加负载;
6)控制机(4)在加载故障注入的测试代理上运行执行脚本,开始对目标服务器(7)进行故障注入;
7)故障注入完毕后,加载故障注入的测试代理将测试结果送回控制机(4)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102124908A CN102354298A (zh) | 2011-07-27 | 2011-07-27 | 基于staf的高端容错机故障注入自动化测试平台及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102124908A CN102354298A (zh) | 2011-07-27 | 2011-07-27 | 基于staf的高端容错机故障注入自动化测试平台及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102354298A true CN102354298A (zh) | 2012-02-15 |
Family
ID=45577865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102124908A Pending CN102354298A (zh) | 2011-07-27 | 2011-07-27 | 基于staf的高端容错机故障注入自动化测试平台及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102354298A (zh) |
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887393A (zh) * | 2010-07-01 | 2010-11-17 | 中兴通讯股份有限公司 | 基于半虚拟化技术的设备故障复现方法及系统 |
CN102622298A (zh) * | 2012-03-02 | 2012-08-01 | 奇智软件(北京)有限公司 | 一种软件测试系统及方法 |
CN102819463A (zh) * | 2012-08-17 | 2012-12-12 | 西安远征智能软件有限公司 | 综保装置自动测试系统 |
CN103051500A (zh) * | 2013-01-04 | 2013-04-17 | 北京邮电大学 | 一种服务网络系统的测试方法及系统 |
CN103092169A (zh) * | 2013-01-07 | 2013-05-08 | 李生林 | 数字营区设备管控装置 |
CN103116544A (zh) * | 2013-01-25 | 2013-05-22 | 浪潮电子信息产业股份有限公司 | 一种自动化的跨平台多服务器多应用测试方法 |
CN103384209A (zh) * | 2013-06-07 | 2013-11-06 | 曙光信息产业(北京)有限公司 | 一种Parastor200并行存储运行环境问题检查方法 |
CN103678130A (zh) * | 2013-12-17 | 2014-03-26 | 中国联合网络通信集团有限公司 | 自动化性能测试方法及测试平台 |
CN103713934A (zh) * | 2012-09-29 | 2014-04-09 | 京信通信系统(中国)有限公司 | 应用程序访问物理外设的方法和系统 |
CN104331324A (zh) * | 2014-11-04 | 2015-02-04 | 哈尔滨工业大学 | MapReduce故障注入套件 |
CN104699601A (zh) * | 2013-12-05 | 2015-06-10 | 国际商业机器公司 | 用于执行状态机驱动的注入的方法和系统 |
CN105429773A (zh) * | 2014-09-18 | 2016-03-23 | 广州思林杰网络科技有限公司 | 一种分布式自动化测试系统及测试终端的管理配置方法 |
CN105577475A (zh) * | 2015-12-28 | 2016-05-11 | 上海瀚之友信息技术服务有限公司 | 自动化性能测试系统及方法 |
CN105718369A (zh) * | 2016-01-19 | 2016-06-29 | 国家电网公司 | 计算机软件测试异常处理系统及测试方法 |
CN105740698A (zh) * | 2016-02-13 | 2016-07-06 | 刘健文 | 一种服务器故障处理方法和装置 |
CN105808432A (zh) * | 2015-03-04 | 2016-07-27 | 中车株洲电力机车研究所有限公司 | 轨道交通牵引传动控制单元软件自动化测试系统及方法 |
US9454447B2 (en) | 2014-01-06 | 2016-09-27 | Fujitsu Limited | Method and a computing system allowing a method of injecting hardware faults into an executing application |
CN106326102A (zh) * | 2015-07-06 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 测试方法和装置 |
CN106445784A (zh) * | 2016-09-27 | 2017-02-22 | 北京搜狐新动力信息技术有限公司 | 一种信息监控方法及装置 |
CN106598795A (zh) * | 2016-12-16 | 2017-04-26 | 捷开通讯(深圳)有限公司 | 一种合成管理的实验室测试系统及方法 |
CN106776176A (zh) * | 2016-12-16 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种磁盘的故障注入方法、系统及故障管理系统 |
CN107102915A (zh) * | 2017-04-21 | 2017-08-29 | 中国船舶工业综合技术经济研究院 | 一种机电产品软件环境故障注入设备 |
CN107347013A (zh) * | 2016-05-04 | 2017-11-14 | 网宿科技股份有限公司 | 一种基于策略的网络测量方法、系统及测量机 |
CN107368395A (zh) * | 2017-08-01 | 2017-11-21 | 北京深思数盾科技股份有限公司 | 自动化测试的方法及系统 |
CN107992428A (zh) * | 2018-01-03 | 2018-05-04 | 成都能通科技有限公司 | 一种Python实现的自动化测试平台 |
CN108268365A (zh) * | 2016-12-30 | 2018-07-10 | 腾讯科技(深圳)有限公司 | 异常任务注入方法、装置和系统 |
CN108415691A (zh) * | 2018-03-19 | 2018-08-17 | 苏州爽爽信息科技有限公司 | 一种用于软件系统的建立方法 |
CN108614764A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | Ima应用软件故障注入方法 |
CN108964993A (zh) * | 2018-06-29 | 2018-12-07 | 郑州云海信息技术有限公司 | 基于动态代理的故障模拟方法、装置、设备及可读存储介质 |
CN109101416A (zh) * | 2014-09-28 | 2018-12-28 | 华为技术有限公司 | 一种内核故障注入方法及电子设备 |
CN109213680A (zh) * | 2018-08-28 | 2019-01-15 | 康烁 | 基于嵌入式软件仿真器的自动化测试方法 |
CN109324876A (zh) * | 2018-10-12 | 2019-02-12 | 西安交通大学 | 一种高可用的Docker与虚拟机初始放置方法 |
CN109388530A (zh) * | 2018-08-22 | 2019-02-26 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种面向刀片式服务器的自动化测试平台以及测试方法 |
CN109428779A (zh) * | 2017-08-29 | 2019-03-05 | 武汉安天信息技术有限责任公司 | 一种分布式业务的监控告警方法及装置 |
CN109459629A (zh) * | 2018-10-10 | 2019-03-12 | 北京航空航天大学 | 一种基于恢复率的恢复能力评估方法 |
CN109582513A (zh) * | 2018-11-06 | 2019-04-05 | 郑州云海信息技术有限公司 | 一种基于通用服务器的jbod测试方法及系统 |
CN109800160A (zh) * | 2018-12-27 | 2019-05-24 | 深圳云天励飞技术有限公司 | 机器学习系统中的集群服务器故障测试方法和相关装置 |
CN110262972A (zh) * | 2019-06-17 | 2019-09-20 | 中国科学院软件研究所 | 一种面向微服务应用的失效测试工具及方法 |
CN110430082A (zh) * | 2019-08-15 | 2019-11-08 | 浙江万朋教育科技股份有限公司 | 一种管理测试服务器与应用程序的方法 |
CN110704315A (zh) * | 2019-09-26 | 2020-01-17 | 天津津航计算技术研究所 | 一种嵌入式软件测试的故障注入装置 |
CN111538518A (zh) * | 2020-04-27 | 2020-08-14 | 深圳忆联信息系统有限公司 | 实现测试机的自动批量测试方法、装置和计算机设备 |
CN111611164A (zh) * | 2020-05-22 | 2020-09-01 | 厦门理工学院 | 基于故障注入的嵌入式测绘导航软件测试系统与方法 |
CN111767241A (zh) * | 2019-04-02 | 2020-10-13 | 鸿富锦精密电子(天津)有限公司 | 一种PCIe注错测试方法、装置以及存储介质 |
CN112416747A (zh) * | 2020-01-21 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种测试用例执行方法、装置、设备及介质 |
US11068371B2 (en) * | 2015-11-26 | 2021-07-20 | EMC IP Holding Company LLC | Method and apparatus for simulating slow storage disk |
US11099974B2 (en) | 2019-05-23 | 2021-08-24 | International Business Machines Corporation | Cognitive analytics for high-availability application-performance management |
CN115757088A (zh) * | 2022-10-10 | 2023-03-07 | 中电金信软件有限公司 | 基于环境变量的故障注入方法、装置和设备 |
CN116431518A (zh) * | 2023-04-26 | 2023-07-14 | 北京计算机技术及应用研究所 | 一种基于仿真平台的多层级、多模式软件故障注入方法 |
CN116991750A (zh) * | 2023-09-28 | 2023-11-03 | 北京索云科技股份有限公司 | 利用多线程和分布式代理实现大并发模拟的压力测试方法 |
CN117311912A (zh) * | 2023-11-30 | 2023-12-29 | 成都融见软件科技有限公司 | 一种基于交互调试的数据交互方法、存储介质及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783184A (zh) * | 2010-01-15 | 2010-07-21 | 哈尔滨工业大学 | 基于fpga的ddr2内存故障注入工具及注入方法 |
-
2011
- 2011-07-27 CN CN2011102124908A patent/CN102354298A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783184A (zh) * | 2010-01-15 | 2010-07-21 | 哈尔滨工业大学 | 基于fpga的ddr2内存故障注入工具及注入方法 |
Non-Patent Citations (2)
Title |
---|
刘伟娜: "面向安腾架构的高端容错机故障注入平台的设计与实现", 《CNKI优秀硕士学位论文全文库》 * |
李夏安,陈志泊: "基于STAF的软件自动化测试系统的研究和实现", 《计算机应用》 * |
Cited By (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887393B (zh) * | 2010-07-01 | 2014-07-02 | 中兴通讯股份有限公司 | 基于半虚拟化技术的设备故障复现方法及系统 |
CN101887393A (zh) * | 2010-07-01 | 2010-11-17 | 中兴通讯股份有限公司 | 基于半虚拟化技术的设备故障复现方法及系统 |
CN102622298A (zh) * | 2012-03-02 | 2012-08-01 | 奇智软件(北京)有限公司 | 一种软件测试系统及方法 |
CN102622298B (zh) * | 2012-03-02 | 2015-01-07 | 北京奇虎科技有限公司 | 一种软件测试系统及方法 |
CN102819463A (zh) * | 2012-08-17 | 2012-12-12 | 西安远征智能软件有限公司 | 综保装置自动测试系统 |
CN102819463B (zh) * | 2012-08-17 | 2015-09-09 | 西安远征智能软件有限公司 | 综保装置自动测试系统 |
CN103713934A (zh) * | 2012-09-29 | 2014-04-09 | 京信通信系统(中国)有限公司 | 应用程序访问物理外设的方法和系统 |
CN103051500A (zh) * | 2013-01-04 | 2013-04-17 | 北京邮电大学 | 一种服务网络系统的测试方法及系统 |
CN103051500B (zh) * | 2013-01-04 | 2015-09-09 | 北京邮电大学 | 一种服务网络系统的测试方法及系统 |
CN103092169B (zh) * | 2013-01-07 | 2016-01-06 | 李生林 | 数字营区设备管控装置 |
CN103092169A (zh) * | 2013-01-07 | 2013-05-08 | 李生林 | 数字营区设备管控装置 |
CN103116544A (zh) * | 2013-01-25 | 2013-05-22 | 浪潮电子信息产业股份有限公司 | 一种自动化的跨平台多服务器多应用测试方法 |
CN103384209A (zh) * | 2013-06-07 | 2013-11-06 | 曙光信息产业(北京)有限公司 | 一种Parastor200并行存储运行环境问题检查方法 |
CN103384209B (zh) * | 2013-06-07 | 2017-02-22 | 曙光信息产业(北京)有限公司 | 一种Parastor200并行存储运行环境问题检查方法 |
CN104699601A (zh) * | 2013-12-05 | 2015-06-10 | 国际商业机器公司 | 用于执行状态机驱动的注入的方法和系统 |
CN104699601B (zh) * | 2013-12-05 | 2017-12-29 | 国际商业机器公司 | 用于执行状态机驱动的注入的方法和系统 |
CN103678130A (zh) * | 2013-12-17 | 2014-03-26 | 中国联合网络通信集团有限公司 | 自动化性能测试方法及测试平台 |
US9454447B2 (en) | 2014-01-06 | 2016-09-27 | Fujitsu Limited | Method and a computing system allowing a method of injecting hardware faults into an executing application |
CN105429773B (zh) * | 2014-09-18 | 2019-05-07 | 广州思林杰网络科技有限公司 | 一种分布式自动化测试系统及测试终端的管理配置方法 |
CN105429773A (zh) * | 2014-09-18 | 2016-03-23 | 广州思林杰网络科技有限公司 | 一种分布式自动化测试系统及测试终端的管理配置方法 |
CN109101416A (zh) * | 2014-09-28 | 2018-12-28 | 华为技术有限公司 | 一种内核故障注入方法及电子设备 |
CN109101416B (zh) * | 2014-09-28 | 2022-01-14 | 华为技术有限公司 | 一种内核故障注入方法及电子设备 |
CN104331324A (zh) * | 2014-11-04 | 2015-02-04 | 哈尔滨工业大学 | MapReduce故障注入套件 |
CN105808432A (zh) * | 2015-03-04 | 2016-07-27 | 中车株洲电力机车研究所有限公司 | 轨道交通牵引传动控制单元软件自动化测试系统及方法 |
CN105808432B (zh) * | 2015-03-04 | 2019-05-10 | 中车株洲电力机车研究所有限公司 | 轨道交通牵引传动控制单元软件自动化测试系统及方法 |
CN106326102A (zh) * | 2015-07-06 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 测试方法和装置 |
US11068371B2 (en) * | 2015-11-26 | 2021-07-20 | EMC IP Holding Company LLC | Method and apparatus for simulating slow storage disk |
CN105577475A (zh) * | 2015-12-28 | 2016-05-11 | 上海瀚之友信息技术服务有限公司 | 自动化性能测试系统及方法 |
CN105577475B (zh) * | 2015-12-28 | 2019-07-05 | 上海瀚之友信息技术服务有限公司 | 自动化性能测试系统及方法 |
CN105718369A (zh) * | 2016-01-19 | 2016-06-29 | 国家电网公司 | 计算机软件测试异常处理系统及测试方法 |
CN105740698B (zh) * | 2016-02-13 | 2019-04-16 | 南京泰泓信息科技有限公司 | 一种服务器故障处理方法和装置 |
CN105740698A (zh) * | 2016-02-13 | 2016-07-06 | 刘健文 | 一种服务器故障处理方法和装置 |
CN107347013A (zh) * | 2016-05-04 | 2017-11-14 | 网宿科技股份有限公司 | 一种基于策略的网络测量方法、系统及测量机 |
CN107347013B (zh) * | 2016-05-04 | 2020-07-07 | 网宿科技股份有限公司 | 一种基于策略的网络测量方法、系统及测量机 |
CN106445784A (zh) * | 2016-09-27 | 2017-02-22 | 北京搜狐新动力信息技术有限公司 | 一种信息监控方法及装置 |
CN108614764A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | Ima应用软件故障注入方法 |
CN108614764B (zh) * | 2016-12-12 | 2021-09-14 | 中国航空工业集团公司西安航空计算技术研究所 | Ima应用软件故障注入方法 |
CN106776176A (zh) * | 2016-12-16 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种磁盘的故障注入方法、系统及故障管理系统 |
CN106598795B (zh) * | 2016-12-16 | 2020-05-19 | 捷开通讯(深圳)有限公司 | 一种合成管理的实验室测试系统及方法 |
CN106598795A (zh) * | 2016-12-16 | 2017-04-26 | 捷开通讯(深圳)有限公司 | 一种合成管理的实验室测试系统及方法 |
CN108268365A (zh) * | 2016-12-30 | 2018-07-10 | 腾讯科技(深圳)有限公司 | 异常任务注入方法、装置和系统 |
CN107102915A (zh) * | 2017-04-21 | 2017-08-29 | 中国船舶工业综合技术经济研究院 | 一种机电产品软件环境故障注入设备 |
CN107368395B (zh) * | 2017-08-01 | 2019-01-29 | 北京深思数盾科技股份有限公司 | 自动化测试的方法及系统 |
CN107368395A (zh) * | 2017-08-01 | 2017-11-21 | 北京深思数盾科技股份有限公司 | 自动化测试的方法及系统 |
CN109428779A (zh) * | 2017-08-29 | 2019-03-05 | 武汉安天信息技术有限责任公司 | 一种分布式业务的监控告警方法及装置 |
CN107992428A (zh) * | 2018-01-03 | 2018-05-04 | 成都能通科技有限公司 | 一种Python实现的自动化测试平台 |
CN108415691A (zh) * | 2018-03-19 | 2018-08-17 | 苏州爽爽信息科技有限公司 | 一种用于软件系统的建立方法 |
CN108964993A (zh) * | 2018-06-29 | 2018-12-07 | 郑州云海信息技术有限公司 | 基于动态代理的故障模拟方法、装置、设备及可读存储介质 |
CN109388530B (zh) * | 2018-08-22 | 2021-12-10 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种面向刀片式服务器的自动化测试平台以及测试方法 |
CN109388530A (zh) * | 2018-08-22 | 2019-02-26 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种面向刀片式服务器的自动化测试平台以及测试方法 |
CN109213680A (zh) * | 2018-08-28 | 2019-01-15 | 康烁 | 基于嵌入式软件仿真器的自动化测试方法 |
CN109213680B (zh) * | 2018-08-28 | 2022-01-25 | 康烁 | 基于嵌入式软件仿真器的自动化测试方法 |
CN109459629A (zh) * | 2018-10-10 | 2019-03-12 | 北京航空航天大学 | 一种基于恢复率的恢复能力评估方法 |
CN109324876A (zh) * | 2018-10-12 | 2019-02-12 | 西安交通大学 | 一种高可用的Docker与虚拟机初始放置方法 |
CN109582513B (zh) * | 2018-11-06 | 2021-11-02 | 郑州云海信息技术有限公司 | 一种基于通用服务器的jbod测试方法及系统 |
CN109582513A (zh) * | 2018-11-06 | 2019-04-05 | 郑州云海信息技术有限公司 | 一种基于通用服务器的jbod测试方法及系统 |
CN109800160A (zh) * | 2018-12-27 | 2019-05-24 | 深圳云天励飞技术有限公司 | 机器学习系统中的集群服务器故障测试方法和相关装置 |
CN111767241A (zh) * | 2019-04-02 | 2020-10-13 | 鸿富锦精密电子(天津)有限公司 | 一种PCIe注错测试方法、装置以及存储介质 |
US11099974B2 (en) | 2019-05-23 | 2021-08-24 | International Business Machines Corporation | Cognitive analytics for high-availability application-performance management |
CN110262972B (zh) * | 2019-06-17 | 2020-12-08 | 中国科学院软件研究所 | 一种面向微服务应用的失效测试工具及方法 |
CN110262972A (zh) * | 2019-06-17 | 2019-09-20 | 中国科学院软件研究所 | 一种面向微服务应用的失效测试工具及方法 |
CN110430082A (zh) * | 2019-08-15 | 2019-11-08 | 浙江万朋教育科技股份有限公司 | 一种管理测试服务器与应用程序的方法 |
CN110430082B (zh) * | 2019-08-15 | 2021-06-15 | 浙江万朋教育科技股份有限公司 | 一种管理测试服务器与应用程序的方法 |
CN110704315A (zh) * | 2019-09-26 | 2020-01-17 | 天津津航计算技术研究所 | 一种嵌入式软件测试的故障注入装置 |
CN110704315B (zh) * | 2019-09-26 | 2022-10-25 | 天津津航计算技术研究所 | 一种嵌入式软件测试的故障注入装置 |
CN112416747A (zh) * | 2020-01-21 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种测试用例执行方法、装置、设备及介质 |
CN111538518A (zh) * | 2020-04-27 | 2020-08-14 | 深圳忆联信息系统有限公司 | 实现测试机的自动批量测试方法、装置和计算机设备 |
CN111611164B (zh) * | 2020-05-22 | 2023-04-07 | 厦门理工学院 | 基于故障注入的嵌入式测绘导航软件测试系统与方法 |
CN111611164A (zh) * | 2020-05-22 | 2020-09-01 | 厦门理工学院 | 基于故障注入的嵌入式测绘导航软件测试系统与方法 |
CN115757088A (zh) * | 2022-10-10 | 2023-03-07 | 中电金信软件有限公司 | 基于环境变量的故障注入方法、装置和设备 |
CN115757088B (zh) * | 2022-10-10 | 2023-10-20 | 中电金信软件有限公司 | 基于环境变量的故障注入方法、装置和设备 |
CN116431518A (zh) * | 2023-04-26 | 2023-07-14 | 北京计算机技术及应用研究所 | 一种基于仿真平台的多层级、多模式软件故障注入方法 |
CN116431518B (zh) * | 2023-04-26 | 2023-09-26 | 北京计算机技术及应用研究所 | 一种基于仿真平台的多层级、多模式软件故障注入方法 |
CN116991750A (zh) * | 2023-09-28 | 2023-11-03 | 北京索云科技股份有限公司 | 利用多线程和分布式代理实现大并发模拟的压力测试方法 |
CN116991750B (zh) * | 2023-09-28 | 2023-12-22 | 北京索云科技股份有限公司 | 利用多线程和分布式代理实现大并发模拟的压力测试方法 |
CN117311912A (zh) * | 2023-11-30 | 2023-12-29 | 成都融见软件科技有限公司 | 一种基于交互调试的数据交互方法、存储介质及电子设备 |
CN117311912B (zh) * | 2023-11-30 | 2024-02-02 | 成都融见软件科技有限公司 | 一种基于交互调试的数据交互方法、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102354298A (zh) | 基于staf的高端容错机故障注入自动化测试平台及方法 | |
Xu et al. | POD-Diagnosis: Error diagnosis of sporadic operations on cloud applications | |
Sebastio et al. | An availability analysis approach for deployment configurations of containers | |
CN103235756B (zh) | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 | |
CN105718369A (zh) | 计算机软件测试异常处理系统及测试方法 | |
US20090248390A1 (en) | Trace debugging in a hardware emulation environment | |
CN102768642A (zh) | 一种基于源码分析的linux内核可靠性评测系统及其方法 | |
CN108334447A (zh) | 一种测试处理计算机软件异常的系统及方法 | |
Löfwenmark et al. | Fault and timing analysis in critical multi-core systems: A survey with an avionics perspective | |
Laranjeiro et al. | A systematic review on software robustness assessment | |
Fabre et al. | Building dependable COTS microkernel-based systems using MAFALDA | |
Xu et al. | DualVisor: Redundant hypervisor execution for achieving hardware error resilience in datacenters | |
Dilenno et al. | Fault tolerance testing in the advanced automation system | |
Patterson | Recovery Oriented Computing: A New Research Agenda for a New Century. | |
Marques et al. | Injecting software faults in python applications: The openstack case study | |
Tixeuil et al. | An overview of existing tools for fault-injection and dependability benchmarking in grids | |
Alourani et al. | T-basir: Finding shutdown bugs for cloud-based applications in cloud spot markets | |
Oladimeji et al. | Levels of testing | |
Campos et al. | A Dataset of Linux Failure Data for Dependability Evaluation and Improvement | |
Fu et al. | Towards a taxonomy of cloud recovery strategies | |
Some et al. | Fault-tolerant systems design-estimating cache contents and usage | |
Lyu | An integrated approach to achieving high software reliability | |
Colombo et al. | Other Advanced Topics | |
Huang et al. | EDFI: Endogenous Database Fault Injection with a Fine-Grained and Controllable Method | |
Cheng | Anomaly detection and fault localization using runtime state models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120215 |