JDAMA: Java database application mutation analyser

Database application programs are ubiquitous; hence, good techniques for testing them are needed. Several approaches to testing database applications have been proposed recently, including test generation techniques and adequacy criteria. Tuya et al. proposed mutation‐based adequacy criteria for database queries and developed a set of mutation operators for Structured Query Language SELECT statements. This paper extends that approach by integrating it with analysis and instrumentation of the application bytecode. The design and implementation of a tool, Java Database Application Mutation Analyser (JDAMA), are described. JDAMA instruments application bytecode so as to compare the results of queries executed by the application under test to the results of mutants of those queries. JDAMA can be used to support mutation testing for Java database applications. A second, potentially more useful application of JDAMA is to support experiments evaluating testing techniques for database applications, in which query mutation is used to seed faults into subject applications. The paper illustrates these uses of JDAMA with experiments comparing two approaches to test generation and experiments evaluating coverage criteria. Copyright © 2011 John Wiley & Sons, Ltd.

[1]  Aske Simon Christensen,et al.  Precise Analysis of String Expressions , 2003, SAS.

[2]  M.J. Suarez-Cabal,et al.  SQLMutation: A tool to generate mutants of SQL database queries , 2006, Second Workshop on Mutation Analysis (Mutation 2006 - ISSRE Workshops 2006).

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

[4]  Lionel C. Briand,et al.  Is mutation an appropriate tool for testing experiments? , 2005, ICSE.

[5]  Phyllis G. Frankl,et al.  Query-based test generation for database applications , 2008, DBTest '08.

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

[7]  Phyllis G. Frankl,et al.  Preventing SQL Injection through Automatic Query Sanitization with ASSIST , 2010, TAV-WEB.

[8]  Javier Tuya,et al.  Query-aware shrinking test databases , 2009, DBTest '09.

[9]  Rupak Majumdar,et al.  Dynamic test input generation for database applications , 2007, ISSTA '07.

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

[11]  Lionel C. Briand,et al.  Using Mutation Analysis for Assessing and Comparing Testing Coverage Criteria , 2006, IEEE Transactions on Software Engineering.

[12]  Alessandro Orso,et al.  Command-Form Coverage for Testing Database Applications , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[13]  Phyllis G. Frankl,et al.  Inferential Checking for Mutants Modifying Database States , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[14]  Carsten Binnig,et al.  Reverse Query Processing , 2007, 2007 IEEE 23rd International Conference on Data Engineering.

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

[16]  Premkumar T. Devanbu,et al.  Static checking of dynamically generated queries in database applications , 2004, Proceedings. 26th International Conference on Software Engineering.

[17]  Suzanne M. Embury,et al.  An intensional approach to the specification of test cases for database applications , 2006, ICSE '06.

[18]  Javier Tuya,et al.  Structural Coverage Criteria for Testing SQL Queries , 2009, J. Univers. Comput. Sci..

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

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

[21]  Phyllis G. Frankl,et al.  All-uses vs mutation testing: An experimental comparison of effectiveness , 1997, J. Syst. Softw..

[22]  Phyllis G. Frankl,et al.  A framework for testing database applications , 2000, ISSTA '00.

[23]  A. Jefferson Offutt,et al.  How strong is weak mutation? , 1991, TAV4.

[24]  Mark Harman,et al.  An Analysis and Survey of the Development of Mutation Testing , 2011, IEEE Transactions on Software Engineering.

[25]  José Javier Dolado,et al.  A controlled experiment on white-box database testing , 2008, SOEN.

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

[27]  Anna Derezinska,et al.  An experimental case study to applying mutation analysis for SQL queries , 2009, 2009 International Multiconference on Computer Science and Information Technology.

[28]  Suzanne M. Embury,et al.  A safe regression test selection technique for database-driven applications , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[29]  Akbar Siami Namin,et al.  The influence of size and coverage on test suite effectiveness , 2009, ISSTA.

[30]  G FranklPhyllis,et al.  An AGENDA for testing relational database applications , 2004 .

[31]  Phyllis G. Frankl,et al.  Mutation Testing for Java Database Applications , 2009, 2009 International Conference on Software Testing Verification and Validation.