Skip to main content
QUICK REVIEW

[论文解读] Assessing and Comparing Mutation-based Fault Localization Techniques

Thierry Titcheu Chekam, Mike Papadakis|arXiv (Cornell University)|Jul 19, 2016
Software Testing and Debugging Techniques参考文献 30被引用 12
一句话总结

本文在工业规模程序的真实故障上评估并比较了两种基于变异的故障定位技术——Metallaxis 和 MUSE。利用 CoREBench,结果表明 Metallaxis 的表现优于 MUSE,仅需检查 18% 的语句即可定位故障,而 MUSE 需要 37% 的语句;当检查 10 和 25 条语句时,Metallaxis 的故障定位准确率分别达到 50% 和 80%。

ABSTRACT

Recent research demonstrated that mutation-based fault localization techniques are relatively accurate and practical. However, these methods have never been compared and have only been assessed with simple hand-seeded faults. Therefore, their actual practicality is questionable when it comes to real-wold faults. To deal with this limitation we asses and compare the two main mutation-based fault localization methods, named Metallaxis and MUSE, on a set of real-world programs and faults. Our results based on three typical evaluation metrics indicate that mutation-based fault localization methods are relatively accurate and provide relevant information to developers. Overall, our result indicate that Metallaxis and MUSE require 18% and 37% of the program statements to find the sought faults. Additionally, both methods locate 50% and 80% of the studied faults when developers inspect 10 and 25 statements.

研究动机与目标

  • 评估基于变异的故障定位技术在真实故障上的实际有效性,而不仅仅是人工植入的故障。
  • 比较 Metallaxis 和 MUSE 这两种领先的基于变异的故障定位方法在准确率和效率方面的表现。
  • 评估这些技术是否能生成相关且对开发者友好的排序结果,从而在调试过程中保持开发者的兴趣。
  • 为基于变异的方法是否能在真实环境中超越基于谱的分析方法提供实证证据。

提出的方法

  • 采用 CoREBench,即工业级程序中真实故障的基准测试集,来评估故障定位技术。
  • 应用 Metallaxis,其根据在实际故障相关且导致失败的测试用例中被杀死的变异体对语句进行排序。
  • 应用 MUSE,其根据能将失败测试用例变为通过的变异体对语句进行排序,灵感来源于自动化修复技术。
  • 使用三种标准评估指标:在前 k 个语句中的故障定位准确率、前 10 个语句的平均相关性,以及语句检查成本。
  • 对检查 10%、25% 和 100% 语句时的故障定位率进行定量分析,并对排序的相关性进行定性分析。
  • 通过统计检验和对高排名语句的相关性分析,对比两种技术的结果。

实验结果

研究问题

  • RQ1与基于谱的方法相比,Metallaxis 和 MUSE 在定位真实故障方面的有效性如何?
  • RQ2在故障定位准确率和效率方面,Metallaxis 和 MUSE 哪一种技术表现更优?
  • RQ3每种方法排名靠前的语句中,包含实际故障语句的比例有多大?
  • RQ4为了达到较高的故障定位率,Metallaxis 和 MUSE 所需的检查成本(需审查的语句数量)有何差异?
  • RQ5这些方法生成的排序是否足够相关,能够维持开发者在调试过程中的兴趣?

主要发现

  • 当开发者仅检查前 10 个语句时,Metallaxis 可定位 50% 的研究故障,检查前 25 个语句时,定位率提升至 80%。
  • MUSE 需要检查程序中 37% 的语句才能定位相同故障,表明其检查成本显著高于 Metallaxis。
  • Metallaxis 仅需检查 18% 的语句即可定位所有研究故障,而 MUSE 需要 37%,表明 Metallaxis 更具效率。
  • 前 10 个语句的平均相关性为:Metallaxis 28.16%,MUSE 25.88%,意味着在 80% 的故障中,前 10 个语句内至少包含一个相关语句。
  • Metallaxis 的结果准确率是 MUSE 的两倍,且故障定位精度更高,检查成本更低。
  • 两种方法生成的排序均与实际故障高度相关,支持其在真实调试场景中的实际应用价值。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。