[发明专利]一种基于约束的系统故障注入方法在审
申请号: | 201810366804.1 | 申请日: | 2018-04-23 |
公开(公告)号: | CN108733528A | 公开(公告)日: | 2018-11-02 |
发明(设计)人: | 钱巨;李昌建;林福生 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F11/26 | 分类号: | G06F11/26 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 施昊 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 故障数据 取反 系统故障 约束变量 规约 测试 输入组合 松弛变量 系统实施 充分性 求解 检错 替换 松弛 修复 替代 | ||
本发明公开了一种基于约束的系统故障注入方法。步骤为,按照原子条件取反、合取范式子句取反策略将约束划分到原子条件、合取范式子句层次,在这些层次上求取规约约束的一组否定形式,作为故障数据生成的基础;将取反后约束中的约束变量使用正常输入组合替代,然后逐步对约束变量进行松弛替换,通过约束求解操作找到松弛变量数量最少、最接近真实情况的极小变异故障数据;利用极小变异故障数据作为测试输入,对待测系统实施故障注入并得到故障注入结果。本发明通过采用新的故障注入技术,生成了更真实、充分性更高的故障数据,加强了故障注入的检错能力,同时接近正常状态的故障也有利于测试人员修复和排除缺陷。
技术领域
本发明属于计算机系统开发技术领域,特别涉及了一种基于约束的系统故障注入方法。
背景技术
故障注入是一种系统可靠性(Dependability)验证技术,通过在实验中向待验证系统刻意引入故障,检测观察故障引入之后的系统行为来检测系统的可靠性。在现有的故障注入方式一般为注入异常数据和注入异常代码。前者例如E.Jeong等人根据故障模型生成异常数据,并把异常数据通过消息拦截等方式注入到系统中;后者例如R.Natella等人通过在源码层或二进制层注入异常代码,间接产生故障状态,达到故障注入的目的。
在故障数据注入方面,一些方法生成硬件或通信故障,如J.H.Barton等人提出的位翻转、字节修改等,以及S.Han等人提出的消息丢失、消息重复、消息头尾对调、消息延迟等。另一些方法生成软件故障,包括基于模式的故障生成方法、基于数据类型的故障生成方法、基于文法的故障生成方式等。基于模式的生成根据经验的故障模式生成故障,例如生成空指针或错误的函数返回代码,以检测目标系统的行为。基于数据类型的生成方式依据数据类型对数据进行分组,然后选择典型的异常值,例如类型的边界值,进行故障注入。基于文法的生成方式描述输入的文法结构,然后基于文法生成异常格式的数据进行注入。Johansson等人及Winter等人还研究了多种注入方式的组合,同时注入多种错误来增强故障注入发现错误的能力。上述方法一般可以生成格式、范围等明显异常的数据,但难以生成格式良好,却逻辑上不为合理的故障状态,应用范围存在较大限制。在现实中,很多隐蔽的错误都是由于结构上合理,但逻辑不合理的错误状态导致的,为揭示这些错误,必须采用具有逻辑异常数据生成能力的故障注入技术。
基于约束的故障注入为逻辑异常数据的生成提供了契机。Godefroid等人的SAGE工具利用白盒符号执行来导出给定程序路径对应的路径约束,然后对路径约束中的谓词进行取反以生成新的测试输入。这种方法能够生成相对约束条件而言,逻辑上不合理的故障数据,但其在黑盒测试场景下,难以获知约束条件中哪些部分对应程序路径上的判定谓词,因此SAGE中的约束取反方法并不适用于黑盒测试场景。另一方面,SAGE方法通过约束求解获得全新的输入数据组合来进行测试,所生成的故障数据不能保证接近真实情况,故障注入的缺陷检测能力无法保证。
发明内容
为了解决上述背景技术提出的技术问题,本发明旨在提供一种基于约束的系统故障注入方法,基于规约约束导出一组覆盖充分性好、真实性高的故障数据,从而有效地检测系统的可靠性缺陷。
为了实现上述技术目的,本发明的技术方案为:
一种基于约束的系统故障注入方法,包括以下步骤:
(1)按照原子条件取反、合取范式子句取反策略将约束划分到原子条件、合取范式子句层次,在这些层次上求取规约约束的一组否定形式,作为故障数据生成的基础;
(2)首先将取反后约束中的约束变量使用正常输入组合替代,然后逐步对约束变量进行松弛替换,通过约束求解操作找到松弛变量数量最少、最接近真实情况的极小变异故障数据;
(3)利用极小变异故障数据作为测试输入,对待测系统实施故障注入并得到故障注入结果。
进一步地,在步骤(1)中,所述原子条件取反策略的步骤如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810366804.1/2.html,转载请声明来源钻瓜专利网。