skip to main content
10.1145/1838126.1838133acmconferencesArticle/Chapter ViewAbstractPublication PagesmodConference Proceedingsconference-collections
research-article

Dynamic symbolic database application testing

Published:07 June 2010Publication History

ABSTRACT

A database application differs form regular applications in that some of its inputs may be database queries. The program will execute the queries on a database and may use any result values in its subsequent program logic. This means that a user-supplied query may determine the values that the application will use in subsequent branching conditions. At the same time, a new database application is often required to work well on a body of existing data stored in some large database. For systematic testing of database applications, recent techniques replace the existing database with carefully crafted mock databases. Mock databases return values that will trigger as many execution paths in the application as possible and thereby maximize overall code coverage of the database application.

In this paper we offer an alternative approach to database application testing. Our goal is to support software engineers in focusing testing on the existing body of data the application is required to work well on. For that, we propose to side-step mock database generation and instead generate queries for the existing database. Our key insight is that we can use the information collected during previous program executions to systematically generate new queries that will maximize the coverage of the application under test, while guaranteeing that the generated test cases focus on the existing data.

References

  1. M. K. Bergman. The deep web: Surfacing hidden value. Journal of Electronic Publishing, 7(1), Aug. 2001.Google ScholarGoogle ScholarCross RefCross Ref
  2. C. Binnig, D. Kossmann, and E. Lo. Reverse query processing. In ICDE, pages 506--515. IEEE, Apr. 2007.Google ScholarGoogle ScholarCross RefCross Ref
  3. É. Bruneton, R. Lenglet, and T. Coupaye. ASM: a code manipulation tool to implement adaptable systems. In Proc. ACM SIGOPS France Journées Composants 2002: Systèmes à composants adaptables et extensibles (Adaptable and extensible component systems), Nov. 2002.Google ScholarGoogle Scholar
  4. K. C.-C. Chang, B. He, C. Li, M. Patel, and Z. Zhang. Structured databases on the web: observations and implications. SIGMOD Rec., 33(3):61--70, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Chays, J. Shahid, and P. G. Frankl. Query-based test generation for database applications. In DBTest, pages 1--6. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. G. A. Cohen, J. S. Chase, and D. L. Kaminsky. Automatic program transformation with Joie. In Proc. USENIX Annual Technical Symposium, pages 167--178, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Emmi, R. Majumdar, and K. Sen. Dynamic test input generation for database applications. In Proc. ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA), pages 151--162. ACM, July 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. Godefroid, N. Klarlund, and K. Sen. Dart: Directed automated random testing. In PLDI, pages 213--223, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K. Haller. White-box testing for database-driven applications: a requirements analysis. In DBTest, pages 1--6. ACM, June 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. G. M. Kapfhammer. A comprehensive framework for testing database-centric software applications. PhD thesis, University of Pittsburgh, 2007.Google ScholarGoogle Scholar
  11. J. Madhavan, D. Ko, L. Kot, V. Ganapathy, A. Rasmussen, and A. Halevy. Google's deep web crawl. Proc. VLDB Endow., 1(2):1241--1252, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. L. d. Moura and N. Bjørner. Z3: An efficient SMT solver. In Proc. 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), pages 337--340. Springer, Apr. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. F. Olken. Random Sampling from Databases. PhD thesis, University of California, Berkeley, 1993.Google ScholarGoogle Scholar
  14. S. Raghavan and H. Garcia-Molina. Crawling the hidden web. In VLDB '01, pages 129--138, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. K. Sen and G. Agha. Cute and jCute: Concolic unit testing and explicit path model-checking tools. In CAV, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. N. Tillmann and J. de Halleux. Pex - white box test generation for .Net. In Proc. 2nd International Conference on Tests And Proofs (TAP), pages 134--153. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Veanes, P. Grigorenko, P. de Halleux, and N. Tillmann. Symbolic query exploration. In ICFEM, pages 49--68, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. S. Vitter. Random sampling with a reservoir. ACM Trans. Math. Softw., 11(1):37--57, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynamic symbolic database application testing

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Conferences
                  DBTest '10: Proceedings of the Third International Workshop on Testing Database Systems
                  June 2010
                  51 pages
                  ISBN:9781450301909
                  DOI:10.1145/1838126

                  Copyright © 2010 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 7 June 2010

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • research-article

                  Acceptance Rates

                  Overall Acceptance Rate31of56submissions,55%