Fault-based testing of database application programs with conceptual data model

Database application programs typically contain program units that use SQL statements to manipulate records in database instances. Testing the correctness of data manipulation by these programs is challenging. When a tester provides a database instance to test such a program, the program unit may output faulty SQL statements and, hence, manipulate inappropriate database records. Nonetheless, these failures may only be revealed in very specific database instances. This paper proposes to integrate SQL statements and the conceptual data models of an application for fault-based testing. It proposes a set of mutation operators based on the standard types of constraint used in the enhanced entity-relationship model. These operators are semantic in nature. This semantic information guides the construction of affected attributes and join conditions of mutants. The usefulness of our proposal is illustrated by an example in which a missing-record fault is revealed.

[1]  M. R. Woodward,et al.  From weak to strong, dead or alive? an analysis of some mutation testing issues , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[2]  Mary Lou Soffa,et al.  A family of test adequacy criteria for database-driven applications , 2003, ESEC/FSE-11.

[3]  Andrea Neufeld Dipl. Inform.,et al.  Generating consistent test data: Restricting the search space by a generator formula , 2005, The VLDB Journal.

[4]  A. Jefferson Offutt,et al.  An experimental mutation system for Java , 2004, SOEN.

[5]  Ramzi A. Haraty,et al.  Regression testing of database applications , 2001, SAC.

[6]  Steven J. Zeil,et al.  Testing for Perturbations of Program Statements , 1983, IEEE Transactions on Software Engineering.

[7]  Keng Siau,et al.  Advanced Topics In Database Research , 2005 .

[8]  Jean Arlat,et al.  Fault Injection for Dependability Validation: A Methodology and Some Applications , 1990, IEEE Trans. Software Eng..

[9]  Ramkrishna Chatterjee,et al.  Using data versioning in database application development , 2004, Proceedings. 26th International Conference on Software Engineering.

[10]  Shing-Chi Cheung,et al.  Automatic generation of database instances for white-box testing , 2001, 25th Annual International Computer Software and Applications Conference. COMPSAC 2001.

[11]  Ramez Elmasri,et al.  Fundamentals of Database Systems, 5th Edition , 2006 .

[12]  Ramkrishna Chatterjee,et al.  Using Applications of Data Versioning in Database Application Development , 2004, ICSE 2004.

[13]  Javier Tuya,et al.  Using an SQL coverage measurement for testing database applications , 2004, SIGSOFT '04/FSE-12.

[14]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

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

[16]  Hong Zhu,et al.  Software unit test coverage and adequacy , 1997, ACM Comput. Surv..

[17]  Chen Fu,et al.  Testing of java web services for robustness , 2004, ISSTA '04.

[18]  William E. Howden,et al.  Weak Mutation Testing and Completeness of Test Sets , 1982, IEEE Transactions on Software Engineering.

[19]  Larry J Morell,et al.  A Theory of Fault-Based Testing , 1990, IEEE Trans. Software Eng..

[20]  Ramzi A. Haraty,et al.  Regression Test Selection for Database Applications , 2004, Advanced Topics in Database Research, Vol. 3.

[21]  Shing-Chi Cheung,et al.  Testing Database Applications with SQL Semantics , 1999, CODAS.

[22]  A. Jefferson Offutt,et al.  Generating test cases for web services using data perturbation , 2004, SOEN.

[23]  Jiong Wang,et al.  Testing web database applications , 2004, SOEN.

[24]  Yuetang Deng,et al.  Testing database transactions with AGENDA , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[25]  Mary Ann Robbert,et al.  Automated test plan generator for database application systems , 1991, SIGSMALL '91.

[26]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.