Talk
![]() |
Squash those Bugs: Utilizing Testing Information to Find and Fix FaultsJames A. Jones Assistant Professor, Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine |
Abstract
One of the most expensive and time-consuming components of the software debugging process is locating the bugs. To locate bugs, developers must identify statements involved in failures and select suspicious statements that might contain faults. In practice, this localization is done by developers in a tedious and manual way, using only a single execution, targeting only one bug, and having a limited perspective into a large search space.
There are a number of ways, however, that this approach can be improved. First, the manual process of identifying the locations of the bugs can be very time consuming. A technique that can automate, or partially automate, the process can provide significant savings. Second, tools based on this approach lead developers to concentrate their attention locally instead of providing a global view of the software. An approach that provides a developer with a global view of the software, while still giving access to the local view, can provide more useful information. Third, the tools use results of only one execution of the program instead of using information provided by many executions of the program. A tool that provides information about many executions of the program can help the developer understand more complex relationships in the system. Also, by utilizing more executions, an approach can allow multiple bugs to be found. My research addresses these key limitations.
In this talk, I will present my technique and tool, called Tarantula, that can automate bug localization with the use of commonly available dynamic information gathered from test-case executions. I will demonstrate that this technique is both effective and efficient, and is scalable to large programs that potentially contain multiple bugs.
Bio
James A. Jones is interested in improving the quality of software and the efficiency with which it is developed and maintained. To this end, his research interests are in the areas of software analysis, testing, and visualization to enable software developers to fathom the complex internal workings of their software, specifically for finding and fixing software errors.