Testing database applications using coverage analysis and mutation analysis

Thumbnail Image
Date
2013-01-01
Authors
Sarkar, Tanmoy
Major Professor
Advisor
Samik Basu
Johnny S. Wong
Committee Member
Journal Title
Journal ISSN
Volume Title
Publisher
Altmetrics
Authors
Research Projects
Organizational Units
Organizational Unit
Journal Issue
Is Version Of
Versions
Series
Department
Computer Science
Abstract

Database applications are built using two different programming

language constructs: one that controls the behavior of the

application, also referred to as the host language; and the

other that allows the application to access/retrieve information

from the back-end database, also referred to as the query

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

quality of test cases for the host language (e.g., Java) is

evaluated on the basis of the number of lines, statements and blocks covered by the test cases. High quality test cases for host

languages can be automatically generated using recently developed

concolic testing techniques, which rely on manipulating and guiding

the search of test cases based on carefully comparing the concrete

and symbolic execution of the program written in the host language. Query language test case quality (e.g., SQL), on the other

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

quality is measured using a metric called mutation score.

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.

Comments
Description
Keywords
Citation
Source
Subject Categories
Copyright
Tue Jan 01 00:00:00 UTC 2013