DBSoft: A toolkit for testing database transactions

Databases (DBs) are used in all enterprise transactions, which require attention not only to the consistency of DB, but also to existence, accuracy and correctness of data required by the transactions. While the Atomicity, Consistency, Isolation, and Durability (ACID) properties of a transaction ensure that DB is consistent after the execution of each transaction, it is not sure that the transactions retrieve the correct data. Indeed, the testing phase of the transactions, in the development process, is often ignored. Therefore, there is a need for testing techniques and tools. This paper proposes an architecture, a design, and an implementation of a tester, we refer to as DBSoft, to test transactions, in terms of required data they need to access. The architecture of DBSoft is a layered one. It is made of five components having separate concerns and serving each other: (C1) a parser to collect information, specifically for the metadata, (C2) an input generator to generate test cases, (C3) an output generator to implement the test cases, (C4) an output validator to validate test cases, and (C5) a report generator to generate test reports. DBSoft aims at avoiding cost effective transaction run-time errors.

[1]  Donald Kossmann,et al.  Efficient Regression Tests for Database Applications , 2005, CIDR.

[2]  Norman R. Lyons An automatic data generating system for data base simulation and testing , 1977, DATB.

[3]  Elaine J. Weyuker,et al.  An AGENDA for testing relational database applications , 2004, Softw. Test. Verification Reliab..

[4]  Donald Kossmann,et al.  A framework for efficient regression tests on database applications , 2007, The VLDB Journal.

[5]  Nick Koudas,et al.  Generating targeted queries for database testing , 2008, SIGMOD Conference.

[6]  Yuetang Deng,et al.  Demonstration of AGENDA tool set for testing relational database applications , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[7]  Tsong Yueh Chen,et al.  A Choice Relation Framework for Supporting Category-Partition Test Case Generation , 2003, IEEE Trans. Software Eng..

[8]  Javier Tuya,et al.  Mutating database queries , 2007, Inf. Softw. Technol..

[9]  Norman R. Lyons,et al.  An automatic data generating system for data base simulation and testing , 1977, SIML.

[10]  Phyllis G. Frankl,et al.  Testing database transactions with AGENDA , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[11]  Carsten Binnig,et al.  A framework for testing DBMS features , 2010, The VLDB Journal.

[12]  Leo Giakoumakis,et al.  A genetic approach for random testing of database systems , 2007, VLDB.

[13]  Surajit Chaudhuri,et al.  Flexible Database Generators , 2005, VLDB.

[14]  Carsten Binnig,et al.  QAGen: generating query-aware test databases , 2007, SIGMOD '07.