摘要

基于learning-to-rank技术构建频谱错误定位模型,从而实现高效的程序错误定位是当前的研究热点。然而,针对不同的程序和错误类型,如何生成有效的程序频谱特征集来训练错误定位模型,成为了极具挑战的问题。针对该问题,应用mRM R算法生成程序频谱特征集,提出一种learning-to-rank的错误定位新方法。该方法应用基因编程自动生成备选可疑度公式集,并利用mRMR算法从中选取一组公式子集,该子集中的可疑度公式具有与程序错误高相关且彼此之间低相关的特性。利用此可疑度公式子集结合程序频谱计算特征值输入机器学习算法,从而构造错误定位模型。实验结果表明,新方法不仅能够提高基于learning-to-rank错误定位的效率,也优于Naish1、Tarantula等传统SBFL方法。