基于模式匹配的代码缺陷检测技术研究

来源 :北京大学 | 被引量 : 0次 | 上传用户:killer258
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
静态缺陷分析在不执行程序的前提下,通过分析受检程序的源代码或目标码,对程序运行时可能表现出的异常行为进行推测,进而发现受检程序中可能存在的缺陷。  基于模式匹配的代码缺陷检测技术是近年来得到广泛使用的静态缺陷分析技术。这类技术主要通过将受检程序代码与预定义的缺陷模式进行匹配以发现程序中的缺陷,一般包括三个主要环节:“缺陷模式的描述与预定义”,“缺陷检测过程”以及“报告优化过程”。已有技术在上述三个环节中均存在一些限制与不足:在缺陷模式的描述方面,现有技术缺乏对不同受检项目缺陷修复偏好与习惯(即缺陷修复过程中频繁涉及到的缺陷模式)的识别,使得其检测过程对实际缺陷修复过程的指导意义不够充分;在缺陷检测过程方面,由于缺陷模式定义的准确度不足,或采用了不太合适的检测算法等原因,已有针对时序型缺陷模式的代码缺陷静态分析工作无法同时兼顾较高的查准率和查全率;在报告优化方面,对于检测结果的排序,已有方法或采用单一指标进行排序,或采用多种指标但未能给出合理设置指标间权重差异的高效方式,从而影响到其排序方法的有效应用和推广。  针对上述不足与限制,本文提出了一系列的相应解决方法,并进行了有效的验证。本文的主要研究工作与创新点包括:  1、时序型缺陷模式标记语言EDPSN  该标记语言支持对时序型缺陷模式进行更为准确(例如支持定义条件式方法调用等)、全面(例如支持声明待定义缺陷模式所需要的缺陷检测过程的相关特征等)的描述和定义。基于该标记语言,既可以对通用缺陷模式进行形式化描述,也可以对自动提取出的项目特定缺陷模式进行形式化描述。  2、基于缺陷修复实例的模式提取方法  通过对缺陷修复实例进行分析,自动提取出受检项目中所蕴含的项目特定缺陷模式。这类缺陷模式比较准确地反映出受检项目的程序员在缺陷修复过程中真正感兴趣并实际修复过的缺陷类型和缺陷相关对象。基于这类缺陷模式,缺陷检测过程便能够聚焦到受检项目真正关心的或真正修复过的缺陷类型和缺陷相关对象上,进而提高其检测结果对受检项目缺陷修复过程的实际指导意义。  3、基于模式匹配的适应性缺陷检测方法  给定任意利用EDPSN所描述出的时序型缺陷模式,该方法支持根据该模式所提供的具体信息自动地找到并执行一个与之较为适应的缺陷检测过程,从而更为有效地发现出受检代码中所潜藏的相应缺陷。该方法还通过前置条件分析算法来收集程序运行过程的运行条件,以支持“条件式代码语句事件”的匹配。  4、基于缺陷修复历史的报告排序方法  通过对代码缺陷修复历史信息进行自动挖掘与应用,提出了一种结合了历史缺陷修复信息的静态缺陷报告排序方法。该方法首先通过对代码缺陷修复历史信息进行自动挖掘,自动地构建出一个用于指导报告排序的训练集,然后,利用机器学习等技术训练出合适的预测器,并指导静态缺陷警告的排序。训练集的构建过程会结合具体项目开发团队的缺陷修复习惯,对指导报告排序的不同指标的权重值进行动态地调整,从而使最终的排序结果能够适应不同团队的缺陷修复需求。  本文所提出的上述解决方法试图在多个维度上(查全率,查准率,报告检查效率等方面)提升现有技术的可用性和有效性。针对上述方法,本文分别通过实验较为充分地评估并验证了各个方法的可行性和有效性。
其他文献
最后几年,Internet的飞速发展已不能用成倍的增长速度来形容,它是以几何级数的速度增长的,而作为Internet技术之一的IP电话新技术,近年来更是对传统的电信技术提出了强有力的
与传统的无线传感器网络相比,可充电无线传感器网络中的节点能够从外界获取能量,从而解决传统传感器节点的能量约束限制问题,有着广阔的发展前景。在众多的能量补充方式中,通过无
移动互联网和社交网络服务的快速发展,为用户分享和传播图片提供了极大的便利,由此产生了丰富海量的图像数据。如何让计算机自动理解这些高维异构的图像数据,获取其语义信息,是近
该文第一章首先阐述了系统的理论基础--客户/服务器模式,分析了传统的电信管理面临的问题和困难,从而提出了基于C/S模式的电信综合管理系统.第二章在分析了目前国内同类研究
该文结在通过对agent理论及其技术的研究,提出一个面向agent的程序设计语言---AOPLID,并讨论了该语言一个原型支持系统的实现.主要研究成果可以总结为如下几个方面 :(1)基于a
图像分割是计算机视觉领域一个最古老,也是研究最广泛的基本问题之一,它是图像分析的重要技术之一,是连接图像处理和图像理解的关键步骤,在整个图像工程中占据很重要的位置。图像
该文系统的论述了利用网络、数据库和地理信息系统等技术手段进行油田图形数据库建设的方法和原理,为油气勘探管理图形和数据提供了一种有效的解决方案,系统的开发过程中采用
排料优化在工业生产中,为节省原材料、降低成本发挥着重要的作用.但由于排料优化问题属于NP完全问题,至今尚未找到有效算法.该文在对多种近似求解NP完全问题技术的民实验基础
该课题的目的正的是研究如何有效地将数据仓库技术应用于公安决策系统中.数据仓库技术是由方法、技术和工具所共同构成的在集成平台上为最终用户提供数据的手段,是多种技术的
该课题的研究目的是建立一个面向MIS领域的软件复用开发环境,并使用UML描述获得的模型和构件,避免复用者与开发者之间可能存在的理解误差.文章首先介绍了专向领域复用技术,然