首页> 外文学位 >On effective fault localization in software debugging.
【24h】

On effective fault localization in software debugging.

机译:关于软件调试中有效的故障定位。

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

摘要

Software debugging involves much human intervention in localizing and fixing faults in programs. It can be very complicated and time consuming to find faults using an ad-hoc approach or based only on programmers' intuitive guesswork. Thus, how to effectively find bugs becomes critically important in reducing the cost of software debugging. To this end, we propose three novel fault localization methods to help programmers find bugs in a more effective way. These methods follow a generic fault localization strategy and compute the suspiciousness of each statement using the coverage information with respect to each test case and test result (success and failure). Among these, the crosstab-based statistical method builds a crosstab table for each statement and computes a statistic to determine its suspiciousness value; the cosine similarity-based method computes the suspiciousness of each statement according to the similarity between its coverage vector and the execution result vector; and the heuristic-based method computes the suspiciousness of each statement using the coverage information in failed tests and successful tests.;In the output of each fault localization method, a statement with a higher suspiciousness value has a higher likelihood of containing a bug. The set of statements ranked in descending order by their suspiciousness values are then examined by programmers one by one until a bug is located. Three case studies on different programs (the Siemens suite, the Grep program and the Make program) were conducted with each faulty version having exactly one bug. Our experimental data suggest that our proposed fault localization methods are more effective in locating a program bug (by examining less code before the first fault statement containing the bug is identified) than another popular method, Tarantula, which also uses the coverage and execution results to compute the suspiciousness of each statement. Also, the real applications in case studies demonstrate the practicality of the proposed methods.
机译:软件调试涉及大量的人为干预,以定位和修复程序中的错误。使用临时方法或仅基于程序员的直观猜测来发现故障可能非常复杂且耗时。因此,如何有效地发现错误对于降低软件调试成本至关重要。为此,我们提出了三种新颖的故障定位方法,以帮助程序员更有效地发现错误。这些方法遵循通用的故障定位策略,并使用关于每个测试用例和测试结果(成功与失败)的覆盖率信息来计算每个语句的可疑性。其中,基于交叉表的统计方法为每个语句构建一个交叉表表,并计算统计信息以确定其可疑值。基于余弦相似度的方法根据其覆盖向量与执行结果向量之间的相似度来计算每个语句的可疑度。在每个故障定位方法的输出中,具有较高可疑性值的语句包含错误的可能性较高。然后,由程序员按其可疑度值降序排列的语句集将由程序员逐个检查,直到找到错误为止。对不同程序(西门子套件,Grep程序和Make程序)进行了三个案例研究,每个错误版本都有一个错误。我们的实验数据表明,与另一种流行的方法Tarantula相比,我们提出的故障定位方法在查找程序错误方面更有效(通过在确定包含该错误的第一条错误语句之前检查更少的代码),该方法也使用覆盖率和执行结果来计算每个语句的可疑性。此外,案例研究中的实际应用证明了所提出方法的实用性。

著录项

  • 作者

    Qi, Yu.;

  • 作者单位

    The University of Texas at Dallas.;

  • 授予单位 The University of Texas at Dallas.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2008
  • 页码 130 p.
  • 总页数 130
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 康复医学;
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号