Font Size: a A A

Hybrid automated fault localization in programs written by novice programmers

Posted on:2009-04-01Degree:Ph.DType:Dissertation
University:The University of UtahCandidate:Jensen, Peter AnthonyFull Text:PDF
GTID:1448390002491451Subject:Computer Science
Abstract/Summary:
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.
Keywords/Search Tags:Fault localization, Program
Related items