论文部分内容阅读
错误定位是整个软件调试过程中最耗时最困难的部分,错误定位过程中的任何改进都可以大大降低软件成本。传统的错误定位方法一般是利用开发工具手动地设置断点,不但耗费精力,而且效率低下。因此,利用机器学习的理论与技术,使在调试过程中的错误定位实现自动化,是当前研究的重点。基于机器学习的错误定位方法首先是根据选择的测试用例执行得到源程序的语句覆盖信息和执行结果,然后,利用机器学习模型计算出每条语句的可疑度值,最后按照可疑度值由高到低的顺序逐条检查程序的可疑语句进行错误定位。本文在充分分析程序测试用例的覆盖信息基础上,以减少查找错误语句、提高错误定位效率为目的,对一些传统的机器学习模型进行了改进。本文有以下几点创新之处:第一,基于增强径向基函数神经网络的错误定位方法。结合径向基函数神经网络与正交试验设计理论,提出了一种增强径向基函数神经网络错误定位算法,通过正交试验设计方法可以自适应地调整神经网络中的参数值,从而达到优化错误定位模型的目的。第二,基于基因表达式编程的错误定位方法。结合基因表达式编程技术以及基于频谱的错误定位方法,找到适应程序的高效秩函数,提出了一种新的错误定位方法,再利用此高效秩函数去计算出每条语句的可疑度值,提高错误定位效率。第三,基于数据分组处理因果关系的错误定位方法。针对普通因果检验方法只能检验两个变量之间因果关系的不足,从检测多维变量间因果关系的理论出发,提出了一种改进型的因果关系错误定位方法。最后,为了验证所提出机器学习错误定位方法的有效性,本文采用真实的测试数据集Siemens Suite作为研究对象,分别对以上三个模型进行实验性能对比,结果表明,本文所提出的所有错误定位方法较之前的传统方法具有更精确的错误定位效果和更显著的定位效率。