Spreadsheets are the most successful example of the End User Programming approach to software development. Today, spreadsheet applications, e.g., based on Microsoft Excel, can be found nearly everywhere in companies and are used for a variety of purposes. Studies showed for example that in over 80% of the examined companies spreadsheets are used for financial reporting. Furthermore, companies often use dozens or even hundreds of spreadsheet applications which often tend to be large and complex comprising hundreds or even thousands of formulas.
Despite the fact that in many cases business-critical decisions depend on spreadsheets, a complete lack of quality control measures for this type of software applications can be observed in many companies. Not surprisingly, spreadsheets - which are usually developed by non-programmers -contain errors of various types. In some studies, researchers found at least one error in every single spreadsheet they analyzed. However, when business decisions are based on spreadsheets, such errors can lead to a significant financial loss or to other business risks as reported by the European Spreadsheet Risk Interest Group.
Over the last decades, academics from different fields as well as industry have produced a rich set of methods, techniques and tools to ensure or improve the quality of traditional software artifacts. Only in recent years, the question of how to improve the quality of End User Programs and in particular spreadsheets has gained more attention in research and in practice. These developments led to a number of first proposals ranging, e.g., from process-related measures over visualization and software testing approaches to debugging techniques.
In this project, we focus on the debugging stages of the spreadsheet development cycle. Therefore, our goal is to provide the spreadsheet developer with tools that support him or her in identifying the possible problem causes (error localization). These possible causes are called diagnoses and represent subsets of all formulas used in a spreadsheet that should be modified in order to make a spreadsheet application work as expected.
In particular, we will analyze and systematically evaluate in which ways various existing approaches to software debugging can be applied, extended or combined to cope with the particularities of spreadsheet debugging. Based on these technical and algorithmic contributions, we aim to develop a classification system that helps us understand which error-spotting techniques are particularly well suited for which types of programs and application settings. Furthermore, we plan to conduct laboratory studies with real users at different stages of the project, in which we want to obtain a better understanding of how and to which extent the participants profit from using the provided debugging tools and how the interaction with an intelligent debugger for end users should be designed.