Debugging is a search process to find, understand and fix the root cause of software defects. Can debugging benefit from probabilistic information? We hypothesize that debugging activities can benefit from probabilistic information that capture the statistical dependence of program features and the minor variations of program behavior. This probabilistic information helps to guide the search for the root cause of the bug and provides detailed diagnostic information (such as failure-inducing inputs and method calls leading to the fault). To realize our hypothesis, we propose to improve debugging activities by guiding bug diagnosis using both probabilistic reasoning and program analysis. The main idea is to mine probabilistic information from program executions, then apply these information to construct probabilistic event structures (e.g. probabilistic call graphs) that guides debugging activities such as fault localization and comprehension. The resulting probabilistic model will guide bug diagnosis towards the most likely paths to the root cause of bugs and provide contextual diagnostic information.
Proceedings of the 39th International Conference on Software Engineering Companion