Font Size: a A A

Fault Localization Method Based On Difference Comparison And Its Improvement

Posted on:2011-07-02Degree:MasterType:Thesis
Country:ChinaCandidate:L N HongFull Text:PDF
GTID:2178360302499238Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Software fault localization with the goal to locate fault in program quickly and correctly is a complex and time-consuming process. Testing-based fault localization (TBFL) localizes program errors (or faults) by using testing coverage information. TBFL can be divided into distance measures-based and characteristic statistics-based methods. Distance measures-based method calculates the minimal difference between failing run and successful runs for fault location, while the position of the fault may not be in the minimal difference but in other differences, also this method doesn not rank suspicious codes in terms of their likelihood of being faulty. In contrast, feature-based statistical method locates faults through analyzing statistical information of dynamic program behaviors, which ranks the suspicious codes but the ranking metrics are sometimes subject to the quality of test cases. Most of the research works in TBFL require a large amount of failing runs and successful runs. Those required execution data inevitably contain a large number of redundant execution paths, and thus leads to a lower efficiency and accuracy of locating.To tackle these problems, we propose a runs reduction algorithm on the basis of control flow alignment, then propose an improved fault localization method based on statistical differences between reduced runs. To do so, we first cluster all successful runs and failing runs respectively in order to eliminate run redundancy, then calculate the differences between each class of successful runs and each class of failing runs, and finally return bug reports through statistical analysis of these differences. We not only rank suspicious codes by their likelihood of being faulty, but also rank some unsuspicious codes according to their possibilities of not containing the bug. The experimental results show that our algorithm performs significantly better than competitors when there are branch errors in programs, and also makes a good effect on other error types. Our algorithm greatly improved the efficiency and accuracy of fault localization, and can help the user find errors quickly and correctly.
Keywords/Search Tags:Automated Debugging, Fault Localization, Statiscal Debugging, Clustering, Reduced Runs
PDF Full Text Request
Related items