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

CBFT(C++/C Bug Finding Tool)的设计与实现

作 者: 刘玉璇
导 师: 陈俊亮
学 校: 北京邮电大学
专 业: 计算机科学与技术
关键词: 软件测试 静态分析 缺陷模式 抽象语法树 控制流图 符号表
分类号: TP311.52
类 型: 硕士论文
年 份: 2009年
下 载: 103次
引 用: 0次
阅 读: 论文下载
 

内容摘要


随着软件系统的普及,软件测试成为保证软件质量、提高软件可靠性的重要手段。而软件测试的工作量很大,用人工测试几乎难以胜任,在规模迅速扩大的软件系统中,实现高准确度,高效率的测试遇到的困难越来越大。因此在测试过程中引入自动化的思想逐步发展和成熟起来。在软件测试技术中,程序静态分析技术近年来成为自动化测试技术中的一个研究热点,大量的软件测试工具被研制出来从而可以自动地静态检测软件中的故障,并且在对一些大型商业软件和开源软件的测试中发现了大量的以前测试没有发现的软件故障和安全隐患。但其缺陷也随之暴露出来,如误报问题和漏报问题没有得到很好地解决等等。在基于静态分析的自动化测试方法中,寻找针对性强,工具自动化程度高,测试效率高和漏报率低的自动化测试方法,成为一个亟待解决的问题。通过对基于缺陷模式的软件测试方法的研究,在863课题支持下所开发的针对C/C++语言的CBFT工具,可以对软件的缺陷自动进行测试并记录,极大地提高软件的测试效率和软件质量,应用CBFT可大大提高软件的测试效率和软件质量,使软件在开发整体上具有时间的竞争优势。本文系统研究了针对C++,C语言的缺陷模式,提出了缺陷模式的定义和分类,并对其中的漏洞模式进行了详细的总结和定义。同时,本文在调研国内外自动化静态分析工具的基础上,深入研究开源工具JAVACC,借鉴其设计思想,结合访问者模式独立设计并实现了自动化测试工具CBFT的统一测试框架部分,完成了抽象语法树控制流图符号表的生成,此测试框架可以对C++,C语言进行自动化测试,相比于以往检测方法,降低了测试误报率和漏报率,对于软件测试具有重要的意义。

全文目录


摘要  4-5
ABSTRACT  5-9
第一章 绪论  9-13
  1.1 研究背景和意义  9-10
  1.2 主要研究工作  10-11
  1.3 论文组织和结构  11-13
第二章 软件测试技术综述  13-21
  2.1 软件测试概述  13-14
  2.2 软件测试方法  14-17
  2.3 静态测试技术  17-20
    2.3.1 静态分析方法  17-19
    2.3.2 静态测试技术研究现状  19-20
  2.4 本章小结  20-21
第三章 基于缺陷模式的软件测试方法  21-27
  3.1 基于缺陷模式的软件测试方法概述  21-22
  3.2 缺陷模式概述  22-23
  3.3 漏洞模式  23-26
    3.3.1 缓冲区溢出漏洞模型  23-24
    3.3.2 被感染数据漏洞模型  24-25
    3.3.3 竞争条件漏洞模型(竞态条件)  25
    3.3.4 风险操作模型  25-26
  3.4 本章小结  26-27
第四章 CBFT系统综述  27-39
  4.1 核心技术优势  27-29
    4.1.1 区间运算  28
    4.1.2 跨函数分析  28-29
    4.1.3 复杂性约束控制  29
  4.2 系统架构  29-32
  4.3 系统采用工具JavaCC概述  32-37
    4.3.1 JavaCC简介  32
    4.3.2 JJTree概述  32-33
    4.3.3 JavaCC的记号管理器  33-34
    4.3.4 使用JavaCC设计编译器  34-37
  4.4 本章小结  37-39
第五章 CBFT统一测试框架的设计与实现  39-65
  5.1 统一测试流程  39-40
  5.2 CBFT抽象语法树的生成  40-47
    5.2.1 抽象语法树概述  40-42
    5.2.2 抽象语法树生成流程  42-43
    5.2.3 抽象语法树的访问与访问者模式  43-47
  5.3 CBFT控制流图生成单元  47-56
    5.3.1 控制流图概述与方法分析  47-49
    5.3.2 控制流图的数据结构  49-50
    5.3.3 控制流图的生成算法  50-55
    5.3.4 控制流图打印  55-56
  5.4 CBFT符号表生成单元  56-63
    5.4.1 符号表概述  56-57
    5.4.2 符号表数据结构  57-61
    5.4.3 符号表生成算法  61-63
  5.5 本章小结  63-65
第六章 结束语  65-67
  6.1 工作总结  65
  6.2 下一步工作  65-67
参考文献  67-69
致谢  69-71
攻读硕士学位期间已录用学术论文情况  71

相似论文

  1. 面向对象分层测试的方法研究,TP311.53
  2. 基于形式化UML测试序列生成方法研究,TP311.53
  3. 基于程序切片的电子海图系统软件测试技术研究,TP311.53
  4. 用户权限管理系统可靠性测试的研究与应用,TP311.53
  5. 高职院校教学案例库的创建探究,TP311.53-4
  6. C++代码缺陷检测系统的研究与设计,TP311.53
  7. 日本小学音乐科教材分析研究,G623.71
  8. 基于中国电信闪铃系统与平台项目的软件测试,TP311.53
  9. 表面形貌区域法分析评定算法及软件系统研究,TP311.52
  10. 基于Process Engine的Web Services自动化测试研究,TP311.52
  11. 自动化测试在分组传输网管接口测试中的应用,TP311.52
  12. 一个自动化软件测试系统的设计与实现,TP311.53
  13. 基于QTP的SAFFRON自动化测试框架的研究,TP311.52
  14. 电信BOSS系统软件测试,TP311.53
  15. 基于多粒度依赖关系图的变更影响分析方法研究,TP311.53
  16. 基于程序执行的错误定位方法,TP311.52
  17. 基于云计算的软件测试服务研究,TP311.53
  18. 永磁接触器设计及静动态特性分析,TM572.1
  19. 电子商务中的在线书店设计与实现,TP311.52
  20. 基于多样化对象所有权的软件可信性质研究,TP311.52
  21. A基地软件检测站测试管理信息系统设计及实施关键问题研究,TP311.52

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