Patrick Koch, Birgit Hofer, & Franz Wotawa
Spreadsheet users are often unaware of the risks imposed by poorly designed spreadsheets.
One way to assess spreadsheet quality is to detect smells which attempt to identify parts of spreadsheets that are hard to comprehend or maintain and which are more likely to be the root source of bugs. Unfortunately, current spreadsheet smell detection techniques suffer from a number of drawbacks that lead to incorrect or redundant smell reports.
For example, the same quality issue is often reported for every copy of a cell, which may overwhelm users. To deal with these issues, we propose to refine spreadsheet smells by exploiting inferred structural information for smell detection.
We therefore first provide a detailed description of our static analysis approach to infer clusters and blocks of related cells. We then elaborate on how to improve existing smells by providing three example refinements of existing smells that incorporate information about cell groups and computation blocks.
Furthermore, we propose three novel smell detection techniques that make use of the inferred spreadsheet structures. Empirical evaluation of the proposed techniques suggests that the refinements successfully reduce the number of incorrectly and redundantly reported smells, and novel deficits are revealed by the newly introduced smells.
In this example, cell
D4 has been changed from a formula to a fixed value.
The original Pattern Finder does not indicate
D4 as smelly, because every cell in column D evaluates to a number, but our improved Pattern Finder does.
Indicating a constant within a group of formula cells as smelly helps users to detect formula cells which have been accidentally overwritten with constant values.
2019, The Journal of Systems & Software, January, Volume 147, pages 64-85