Mutant Analysis in SQL Database Applications
Abstract
Testing database applications is crucial for ensuring high quality software as undetected faults can result in unrecoverable data corruption. SQL is the most widely used interface language for relational database systems. Our approach aims to achieve better tests by selecting fault-revealing databases. We use mutation analysis on SQL statements and discuss two scenarios for applying strong and weak mutation techniques. Experiments using real applications, real faults and real data were performed to: (i) evaluate the applicability of the approach, and (ii) compare fault-revealing abilities of input databases.
Keywords:
Mutant Analysis, SQL Applications, Database
References
ANSI SQL-3 STANDARD, www.ansi.org. Acesso em: 12 de jun. 2008.
Chan,W.K., Cheung, S.C., and Tse, T.H. (2005) “Fault-based testing of database application programs with conceptual data model”. Proceedings of the 5th Intl. Conference on Quality Software, IEEE Computer Society Press, pg 187–196, Los Alamitos, CA.
Chan, M. Y. and Cheung, S. C. (1999) “Testing Database Applications with SQL Semantic”. Proceedings of the 2nd Intl. Symposium on Cooperative Database Systems for Advanced Applications, Springer, pg 363-374, Singapore.
Chays, D. and Deng, Y. (2003) “Demonstration of AGENDA Tool Set for Testing Relational Database Applications”. Proceedings of the 25th Intl. Conference on Software Engineering, pg 802-803, Portland, Oregon.
DeMillo, A.R., Lipton, R.J., and Sayward, F.G (1978).”Hints on test data selection: Help for the practicing programmer”. IEEE Computer, Vol.11, no 4, pg 34-41.
DeMillo, A.R. (1980) “Mutation analysis as a tool for software quality assurance”. Proceedings of COMPSAC 80, Chicago, IL, pg 390-393.
Deutsch, M. (1979) “Verification and Validation” in Software Engineering (R. Jensen and C.Tonies, Eds.), Prentice-Hall, 1979, pg 329-408.
Elbaum, S., Malishevssky, A.G., and Rothermel, G. (2002). “Test case priorization: Afamily of empirical studies”. IEEE Trans. on Software Engineering 28 (2), pg 159– 182.
Kapfhammer, G.M. and Soffa, M.L. (2003). “A Family of Test Adequacy Criteria for Database-Driven Applications”. European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE. Helsinki, Finland, pg 98-107.
Leitao-Junior, P.S., Vilela, P.R.S., and Jino, M. (2005). “Mapping Faults to Failures in SQL Manipulation Commands”. Proceedings of the 3rd ACS/IEEE Intl. Conference on Computer Systems and Applications (AICCSA-05), pg 1-4, Egito, Cairo.
Mathur, A.P. (1991). “Performance, effectiveness and reliability issues in software testing”. 15th Annual International Computer Software and Application Conference, Tokio, Japan, IEEE Computer Society Press, pg 604-605.
Offutt, A.J, Lee, A., Rothermel, G., Untch, R.H and Zapf, C. (1996) “An experimental determination of sufficient mutant operators". ACM Trans. on Software Engineering Methodology, Vol.5, no 2 pages 99-118.
Pönighaus, R. (1995) “‘Favourite’ SQL-Statements – an empirical analysis of SQL-Usage in commercial applications”. Proceedings of the 6th Intl. Conference on Information Systems and Management of Data, Lecture Notes in Computer Science, Vol. 1006, Springer, pg 75–91.
Rothermel, G. and Elbaum, S. (2003) “Putting your best tests forward”. IEEE Software 20 (5), pg 74–77.
Rothermel, G., Untch, R.H., and Harrold, M.J. (2001). “Prioritizing test cases for regression testing”. IEEE Trans. on Software Engineering 27 (10), pg 929–948.
Spoto, E.S. (2000). “Teste Estrutural de Programas de Aplicação de Banco de Dados Relacional”. Tese de Doutorado, DCA/FEEC/UNICAMP, Campinas, SP, Brasil.
Tuya, J., Suárez-Cabal, M.S. and de la Riva, C. (2007) “Mutation Database queries”. Information and Software Technology 49, pg 398-417.
Woodward, M.R. (1993). “Mutation Testing – its Origin and Evolution”. Information and Software Technology, Vol. 35, no 3, pg 163–169.
Chan,W.K., Cheung, S.C., and Tse, T.H. (2005) “Fault-based testing of database application programs with conceptual data model”. Proceedings of the 5th Intl. Conference on Quality Software, IEEE Computer Society Press, pg 187–196, Los Alamitos, CA.
Chan, M. Y. and Cheung, S. C. (1999) “Testing Database Applications with SQL Semantic”. Proceedings of the 2nd Intl. Symposium on Cooperative Database Systems for Advanced Applications, Springer, pg 363-374, Singapore.
Chays, D. and Deng, Y. (2003) “Demonstration of AGENDA Tool Set for Testing Relational Database Applications”. Proceedings of the 25th Intl. Conference on Software Engineering, pg 802-803, Portland, Oregon.
DeMillo, A.R., Lipton, R.J., and Sayward, F.G (1978).”Hints on test data selection: Help for the practicing programmer”. IEEE Computer, Vol.11, no 4, pg 34-41.
DeMillo, A.R. (1980) “Mutation analysis as a tool for software quality assurance”. Proceedings of COMPSAC 80, Chicago, IL, pg 390-393.
Deutsch, M. (1979) “Verification and Validation” in Software Engineering (R. Jensen and C.Tonies, Eds.), Prentice-Hall, 1979, pg 329-408.
Elbaum, S., Malishevssky, A.G., and Rothermel, G. (2002). “Test case priorization: Afamily of empirical studies”. IEEE Trans. on Software Engineering 28 (2), pg 159– 182.
Kapfhammer, G.M. and Soffa, M.L. (2003). “A Family of Test Adequacy Criteria for Database-Driven Applications”. European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE. Helsinki, Finland, pg 98-107.
Leitao-Junior, P.S., Vilela, P.R.S., and Jino, M. (2005). “Mapping Faults to Failures in SQL Manipulation Commands”. Proceedings of the 3rd ACS/IEEE Intl. Conference on Computer Systems and Applications (AICCSA-05), pg 1-4, Egito, Cairo.
Mathur, A.P. (1991). “Performance, effectiveness and reliability issues in software testing”. 15th Annual International Computer Software and Application Conference, Tokio, Japan, IEEE Computer Society Press, pg 604-605.
Offutt, A.J, Lee, A., Rothermel, G., Untch, R.H and Zapf, C. (1996) “An experimental determination of sufficient mutant operators". ACM Trans. on Software Engineering Methodology, Vol.5, no 2 pages 99-118.
Pönighaus, R. (1995) “‘Favourite’ SQL-Statements – an empirical analysis of SQL-Usage in commercial applications”. Proceedings of the 6th Intl. Conference on Information Systems and Management of Data, Lecture Notes in Computer Science, Vol. 1006, Springer, pg 75–91.
Rothermel, G. and Elbaum, S. (2003) “Putting your best tests forward”. IEEE Software 20 (5), pg 74–77.
Rothermel, G., Untch, R.H., and Harrold, M.J. (2001). “Prioritizing test cases for regression testing”. IEEE Trans. on Software Engineering 27 (10), pg 929–948.
Spoto, E.S. (2000). “Teste Estrutural de Programas de Aplicação de Banco de Dados Relacional”. Tese de Doutorado, DCA/FEEC/UNICAMP, Campinas, SP, Brasil.
Tuya, J., Suárez-Cabal, M.S. and de la Riva, C. (2007) “Mutation Database queries”. Information and Software Technology 49, pg 398-417.
Woodward, M.R. (1993). “Mutation Testing – its Origin and Evolution”. Information and Software Technology, Vol. 35, no 3, pg 163–169.
Published
2008-06-02
How to Cite
CABEÇA, Andrea G.; LEITÃO-JUNIOR, Plínio S.; JINO, Mario.
Mutant Analysis in SQL Database Applications. In: BRAZILIAN SOFTWARE QUALITY SYMPOSIUM (SBQS), 7. , 2008, Florianópolis.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2008
.
p. 31-46.
DOI: https://doi.org/10.5753/sbqs.2008.15533.
