基于因果推理与聚类分析的软件错误定位

来源 :中国矿业大学(江苏) 中国矿业大学 | 被引量 : 0次 | 上传用户:vertra
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序调试是保障软件系统可靠性的重要手段。针对软件测试时检测到的错误,程序调试要求开发人员在充分理解软件系统结构和功能需求的基础上,能够高效地定位错误位置,并开展修复工作。然而,错误定位并不是一项简单的工作:错误状态在语句间、方法间、模块间、系统间不断地传播,由此使得最终的错误结果与最初的错误状态存在很大的差异,开发人员很难直接发现错误位置。与此同时,软件技术的不断进步以及软件需求的不断增加使得当前软件系统的代码规模、功能、逻辑复杂度需求不断增高,更是增加了开发人员的程序调试工作量和错误定位难度。因此,当前迫切需要高效自动化错误定位方法的支持,来帮助开发人员缩小错误范围、获取指导信息,从而提高程序调试以及软件开发的效率。  软件错误定位可以理解为针对程序执行失败这一现象寻找引发该现象原因的因果推理过程。由于软件错误定位本身所具有的现实意义,研究人员对其进行了广泛而深入的研究,并提出了多种理论分析与错误定位方法。然而,现有方法在实践中还存在一定的不足,主要表现为:(1)定位结果不准确。现有方法在可疑度度量时较少考虑混杂偏倚因素的影响,因此度量结果会因受到混杂偏倚而不准确;(2)实践应用性不强。现有方法在实证研究中可以取得较好的错误定位效果,而在实践中会因诸多不确定因素(如多错误问题、程序遗漏错误)造成错误定位效果不佳;(3)时间代价较高。现有方法通常需要耗费大量时间来收集测试信息、判断程序执行结果,因此带来较高的时间代价。为了弥补这些不足、提高软件错误定位的有效性,本文针对上述问题进行了研究,具体研究内容如下:  (1)提出一种基于因果推理的软件错误定位方法,并通过实证研究验证了该方法可以有效减少软件错误定位代价。本部分首先基于因果推理分析了混杂偏倚对谓词可疑度度量的负面影响,其次通过后门准则识别出度量过程中的数据依赖混杂偏倚元素与控制依赖混杂偏倚元素,最后应用线性回归消除了这两类混杂偏倚元素所带来的负面影响,从而生成准确的谓词可疑度度量结果。此外,本部分还提出了基于变量类型的谓词筛选方法来识别错误相关谓词,以及静态切片与动态约简相结合的谓词信息收集方法来提高谓词信息的收集效率。实验结果表明:本文方法可以更快地收集谓词信息、有效地提高软件错误定位的精度。  (2)提出一种基于参数-值替换的软件错误定位方法,并通过实证研究验证了该方法适用于程序遗漏错误定位。本部分首先分析现有错误定位方法在定位程序遗漏错误时的局限性,其次根据方法参数在成功执行和失败执行中的取值差异来度量方法对程序执行结果的影响,并针对高影响方法在一次失败执行中进行参数-值替换以进一步分析方法的可疑度,最终依据方法所属类别生成一个方法检查序列来指导开发人员进一步确定错误位置。此外,还通过多线程等技术进一步提高了参数-值替换效率。实验结果表明:程序遗漏错误较为普遍;本文方法较其它方法错误定位效果更佳、稳定性更好。  (3)对错误与错误间的干扰现象进行了理论研究,同时分析了错误干扰对SBFL方法错误定位有效性的影响。本部分主要包括两个研究内容:(a)错误干扰的定义;(b)错误干扰对SBFL方法的影响。对于问题(a),首先在PIE模型的基础上构建一个适于描述多错误程序的E-IP模型,在此基础上,根据单错误程序及多错误程序的模型差异定义两类错误干扰:E-IPI干扰和RI干扰。对于问题(b),首先根据语句在不同执行中的覆盖频次将程序分为9个互斥子集MES,并根据特定的SBFL方法分析MES元素间的检查优先次序。在此基础上,通过错误受到干扰前后在MES中的分布变化来研究错误干扰对SBFL方法的影响。研究结果表明:多数情况下,错误干扰对SBFL方法的错误定位有效性存在负面影响。  (4)提出一种基于FCM聚类的软件多错误定位方法,并通过实证研究验证了该方法在多错误程序上具有更好的错误定位效果。本部分在前一部分的基础上开展多错误定位研究工作,首先分析了与特定错误无关的失败测试用例集对软件错误定位的负面影响,其次通过聚类分析识别与每个错误相关的失败测试用例集。由于某些失败是由多个错误共同引发的,本文选择了FCM方法进行软聚类,以避免这些失败测试用例被强制划归到某个类别中。最后基于测试用例隶属度矩阵来度量语句可疑度并生成语句检查序列。实验结果表明:本文方法可以有效降低错误干扰的负面影响,提高SBFL方法在多错误程序中的错误定位有效性。  (5)提出一种基于距离度量的测试用例约简方法,并通过实证研究验证了该方法可以有效减少软件错误定位时间。本部分首先分析了测试用例执行及覆盖信息收集对软件错误定位效率带来的负面影响,其次总结了适合于软件错误定位的测试用例集应当满足的三个测试需求(基于执行结果的测试需求、基于语句覆盖的测试需求以及基于代码分割的测试需求),最后通过测试用例自身差异(如字符串差异、功能性差异)来构建测试用例距离矩阵,并以此为基础,应用贪心算法来选择满足错误定位需求的测试用例子集,从而在无需收集完整测试信息的前提下完成测试用例的约简工作。实验结果表明:本文方法不仅可以有效约简测试用例集的规模、减少软件错误定位的时间,同时可以保持原测试用例集的错误定位效果。  综上所述,本文提出了基于因果推理与聚类分析的软件错误定位方法,为提高软件错误定位的精度和效率、定位多错误和程序遗漏错误的有效性等关键科学问题提供了一种新思路和新方法。
其他文献
随着政府部门政务信息化程度的进一步提升,大量的信息开始以电子数据的形式存储起来,并被信息系统统一管理。但大量的文本信息仍以文档的形式被使用,文档中大部分的信息未能被深
随着信息技术的发展,数据流模型已成为诸多应用的常用模型,其固有特点也致使传统聚类算法在此模型上面临严峻挑战。其次,一系列数据流聚类算法虽相继被提出,但仍存在诸多不足,如现
随着计算机网络的发展,在当今的社会中计算机网络已经被广泛的应用到我们的各个领域中,像工业领域,科研机构,政府部门,金融经济都有各自特定的网络,甚至于整个普通的社会群体生活也
有线网中广泛使用的传输层协议应用于MANET等无线网络时,其性能问题是亟待解决的一个关键问题,为了解决该问题,研究者提出了链路层ARQ、分段连接、显示拥塞通知、基于网络状态的
随着以互联网为基础的各种大规模开放应用系统(如普适计算、云技术、P2P计算和Web服务等)的相继出现和应用,信任管理的研究逐渐成为信息安全研究领域中的热点。开放系统中的信
复杂系统是现实世界的重要组成部分,复杂网络是对复杂系统的抽象。研究并发掘复杂网络的性质可以帮助人们更好的理解复杂系统。随着社会的网络化以及计算机技术的不断发展,人们
为了提高基于P2P网络的匿名通信技术中通道的稳定性,本文在P2P网络和Mix系统的基础上,提出了信誉度评价的改进方法,建立一套基于信誉度的P2P匿名通信模型,并建立了匿名通信原型系
随着社会发展、科技进步和社会对气象预报服务需求的增加,对天气预测的准确度和精细化程度要求越来越高。集成预报是把不同预报方法对同一要素的多种预报结果综合在一起,从而
不确定规划是目前人工智能研究领域的一个热点问题。基于模型检测的方法在处理许多实际的不确定规划问题上有很大的优势。在完全可观察(或部分可观察)条件下,对可达性目标作规划
近些年来,随着互联网技术及P2P技术的发展,基于P2P技术的VoD系统由于可以让用户根据自己的兴趣选择在视频的任何时刻进行观看得到了迅猛的发展。P2P网络中交互式视频点播的关键