论文部分内容阅读
计算机系统的飞速发展给软件提出了更高的要求,如何提高软件质量这一课题的研究越来越得到人们的重视,而软件的可靠性、正确性、安全性等性质是保证软件具有高质量的关键因素。当软件发生故障后,怎样定位软件故障是当今软件故障领域的热点。对故障进行定位是程序诊断的核心问题。当软件失效后,一个模型检查器将自动产生一个反例,这个反例表现出不正常的行为。但是,用户必须确定这个反例是否真的表现出了错误的行为,还是这个反例它仅仅是由于不正确说明文档而引起的。当已知存在故障,隔离和修改系统的故障部分将是一件十分困难的工作。本论文是在研究了已有的相似度量方法和错误解释技术方法之后,定义了一种相似度量标准,该标准是基于数据流差异的,提出了一种基于错误解释的故障定位方法,该方法是基于Groce方法之上的。最后,用一个简单的程序进行故障定位试验,通过对试验结果的分析和比较,表明了特别在定位与数据流有关的程序故障方面,本文所提的故障定位方法能够有效地进行故障定位。本文主要作了以下几部分的研究工作:(1)研究了基于数据流的相似度量标准定义了一种基于数据流差异的相似度量标准,该相似度量标准是用程序间的路径距离来衡量的,本文给出了路径距离的具体算法,并将该算法运用到了基于错误解释的故障定位方法中。(2)基于错误解释的故障定位方法研究在故障定位的前期使用静态切片,提出了基于错误解释的故障定位方法。Groce提出的故障定位方法是在比较反例与最相似成功路径的差异阶段使用动态切片(差异切片),在前期处理的代码量比较多,且需要动态追踪程序的执行历史,其执行代价较高。本文针对以上问题,在前期使用静态切片(K.J.Ottenstein和L.M.Ottenstein的过程内切片),减少了后期处理的代码量,使得解释方法更有针对性。在此基础上,提出了基于错误解释的故障定位方法,该方法能够有效地解决与程序数据流有关的故障。(3)实验结果分析采用本文提出的故障定位方法,以一个具体的C语言程序为例,在本文提出的距离度量算法的基础上,进行了故障定位试验,并进行了实验分析,实验证明该方法在定位与数据流相关的程序故障时精度较高。