Combining Slicing and Constraint Solving for Better Debugging: The CONBAS Approach
Author(s) -
Birgit Hofer,
Franz Wotawa
Publication year - 2012
Publication title -
advances in software engineering
Language(s) - English
Resource type - Journals
eISSN - 1687-8663
pISSN - 1687-8655
DOI - 10.1155/2012/628571
Subject(s) - program slicing , computer science , debugging , trace (psycholinguistics) , correctness , constraint (computer aided design) , slicing , programmer , representation (politics) , fault (geology) , test case , programming language , algorithm , machine learning , mathematics , philosophy , linguistics , geometry , regression analysis , seismology , politics , world wide web , political science , law , geology
Although slices provide a good basis for analyzing programs during debugging, they lack in their capabilities providing precise information regarding the most likely root causes of faults. Hence, a lot of work is left to the programmer during fault localization. In this paper, we present an approach that combines an advanced dynamic slicing method with constraint solving in order to reduce the number of delivered fault candidates. The approach is called Constraints Based Slicing (CONBAS). The idea behind CONBAS is to convert an execution trace of a failing test case into its constraint representation and to check if it is possible to find values for all variables in the execution trace so that there is no contradiction with the test case. For doing so, we make use of the correctness and incorrectness assumptions behind a diagnosis, the given failing test case. Beside the theoretical foundations and the algorithm, we present empirical results and discuss future research. The obtained empirical results indicate an improvement of about 28% for the single fault and 50% for the double-fault case compared to dynamic slicing approaches
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom