MASPLAS '07

2007 Mid-Atlantic Student Workshop on Programming Languages and Systems

In cooperation with ACM SIGPLAN

Supported, in part, by IBM and Microsoft Research

Hosted by the Computer Science Department of Loyola College.

Keynote Abstract

Debugging software is an expensive and mostly manual process. Of all debugging activities, locating the faults, or fault localization, is the most expensive. To reduce the time required to locate faults, and thus the expense of debugging, we have developed techniques to automate the process of searching for faults. In this talk, I will present these techniques. First, I will present our general technique that uses information about the execution of a set of test cases--some passing and some failing--to rank parts of the program, such as statements, according to their suspiciousness of being faulty. Next, I will discuss our technique that uses similarities among test cases to cluster the test cases and create specialized test suites that can be used to more efficiently find individual faults and perform the fault-localization of multiple faults in parallel. Finally, I will present the results of two empirical studies. One study evaluates our general technique and shows that it outperforms other techniques that have the same goal. The other study demonstrates that our specialized test suites can reduce the time to find faults and provide an effective way to perform the fault localization in parallel.