Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
A framework for testing database applications
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Endo-testing: unit testing with mock objects
Extreme programming examined
Assessing test-driven development at IBM
Proceedings of the 25th International Conference on Software Engineering
Visualizing Impacts of Database Schema Changes - A Controlled Experiment
HCC '01 Proceedings of the IEEE 2001 Symposia on Human Centric Computing Languages and Environments (HCC'01)
The Schema Evolution and Data Migration Framework of the Environmental Mass Database IMIS
SSDBM '04 Proceedings of the 16th International Conference on Scientific and Statistical Database Management
Testing database transactions with AGENDA
Proceedings of the 27th international conference on Software engineering
Refactoring Databases: Evolutionary Database Design
Refactoring Databases: Evolutionary Database Design
An intensional approach to the specification of test cases for database applications
Proceedings of the 28th international conference on Software engineering
Evaluating the efficacy of test-driven development: industrial case studies
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
A Unit-Test Framework for Database Applications
IDEAS '06 Proceedings of the 10th International Database Engineering and Applications Symposium
The case for mesodata: An empirical investigation of an evolving database system
Information and Software Technology
Impact analysis of database schema changes
Proceedings of the 30th international conference on Software engineering
Query-based test generation for database applications
Proceedings of the 1st international workshop on Testing database systems
Unit test frameworks
Graceful database schema evolution: the PRISM workbench
Proceedings of the VLDB Endowment
Hecataeus: A What-If Analysis Tool for Database Schema Evolution
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
The PRISM Workwench: Database Schema Evolution without Tears
ICDE '09 Proceedings of the 2009 IEEE International Conference on Data Engineering
On the Effectiveness of Unit Test Automation at Microsoft
ISSRE '09 Proceedings of the 2009 20th International Symposium on Software Reliability Engineering
Hi-index | 0.00 |
Context: The constant changes in today's business requirements demand continuous database revisions. Hence, database structures, not unlike software applications, deteriorate during their lifespan and thus require refactoring in order to achieve a longer life span. Although unit tests support changes to application programs and refactoring, there is currently a lack of testing strategies for database schema evolution. Objective: This work examines the challenges for database schema evolution and explores the possibility of using various testing strategies to assist with schema evolution. Specifically, the work proposes a novel unit test approach for the application code that accesses databases with the objective of proactively evaluating the code against the altered database. Method: The approach was validated through the implementation of a testing framework in conjunction with a sample application and a relatively simple database schema. Although the database schema in this study was simple, it was nevertheless able to demonstrate the advantages of the proposed approach. Results: After changes in the database schema, the proposed approach found all SELECT statements as well as the majority of other statements requiring modifications in the application code. Due to its efficiency with SELECT statements, the proposed approach is expected to be more successful with database warehouse applications where SELECT statements are dominant. Conclusion: The unit test approach that accesses databases has proven to be successful in evaluating the application code against the evolved database. In particular, the approach is simple and straightforward to implement, which makes it easily adoptable in practice.