| 摘要 | 第4-6页 |
| ABSTRACT | 第6-7页 |
| 1 绪论 | 第10-17页 |
| 1.1 研究背景及意义 | 第10-11页 |
| 1.2 国内外研究现状 | 第11-14页 |
| 1.2.1 项目内基于变更的缺陷预测 | 第11-12页 |
| 1.2.2 跨项目的缺陷预测 | 第12-14页 |
| 1.3 论文的主要工作 | 第14-15页 |
| 1.4 论文的组织结构 | 第15-17页 |
| 2 相关理论和技术 | 第17-24页 |
| 2.1 基于抽象语法树的变更抽取算法 | 第17-18页 |
| 2.1.1 抽象语法树建模 | 第17页 |
| 2.1.2 changedistiller算法 | 第17-18页 |
| 2.2 数据挖掘中的分类技术 | 第18-20页 |
| 2.2.1 分类方法 | 第18-19页 |
| 2.2.2 常见的分类器 | 第19-20页 |
| 2.3 基于分类器的缺陷预测 | 第20-21页 |
| 2.3.1 代码变更分类 | 第20-21页 |
| 2.3.2 特征值选取 | 第21页 |
| 2.4 Transfer Component Analysis (TCA)方法 | 第21-23页 |
| 2.5 本章小结 | 第23-24页 |
| 3 基于细粒度代码变更的缺陷预测方法 | 第24-31页 |
| 3.1 基于细粒度变更的缺陷预测 | 第24-28页 |
| 3.1.1 细粒度变更实体切分 | 第24页 |
| 3.1.2 实体变更分类 | 第24-25页 |
| 3.1.3 特征值选取 | 第25-26页 |
| 3.1.4 缺陷预测流程 | 第26-28页 |
| 3.2 基于细粒度变更的特征值选择 | 第28-30页 |
| 3.2.1 特征过滤和包装筛选 | 第28-29页 |
| 3.2.2 特征值选择算法 | 第29-30页 |
| 3.3 本章小结 | 第30-31页 |
| 4 基于迁移学习的跨项目缺陷预测 | 第31-41页 |
| 4.1 数据预处理 | 第31-34页 |
| 4.2 基于迁移学习的缺陷预测理论 | 第34-37页 |
| 4.3 类别不平衡处理 | 第37-38页 |
| 4.4 缺陷预测流程 | 第38-40页 |
| 4.5 本章小结 | 第40-41页 |
| 5 实验验证及分析 | 第41-52页 |
| 5.1 实验数据集 | 第41-42页 |
| 5.2 实验步骤 | 第42-46页 |
| 5.2.1 变更采集和类别标记 | 第42-43页 |
| 5.2.2 特征值选取 | 第43-44页 |
| 5.2.3 特征值选择方法 | 第44页 |
| 5.2.4 归一化选择 | 第44-45页 |
| 5.2.5 基于迁移学习的缺陷预测 | 第45页 |
| 5.2.6 类别不平衡处理 | 第45页 |
| 5.2.7 跨项目的分类器的训练和验证 | 第45-46页 |
| 5.3 实验结果与评估 | 第46-51页 |
| 5.3.1 评估标准 | 第46-48页 |
| 5.3.2 评估结果及分析 | 第48-51页 |
| 5.4 本章小结 | 第51-52页 |
| 6 总结与展望 | 第52-54页 |
| 6.1 总结 | 第52页 |
| 6.2 进一步的工作 | 第52-54页 |
| 参考文献 | 第54-57页 |
| 攻读硕士学位期间学术成果 | 第57-58页 |
| 致谢 | 第58-59页 |