学位专题

目录>
<

基于密度聚类的多错误定位方法研究

吴永豪
北京化工大学
引用
软件调试包括判断故障来源、分析并修复故障等工作,其中错误语句定位是修复程序故障的重要前提。传统的错误定位需要软件调试人员手工完成,为了降低修复过程中的人力成本,程序错误自动定位方法应运而生。  基于程序谱的错误定位(Spectrum Based Fault Localization,SBFL)是一种重要的自动化错误定位方法,因其轻量性和较高的错误定位精度得以广泛运用和研究。  基于程序谱的错误定位技术的相关研究逐步从单错误故障转向多错误故障,定位精度受到多错误之间的干扰、偶然正确(Coincidental Correct,CC)测试用例等因素影响。现有研究普遍采用聚类的方法降低多错误间产生的干扰。基于聚类的方法认为,理想情况下单个类簇中的所有测试用例失效都是因为单个错误语句导致的,因此将失败测试用例聚成若干类簇,但这种聚类算法通常需要预设聚类结果的类簇数量。除此之外,相关研究已表明,单错误程序中偶然正确测试用例的存在会导致错误定位精度下降,但当前的多错误定位研究中较少考虑此类测试用例对错误定位的影响。  针对上述问题,本课题围绕密度聚类展开多错误定位方法研究,并在此基础上考虑偶然正确测试用例问题。首先,本课题通过实证研究证明多个错误的存在会对基于程序谱错误定位的效果产生负面影响,且在基于并行调试的多错误定位方法中,质量越高的类簇能够实现越高的错误定位效率。基于该实证研究的结论,本课题提出一种单次迭代仅使用质量最高的类簇定位程序中一个错误语句的多错误定位方法。最后,本课题在对多错误故障程序进行错误定位的基础上,进一步识别并处理CC测试用例,进而提高多错误定位的效率。  通过九个真实程序的804个多错误故障版本的实验结果表明,相对于其他多错误定位方法,本课题提出的方法能够取得更好的聚类精度和错误定位效率,并且在该基础上识别并处理偶然正确测试用例,错误定位的效率能够进一步提升。

软件调试;错误定位;密度聚类;偶然正确测试用例

北京化工大学

硕士

计算机科学与技术

李征

2020

中文

TP311.52

2020-11-17(万方平台首次上网日期,不代表论文的发表时间)

相关文献
评论
相关作者
相关机构
打开万方数据APP,体验更流畅