Locating faults is one of the (if not the) most expensive tasks in software
development. Given the complexity of software systems, identifying a fault is
like searching for a needle in a haystack. This project explores a general
approach that will aid programmers in locating faults in software systems. The
goal is to develop a methodology for pinpointing at the exact fault locations
in a program, based on evidences collected from program executions. This
project can greatly reduce software development cost. More broadly, this
project can advance the scientific knowledge of fault localization in general.
Advances that aid programmer in debugging will also make computer science
education more accessible to the public.
The project explores novel techniques for general, precise and accurate fault
localization. The new method is applicable to various representations of
program execution with different granularities, using a novel execution trace
model. Based on probabilistic inference, it accurately pinpoints at the most
likely fault locations in a program, rather than reporting every location that
might contribute to a failure, or reporting a code fragment that is highly
correlated with failures. The practicality of this approach will be
demonstrated on complex real-world systems.
|Effective start/end date||3/15/16 → 2/28/19|
- National Science Foundation: $175,000.00