Authors
Dietmar Jannach, Thomas Schmitz, Birgit Hofer, Konstantin Schekotihin, Patrick Koch, & Franz Wotawa
Abstract
Faults in spreadsheets can represent a major risk for businesses. To minimize such risks, various automated testing and debugging approaches for spreadsheets were proposed.
In such approaches, often one main assumption is that the spreadsheet developer is able to indicate if the outcomes of certain calculations correspond to the intended values. This, however, might require that the user performs calculations manually, a process which can easily become tedious and error-prone for more complex spreadsheets.
In this work, we propose an interactive spreadsheet algorithmic debugging method, which is based on partitioning the spreadsheet into fragments. Test cases can then be automatically or manually created for each of these smaller fragments, whose correctness or faultiness can be easier assessed by users than test cases that cover the entire spreadsheet.
The annotated test cases are then fed into an algorithmic debugging technique, which returns a set of formulas that could have caused any observed failures, i.e., discrepancies between the expected and computed calculation outcomes. Simulation experiments demonstrate that the suggested decomposition approach can speed up the algorithmic debugging process and significantly reduce the number of fault candidates returned by the algorithm.
An additional laboratory study shows that fragmenting a spreadsheet with our method furthermore reduces the time needed by users for creating test cases for a spreadsheet.
Sample
The example spreadsheet is fragmented into two parts.
The right-hand fragment covers the calculations of the totals for the different products.
The cells are colored:
- Yellow indicates intermediate calculations within the fragment.
- Orange indicates output cells of the fragment.
- Green indicates inputs used by the fragment.
- In order to help the user to focus on the current fragment, the rest of the spreadsheet is grayed out.
The calculations are the same for each of the products. The user only has to specify a test case for the representative product A.
Publication
2019, Automated Software Engineering, March, Volume 26, Issue 1, pages 203-239