数组空指针故障的静态测试方法与实现

来源 :北京邮电大学 | 被引量 : 4次 | 上传用户:lity1021
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,空指针引用故障引发的软件安全问题层出不穷,给软件开发公司及用户带来了极大的困扰,也引起了国内外对之进行故障发现的研究热潮。数组空指针故障是空指针引用故障的一种,也是程序中存在的比较常见的问题,由于它在程序中比较隐蔽,用动态测试方法耗时又耗力且很难达到全面覆盖的效果。本文提出一种基于模型检测及抽象解释理论的数组空指针故障静态测试方法。首先将数组空指针故障进行定义和分类,把它总体分为函数内和函数间的数组空指针故障,然后将数组空指针引用问题抽象为一类故障模型,并以故障模式状态机来形式化描述此类故障模型,为了支持数组空指针故障发现对数组类经典区间域进行了扩展,并通过函数摘要的生成传递与使用支持数组空指针故障的全局分析与检测,最后根据故障状态机的创建条件及待检测代码的语义信息确定是否创建该类型的状态机,并将创建的状态机实例置于控制流图入口节点,根据数据流分析的结果对故障状态进行迭代以检测数组空指针故障。本文提出的方法已在DTSJava (Defects Testing System for Java, Java缺陷检测系统)中应用实现。文章实验部分通过使用未实现本文方法的DTSJava5.0版本与实现了本文方法的DTSJava6.0版的对比以及使用DTSJava6.0与Findbugs, Klockwork K8的实验数据对比,阐明本法的实用和有效性。
其他文献
在高度信息化的年代,视频作为最重要的信息承载媒介之一,日益深入地影响着人类的生产和生活方式。视频数据量的爆炸式增长,对现有信息传输和存储的效能不断地提出更高的要求,
衡量分类器及其学习算法优劣的标准不能简单地采用分类精度等单一指标。现实生活中有大量不平衡数据集,包括样本数量不平衡和分布区域不平衡。在面对高度不平衡数据集时,常规算
随着网络启动技术的蓬勃发展,网络启动的应用也越来越广泛,比如:网吧,学校教学,大型酒店以及一些需要大量计算机的场所。gPXE (Open-source Preboot Execution Environment)作
随着信息技术的快速发展,第三层交换机已成为网络基础设施中常用设备之一。同时伴随第三层交换机等典型的嵌入式系统的不断扩展,嵌入式实时操作系统早已成为嵌入式系统不可分割
论文对信息检索的应用现状和所采用的技术进行了分析,对面向本体的信息检索技术进行了深入研究。针对旅游领域信息检索效率低下的问题,研究并实现了一个基于领域本体的旅游信
随着我国人口老龄化问题的逐步突出,多功能网络监护成为多方关注的焦点。国外监护产品技术先进、测量结果精确,但价格偏高。国内监护产品价格低,但精度不够。这就提出了本课题,应
自WCDMA、CDMA2000、TD-SCDMA等3G网络投入运营以来,移动数据业务得到越来越广泛的应用。同时,运营商也愈加关注如何在一定的无线资源情况下提高网络服务质量,为用户提供更好
基于MapReduce的并行数据挖掘系统可以极大地提高数据挖掘的效率,使数据挖掘系统拥有强运算能力与海量存储能力,并且系统具有良好的计算与存储横向扩展性。与数据挖掘紧密关联
SOA应用生成的核心--流程构建过程,因缺少语义支持而欠缺灵活便捷性,即需要面向语义的多层次的SOA流程生成平台。基于语义网技术的新型服务流程生成平台应运而生。本文首先介
学位