摘要 | 第10-13页 |
Abstract | 第13-15页 |
第一章 绪论 | 第16-27页 |
1.1 研究背景 | 第16-19页 |
1.1.1 软件缺陷的影响 | 第16-17页 |
1.1.2 应对方法及所面临的挑战 | 第17-19页 |
1.2 软件自动调试技术 | 第19-23页 |
1.2.1 缺陷定位 | 第19-20页 |
1.2.2 补丁生成 | 第20-21页 |
1.2.3 补丁验证 | 第21-22页 |
1.2.4 现有工作的分析和总结 | 第22-23页 |
1.3 主要研究内容及主要贡献 | 第23-25页 |
1.3.1 研究内容 | 第23页 |
1.3.2 主要贡献 | 第23-25页 |
1.4 论文组织结构 | 第25-27页 |
第二章 缺陷定位及自动修复研究现状 | 第27-41页 |
2.1 发展脉络 | 第27-28页 |
2.2 基本概念与原理 | 第28-30页 |
2.3 缺陷定位技术国内外研究现状 | 第30-35页 |
2.3.1 基于程序依赖关系的定位技术 | 第31页 |
2.3.2 基于统计的定位技术 | 第31-33页 |
2.3.3 基于程序状态修改的定位技术 | 第33-34页 |
2.3.4 其他缺陷定位技术 | 第34-35页 |
2.3.5 现状总结 | 第35页 |
2.4 自动化程序修复技术国内外研究现状 | 第35-40页 |
2.4.1 基于代码穷举的自动修复技术 | 第36页 |
2.4.2 基于搜索的自动修复技术 | 第36-38页 |
2.4.3 基于约束求解的自动修复技术 | 第38-39页 |
2.4.4 现状总结 | 第39-40页 |
2.5 本章小结 | 第40-41页 |
第页第三章 程序自动修复效果分析 | 第41-60页 |
3.1 引言 | 第41-43页 |
3.2 研究问题 | 第43-44页 |
3.3 传播链及错误传播链 | 第44-49页 |
3.4 实验设计 | 第49-54页 |
3.4.1 实验评估框架 | 第49-50页 |
3.4.2 实验对象选择 | 第50-51页 |
3.4.3 实验数据收集 | 第51-52页 |
3.4.4 收集数据的处理 | 第52-54页 |
3.5 实验结果及分析 | 第54-59页 |
3.5.1 现有自动修复工具的修复效果分析 | 第54-56页 |
3.5.2 缺陷的复杂程度对修复效果的影响 | 第56-59页 |
3.6 本章小结 | 第59-60页 |
第四章 基于测试用例聚类的缺陷定位优化技术 | 第60-76页 |
4.1 引言 | 第60-61页 |
4.2 巧合正确现象 | 第61-67页 |
4.2.1 基于程序谱的缺陷定位技术(SFL) | 第61-64页 |
4.2.2 巧合正确问题对SFL技术定位精度的影响 | 第64页 |
4.2.3 现有的对巧合正确问题的研究 | 第64-65页 |
4.2.4 研究动机 | 第65-67页 |
4.3 通过测试用例聚类来削弱巧合正确问题的影响 | 第67-70页 |
4.3.1 执行轨迹收集 | 第67-68页 |
4.3.2 测试用例聚类 | 第68-69页 |
4.3.3 输入矩阵重构 | 第69页 |
4.3.4 基于重构输入矩阵的缺陷定位 | 第69-70页 |
4.4 实验设置及结果分析 | 第70-75页 |
4.4.1 实验设置 | 第70-71页 |
4.4.2 评估方法 | 第71页 |
4.4.3 实验结果及分析 | 第71-75页 |
4.5 本章小结 | 第75-76页 |
第五章 基于可疑代码集过滤的程序自动修复技术 | 第76-94页 |
5.1 引言 | 第76-78页 |
5.2 Gen Prog的修复机制及其不足 | 第78-80页 |
5.3 基于SFL的可疑代码集过滤方法 | 第80-84页 |
5.3.1 过滤算法 | 第82-83页 |
5.3.2 实现框架 | 第83-84页 |
5.3.3 评估测量 | 第84页 |
5.4 实验设置 | 第84-87页 |
5.4.1 基准程序 | 第84-85页 |
5.4.2 选择SFL可疑度评估公式 | 第85-86页 |
5.4.3 研究问题 | 第86-87页 |
5.4.4 实验设置 | 第87页 |
5.5 实验结果及分析 | 第87-93页 |
5.5.1 统计分析 | 第87-89页 |
5.5.2 各个修复工具修复结果分析 | 第89-92页 |
5.5.3 SFL方法对Gen Prog-SC的影响分析 | 第92-93页 |
5.6 本章小结 | 第93-94页 |
第六章 基于测试用例分组的迭代修复技术 | 第94-111页 |
6.1 引言 | 第94-96页 |
6.2 复杂缺陷 | 第96-98页 |
6.3 测试用例分组及迭代修复 | 第98-101页 |
6.3.1 综述 | 第98-99页 |
6.3.2 测试用例分组 | 第99页 |
6.3.3 迭代修复 | 第99-101页 |
6.4 实验设置 | 第101-105页 |
6.4.1 修复工具选择 | 第101-103页 |
6.4.2 基准程序 | 第103-104页 |
6.4.3 研究问题 | 第104-105页 |
6.4.4 实验设置 | 第105页 |
6.5 实验结果分析 | 第105-109页 |
6.5.1 总体分析 | 第108页 |
6.5.2 问题1的结论 | 第108页 |
6.5.3 问题2的结论 | 第108页 |
6.5.4 问题3的结论 | 第108-109页 |
6.5.5 对有效性的威胁 | 第109页 |
6.6 本章小结 | 第109-111页 |
第七章 结论与展望 | 第111-115页 |
7.1 工作总结 | 第111-113页 |
7.2 研究展望 | 第113-115页 |
致谢 | 第115-117页 |
参考文献 | 第117-129页 |
作者在学期间取得的学术成果 | 第129-130页 |
作者在学期间参与的科研项目 | 第130页 |