...
首页> 外文期刊>Software Quality Journal >Effective software fault localization using predicted execution results
【24h】

Effective software fault localization using predicted execution results

机译:使用预测的执行结果进行有效的软件故障定位

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

获取外文期刊封面封底 >>

       

摘要

Software has become ubiquitous in our daily lives, and with its increasing functionality and complexity comes a frequently tedious and prolonged debugging process. Of the three activities in program debugging (failure detection, fault localization, and bug fixing), the focus of this paper is on the first, failure detection, under the condition that there is no test oracle that can be used to automatically determine the success or failure of all the executions. More precisely, the outputs for many executions have to be verified manually, or the expected outputs are not even available. We want to determine whether there is a solution to help programmers predict the execution results. How good are these predicted results when they are used to help programmers find the locations of bugs? A framework is proposed to reduce the effort on output verification using a strategy based on the Hamming distance or K-Means clustering to predict results of test executions. Such data and the statement coverage of each test case are used to compute the suspiciousness of each statement according to a fault localization technique and produce a ranking for examination to locate bugs. Case studies using 22 programs and seven fault localization techniques were conducted to evaluate the fault localization effectiveness of the proposed framework on 1203 faulty versions, some of which have a single bug and others with multiple bugs. A discussion on factors that may affect the accuracy of execution result prediction and the resulting fault localization effectiveness is also presented. Our data suggests that, in general, with respect to fault localization techniques using execution results verified against the expected outputs, those using predicted execution results can be even more effective than (by examining a smaller number of statements to locate the first faulty statement) or as good as the former (the verified).
机译:软件已经在我们的日常生活中变得无处不在,并且随着功能的增加和复杂性的增加,经常需要乏味且漫长的调试过程。在程序调试的三个活动(故障检测,故障定位和错误修复)中,本文的重点是第一,即故障检测,条件是没有可用于自动确定成功的测试oracle。或所有执行失败。更准确地说,许多执行的输出必须手动验证,否则甚至无法获得预期的输出。我们要确定是否有解决方案来帮助程序员预测执行结果。当这些预测结果用于帮助程序员查找错误的位置时,它们的效果如何?提出了一种框架,以减少使用基于汉明距离或K-Means聚类的策略来预测测试执行结果的输出验证工作。此类数据和每个测试用例的语句覆盖率用于根据故障定位技术计算每个语句的可疑性,并生成用于检查以查找错误的等级。使用22个程序和7种故障定位技术进行了案例研究,以评估所提出的框架在1203个故障版本上的故障定位有效性,其中一些版本具有单个bug,而其他版本则具有多个bug。还讨论了可能影响执行结果预测的准确性以及所导致的故障定位有效性的因素。我们的数据表明,一般而言,对于使用针对预期输出验证的执行结果的故障定位技术,使用预测的执行结果的故障定位技术可能比(通过检查较少数量的语句来查找第一个故障语句)甚至更有效。和前者一样(已验证)。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号