基于程序变异的C代码故障注入器的研究与实现

来源 :北京邮电大学 | 被引量 : 1次 | 上传用户:yantianwa
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
故障注入技术作为一种常用的技术广泛应用于软件测试领域。它通过有意识地向待测系统中施加特定的故障,来观察系统对于异常状况的处理与反应。代码故障注入作为故障注入的一种,以其成本低、实现简单、可移植性强等优点受到了研究者们的青睐。但是,目前代码故障注入大多数是通过手动注入实现的。手动注入方法具有效率低下、工作量大以及故障文件可用率不高等不足,而自动注入方法恰好可以弥补这些不足,因此自动故障注入问题非常具有研究意义。论文围绕如何向C代码中自动注入故障以及注入什么样的故障这两个问题进行研究,提出了基于程序变异的C代码自动故障注入方法。该方法通过静态分析获取程序结构信息,然后利用分析抽象语法树的方式对故障注入点定位,接着对变异体进行语义检查,缩小变异范围,最后进行程序变异,生成故障文件。以上就是本文所设计的注入方法的基本流程。在使用传统变异算子时,故障文件存在无法应用于自动化测试的情况,因此本课题设计了基于语义检查的变异算子,来作为故障注入的参照模型。本课题使用了基于字符串编辑距离的候选变异体选择算法,从而令产生的故障更加符合真实编程环境的要求。在以上研究成果的基础之上,本文作者依托于代码测试系统Code Test System (CTS),开发了一款基于程序变异的C代码故障注入器。该注入器实现了C代码的自动故障注入,并且保证了故障注入结果文件适用于故障定位以及变异测试等研究领域。
其他文献
在各种神经网络中,单隐层前向网络(SLFNs)由于其简单的结构和逼近能力而在理论和应用领域都被广泛地研究。但是,传统的单隐层前向网络学习算法,比如基于梯度的方法,可能面临
随着互联网、个人电脑及移动终端的普及,市场对各类软件的需求也与日俱增。由于开发过程中种种偏差,软件代码中总是存在着故障,给软件使用带来了不好的体验甚至安全上的隐患