A methodology for testing spreadsheets

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.

[1]  Joseph Robert Horgan,et al.  Effect of Test Set Minimization on Fault Detection Effectiveness , 1995, 1995 17th International Conference on Software Engineering.

[2]  Simeon C. Ntafos,et al.  On Required Element Testing , 1984, IEEE Transactions on Software Engineering.

[3]  Jennifer L. Leopold,et al.  Keyboardless visual programming using voice, handwriting, and gesture , 1997, Proceedings. 1997 IEEE Symposium on Visual Languages (Cat. No.97TB100180).

[4]  Gregg Rothermel,et al.  Scaling up a "What you see is what you test" methodology to spreadsheet grids , 1999, Proceedings 1999 IEEE Symposium on Visual Languages.

[5]  Mary Lou Soffa,et al.  An incremental approach to unit testing during maintenance , 1988, Proceedings. Conference on Software Maintenance, 1988..

[6]  R. E. Christ Review and Analysis of Color Coding Research for Visual Displays , 1975 .

[7]  Allen L. Ambler,et al.  Visual representation and manipulation of matrices , 1992, J. Vis. Lang. Comput..

[8]  Gregor von Bochmann,et al.  Control-flow based testing of Prolog programs , 1992, [1992] Proceedings Third International Symposium on Software Reliability Engineering.

[9]  Gregg Rothermel,et al.  What you see is what you test: a methodology for testing form-based visual programs , 1998, Proceedings of the 20th International Conference on Software Engineering.

[10]  Rajiv Gupta,et al.  Program Slicing‐Based Regression Testing Techniques , 1996, Softw. Test. Verification Reliab..

[11]  Margaret M. Burnett,et al.  Operational versus definitional: a perspective on programming paradigms , 1992, Computer.

[12]  Margaret M. Burnett,et al.  Graphical definitions: expanding spreadsheet languages through direct manipulation and gestures , 1998, TCHI.

[13]  Gerald M. Murch Physiological principles for the effective use of color , 1984, IEEE Computer Graphics and Applications.

[14]  William Landi,et al.  Undecidability of static analysis , 1992, LOPL.

[15]  Lori A. Clarke,et al.  A Formal Evaluation of Data Flow Path Selection Criteria , 1989, IEEE Trans. Software Eng..

[16]  Ben Shneiderman,et al.  Designing The User Interface , 2013 .

[17]  Jonathan J. Cadiz,et al.  Does continuous visual feedback aid debugging in direct-manipulation programming systems? , 1997, CHI.

[18]  Ben Shneiderman,et al.  Designing the User Interface: Strategies for Effective Human-Computer Interaction , 1998 .

[19]  Phyllis G. Frankl,et al.  An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing , 1993, IEEE Trans. Software Eng..

[20]  Brad A. Myers Graphical techniques in a spreadsheet for specifying user interfaces , 1991, CHI '91.

[21]  Barbara G. Ryder,et al.  A safe approximate algorithm for interprocedural aliasing , 1992, PLDI '92.

[22]  Fevzi Belli,et al.  Testing and reliability of logic programs , 1993, Proceedings of 1993 IEEE International Symposium on Software Reliability Engineering.

[23]  Fevzi Belli,et al.  A test coverage notion for logic programming , 1995, Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95.

[24]  John Riedl,et al.  A spreadsheet approach to information visualization , 1997, Proceedings of VIZ '97: Visualization Conference, Information Visualization Symposium and Parallel Rendering Symposium.

[25]  Thomas J. Ostrand,et al.  Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria , 1994, Proceedings of 16th International Conference on Software Engineering.

[26]  Lori A. Clarke,et al.  A System to Generate Test Data and Symbolically Execute Programs , 1976, IEEE Transactions on Software Engineering.

[27]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[28]  Elaine J. Weyuker,et al.  Axiomatizing software test data adequacy , 1986, IEEE Transactions on Software Engineering.

[29]  A. Jefferson Offutt,et al.  An Experimental Evaluation of Data Flow and Mutation Testing , 1996, Softw. Pract. Exp..

[30]  Mary Lou Soffa,et al.  An Incremental Version of Iterative Data Flow Analysis , 1989, IEEE Trans. Software Eng..

[31]  Gail E. Kaiser,et al.  Adequate testing and object-oriented programming , 1990 .

[32]  Gregg Rothermel,et al.  Slicing spreadsheets: an integrated methodology for spreadsheet testing and debugging , 1999, DSL '99.

[33]  A. Jefferson Offutt,et al.  An Experimental Evaluation of Data Flow and Mutation Testing , 1996 .

[34]  Scott E. Hudson,et al.  Incremental attribute evaluation: a flexible algorithm for lazy update , 1991, TOPL.

[35]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[36]  Ben Shneiderman,et al.  Designing the user interface (2nd ed.): strategies for effective human-computer interaction , 1992 .

[37]  Barbara G. Ryder,et al.  An efficient hybrid algorithm for incremental data flow analysis , 1989, POPL '90.

[38]  Elaine J. Weyuker,et al.  An Applicable Family of Data Flow Testing Criteria , 1988, IEEE Trans. Software Eng..

[39]  Gregg Rothermel,et al.  Selecting tests and identifying test coverage requirements for modified software , 1994, ISSTA '94.

[40]  Margaret M. Burnett,et al.  Representation Design Benchmarks: A Design-Time Aid for VPL Navigable Static Representations , 1997, J. Vis. Lang. Comput..

[41]  Gregg Rothermel,et al.  A safe, efficient regression test selection technique , 1997, TSEM.

[42]  Philip T. Cox,et al.  Expanding the utility of spreadsheets through the integration of visual programming and user interface objects , 1996, AVI '96.

[43]  John D. Gould,et al.  An experimental study of people creating spreadsheets , 1987, TOIS.

[44]  Gregg Rothermel,et al.  Testing strategies for form-based visual programs , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[45]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.

[46]  Ioannis Parissis,et al.  Testing Techniques for Data-Flow Synchronous Programs , 1995, AADEBUG.

[47]  Elaine J. Weyuker,et al.  More Experience with Data Flow Testing , 1993, IEEE Trans. Software Eng..

[48]  B. VanVoorst,et al.  Toward visual programming languages for steering scientific computations , 1994, IEEE Computational Science and Engineering.

[49]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[50]  Janusz W. Laski,et al.  A Data Flow Oriented Program Testing Strategy , 1983, IEEE Transactions on Software Engineering.

[51]  M. Kendall Elementary Statistics , 1945, Nature.

[52]  Kansei Iwata,et al.  A 3-D Graphics Display System With Depth Buffer and Pipeline Processor , 1984, IEEE Computer Graphics and Applications.

[53]  Barbara G. Ryder,et al.  Pointer-induced aliasing: a problem classification , 1991, POPL '91.

[54]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

[55]  Margaret M. Burnett,et al.  Implementing level 4 liveness in declarative visual programming languages , 1998, Proceedings. 1998 IEEE Symposium on Visual Languages (Cat. No.98TB100254).

[56]  Elaine J. Weyuker,et al.  On Testing Non-Testable Programs , 1982, Comput. J..

[57]  Raymond R. Panko,et al.  Spreadsheets on trial: a survey of research on spreadsheet risks , 1996, Proceedings of HICSS-29: 29th Hawaii International Conference on System Sciences.