高效精确的软件缺陷检测方法研究

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:lw4564
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件缺陷检测是计算机科学特别是软件工程相关领域的重要研究工作之一。对于静态检测方法而言,如何在保障准确性的同时改善可扩展性一直以来都是研究的热点问题。本文设计并实现了一个基于传播引擎的高效、精确的缺陷检测框架Minerva,通过对具有不同软件缺陷特征的代码段运用合适开销的缺陷检测方法,在保障准确性的同时改善了可扩展性。  本文的主要贡献如下:  1、提出场景敏感的缺陷检测方法。将程序中所有的潜在错误语句按不同的错误触发状态进行划分,针对不同的错误触发状态,应用不同开销的缺陷检测方法实施检测。  a)提出场景敏感的缺陷检测思想,将不同的错误触发场景作为考虑因素加入到静态缺陷检测方法中。  b)提出在一个程序中应用不同开销不同准确性的缺陷检测方法,例如将路径不敏感分析检测与路径敏感分析检测相结合,以极大化各方法的收益,进而实现在保障准确性的同时改善可扩展性的目标。  2、提出基于编译技术的流敏感、域敏感和上下文敏感的传播引擎框架,通过错误属性格值建模,将软件缺陷检测问题变换为错误属性格值的计算与传播问题。多项式时间的过程内流敏感、域敏感和过程间上下文敏感的错误属性格值计算算法,为提高检测的可扩展性奠定了良好基础。  3、提出两种针对错误检测目标的路径敏感检测策略。通过有效缩小路径敏感分析的输入规模,显著提高了路径敏感检测的可扩展性。策略一对可能触发状态的错误目标实施错误目标制导的程序切片,极大地降低了路径敏感分析的开销。策略二基于可能触发错误目标的危险路径提取及路径可行性判定,实现了极小化输入的路径敏感检测。  4、在开放源码编译器Open64中实现了上述目标的原型系统Minerva。通过应用广泛、程序规模超百万行的实验用例验证,对空指针引用错误、未赋值引用错误、内存泄漏等错误进行实例研究,与先进的路径敏感检测工具Saturn、Clang-SA以及路径不敏感的Splint等工具进行对比,结果表明对于本文实验用例,Minerva不仅在检测时间上具有优势,而且Minerva的误报率均低于各对比系统,并且没有漏报已知错误,实现了在保障准确性的同时改善可扩展性的目标。
其他文献
本文对运动图像增强与网络环境下图像信息跨尺度分析与融合进行了研究。图像增强是指根据特定的需要突出图像中的重要信息,同时减弱以及去除不需要的信息。网络环境下图像信
随着互联网的不断发展,网络大众的视频消费需求不断增加。流媒体技术由于其具有边下载边观看的特点,能够满足用户快速观看视频节目的需求,已成为大众网络视频消费的主要方式。同
三网融合是指电信网、互联网和广播电视网三大网络通过技术改造实现物理层的互联互通,业务层的相互渗透,具体表现为在技术上趋于一致,且都能为用户提供语音、数据、图像等综
无线感知反应网络,由大量具有数据采集、处理、无线通信能力的微型低功耗感知节点及反应节点通过多跳通信的方式组成,协作完成大规模复杂的监测和控制任务。由于无线感知反应
当前人们享受信息化带来的便利的同时也深受海量数据难以管理的困扰,个人文件同步系统的产生和发展为这个问题带来一个比较好的解决办法。这种文件同步系统通过将个人文件夹内
当今社会互联网技术的飞速发展以及与电信网络不断融合的背景下,VOIP技术在互联网中变得也来越重要,网络中对传输语音视频数据的需求在不断增强。互联网的飞速发展加速了互联
近年来新型社交媒体微博客平台高速发展,已经逐渐成为人们分享、获取信息的主要方式。由于微博客平台用户量急剧增多,用户产生的数据总量呈现爆炸式增长,基于这些信息的突发话题
随着以DropBox、EverNote等为代表的云存储服务的兴起与不断发展,云存储平台在存储数据方面的可靠性、易用性使得个人信息正在不断从传统的存储介质向云存储转移,云存储平台正
随着计算机和互联网技术的飞速发展,网络上的多媒体信息呈现爆炸式的增长态势。如何分类和检索这海量的多媒体数据,是人们的迫切需求,也成为亟待解决的问题。基于内容的互联网图
随着社会的不断发展进步,人们已经步入了信息化时代,集成电路设计与工艺制造作为信息产业的基础,对信息化的高速发展发挥着关键性作用。本论文以高性能处理器中的关键模块寄存器