Testing database applications using coverage analysis and mutation analysis

dc.contributor.advisor Samik Basu
dc.contributor.advisor Johnny S. Wong
dc.contributor.author Sarkar, Tanmoy
dc.contributor.department Computer Science
dc.date 2018-08-11T16:58:45.000
dc.date.accessioned 2020-06-30T02:48:48Z
dc.date.available 2020-06-30T02:48:48Z
dc.date.copyright Tue Jan 01 00:00:00 UTC 2013
dc.date.embargo 2015-07-30
dc.date.issued 2013-01-01
dc.description.abstract <p>Database applications are built using two different programming</p> <p>language constructs: one that controls the behavior of the</p> <p>application, also referred to as the host language; and the</p> <p>other that allows the application to access/retrieve information</p> <p>from the back-end database, also referred to as the query</p> <p>language. The interplay between these two languages makes testing of database applications a challenging process. Independent approaches have been developed to evaluate test case quality for host languages and query languages. Typically, the</p> <p>quality of test cases for the host language (e.g., Java) is</p> <p>evaluated on the basis of the number of lines, statements and blocks covered by the test cases. High quality test cases for host</p> <p>languages can be automatically generated using recently developed</p> <p>concolic testing techniques, which rely on manipulating and guiding</p> <p>the search of test cases based on carefully comparing the concrete</p> <p>and symbolic execution of the program written in the host language. Query language test case quality (e.g., SQL), on the other</p> <p>hand, is evaluated using mutation analysis, which is considered to be a stronger criterion for assessing quality. In this case, several mutants or variants of the original SQL query are generated and the</p> <p>quality is measured using a metric called mutation score.</p> <p>The score indicates the percentage of mutants that can be identified in terms of their results using the given test cases. Higher mutation score indicates higher quality for the test cases. In this thesis we present novel testing strategy which guides concolic testing using mutation analysis for test case (which includes both program input and synthetic data) generation for database applications. The novelty of this work is that it ensures that the test cases are of high quality not only in terms of coverage of code written in the host language, but also in terms of mutant detection of the queries written in the query language.</p>
dc.format.mimetype application/pdf
dc.identifier archive/lib.dr.iastate.edu/etd/13308/
dc.identifier.articleid 4315
dc.identifier.contextkey 4615806
dc.identifier.doi https://doi.org/10.31274/etd-180810-3283
dc.identifier.s3bucket isulib-bepress-aws-west
dc.identifier.submissionpath etd/13308
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/27496
dc.language.iso en
dc.source.bitstream archive/lib.dr.iastate.edu/etd/13308/Sarkar_iastate_0097E_13651.pdf|||Fri Jan 14 19:49:49 UTC 2022
dc.subject.disciplines Computer Sciences
dc.subject.keywords Automatic Test Case Generation
dc.subject.keywords Concolic Testing
dc.subject.keywords Database Applications
dc.subject.keywords Database State Generation
dc.subject.keywords Mutation Analysis
dc.subject.keywords Program Analysis
dc.title Testing database applications using coverage analysis and mutation analysis
dc.type article
dc.type.genre dissertation
dspace.entity.type Publication
relation.isOrgUnitOfPublication f7be4eb9-d1d0-4081-859b-b15cee251456
thesis.degree.level dissertation
thesis.degree.name Doctor of Philosophy
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
3.25 MB
Adobe Portable Document Format