一种机电产品软件环境故障注入设备的制作方法

文档序号:11432154阅读:153来源:国知局

本发明涉及软件测试技术领域,特别是一种机电产品软件环境故障注入测试设备。



背景技术:

机电产品软件是一种控制类软件,广泛应用于航空航天、舰船等国防等安全关键系统中,其使用时通常面临恶劣的外部环境,如辐射、电磁干扰、高温、高压等,这些外部环境的扰动一旦引起软件失效,可能会导致生命和财产的重大损失,甚至影响战争的成败。因此,采用环境故障注入工具对机电产品软件进行测试,是保证机电产品软件安全可靠的重要保证。

常规的软件测试方法是利用现有测试工具构建测试框架,如geste、loadrunner等工具,其测试方式是通过机电产品软件的接口注入正常或异常的数据或信号,以发现软件本身的缺陷或检测软件的容错能力。异常数据或信号是通过模拟异常外部环境信息,通过接口对软件进行故障注入测试方式。实际上,外部环境扰动通常会引发机电产品软件寄存器跳变、内存数据位翻转等,从而导致机电产品软件出现失效,通过接口故障注入测试方式无法检测寄存器跳变、内存数据位翻转导致的软件失效。

现有的环境故障注入主要包括硬件方式和软件方式实现的故障注入。硬件方式主要利用电磁辐射方法、电流干扰方法,或利用硬件电路管脚制造故障或干扰,物理方式虽最接近真实环境故障,但具有开销巨大、重现率低、精准性差,易对硬件造成损伤等问题。软件方式包括两种方式:一是采用程序变异方法植入故障,一是建立环境仿真故障模型注入故障。程序变异方法虽能提高测试覆盖率,但会产生组合爆炸,具有时间成本高的问题;仿真故障模型方法具有费用低廉、精准控制等优点,且建立仿真故障模型一般非常困难,不能直接针对寄存器跳变、内存数据位翻转等进行故障注入,实用性较差。

综上所述,针对外部环境扰动引起的软件失效,现有的软件环境故障注入测试中,还没有一种直接对寄存器、内存实施故障注入的轻量级、实用性的测试手段。

因此,提供一种实用的机电产品软件环境故障注入设备成为本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种实用的机电产品软件环境故障注入设备,包括故障注入控制主机系统、故障注入代理系统和通信系统,所述故障注入控制主机系统安装于故障注入控制计算机内,所述故障注入代理系统安装于机电产品软件设备中;所述通信系统用于实现所述故障注入控制计算机和所述机电产品软件设备的通信。

所述故障注入控制计算机和机电产品软件设备采用双绞线连接。

所述故障注入控制主机系统用于控制故障注入执行,收集故障注入数据和和结果数据并进行分析,包括系统配置模块、内存和寄存器地址获取模块、故障注入算子生成模块、故障注入脚本生成模块、故障注入执行模块、故障注入数据收集及结果判定模块。

所述故障注入代理系统用于获取故障注入地址,驱动故障注入执行,包括内存地址获取代理模块、故障注入代理模块。

所述通信系统包括网卡和串口卡、网卡和串口卡驱动和远程控制软件,所述远程控制软件安装于所述故障注入控制计算机内,所述网卡和串口卡、网卡和串口卡驱动分别安装于所述故障注入控制计算机和所述机电产品软件设备上。

所述网卡和串口卡、网卡和串口卡驱动建立所述故障注入控制主机系统和所述故障注入代理系统的物理通信连接。

所述系统配置模块配置网络连接信息和机电产品软件信息,用于建立网络连接和识别机电产品软件进程。

所述内存和寄存器地址获取模块发送获取指令至所述内存地址获取代理模块,获取机电产品软件进程的内存地址,寄存器地址通过名称直接获取。

所述故障注入算子生成模块利用所述内存和寄存器地址生成故障注入算子。

所述故障注入脚本生成模块根据所述内存和寄存器地址以及所述故障注入算子生成故障注入脚本。

所述故障注入执行模块将所述故障注入脚本发送至所述故障注入代理模块,所述故障注入代理模块驱动所述故障注入脚本执行并收集故障注入数据和结果数据,回传至所述故障注入数据和结果判定模块,所述故障注入数据收集及结果判定模块进行结果判定。

所述系统设置模块配置网络连接信息的配置参数包括本地ip、目标机ip、目标机端口、目标机用户名、目标机登录密码、目标程序名称、目标程序路径。

所述故障注入算子生成模块根据所述内存和寄存器地址数据位的“跳变”、“置0”、“置1”三种模式及其组合,设计并生成故障注入算子。

