首页> 外文期刊>Journal of Software Maintenance and Evolution >FaultTracer: a spectrum-based approach to localizing failure-inducing program edits
【24h】

FaultTracer: a spectrum-based approach to localizing failure-inducing program edits

机译:FaultTracer:一种基于频谱的方法来定位引起故障的程序编辑

获取原文
获取原文并翻译 | 示例
           

摘要

Detecting faults in evolving systems is important. Change impact analysis has been shown to be effective for finding faults during software evolution. For example, Chianti represents program edits as atomic changes, selects affected tests, and determines a subset of affecting changes that might have caused test failures. However, the number of affecting changes related to each test failure in practice may still be overwhelming for manual inspection. In this paper, we present a novel approach, FAULTTRACER, which ranks program edits according to their suspiciousness to reduce developer effort in manually inspecting affecting changes. FaultTracer adapts spectrum-based fault localization techniques, which assume the statements that are primarily executed by failed tests are more suspicious, and applies them in tandem with an enhanced change impact analysis to identify failure-inducing edits more precisely. We conducted an experimental study using 23 real versions of four real-world Java programs from the Software Infrastructure Repository. The experimental results show that FaultTracer localizes a real regression fault within top three atomic changes for 14 out of 22 studied real failures. When ranking only method-level changes, compared to the existing ranking heuristic, FAULTTRACER reduces the number of changes to be manually inspected by more than 50% on the data set of real regression faults, and by more than 60% on the data set of seeded faults. The fault localization component of FAULTTRACER is 80% more effective than traditional spectrum-based fault localization, and enables similar benefits when using either our enhanced change impact analysis or Chianti. The runtime overhead for FaultTracer to collect extended call graphs is 49.83 s for each subject on average and is only 8.26% more than that for Chianti to collect traditional call graph information.
机译:在不断发展的系统中检测故障很重要。变更影响分析已被证明可有效地发现软件演进过程中的错误。例如,Chianti将程序编辑表示为原子更改,选择受影响的测试,并确定可能导致测试失败的影响更改的子集。但是,在实践中,与每个测试失败相关的影响变化的数量对于手动检查而言仍然可能不胜枚举。在本文中,我们提出了一种新颖的方法FAULTTRACER,它根据程序编辑的可疑程度对其进行排名,以减少开发人员手动检查影响更改的工作量。 FaultTracer采用基于频谱的故障定位技术,该技术假定主要由失败的测试执行的语句更可疑,并将它们与增强的变更影响分析一起应用,以更精确地识别导致失败的编辑。我们使用来自软件基础结构存储库的四个实际Java程序的23个真实版本进行了实验研究。实验结果表明,FaultTracer在22个已研究的真实故障中的14个中,将真实回归故障定位在前三个原子变化内。当仅对方法级别的更改进行排名时,与现有的排名试探法相比,FAULTTRACER减少了要对实际回归故障的数据集进行手动检查的更改数量,减少了50%以上,而对进行故障检查的数据集则减少了60%以上。种子故障。与传统的基于频谱的故障定位相比,FAULTTRACER的故障定位组件的效率提高了80%,并且在使用我们的增强型变更影响分析或Chianti时可实现类似的好处。 FaultTracer收集每个主题的扩展运行图的运行时间平均为49.83 s,仅比Chianti收集传统调用图信息的运行时间高8.26%。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号