Communications of the ACM
On optimizing an SQL-like nested query
ACM Transactions on Database Systems (TODS)
Symbolic execution and program testing
Communications of the ACM
VLDB '87 Proceedings of the 13th International Conference on Very Large Data Bases
Using an SQL coverage measurement for testing database applications
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Testing database transactions with AGENDA
Proceedings of the 27th international conference on Software engineering
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
An AGENDA for testing relational database applications: Research Articles
Software Testing, Verification & Reliability
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Privacy Aware Data Generation for Testing Database Applications
IDEAS '05 Proceedings of the 9th International Database Engineering & Application Symposium
An intensional approach to the specification of test cases for database applications
Proceedings of the 28th international conference on Software engineering
Cost-based query transformation in Oracle
VLDB '06 Proceedings of the 32nd international conference on Very large data bases
Command-Form Coverage for Testing Database Applications
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Mock-object generation with behavior
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
QAGen: generating query-aware test databases
Proceedings of the 2007 ACM SIGMOD international conference on Management of data
Dynamic test input generation for database applications
Proceedings of the 2007 international symposium on Software testing and analysis
A System to Generate Test Data and Symbolically Execute Programs
IEEE Transactions on Software Engineering
Privacy Preserving Database Generation for Database Application Testing
Fundamenta Informaticae - Special issue ISMIS'05
Query-based test generation for database applications
Proceedings of the 1st international workshop on Testing database systems
Mutation Testing for Java Database Applications
ICST '09 Proceedings of the 2009 International Conference on Software Testing Verification and Validation
Query-Aware Test Generation Using a Relational Constraint Solver
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Pex: white box test generation for .NET
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
Constraint-based test database generation for SQL queries
Proceedings of the 5th Workshop on Automation of Software Test
Dynamic symbolic database application testing
Proceedings of the Third International Workshop on Testing Database Systems
Full predicate coverage for testing SQL database queries
Software Testing, Verification & Reliability
MODA: automated test generation for database applications via mock objects
Proceedings of the IEEE/ACM international conference on Automated software engineering
Is Data Privacy Always Good for Software Testing?
ISSRE '10 Proceedings of the 2010 IEEE 21st International Symposium on Software Reliability Engineering
Database state generation via dynamic symbolic execution for coverage criteria
Proceedings of the Fourth International Workshop on Testing Database Systems
Inferential Checking for Mutants Modifying Database States
ICST '11 Proceedings of the 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation
Testing software in age of data privacy: a balancing act
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Generating program inputs for database application testing
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Localizing SQL faults in database applications
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Hi-index | 0.00 |
Testing database applications typically requires the generation of tests consisting of both program inputs and database states. Recently, a testing technique called Dynamic Symbolic Execution (DSE) has been proposed to reduce manual effort in test generation for software applications. However, applying DSE to generate tests for database applications faces various technical challenges. For example, the database application under test needs to physically connect to the associated database, which may not be available for various reasons. The program inputs whose values are used to form the executed queries are not treated symbolically, posing difficulties for generating valid database states or appropriate database states for achieving high coverage of query-result-manipulation code. To address these challenges, in this article, we propose an approach called SynDB that synthesizes new database interactions to replace the original ones from the database application under test. In this way, we bridge various constraints within a database application: query-construction constraints, query constraints, database schema constraints, and query-result-manipulation constraints. We then apply a state-of-the-art DSE engine called Pex for .NET from Microsoft Research to generate both program inputs and database states. The evaluation results show that tests generated by our approach can achieve higher code coverage than existing test generation approaches for database applications.