Correcting faults in software, i.e. debugging, is a time-intensive process because even small programs can consist of several thousand lines of code which have to be manually investigated in order to find those lines which are responsible for an observed error (e.g. wrong computations or program crashes). It is estimated that software developers spend 30 % to 90 % of their time on debugging. Thus the improvement of the debugging process could save an enormous amount of money and time.
Many researchers have developed approaches which support software developers when debugging. Unfortunately, these approaches are rarely used in practice. This project therefore aims to close the gap between academic research and debugging in practice and consists of three phases:
- We examine the reasons why existing academic approaches are rarely used in practice. We observe how software developers are debugging programs in order to assess the status quo of debugging in practice.
- We use the insights gained from phase one to improve existing debugging approaches. Thereby, we will particularly focus on the scalability, the accuracy, and the practicability of the approaches. Software developers might struggle to use academic debugging approaches because they do not believe that such an approach can help them. In addition, they do not know which approach is best suited for their debugging problem. Therefore, we are going to answer two particularly interesting research questions in this project phase: (1) Can the combination of debugging approaches help to improve the overall debugging experience? (2) Is it possible to automatically select the best suited debugging method for a given program?
- We will integrate the debugging approaches into the development environments and development processes. A debugging approach that is integrated into the software engineer’s development environment and process is more likely to be used than a stand-alone approach. To evaluate the usefulness of our developments, we will conduct extensive experiments.
This project is funded by the Austrian Science Fund (FWF) under contract number P 32653.