所述故障注入脚本生成模块根据所述故障注入地址、故障注入算子,按照gdb语法,生成故障注入脚本,脚本指令包括故障注入指令、失效判定指令、故障注入收集指令。

所述内存地址获取代理模块接收内存和寄存器地址获取模块的指令,获取机电产品软件进程的内存地址,通过所述配置内存地址获取代理模块初始化文件,可获取电产品软件进程的数据段、栈、堆地址,并回传给所述内存和寄存器地址获取模块。

利用本发明所提供的机电产品软件环境故障注入设备,采用非侵入式故障注入机制,故障注入软件不需要与机电产品软件运行在同一系统,采用简单的故障注入脚本和通信模式控制故障注入的执行,解决了现有硬件和软件环境故障注入方式开销大、易造成硬件损伤等问题,提供了一种简单实用的环境故障注入工具手段。

附图说明

图1为机电产品软件环境故障注入设备的组成结构示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行详细说明。

本发明提供一种机电产品软件环境故障注入设备,采用非侵入式故障注入机制,将环境故障注入数据及指令转换为可执行的脚本,将脚本发送到被测机电产品软件设备上的代理软件实施故障注入,并进行故障注入数据及结果数据收集与分析,故障注入设备不需要与机电产品软件运行在同一系统,不受机电产品软件所在设备运行环境的限制,只要故障注入代理系统软件支持机电产品软件的操作系统,就能进行环境故障注入。

具体的,提供一种机电产品软件环境故障注入设备,通过获取机电产品软件的内存和寄存器地址,设计环境故障注入算子,生成gdb格式的故障注入脚本,采用gdb远程调试的方法控制故障注入的执行,同时采集故障注入数据和结果数据,并进行结果判定。

图1给出了机电产品软件环境故障注入设备的组成结构示意图,本发明提供一种机电产品软件环境故障自动化注入设备,包括故障注入控制主机系统、故障注入代理系统、通信系统。

故障注入控制主机系统包括系统设置模块、内存和寄存器地址获取模块、故障注入算子生成模块、故障注入脚本生成模块、故障注入执行模块、数据收集和结果判定模块。

系统设置模块配置网络连接信息和机电产品软件信息,用于建立网络连接和识别机电产品软件进程,配置参数包括本地ip、目标机ip、目标机端口、目标机用户名、目标机登录密码、目标程序名称、目标程序路径。

内存和寄存器地址获取模块用于获取故障注入地址,启动机电产品软件设备上的内存地址获取代理模块,获取机电产品软件进程的内存地址,寄存器地址通过名称直接获取。

故障注入算子生成模块根据内存和寄存器地址数据位的“跳变”、“置0”、“置1”三种模式及其组合,设计并生成故障注入算子。

故障注入脚本生成模块根据故障注入地址、故障注入算子,按照gdb语法,生成故障注入脚本,脚本指令包括故障注入指令、失效判定指令、故障注入收集指令。

故障注入执行模块设置gdb软件,通过启动gdb软件以及机电产品软件设备上故障注入代理软件,利用gdb软件的调试机制控制故障注入脚本执行。数据收集和结果判定模块接收障注入代理模块的回传的故障注入数据和结果数据,进行结果判断和分析。

故障注入代理系统包括内存地址获取代理模块、故障注入代理模块。内存地址获取代理模块接收内存和寄存器地址获取模块的指令,获取机电产品软件进程的内存地址,通过配置内存地址获取代理模块初始化文件,可获取电产品软件进程的数据段、栈、堆地址,并回传给内存和寄存器地址获取模块。故障注入代理模块接收到故障注入执行模块的故障注入脚本指令后,驱动故障注入的执行,同时收集故障注入数据和结果数据,回传给故障注入数据和结果判定模块。

通信系统包括网卡和串口卡、网卡和串口卡驱动和远程控制软件,所述远程控制软件安装于所述故障注入控制计算机内,所述网卡和串口卡、网卡和串口卡驱动分别安装于所述故障注入控制计算机和所述机电产品软件设备上。

用于连接故障注入控制计算机和机电产品软件设备,在内存地址获取和故障注入过程中,传输控制指令和数据,协助完成故障注入的过程。

优选的,所述的故障注入执行模块为gdb软件。

优选的,所述的故障注入脚本生成模块生成gdb格式的脚本。

优选的,所述的内存地址获取代理模块为cdb软件。

优选的,所述的远程控制软件为psexec软件。

实施例1

