首页> 外文学位 >Hybrid automated fault localization in programs written by novice programmers.
【24h】

Hybrid automated fault localization in programs written by novice programmers.

机译:新手程序员编写的程序中的混合自动故障定位。

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

摘要

Locating errors in a faulty program is a challenging step in diagnosing and understanding programming mistakes. Fault localization is especially time-consuming for teachers and frustrating for students. To promote learning, it is important for teachers to provide constructive feedback to students about their programming mistakes. Unfortunately, teachers often test programs for correct output only. The opportunity for constructive feedback is lost because of the tedious nature of fault localization.; Prior research has shown that static and dynamic program analysis techniques can be used to automate the fault localization process. While existing approaches can be applied to student programs, they are unsatisfactory because they either require too much teacher time and expertise, produce results that are not sufficiently precise, or employ algorithms that work only on trivially small programs.; In this research I invented five hybrid automated fault localization methods that combine relevant slicing, program comparison, and machine learning algorithms to locate faults in Java programs written by novice programmers. Through a detailed quantitative evaluation I showed that the hybrid methods perform with greater precision than existing relevant slicing or program comparison methods. I also demonstrated that correct student-written programs can be used to aid fault localization in incorrect student-written programs, and that programming competitions can provide a vast supply of unbiased programs and data. Finally, I developed the FaultFinder system in Eclipse, which is a collection of program analysis, fault localization, and visualization tools that are based upon this research.
机译:在有故障的程序中定位错误是诊断和理解程序错误中具有挑战性的一步。故障定位对于老师而言特别耗时,而对学生而言则令人沮丧。为了促进学习,教师向学生提供有关编程错误的建设性反馈非常重要。不幸的是,教师经常只测试程序以获得正确的输出。由于故障定位的单调乏味,失去了建设性反馈的机会。先前的研究表明,可以使用静态和动态程序分析技术来使故障定位过程自动化。尽管现有的方法可以应用于学生程序,但它们不令人满意,因为它们要么需要太多的老师时间和专业知识,要么产生的结果不够精确,要么采用仅适用于小程序的算法。在这项研究中,我发明了五种混合的自动故障定位方法,这些方法结合了相关的切片,程序比较和机器学习算法来定位新手程序员编写的Java程序中的故障。通过详细的定量评估,我证明了混合方法比现有的相关切片或程序比较方法具有更高的精度。我还证明了正确的学生编写的程序可以用来帮助错误地编写学生编写的程序中的错误,并且编程竞赛可以提供大量无偏的程序和数据。最后,我在Eclipse中开发了FaultFinder系统,该系统是基于此研究的程序分析,故障定位和可视化工具的集合。

著录项

  • 作者

    Jensen, Peter Anthony.;

  • 作者单位

    The University of Utah.;

  • 授予单位 The University of Utah.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2008
  • 页码 175 p.
  • 总页数 175
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号