The Right Choice Matters! SMT Solving Substantially Improves Model-Based Debugging of Spreadsheets

Spreadsheets are undoubtedly the most prominent example of end-user programs vastly used in practice. Spreadsheets are often complex and comprise several hundreds or even thousands of formulas making fault localization a very hard and painstaking task. Although there has been work based on model-based reasoning for fault localization in spreadsheets, its applicability in practice is still limited mainly due to two reasons. First, most of the available constraint solvers, used for computing diagnoses, do not sufficiently support Real numbers. Second, the runtime especially for larger spreadsheets is too long preventing truly interactive debugging. In order to eliminate limitations regarding data type support and runtime performance, we suggest the use of SMT solvers for spreadsheet debugging. Besides lying out the foundations of SMT solving for diagnoses, we introduce its application to spreadsheet debugging. The empirical evaluation shows that the SMT solver Z3 requires six times less time for computing diagnoses compared to public available constraint solvers.

[1]  Alexandru Iosup,et al.  C-Meter: A Framework for Performance Analysis of Computing Clouds , 2009, 2009 9th IEEE/ACM International Symposium on Cluster Computing and the Grid.

[2]  Dan Sanderson Programming Google App Engine , 2012 .

[3]  Martin Erwig,et al.  Automatic detection of dimension errors in spreadsheets , 2009, J. Vis. Lang. Comput..

[4]  Rina Dechter,et al.  Constraint Processing , 1995, Lecture Notes in Computer Science.

[5]  Scott R. Tilley,et al.  Software Testing in the Cloud , 2012, SpringerBriefs in Computer Science.

[6]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

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

[8]  Schahram Dustdar,et al.  Low level Metrics to High level SLAs - LoM2HiS framework: Bridging the gap between monitored metrics and SLA parameters in cloud environments , 2010, 2010 International Conference on High Performance Computing & Simulation.

[9]  Karem A. Sakallah,et al.  Generalizing Core-Guided Max-SAT , 2009, SAT.

[10]  Arie van Deursen,et al.  Measuring Spreadsheet Formula Understandability , 2012, ArXiv.

[11]  Arie van Deursen,et al.  Breviz: Visualizing Spreadsheets using Dataflow Diagrams , 2011, ArXiv.

[12]  Arie van Deursen,et al.  Detecting and visualizing inter-worksheet smells in spreadsheets , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[13]  Eric Bauer,et al.  Reliability and Availability of Cloud Computing: Bauer/Cloud Computing , 2012 .

[14]  Liam O'Brien,et al.  Towards a Taxonomy of Performance Evaluation of Commercial Cloud Services , 2012, 2012 IEEE Fifth International Conference on Cloud Computing.

[15]  Karem A. Sakallah,et al.  Algorithms for Computing Minimal Unsatisfiable Subsets of Constraints , 2007, Journal of Automated Reasoning.

[16]  Massimiliano Di Penta,et al.  A heuristic-based approach for detecting SQL-injection vulnerabilities in web applications , 2010, SESS '10.

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

[18]  Wei-Tek Tsai,et al.  Testing the scalability of SaaS applications , 2011, 2011 IEEE International Conference on Service-Oriented Computing and Applications (SOCA).

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

[20]  Eric Bauer,et al.  Reliability and Availability of Cloud Computing , 2012 .

[21]  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.

[22]  Gail-Joon Ahn,et al.  Security and Privacy Challenges in Cloud Computing Environments , 2010, IEEE Security & Privacy.

[23]  Puneet Sharma,et al.  Framework for testing cloud platforms and infrastructures , 2011, 2011 International Conference on Cloud and Service Computing.

[24]  Tauhida Parveen,et al.  Software Testing in the Cloud: Migration and Execution , 2012 .

[25]  Daniel Port,et al.  End User Computing: The Dark Matter (and Dark Energy) of Corporate IT , 2012, HICSS.

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

[27]  Ewald Roodenrijs TMap NEXT Testing Clouds , 2011 .

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

[29]  Gregg Rothermel,et al.  The EUSES spreadsheet corpus: a shared resource for supporting experimentation with spreadsheet dependability mechanisms , 2005, ACM SIGSOFT Softw. Eng. Notes.

[30]  Jacky W. Keung,et al.  Evaluating Cloud Platform Architecture with the CARE Framework , 2010, 2010 Asia Pacific Software Engineering Conference.

[31]  William H. Sanders,et al.  Secloud: A cloud-based comprehensive and lightweight security solution for smartphones , 2013, Comput. Secur..

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

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

[34]  S Sharma,et al.  New Approach for Testing the Correctness of Access Control Policies , 2009 .

[35]  Ruth Breu,et al.  Towards a Model Based Security Testing Approach of Cloud Computing Environments , 2012, 2012 IEEE Sixth International Conference on Software Security and Reliability Companion.