面向C语言的符号执行引擎设计与实现
摘要 | 第5-6页 |
abstract | 第6-7页 |
第1章 绪论 | 第15-22页 |
1.1 选题背景及意义 | 第15-17页 |
1.2 国内外研究现状分析 | 第17-20页 |
1.3 本文的主要工作 | 第20-21页 |
1.4 本文组织结构 | 第21-22页 |
第2章 相关技术介绍 | 第22-32页 |
2.1 单元测试简介 | 第22-26页 |
2.1.1 覆盖准则 | 第22-23页 |
2.1.2 常见单元测试工具 | 第23-25页 |
2.1.3 单元测试的挑战 | 第25-26页 |
2.2 LLVM编译器基础架构 | 第26-27页 |
2.3 符号执行技术简介 | 第27-30页 |
2.3.1 符号执行示例 | 第28-29页 |
2.3.2 符号执行与测试用例自动生成 | 第29页 |
2.3.3 符号执行的限制 | 第29页 |
2.3.4 动态符号执行框架KLEE | 第29-30页 |
2.4 Z3定理证明器 | 第30-31页 |
2.5 本章小结 | 第31-32页 |
第3章 符号执行引擎框架设计 | 第32-73页 |
3.1 需求简述 | 第32-33页 |
3.2 技术难点 | 第33-36页 |
3.2.1 C代码解析处理问题 | 第33-34页 |
3.2.2 类型系统构建问题 | 第34-35页 |
3.2.3 开发测试平台的差异性问题 | 第35-36页 |
3.3 符号执行引擎整体架构 | 第36-55页 |
3.3.1 整体架构设计 | 第36-38页 |
3.3.2 符号类型系统 | 第38-43页 |
3.3.3 C代码预处理与解析 | 第43-48页 |
3.3.4 符号执行内核 | 第48-55页 |
3.4 测试用例生成与统计 | 第55-56页 |
3.5 符号执行引擎算法设计 | 第56-68页 |
3.5.1 设计原则 | 第56-57页 |
3.5.2 类型内存系统构建算法 | 第57-59页 |
3.5.3 洪水搜索算法 | 第59-63页 |
3.5.4 MC/DC覆盖率统计算法 | 第63-68页 |
3.6 单元测试自动化工具框架设计 | 第68-71页 |
3.7 私有云测试平台架构设计 | 第71-72页 |
3.8 本章小结 | 第72-73页 |
第4章 符号执行引擎具体实现 | 第73-83页 |
4.1 开发环境 | 第73-74页 |
4.1.1 环境搭建 | 第73-74页 |
4.2 预处理与解析模块实现 | 第74-77页 |
4.3 符号执行内核模块实现 | 第77-81页 |
4.4 约束求解与用例统计模块实现 | 第81-82页 |
4.5 本章小结 | 第82-83页 |
第5章 单元测试自动化工具的实验与评估 | 第83-92页 |
5.1 实验环境与评估基准 | 第83-85页 |
5.2 实验结果与分析 | 第85-91页 |
5.3 本章小结 | 第91-92页 |
第6章 总结与展望 | 第92-94页 |
6.1 本文的总结 | 第92-93页 |
6.2 未来可研究方向 | 第93-94页 |
参考文献 | 第94-98页 |
攻读硕士学位期间科研成果 | 第98-99页 |
致谢 | 第99页 |