A methodology for testing spreadsheets
- 1 January 2001
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 10 (1) , 110-147
- https://doi.org/10.1145/366378.366385
Abstract
Spreadsheet languages, which include commercial spreadsheets and various research systems, have had a substantial impact on end-user computing. Research shows, however, that spreadsheets often contain faults; thus, we would like to provide at least some of the benefits of formal testing methodologies to the creators of spreadsheets. This article presents a testing methodology that adapts data flow adequacy criteria and coverage monitoring to the task of testing spreadsheets. To accommodate the evaluation model used with spreadsheets, and the interactive process by which they are created, our methodology is incremental. To accommodate the users of spreadsheet languages, we provide an interface to our methodology that does not require an understanding of testing theory. We have implemented our testing methodology in the context of the Forms/3 visual spreadsheet language. We report on the methodology, its time and space costs, and the mapping from the testing strategy to the user interface. In an empirical study, we found that test suites created according to our methodology detected, on average, 81% of the faults in a set of faulty spreadsheets, significantly outperforming randomly generated test suites.Keywords
This publication has 31 references indexed in Scilit:
- Graphical definitionsACM Transactions on Computer-Human Interaction, 1998
- A safe, efficient regression test selection techniqueACM Transactions on Software Engineering and Methodology, 1997
- More experience with data flow testingIEEE Transactions on Software Engineering, 1993
- An experimental comparison of the effectiveness of branch testing and data flow testingIEEE Transactions on Software Engineering, 1993
- Undecidability of static analysisACM Letters on Programming Languages and Systems, 1992
- Incremental attribute evaluationACM Transactions on Programming Languages and Systems, 1991
- An incremental version of iterative data flow analysisIEEE Transactions on Software Engineering, 1989
- A formal evaluation of data flow path selection criteriaIEEE Transactions on Software Engineering, 1989
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987
- An experimental study of people creating spreadsheetsACM Transactions on Information Systems, 1987