BoostNSift:一种用于方法级错误定位的查询提升和代码筛选技术
BoostNSift: A Query Boosting and Code Sifting Technique for Method Level Bug Localization
摘要:
在处理大规模系统时,定位bug是一项重要的任务,但需要大量的精力和时间。为了解决这个问题,信息检索(IR)技术越来越多地被用来建议潜在的错误源代码的位置,给定的错误报告。虽然IR技术是非常可扩展的,但在实践中,它们在准确定位软件系统中的错误方面的有效性仍然很低。实证研究的结果表明,错误定位技术的有效性可以通过配置用于定位错误代码的查询来增强。然而,在大多数基于IR的错误定位技术,研究人员提出,查询的配置的影响没有得到充分考虑。在类似的静脉,技术认为所有的代码元素同样可疑的bug,而本地化的错误,但这并不总是如此either.In本文中,我们提出了一个新的方法级,信息检索为基础的错误本地化技术,称为“BoostNSift”。BoostNSift利用查询中的重要信息,通过“提升”这些信息,然后“筛选”已识别的代码元素,基于一种新技术,该技术强调代码元素与bug报告的特定相关性,而不是与所有bug报告的一般相关性。为了评估BoostNSift的性能,我们采用了一种最先进的经验设计,该设计通常用于评估基于文件级IR的bug本地化技术:从常用的Eclipse,ANOJ,SWT和ZXing基准中选择6851个bug,并公开用于方法级分析。
英文摘要:
Locating bugs is an important, but effort-intensive and time-consuming task, when dealing with large-scale systems. To address this, Information Retrieval (IR) techniques are increasingly being used to suggest potential buggy source code locations, for given bug reports. While IR techniques are very scalable, in practice their effectiveness in accurately localizing bugs in a software system remains low. Results of empirical studies suggest that the effectiveness of bug localization techniques can be augmented by the configuration of queries used to locate buggy code. However, in most IR-based bug localization techniques, presented by researchers, the impact of the queries' configurations is not fully considered. In a similar vein, techniques consider all code elements as equally suspicious of being buggy while localizing bugs, but this is not always the case either.In this paper, we present a new method-level, information-retrieval-based bug localization technique called ``BoostNSift''. BoostNSift exploits the important information in queries by `boost'ing that information, and then `sift's the identified code elements, based on a novel technique that emphasizes the code elements' specific relatedness to a bug report over its generic relatedness to all bug reports. To evaluate the performance of BoostNSift, we employed a state-of-the-art empirical design that has been commonly used for evaluating file level IR-based bug localization techniques: 6851 bugs are selected from commonly used Eclipse, AspectJ, SWT, and ZXing benchmarks and made openly available for method-level analyses.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。