Abstract
In software development and maintenance, locating faults is generally a complex and time-consuming process. In order to effectively identify the locations of program faults, several approaches have been proposed. Similarity-aware fault localization (SAFL) is a testing based fault localization method that utilizes the testing information to calculate the suspicion probability of each statement. And dicing is another method that we use to compete. In this thesis, our approach method focuses on predicates and their influence instead of statements in traditional SAFL. It uses fuzzy theory, matrix calculating, and some probability computing. Then it detects the importance of each predicate. Thus programs will have more test data for us to analyze the fault locations. Furthermore, programmers will gain important information about the program. They can use this information to maintain their program. In order to speed up the efficiency, we also simplified the program. Then we performed an experimental study for several programs, together with another two testing based fault localization (TBFL) approaches. The discussion of how different conditions such as line of code, suspicious code coverage, and execution time of these three methods are shown. Our experimental results show that the method helps in decreasing the number of codes which have more probability of suspicion than real bugs.