Software fault localization with theory of evidence
Software development is a worldwide business that affects almost all aspects of our lives. In the cycle of software development, software debugging is the most time consuming phase and in debugging, the process of locating software faults takes the majority of the time. The process of automating fault localization is a valuable asset to any development of large scale software. The larger an application scales, the more complex it becomes, and the more difficult it becomes to manage and locate faults within the software. Automated software fault localization is used to try to locate a fault with little or no human intervention. In the past, this has been accomplished by analyzing test cases, execution sequences, logical predicates, memory states, and various other methods. This thesis presents a new technique of automated software fault localization that is based on theory of evidence for uncertainty reasoning to estimate likelihoods of faulty locations. The proposed technique is evaluated and compared to the three best-performing methods presently available using a set of benchmark programs in an empirical study. The study compares the methods‟ abilities to reduce the amount of code that needs to be viewed to locate a fault. The results show that the proposed technique performed no worse than these top techniques in 100% of all the program versions in the benchmark set with an average of over 85% of effectiveness measure.