基于Cppcheck软件缺陷模式的研究与定位

来源 :重庆大学 | 被引量 : 0次 | 上传用户:xiao531313486
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着科学技术日新月异的发展和软件规模的不断扩大,软件在各个行业得到了广泛的运用,已经成为生活中不可分割的组成部分。虽然软件经过严格的测试,但是每千行代码中平均仍然有10-20个软件缺陷,所以如何提高软件质量,排除更多的软件故障是研究的主要方向。基于缺陷模式的静态软件缺陷检测技术是近年来发展较快的一种静态源代码分析技术,主要通过提取程序的缺陷模式,然后利用正则表达式来描述软件缺陷模式,最后利用模式匹配算法查找到该类缺陷,从而定位软件缺陷故障。此类缺陷检测由于使用简单和效率高在软件测试中得到了广泛的运用。本文的工作包括如下内容:(1)本文基于缺陷模式的静态开源软件Cppcheck为载体,着重讨论了C/C++语言缺陷缺陷的研究和分类。针对开源软件缺陷检测工具Cppcheck软件存在的不足,主要分析了Cppcheck架构、缺陷模式表示与实现,在对已收集350个缺陷模式分析总结基础上,对其完善,提高缺陷检测能力。(2)针对开源软件Cppcheck误报率和漏报率过高,且不能检测出运行时程序缺陷等问题,本文在基于Cppcheck程序的基础上,提出了抽象区间集算法,并将其应用于数组边界缺陷检测。在Cppcheck框架内,通过引入区间集概念,建立每个程序点变量和表达式的整型区间集和数组区间集,并由此定位出程序中的矛盾点,最终检测出程序缺陷。最后通过将开源软件Cppcheck改进与原始的开源软件Cppcheck的实验进行对比,验证了改进开源软件的有效性。本文通过对开源软件Cppcheck程序进行分析和研究,在其框架内利用分类的C/C++缺陷模式对其进行完善提高检测率,同时针对误报率和漏报率过高提出抽象区间集算法,提高其部分动态缺陷能力的检测。通过实验3.6表明改进的Cppcheck平均查准率达到83%,误报率在10%-17%之间,缺陷检测能力明显提高,同时误报率不高。实验4.7表明改进后的Cppcheck平均检测率相对于Cppcheck检测率高出18.5%,缺陷检测能力明显提高,漏报率降低18.5%。综上所述:Cppcheck缺陷检测能力有很大提高,漏报率降低,取得良好的效果。
其他文献
在现实生活中,人们常常因为拥有相同的出行目的地而组成一个旅客团体共同乘机出行。推断民航旅客团体出行目的是一个非常有趣且有价值的研究问题,因为推断结果能为各个航空公
近些年来电子商务不断发展,产生了很多垂直领域的电子商务,使电子商务的功能更加细分,其中国内用户对于海外电子商务购买的需求渐渐地成长起来,催生了很多相关电子商务系统,淘日网
颜色迁移(color transfer)是图像非真实感绘制和图像编辑的重要技术,既可以实现彩色图像间的颜色迁移,也可以为灰度图像着色。在计算机动画、影视编辑和图像风格化渲染中有重
随着社会的进步和信息技术的发展,特别是在“智慧城市”、“智慧地球”等理念提出后,人们越来越重视智能信息融合系统的开发。通过智能信息融合系统不仅可以达到智能监控的目
基于构件的软件工程(CBSE)由于可实现构件的复用及“即插即用”的特点,大大缩短了软件开发的周期,降低开发及维护的成本,已经成为面向对象软件工程领域的研究热点。同时,随着构件
随着计算机技术和网络技术的不断发展,各种新的媒体信息交换和应用形式已经完全融入了人们的日常工作、生活和娱乐之中,每天都在产生大量的视频数据。在医学领域同样也存在大
随着计算机技术的不断进步,掌纹识别技术已逐渐成为在模式识别、人机交互和机器学习等核心领域中的研究热点之一。掌纹识别具有侵犯性低、成本低、稳定性好等优点,已受到业界
近年来,随着信息技术和数据库技术的迅猛发展,尤其是互联网的广泛应用,需要分析和管理的数据迅速增多。数据挖掘技术便应运而生,聚类分析是数据挖掘领域的重要内容和基本工具
粗糙集理论是一种处理模糊和不确定知识的数学工具,利用已知的知识库,通过上近似算子和下近似算子来近似刻画和处理不精确的知识。它已经被广泛应用于医学、机器学习、决策分析
现在国际上的大口径兼大视场望远镜有美国的Sloan数字巡天望远镜,英澳天文台的2dF巡天望远镜,我国的LAMOST巡天望远镜等。它们将得到海量的光谱数据。通过观测获得恒星的光谱