Exploring test adequacy for database systems

Database systems are an important asset for many businesses. As such, it is important to test database systems thoroughly, as any faults that remain hidden may significantly impact critical business processes. However, these systems bring additional complexities that make them amongst the most complex and difficult kind of system to test. While software testing in general is a well-developed area, techniques specifically aimed at testing database systems are still in their infancy. In this paper, we present a family of test adequacy criteria for database systems that can be used to determine the “quality” of a test suite. These criteria consider various aspects of database systems including the source code structure (in terms of patterns of database operations), the existence of define–use pairs between database operations and the interactions between different applications of the database system. The criteria we present differ from existing adequacy criteria as we focus on a general definition of a database test case that is based on intensional constraints. This overcomes the problems associated with adequacy being constrained to a single static database state. We also consider transactional operators that alter the behaviour of a database system and influence adequacy.

[1]  M. Blasgen Database Systems , 1982, Science.

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

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

[4]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.

[5]  Jay Banerjee,et al.  Data model issues for object-oriented applications , 1987, TOIS.

[6]  William E. Howden,et al.  Methodology for the Generation of Program Test Data , 1975, IEEE Transactions on Computers.

[7]  Gwan-Hwan Hwang,et al.  Technology for testing nondeterministic client/server database applications , 2004, IEEE Transactions on Software Engineering.

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

[9]  Elaine J. Weyuker,et al.  Data flow analysis techniques for test data selection , 2015, ICSE '82.

[10]  Alessandro Orso,et al.  Regression test selection for Java software , 2001, OOPSLA '01.

[11]  Phyllis G. Frankl,et al.  Testing database transaction concurrency , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[12]  Jianhua Shao,et al.  Program slicing in the presence of database state , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

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

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

[15]  F. E. A Relational Model of Data Large Shared Data Banks , 2000 .

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

[17]  Elaine J. Weyuker,et al.  An Applicable Family of Data Flow Testing Criteria , 1988, IEEE Trans. Software Eng..

[18]  Fernando Vélez,et al.  O2, an Object-Oriented Data Model , 1992, Building an Object-Oriented Database System, The Story of O2.

[19]  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).