[发明专利]故障自动注入与故障检测的方法及其系统有效
申请号: | 201410114863.1 | 申请日: | 2014-03-25 |
公开(公告)号: | CN103914379B | 公开(公告)日: | 2016-10-26 |
发明(设计)人: | 宫云战;钱茛南;王雅文;黄俊飞;金大海 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李迪 |
地址: | 100876 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 故障 自动 注入 检测 方法 及其 系统 | ||
技术领域
本发明涉及软件测试技术,尤其涉及一种在软件测试中的故障自动注入与故障检测方法及其系统。
背景技术
故障注入(Fault Injection)技术作为一种特殊测试技术,通常是指按照一定的故障模型产生故障,并可控地施加到待测目标系统中,以加速该系统的错误和失效的发生。故障检测,是观测并检验系统对所注入错误的响应信息,判断是否检测出所注入的故障。两者相结合可以分析目标系统的错误处理、错误容忍能力以及系统的鲁棒性,并对系统进行验证和评价。
虽然故障注入方法有很高的检错能力,但如何自动化注入大规模的故障,及如何有效地执行大量的故障文件、比对结果,是妨碍故障注入方法广泛应用的主要原因。目前实际应用中,大都是人工进行故障注入或半自动注入,耗费了大量的人力成本,测试效率也很低。并且只能进行小规模的源代码故障注入,无法对大型程序或整个项目进行全面的源代码故障注入和检测,无法充分发挥该方法的高检错能力。
发明内容
本发明提供一种故障自动注入与故障检测方法及其系统,通过使用源代码故障注入的方法,可以加速错误的发生,进而判断出软件中是否存在故障,并且检错能力强,尤其对于一些小概率错误具有较好的测试效果。
根据上述目的,本发明提供了一种故障自动注入与故障检测的方法,其包括:S1,对被测文件进行故障自动化注入,进行分析并生成多个故障文件;S2,对所述多个故障文件分别进行处理,生成多个可执行文件;S3,根据所述被测文件选择特定的测试用例库,将所述测试用例库中的用例逐一在所述每个可执行文件上运行,进行故障检测,并计算故障检测率。
其中,所述步骤S1包括:S11,输入被测文件,对所述被测文件进行语法分析、词法分析和语义分析,生成抽象语法树;S12,基于所述抽象语法树,对变异算子进行建模,生成程序变异模型;S13,遍历所述抽象语法树,提取所述抽象语法树的节点信息;S14,根据所述抽象语法树的节点信息和所述程序变异模型,生成相应的故障注入点,并在所述故障注入点进行故障自动注入;S15,进行文件IO操作,生成多个故障文件。
其中,所述步骤S2包括:对所述多个故障文件分别进行预处理、编译、汇编和链接,生成对应的多个可执行文件。
其中,所述测试用例库包括与所述被测文件的程序相对应的用例。
其中,所述测试用例库还包括所述被测文件运行所述每个用例后的执行结果。
其中,所述测试用例库中的所述用例满足覆盖准则,所述覆盖准则可以是对原被测试文件的100%分支覆盖。
根据本发明的另一个方面,提供了一种故障自动注入与故障检测系统,所述系统包括:故障自动注入模块,用于对被测文件进行自动化注入,进行分析并生成多个故障文件;执行文件生成模块,用于对所述多个故障文件进行处理,生成多个可执行文件;故障检测模块,用于根据所述被测文件选择特定的测试用例库,将所述测试用例库中的用例逐一在所述每个可执行文件上运行,进行故障检测,并计算故障检测率。
其中,所述故障自动注入模块包括:抽象树生成单元,用于对所述被测文件进行语法分析、词法分析和语义分析,生成抽象语法树;程序变异模型生成单元,用于基于所述抽象语法树,对变异算子进行建模,生成程序变异模型;抽象语法树遍历单元,用于遍历所述抽象语法树,提取所述抽象语法树的节点信息;故障自动注入单元,用于根据所述抽象语法树的节点信息和所述程序变异模型,生成相应的故障注入点,并在所述故障注入点进行故障自动注入;故障文件生成单元,用于进行文件IO操作,生成多个故障文件。
本发明所述的故障自动注入与故障检测的方法及其系统,使用源代码故障注入的方法,可以加速错误的发生,进而判断出软件中是否存在故障,并且检错能力较高,尤其对于一些小概率错误具有较好的测试效果,同时,使用本发明进行测试时,对系统鲁棒性和可靠性测试具有较好的测试效果。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明的故障自动注入与故障检测的方法的流程图;
图2示出了本发明的故障自动注入与故障检测的方法的步骤S1的具体流程图;
图3示出了本发明的故障自动注入与故障检测系统的结构框图;
图4是示出了本发明的故障自动注入与故障检测系统的故障自动注入模块的结构框图。
具体实施方式
下面将结合附图对本发明的实施例进行详细描述。
图1示出了本发明的故障自动注入与故障检测的方法的流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410114863.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:存储装置、电子设备和数据存取方法
- 下一篇:光反射照相眼部筛查装置和方法