一种消息扰动系统,其包括第一消息模块、第二消息模块,其特征在于,该装置还包括一连接在第一消息模块及第二消息模块接口间的消息扰动系统,该消息扰动系统接收从第一模块输入的消息,并对该消息进行至少一个故障干扰后,再将消息输出至第二消息模块。(*该技术在2023年保护过期,可自由使用*)
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术属于电子
中的故障测试技术,具体涉及一种消息扰动系统。
技术介绍
在一些特定应用领域,例如航天、核电站、铁路控制、医疗、通信等,对软件的可靠性、安全性要求越来越高,这些软件的失效,往往会造成重大损失。而软件故障注入技术是业界常用的一种用于提高软件可靠性的方法。该故障注入测试方法是指通过人为的方式在待测试系统中引入故障,考察该待测试系统的容错能力和薄弱环节。但是,随着软件规模的不断增大,对软件的测试越来越困难,而另一方面,对软件的可靠性要求则越来越高。当今的大规模软件大部分是由更小一些的软件模块构成的,模块与模块之间的接口通常都是消息接口,因此,模块之间消息传递的可靠性对整个软件有很大的影响。且由于系统受到非法消息攻击而造成事故在大型软件系统中时有发生,因此,消息接口的软件模块的消息故障注入测试就变得更为必要。在现有技术中,还没有成功应用的在软件模块的消息接口之间引入消息故障注入测试技术,可见,如何实现这一技术,是业界极需解决的技术问题。
技术实现思路
本专利技术提出了一种消息扰动系统,以解决现有技术中没有在软件模块的消息接口之间引入消息故障注入测试技术的问题。为解决上述问题,本专利技术提供如下技术方案 一种消息扰动系统,其包括第一消息模块、第二消息模块,其中该装置还包括一连接在第一消息模块及第二消息模块接口间的消息扰动系统,该消息扰动系统接收从第一模块输入的消息,并对该消息进行至少一个故障干扰后,再将消息输出至第二消息模块。所述的消息扰动系统具体包括有消息扰动模块,接收待测消息,并对待测消息进行故障干扰;消息扰动配置模块,用于给消息扰动模块配置故障干扰模块。所述的消息扰动模块至少包括下述一种子模块丢包控制子模块,用于完成消息丢弃处理;误码插入子模块,用于完成在消息内容中插入误码;重包控制子模块,用于完成消息的复制;乱序控制子模块,用于扰乱消息流中消息的先后顺序;延时控制子模块,用于完成消息的延时。其中,对待测消息进行故障干扰至少包括丢弃扰动、误码扰动、重包扰动、乱序扰动及时延扰动中的一种。采用本专利技术所述的技术方案,可以方便地得到消息传递过程中囊括多种消息故障注入主要测试点的故障模式,更具体的包括丢包、误码、重包、乱序、超时、消息格式错误、消息数据错误、消息一致性错误等。本专利技术具有良好的灵活性、通用性和可重用性,其可广泛应用于任何需要进行消息故障注入测试的软件系统中基于消息接口的各模块之间,进而可以考察该待测试系统的容错能力和薄弱环节。通过这些错误消息的测试,软件系统将大大提高其稳定性、可靠性、安全性。附图说明图1是本专利技术实施例消息扰动系统原理示意图;图2是本专利技术实施例消息扰动系统组成结构示意图;图3是本专利技术实施例消息扰动的具体实现流程图;图4是本专利技术实施例消息顺序扰动原理示意图。具体实施例方式下面结合如图1、2、3所示的具体实施例情形来详细描述本专利技术。本实施例是基于消息接口的软件模块的消息故障注入测试而制作的消息扰动系统。如图1所示为本专利技术实施例的消息扰动原理示意图,本实施例位于需要进行消息扰动的消息接口模块A与模块B之间,消息扰动系统将模块A的消息全部截获,经过丢弃、误码、复制、顺序和时延扰动后,再发回原来接收该消息的模块B。如图2所示为本专利技术实施例的消息扰动系统组成结构示意图,其组成包括消息扰动模块,用于由消息扰动配置模块配置数据后进行丢弃、误码、复制、顺序或时延的故障干扰;消息扰动配置模块,用于对已被截获的消息配置所述丢弃、误码、复制、顺序或时延扰动;截获被测模块接口的消息经由消息扰动模块进行相应故障干扰后,再从原来接收该消息的模块接口出去,其中,由消息扰动配置模块配置数据以确定故障干扰模式。该消息扰动模块具体包括下述各子模块丢包控制子模块21,用于完成消息丢弃处理;误码插入子模块22,用于完成在消息内容中插入误码;重包控制子模块23,用于完成消息的复制;乱序控制子模块24,用于扰乱消息流中消息的先后顺序;延时控制子模块25,用于完成消息的延时。由消息扰动配置模块配置数据得到的参数,输入给对应的所述扰动子模块,该扰动子模块完成相应的扰动。下面分别对各子模块进行具体阐述1、丢包控制子模块21该子模块主要完成消息丢弃处理。而丢弃策略可以采用随机方式或非随机方式。丢包控制过程开始时,首先判断是否需要跟踪接口消息,如果需要跟踪,则把消息内容按十六进制格式打印出来;然后判断本丢包控制是否处于停止状态,如果处于停止状态,则不进行丢包处理,直接返回FALSE,否则继续,判断如果丢包处理处于自动停止状态,并且扰动时间或扰动次数已为0,则不进行丢包处理,直接返回FALSE,否则继续,判断如果丢包处理处于指定丢包方式,并且当前消息不符合指定的条件,则不进行丢包处理,否则继续。最后用丢包率倒数后取整所得数为参数取随机值,如果该随机值为0,表明该消息需要丢弃,调用释放消息函数释放本消息。如果工作状态为自动停止方式,并且扰动次数大于0,则扰动次数减1,丢弃成功,返回TRUE。上述阐述中的数据定义部分参见下表1.1 接口函数BOOLFIT_PT_DiscardMsg(pTDiscarder pDiscarder,BYTE*pMsg) 被调用函数(1)void FreeMsg(BYTE*pMsg),为释放消息函数,把消息所占用内存释放回系统内存管理单元。(2)DWORD Random(void),为随机数产生函数,返回一个伪随机整数。2、误码插入子模块22该子模块主要完成对消息内容的误码插入功能,支持变长和定长消息。该子模块接收到消息后,首先判断该模块是否处于停止状态,如果处于停止状态,则不进行误码插入处理,直接返回FALSE,否则继续,判断如果该模块处于自动停止状态,并且扰动时间或扰动次数已为0,则不进行处理,直接返回FALSE,否则继续,判断如果该模块处于指定方式,并且当前消息不符合指定的条件,则不进行处理。通过前面的检查后,调用函数取得该消息的长度,并与配置数据中的终止位置比较,如果该终止位置在该消息的合法长度后面,则取该长度值为扰动终止位置,否则按照配置的数据作为终止位置。然后取配置数据中的误码插入开始位置,从开始到结束位置以字节为单位逐一误码插入,误码插入条件为按照误码率倒数取整所得数为参数产生的随机值小于8,然后判断工作状态是否为自动停止状态,并且扰动次数大于0,则把扰动次数减1。该子模块处理完后将消息送至下一个子模块处理。上述阐述中的数据定义部分参见下表2.1 接口函数void FIT_PT_InsertErrBits(pTBitsFlipper pBitsFlipper,BYTE*pMsg) 被调用函数(1)DWORD Random(void),为随机数产生函数,返回一个伪随机整数。3、重包控制子模块23该子模块用于完成对消息的复制功能,支持变长和定长消息。该模块接收到由误码插入子模块处理过的消息后,首先判断该模块是否处于停止状态,如果处于停止状态,则不进行消息复制,进入下一个模块的处理,否则继续,判断如果该模块处于自动停止状态,并且扰动时间或扰动次数已为0,则不进行复制,进入下一个模块的处理,否则继续,判断如果该模块处于指定方式,并且当前消本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】
【专利技术属性】
技术研发人员:叶小仁,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。