本机电产品软件环境故障注入设备包括故障注入控制计算机1台,故障注入远程代理模块1个,以太网通信系统1套。故障注入控制计算机使用windowsxp系统,部署mysql数据库,mysql数据库用于存储系统配置信息、故障注入算子信息、故障注入脚本信息、故障注入数据及结果判定信息。本机电产品软件环境故障注入设备还包括环境故障注入控制主机系统、环境故障注入代理系统、通信系统。环境故障注入控制主机系统安装于故障注入控制计算机内,包括系统设置模块、内存和寄存器地址获取模块、故障注入算子生成模块、故障注入脚本生成模块、故障注入执行模块、数据收集和结果判定模块,系统设置模块配置本地ip、目标机ip、目标机端口、目标机用户名、目标机登录密码、目标程序名称、目标程序路径,用于建立与机电产品软件设备网络连接和配置机电产品软件的参数信息;内存和寄存器地址获取模块利用远程控制软件(psexec)启动机电产品软件设备上的内存地址获取代理软件(cdb),获取机电产品软件进程的内存地址,寄存器地址可通过寄存器名称直接获取,提供环境故障注入的地址;故障注入算子生成模块根据内存和寄存器地址数据位“跳变”、“置0”、“置1”三种模式及其组合,设计并生成故障注入算子,提供故障注入的数据;故障注入脚本生成模块按照gdb语法,根据内存和寄存器地址、故障注入算子,生成gdb故障注入脚本,gdb故障注入脚本主要包括故障注入指令、失效判定指令和故障注入数据收集指令;故障注入执行模块用于启动本地gdb,利用psexec启动机电产品软件设备的故障注入代理模块(gdbserver),利用gdb的调试功能,控制故障注入脚本执行;数据收集和结果判定模块利用gdbserver的回传功能,收集故障注入数据和结果判定数据。环境故障注入代理系统安装于机电产品软件设备内,配置内存地址获取代理模块、故障注入代理模块,内存地址获取代理模块利用系统api获取内存地址,利用psexec回传给位于故障注入控制计算机内内存和寄存器地址获取代理模块;故障注入代理模块利用gdbserver驱动故障注入执行,收集故障注入数据和结果判定数据,回传位于故障注入控制计算机内的数据收集和结果判定模块,进行结果判定。通信系统包括网卡、网卡驱动、远程控制软件(psexec),用于启动机电产品软件上的内存地址获取代理模块和故障注入代理模块,实现故障注入控制计算机和机电产品软件设备间管道通信。

本具体实施方式提供的环境故障注入设备工作过程如下:

1)环境故障注入环境搭建,使用双绞线连接故障注入控制计算机和机电产品软件设备,分别对故障注入控制计算机和远程机电产品软件设备配置ip地址,在机电产品软件设备上使用netshare命令开启“ipc$”、“admin$”资源共享。关闭远程目标机电产品软件设备防火墙。

2)环境故障注入系统配置,故障注入控制计算机执行环境配置模块并保存环境配置信息,配置信息包括:本地ip、目标机ip、目标机端口、目标机用户名、目标机登录密码、目标程序名称、目标程序路径。

3)机电产品软件设备启动目标机电产品软件。

4)内存和寄存器地址获取,故障注入控制计算机执行内存和寄存器地址获取模块。内存地址获取方式是通过远程控制程序模块启动远程内存地址获取模块,获取目标机电产品软件进程的内存地址并回传给故障注入控制计算机;寄存器地址获取是通过寄存器名称直接获取。故障注入控制计算机保存获取的内存地址和寄存器地址。

5)环境故障注入算子生成,故障注入控制计算机执行环境故障注入算子生成模块,根据内存和寄存器地址位跳变、置0、置1三种方式生成环境故障注入算子,并对故障注入算子进行管理。

6)环境故障注入脚本生成,故障注入控制计算机执行环境故障注入脚本生成模块,通过指定或随机选择注入地址、环境故障注入算子,生成gdb故障注入脚本,并对故障注入脚本进行管理。故障注入脚本指令包括:故障注入指令、失效判定指令、数据收集指令。

7)环境故障注入执行,故障注入控制计算机执行环境故障注入执行模块,首先启动gdb,然后通过远程控制程序模块启动远程gdbserver,通过gdb和远程gdbserver的通信功能,驱动故障注入脚本执行。

8)环境故障注入数据收集及结果判定,环境故障注入执行过程中,自动收集故障注入数据并进行结果判定,进行保存,故障注入控制计算机根据收集的数据,并进行结果分析。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1