Using constraints to diagnose faulty spreadsheets

Spreadsheets can be viewed as a highly flexible programming environment for end users. Spreadsheets are widely adopted for decision making and may have a serious economical impact for the business. However, spreadsheets are staggeringly prone to errors. Hence, approaches for aiding the process of pinpointing the faulty cells in a spreadsheet are of great value. We present a constraint-based approach, ConBug, for debugging spreadsheets. The approach takes as input a (faulty) spreadsheet and a test case that reveals the fault and computes a set of diagnosis candidates for the debugging problem. Therefore, we convert the spreadsheet and a test case to a constraint satisfaction problem. We perform an empirical evaluation with 78 spreadsheets from different sources, where we demonstrate that our approach is light-weight and efficient. From our experimental results, we conclude that ConBug helps end users to pinpoint faulty cells.

[1]  Qiang Yang,et al.  Program Understanding as Constraint Satisfaction: Representation and Reasoning Techniques , 1998, Automated Software Engineering.

[2]  Rui Abreu,et al.  Debugging Spreadsheets: A CSP-based Approach , 2012, 2012 IEEE 23rd International Symposium on Software Reliability Engineering Workshops.

[3]  Franz Wotawa,et al.  On the Compilation of Programs into their Equivalent Constraint Representation , 2008, Informatica.

[4]  Rui Abreu,et al.  Refining spectrum-based fault localization rankings , 2009, SAC '09.

[5]  Rui Abreu,et al.  On the empirical evaluation of similarity coefficients for spreadsheets fault localization , 2014, Automated Software Engineering.

[6]  Diana Borrego,et al.  Constraint satisfaction techniques for diagnosing errors in design by contract software , 2005, SAVCBS '05.

[7]  Rui Abreu,et al.  Constraint-based Debugging of Spreadsheets , 2012, CIbSE.

[8]  M. Fisher,et al.  The EUSES spreadsheet corpus: a shared resource for supporting experimentation with spreadsheet dependability mechanisms , 2005, WEUSE@ICSE.

[9]  Rui Abreu,et al.  On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets , 2013, FASE.

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

[11]  Arie van Deursen,et al.  Supporting professional spreadsheet users by generating leveled dataflow diagrams , 2010, 2011 33rd International Conference on Software Engineering (ICSE).

[12]  Ian P. Gent,et al.  Minion: A Fast Scalable Constraint Solver , 2006, ECAI.

[13]  Bernard Botella,et al.  A CLP Framework for Computing Structural Test Data , 2000, Computational Logic.

[14]  Gregg Rothermel,et al.  WYSIWYT testing in the spreadsheet paradigm: an empirical evaluation , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[15]  Peter Zoeteweij,et al.  Spectrum-Based Multiple Fault Localization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[16]  Brian Knight,et al.  Quality Control in Spreadsheets: A Visual Approach using Color Codings to Reduce Errors in Formulae , 2004, Software Quality Journal.

[17]  Roland Mittermeir,et al.  Spreadsheet Debugging , 2003, ArXiv.

[18]  Markku Tukiainen Uncovering effects of programming paradigms: Errors in two spreadsheet systems , 2000, PPIG.

[19]  Franz Wotawa,et al.  The Route to Success - A Performance Comparison of Diagnosis Algorithms , 2013, IJCAI.

[20]  D. Jannach,et al.  Toward model-based debugging of spreadsheet programs , 2010 .

[21]  Martin Erwig,et al.  GoalDebug: A Spreadsheet Debugger for End Users , 2007, 29th International Conference on Software Engineering (ICSE'07).

[22]  Margaret M. Burnett,et al.  End-user software visualizations for fault localization , 2003, SoftVis '03.

[23]  Mary Shaw,et al.  The state of the art in end-user software engineering , 2011, ACM Comput. Surv..

[24]  Shriram Krishnamurthi,et al.  A type system for statically detecting spreadsheet errors , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[25]  Hélène Collavizza,et al.  Exploring Different Constraint-Based Modelings for Program Verification , 2007, CP.

[26]  Martin Erwig,et al.  UCheck: A spreadsheet type checker for end users , 2007, J. Vis. Lang. Comput..

[27]  Jácome Cunha,et al.  Automatically Inferring ClassSheet Models from Spreadsheets , 2010, 2010 IEEE Symposium on Visual Languages and Human-Centric Computing.

[28]  Raymond R. Panko,et al.  Applying Code Inspection to Spreadsheet Testing , 1999, J. Manag. Inf. Syst..

[29]  Franz Wotawa,et al.  Automated debugging based on a constraint model of the program and a test case , 2012, J. Log. Algebraic Methods Program..

[30]  Arie van Deursen,et al.  Data clone detection and visualization in spreadsheets , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[31]  Franz Wotawa,et al.  On the use of mutations and testing for debugging , 2013, Softw. Pract. Exp..

[32]  Gregg Rothermel,et al.  Automated test case generation for spreadsheets , 2002, ICSE '02.

[33]  A.J.C. van Gemund,et al.  On the Accuracy of Spectrum-based Fault Localization , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[34]  Martin Erwig,et al.  Mutation Operators for Spreadsheets , 2009, IEEE Transactions on Software Engineering.

[35]  Martin Erwig,et al.  Header and Unit Inference for Spreadsheets Through Spatial Analyses , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[36]  Franz Wotawa,et al.  On the Complexity of Program Debugging Using Constraints for Modeling the Program's Syntax and Semantics , 2009, CAEPIA.

[37]  Franz Wotawa,et al.  Automated source-level error localization in hardware designs , 2006, IEEE Design & Test of Computers.

[38]  Margaret M. Burnett,et al.  Journal of Visual Languages & Computing Interactive, Visual Fault Localization Support for End-user Programmers This Paper Updates and Extends Earlier Work That Appeared In , 2022 .

[39]  Claire Le Goues,et al.  Automatically finding patches using genetic programming , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[40]  Arnaud Gotlieb,et al.  Automatic test data generation using constraint solving techniques , 1998, ISSTA '98.

[41]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..