学位论文 > 优秀研究生学位论文题录展示

基于程序执行的错误定位方法

作 者: 田志雨
导 师: 张宏
学 校: 南京理工大学
专 业: 计算机应用技术
关键词: 错误定位 自动化调试 程序覆盖信息 软件测试
分类号: TP311.52
类 型: 硕士论文
年 份: 2012年
下 载: 58次
引 用: 0次
阅 读: 论文下载
 

内容摘要


软件调试是软件开发和维护中最为耗时耗力的部分,而其中的错误定位是最为重要且最为困难的。传统的错误定位方法往往是采用手工定位的方法(比如借助于调试工具设置断点),但是这类方法缺点是可能出错的语句的搜索空间巨大,且往往耗费大量的精力和时间。因此目前在错误定位方面的主要研究内容是自动化错误定位,这类方法主要的手段是借助于设计良好的测试用例集,通过对测试结果和程序特征的自动化分析,计算出可能出错语句的集合。基于程序行为特征的自动化错误定位方法一般根据覆盖信息计算出程序语句的可疑度,然后按照可疑度由高到低的顺序逐条检查程序的可疑语句。为了提高定位错误的效率,本文对现有的基于程序行为特征的方法进行改进。首先,通过对目前的自动化错误定位方法的研究对比,给出了几种基于程序执行的错误定位方法:基于测试用例对语句可疑度的贡献随着测试用例数目的增加而降低(简记为贡献率的降低)的思想给出了方法Heuristic1,基于程序执行补集的概念给出Heuristic2和Heuristic3,基于贡献率的降低的思想和Tarantula的思想给出了Heuristic4。其次,给出了一个具有可视化界面的通用的自动化错误定位架构的实现流程,其中的可视化是为了方便调试人员查看可疑的语句。最后,为了验证方法的有效性,本文根据前面给出的流程实现了一个自动化的错误定位工具Visualdebug,采用测试数据集Siemens Suite作为研究对象,将本文提出的方法和现有的几种方法进行比较。实验结果表明,较之于同类思想的方法,Heuristic1方法的效率略有提高,而Heuristic2、Heuristic3和Heuristic4方法表现出60%左右程序只需要检查20%左右的代码。由此可见本文提出的方法在错误定位的效率方面有所提高,即只需要检查更少的语句就能够定位出程序中的错误。

全文目录


摘要  3-4
Abstract  4-7
引言  7-9
1 相关工作  9-21
  1.1 相关定义  9-10
    1.1.1 程序依赖图  9
    1.1.2 数据依赖  9-10
    1.1.3 控制依赖  10
  1.2 基于程序切片的方法  10-13
    1.2.1 数据切片:Data Slicing  11
    1.2.2 全切片:Full Slicing  11-12
    1.2.3 相关切片:Relevant Slicing  12
    1.2.4 几种切片方法的对比和小结  12-13
  1.3 基于程序行为特征对比的方法  13-16
    1.3.1 基于程序语句或程序基本块的方法  14-16
    1.3.2 基于谓词的方法  16
  1.4 基于程序状态修改的方法  16-18
    1.4.1 Delta Debugging  16-18
    1.4.2 Predicate Switching  18
  1.5 本章小结  18-21
2 程序覆盖技术的研究  21-29
  2.1 GCOV  21-27
    2.1.1 如何使用GCOV  21-22
    2.1.2 插桩原理  22-25
    2.1.3 程序异常退出  25-27
  2.2 LCOV  27-28
  2.3 本章小结  28-29
3 基于程序执行的错误定位方法  29-47
  3.1 相关定义  29-30
  3.2 启发式算法  30-36
    3.2.1 启发式的方法1  31-33
    3.2.2 启发式的方法2、3  33-35
    3.2.3 启发式的方法4  35-36
  3.3 可视化  36-38
    3.3.1 源码映射  37
    3.3.2 着色  37
    3.3.3 超链接  37-38
  3.4 系统实现  38-46
    3.4.1 数据采集器  38-41
    3.4.2 特征提取器  41-43
    3.4.3 比较器  43-44
    3.4.4 数据整合/处理器  44-45
    3.4.5 策略集  45
    3.4.6 策略调用/处理器  45-46
    3.4.7 可视化处理器  46
  3.5 本章小结  46-47
4 实验及分析  47-57
  4.1 实验环境  47-49
    4.1.1 实验对象  47
    4.1.2 实验工具  47-49
  4.2 实验方法  49-51
    4.2.1 数据采集  49
    4.2.2 评价标准  49-50
    4.2.3 实验的手段  50-51
  4.3 实验结果和分析  51-56
    4.3.1 Heuristic_1 VS. Wong  51-53
    4.3.2 Heuristic_[2,3] VS. Tarantula  53-54
    4.3.3 Heuristic 4 VS. Tarantula  54-55
    4.3.4 整体比较  55-56
  4.4 本章小结  56-57
5 总结和展望  57-59
  5.1 论文工作总结  57
  5.2 进一步工作  57-59
致谢  59-61
参考文献  61-63

相似论文

  1. 面向对象分层测试的方法研究,TP311.53
  2. 基于形式化UML测试序列生成方法研究,TP311.53
  3. 基于程序切片的电子海图系统软件测试技术研究,TP311.53
  4. 用户权限管理系统可靠性测试的研究与应用,TP311.53
  5. 高职院校教学案例库的创建探究,TP311.53-4
  6. 基于中国电信闪铃系统与平台项目的软件测试,TP311.53
  7. 表面形貌区域法分析评定算法及软件系统研究,TP311.52
  8. 基于Process Engine的Web Services自动化测试研究,TP311.52
  9. 自动化测试在分组传输网管接口测试中的应用,TP311.52
  10. 一个自动化软件测试系统的设计与实现,TP311.53
  11. 基于QTP的SAFFRON自动化测试框架的研究,TP311.52
  12. 电信BOSS系统软件测试,TP311.53
  13. 基于KBC特性及降噪的错误定位技术及其实践,TP311.52
  14. 基于云计算的软件测试服务研究,TP311.53
  15. 电子商务中的在线书店设计与实现,TP311.52
  16. A基地软件检测站测试管理信息系统设计及实施关键问题研究,TP311.52
  17. 智能卡操作系统(COS)的系统测试方法的设计与实现,TP311.52
  18. 基于J2EE的软件测试用例管理系统的设计与实现,TP311.52
  19. 地图管理信息系统的设计与实现,P208
  20. PTN网管的接口自动化测试研究与实施,TP274

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件开发
© 2012 www.xueweilunwen.com