Font Size: a A A

On effective fault localization in software debugging

Posted on:2009-08-29Degree:Ph.DType:Dissertation
University:The University of Texas at DallasCandidate:Qi, YuFull Text:PDF
GTID:1448390005459073Subject:Computer Science
Abstract/Summary:
Software debugging involves much human intervention in localizing and fixing faults in programs. It can be very complicated and time consuming to find faults using an ad-hoc approach or based only on programmers' intuitive guesswork. Thus, how to effectively find bugs becomes critically important in reducing the cost of software debugging. To this end, we propose three novel fault localization methods to help programmers find bugs in a more effective way. These methods follow a generic fault localization strategy and compute the suspiciousness of each statement using the coverage information with respect to each test case and test result (success and failure). Among these, the crosstab-based statistical method builds a crosstab table for each statement and computes a statistic to determine its suspiciousness value; the cosine similarity-based method computes the suspiciousness of each statement according to the similarity between its coverage vector and the execution result vector; and the heuristic-based method computes the suspiciousness of each statement using the coverage information in failed tests and successful tests.;In the output of each fault localization method, a statement with a higher suspiciousness value has a higher likelihood of containing a bug. The set of statements ranked in descending order by their suspiciousness values are then examined by programmers one by one until a bug is located. Three case studies on different programs (the Siemens suite, the Grep program and the Make program) were conducted with each faulty version having exactly one bug. Our experimental data suggest that our proposed fault localization methods are more effective in locating a program bug (by examining less code before the first fault statement containing the bug is identified) than another popular method, Tarantula, which also uses the coverage and execution results to compute the suspiciousness of each statement. Also, the real applications in case studies demonstrate the practicality of the proposed methods.
Keywords/Search Tags:Fault, Each statement, Suspiciousness, Method, Effective
Related items