Incremental re-execution of programs
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
Safeware: system safety and computers
Safeware: system safety and computers
Incremental maintenance of views with duplicates
SIGMOD '95 Proceedings of the 1995 ACM SIGMOD international conference on Management of data
Continuous execution: the VisiProg environment
ICSE '85 Proceedings of the 8th international conference on Software engineering
Deriving Production Rules for Incremental View Maintenance
VLDB '91 Proceedings of the 17th International Conference on Very Large Data Bases
TestEra: A Novel Framework for Automated Testing of Java Programs
Proceedings of the 16th IEEE international conference on Automated software engineering
An experimental evaluation of continuous testing during development
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
DITTO: automatic incrementalization of data structure invariant checks (in Java)
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Batch, conversational, and incremental compilers
AFIPS '69 (Spring) Proceedings of the May 14-16, 1969, spring joint computer conference
The complexity of causality and responsibility for query answers and non-answers
Proceedings of the VLDB Endowment
Speculative analysis: exploring future development states of software
Proceedings of the FSE/SDP workshop on Future of software engineering research
Database state generation via dynamic symbolic execution for coverage criteria
Proceedings of the Fourth International Workshop on Testing Database Systems
We challenge you to certify your updates
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
Systematic Testing of Database Engines Using a Relational Constraint Solver
ICST '11 Proceedings of the 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation
Proactive detection of collaboration conflicts
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Targeted genetic test SQL generation for the DB2 database
DBTest '12 Proceedings of the Fifth International Workshop on Testing Database Systems
Towards a catalog of spreadsheet smells
ICCSA'12 Proceedings of the 12th international conference on Computational Science and Its Applications - Volume Part IV
Speculative analysis of integrated development environment recommendations
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Data clone detection and visualization in spreadsheets
Proceedings of the 2013 International Conference on Software Engineering
Making offline analyses continuous
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
Today, systems rely as heavily on data as on the software that manipulates those data. Errors in these systems are incredibly costly, annually resulting in multi-billion dollar losses, and, on multiple occasions, in death. While software debugging and testing have received heavy research attention, less effort has been devoted to data debugging: discovering system errors caused by well-formed but incorrect data. In this paper, we propose continuous data testing: using otherwise-idle CPU cycles to run test queries, in the background, as a user or database administrator modifies a database. This technique notifies the user or administrator about a data bug as quickly as possible after that bug is introduced, leading to at least three benefits: (1) The bug is discovered quickly and can be fixed before it is likely to cause a problem. (2) The bug is discovered while the relevant change is fresh in the user's or administrator's mind, increasing the chance that the underlying cause of the bug, as opposed to only the discovered side-effect, is fixed. (3) When poor documentation or company policies contribute to bugs, discovering the bug quickly is likely to identify these contributing factors, facilitating updating documentation and policies to prevent similar bugs in the future. We describe the problem space and potential benefits of continuous data testing, our vision for the technique, challenges we encountered, and our prototype implementation for PostgreSQL. The prototype's low overhead shows promise that continuous data testing can address the important problem of data debugging.