1 可注入故障类型分析
1.1 软件失效原理分析
1.2 故障注入层次及类型分析
表1 故障注入技术实现机制 |
| 序 号 | 故障注 入层次 | 可注入故障类型 | 实现机制 |
|---|---|---|---|
| 1 | 函数/ 组件集 成层 | 全局变量故障、函数参数故障、应用程序内存溢出、函数参数越界故障、访问受保护内存 | 基于内存扰动的故障注入技术 |
| 2 | 系统资 源访问 层 | 文件找不到、文件不可写、文件不可访问、文件读写错误、进程创建失败、内存分配错误、内存分配延迟 | 基于系统API返回值截获的故障注入技术 |
| 3 | 网络层 | 主机找不到、网络数据读写错误、网络数据读写延迟 |
2 非侵入式故障注入技术
2.1 基于系统API返回值截获的资源类故障注入技术
2.2 基于符号表的内存扰动故障注入技术
3 故障注入工具的设计与实现
3.1 故障注入工具框架设计
3.2 故障注入实例
表2 故障注入试验记录 |
| 序号 | 故障类型 | 触发事件 | 试验步骤 | 试验现象 | ||||
|---|---|---|---|---|---|---|---|---|
| 1 | 文件访问拒绝故障 | startevent:被测程序运行后60s endevent:被测程序运行后120s | 步骤1:被测程序运行后执行文件访问操作,打开test.txt; 步骤2:被测程序运行后60s时执行文件访问操作,打开test.txt; 步骤3:被测程序运行后120s时执行文件访问操作,打开test.txt。 | 第一次:test.txt能够正常打开; 第二次:被测程序提示“文件不可访问”; 第三次:test.txt能够正常打开。 | ||||
| 2 | 以100kbp/s读5M的文件 | startevent:打开本地文件start.txt endevent:打开本地文件end.txt | 步骤1:被测程序运行后,读一个20M的bandwith.doc文件 步骤2:手动打开start.txt;在被测程序中读bandwith.doc文件; 步骤3:手动打开end.txt;在被测程序中读bandwith.doc文件。 | 第一次:打开bandwith.doc的时间约为3s; 第二次:打开bandwith.doc的时间约为54s; 第三次:打开bandwith.doc的时间约为3s。 | ||||
中国指挥与控制学会会刊 