...
首页> 外文期刊>Journal of Software Engineering Research and Development >On the influence of program constructs on bug localization effectiveness
【24h】

On the influence of program constructs on bug localization effectiveness

机译:程序构造对错误本地化有效性的影响

获取原文
           

摘要

Software projects often reach hundreds or thousands of files. Therefore, manually searching for code elements that should be changed to fix a failure is a difficult task. Static bug localization techniques provide cost-effective means of finding files related to the failure described in a bug report. Structured information retrieval (IR) has been successfully applied by techniques such as BLUiR, BLUiR+, and AmaLgam. However, there are significant shortcomings on how these techniques were evaluated. First, virtually all evaluations have been limited to very few projects written in only one object-oriented programming language, particularly Java. Second, it might be that particular constructs of different programming languages, such as C#, play a role on the effectiveness of bug localization techniques. However, little is known about this phenomenon. Third, the experimental setup for most of the bug localization studies make simplistic assumptions that do not hold on real-world scenarios, thereby raising doubts about the reported effectiveness of existing techniques. In this article, we evaluate BLUiR, BLUiR+, and AmaLgam on 20 C# projects, addressing the aforementioned shortcomings from previous studies. Then, we extend AmaLgam’s algorithm to understand if structured information retrieval can benefit from the use of a wider range of program constructs, including C# constructs inexistent in Java. We also perform an analysis of the influence of program constructs to bug localization effectiveness using Principal Component Analysis (PCA). Our analysis points to Methods and Classes as the constructs that contribute the most to the effectiveness of bug localization. It also reveals a significant contribution from Properties and String literals , constructs not considered in previous studies. Finally, we evaluate the effects of changing the emphasis on particular constructs by making another extension to AmaLgam’s algorithm, enabling the specification of different weights for each construct. Our results show that fine-tuning these weights may increase the effectiveness of bug localization in projects structured with a specific programming language, such as C#.
机译:软件项目通常可以访问数百或数千个文件。因此,手动搜索应更改以修复故障的代码元素是一项艰巨的任务。静态错误本地化技术提供了一种经济高效的方法来查找与错误报告中描述的故障相关的文件。结构化信息检索(IR)已通过BLUiR,BLUiR +和AmaLgam等技术成功应用。但是,如何评估这些技术存在明显的缺陷。首先,几乎所有评估都仅限于用一种面向对象的编程语言(尤其是Java)编写的极少数项目。其次,可能是不同编程语言(例如C#)的特定构造在错误本地化技术的有效性上起作用。但是,对此现象知之甚少。第三,大多数错误本地化研究的实验设置都采用了不符合实际情况的简单假设,从而使人们对现有技术的有效性产生怀疑。在本文中,我们评估了20个C#项目上的BLUiR,BLUiR +和AmaLgam,以解决先前研究中的上述缺点。然后,我们扩展AmaLgam的算法,以了解结构化信息检索是否可以从更广泛的程序结构(包括Java中不存在的C#结构)的使用中受益。我们还使用主成分分析(PCA)对程序结构对bug本地化有效性的影响进行了分析。我们的分析指出方法和类是对错误本地化的有效性贡献最大的结构。它还揭示了“属性”和“字符串文字”的显着贡献,这是以前研究中未考虑的构造。最后,我们通过对AmaLgam算法的另一扩展,评估每种结构的不同权重,来评估改变对特定结构的重视程度的效果。我们的结果表明,对这些权重进行微调可能会提高使用特定编程语言(例如C#)构造的项目中的错误本地化的有效性。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号