الفهرس | Only 14 pages are availabe for public view |
Abstract Bug localization is considered one of the most difficult activities in the software debugging process. It is also vital to guarantee software reliability. Moreover, manual debugging that is used in detecting faults is becoming more expensive and time-consuming especially when dealing with programs that contain a huge number of lines. Hence, there has been a great demand for bug localization techniques that can pinpoint faults for the developers. Various software fault localization techniques based on graph mining have been proposed in the literature. These techniques rely on detecting frequent sub-graphs between failing and passing traces. However, these approaches may not be applicable when the bug does not appear in a discriminative pattern. On the other hand, there are approaches that focus on selecting potentially faulty program components (statements or predicates) and then ranking these components according to its suspiciousness degree. One of the difficulties encountered by such approaches is to understand the context of fault occurrence, because it considers statements and predicates in isolation. To address these issues, this dissertation introduces an approach that helps in analyzing the context of execution traces based on control flow graphs. The proposed approach is based on ranking edges connecting nodes representing basic blocks in software programs. Ranking is performed using Dstar method that proved to be more effective than many fault localization techniques. The proposed method helps in detecting some types of faults that could not be previously detected by many other approaches. Experiments show the effectiveness of the proposed approach compared to some well-known approaches such as Dstar, Tarantula, SOBER, Cause Transition and Liblit05. For instance, when the percentage of examined code is 30%, the proposed technique can localize nearly 81% of the faulty versions, which outperforms the other four techniques. |