i-nth logo

Authors

Patrick Koch, Birgit Hofer, & Franz Wotawa

Abstract

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.

Sample

Improved 'Pattern Finder' smell detection technique
Improved 'Pattern Finder' smell detection technique

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.

Publication

2019, The Journal of Systems & Software, January, Volume 147, pages 64-85

Full article

On the refinement of spreadsheet smells by means of structure information