• DocumentCode
    2602060
  • Title

    Generating program inputs for database application testing

  • Author

    Pan, Kai ; Wu, Xintao ; Xie, Tao

  • Author_Institution
    Univ. of North Carolina at Charlotte, Charlotte, NC, USA
  • fYear
    2011
  • fDate
    6-10 Nov. 2011
  • Firstpage
    73
  • Lastpage
    82
  • Abstract
    Testing is essential for quality assurance of database applications. Achieving high code coverage of the database application is important in testing. In practice, there may exist a copy of live databases that can be used for database application testing. Using an existing database state is desirable since it tends to be representative of real-world objects´ characteristics, helping detect faults that could cause failures in real-world settings. However, to cover a specific program code portion (e.g., block), appropriate program inputs also need to be generated for the given existing database state. To address this issue, in this paper, we propose a novel approach that generates program inputs for achieving high code coverage of a database application, given an existing database state. Our approach uses symbolic execution to track how program inputs are transformed before appearing in the executed SQL queries and how the constraints on query results affect the application´s execution. One significant challenge in our problem context is the gap between program-input constraints derived from the program and from the given existing database state; satisfying both types of constraints is needed to cover a specific program code portion. Our approach includes novel query formulation to bridge this gap. Our approach is loosely integrated into Pex, a state-of-the-art white-box testing tool for .NET from Microsoft Research. Empirical evaluations on two real database applications show that our approach assists Pex to generate program inputs that achieve higher code coverage than the program inputs generated by Pex without our approach´s assistance.
  • Keywords
    database management systems; program compilers; program testing; query processing; software fault tolerance; .NET; Microsoft Research; Pex; code coverage; database application testing; executed SQL queries; fault detection; program code portion; program input constraints; program input generation; quality assurance; query formulation; query results; symbolic execution; white box testing tool; Concrete; Context; Copper; Databases; Feeds; Loans and mortgages; Testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Automated Software Engineering (ASE), 2011 26th IEEE/ACM International Conference on
  • Conference_Location
    Lawrence, KS
  • ISSN
    1938-4300
  • Print_ISBN
    978-1-4577-1638-6
  • Type

    conf

  • DOI
    10.1109/ASE.2011.6100152
  • Filename
    6100152