TY - GEN
T1 - Inferential checking for mutants modifying database states
AU - Zhou, Chixiang
AU - Frankl, Phyllis
PY - 2011
Y1 - 2011
N2 - Several recent research projects have developed new testing techniques targeted to database application programs, a widely used class of programs with some unique characteristics. Mutation testing, focused on interactions between an application and a database, presents a promising approach to evaluating test adequacy and to evaluating the effectiveness of other test generation and test adequacy criteria. Prior work on database application mutation techniques has focused exclusively on SELECT statements, which extract data without modifying the database state. Extending the techniques to updating statements, INSERT, DELETE, and UPDATE, is challenging because it's necessary to compare the behavior of mutants when executed against the same database state, but each mutant execution changes the database state. This paper presents inferential checking, a new technique for determining whether mutants of an updating statement are killed, without actually executing the mutants. Queries are automatically derived from updating statements and their mutants, characterizing the state change that would occur if the statement were executed. Results of these queries are compared to determine which mutants are killed. The paper presents the technique, its implementation for Java/JDBC applications, and empirical evaluation demonstrating that it is efficient, precise, and useful
AB - Several recent research projects have developed new testing techniques targeted to database application programs, a widely used class of programs with some unique characteristics. Mutation testing, focused on interactions between an application and a database, presents a promising approach to evaluating test adequacy and to evaluating the effectiveness of other test generation and test adequacy criteria. Prior work on database application mutation techniques has focused exclusively on SELECT statements, which extract data without modifying the database state. Extending the techniques to updating statements, INSERT, DELETE, and UPDATE, is challenging because it's necessary to compare the behavior of mutants when executed against the same database state, but each mutant execution changes the database state. This paper presents inferential checking, a new technique for determining whether mutants of an updating statement are killed, without actually executing the mutants. Queries are automatically derived from updating statements and their mutants, characterizing the state change that would occur if the statement were executed. Results of these queries are compared to determine which mutants are killed. The paper presents the technique, its implementation for Java/JDBC applications, and empirical evaluation demonstrating that it is efficient, precise, and useful
KW - database application testing
KW - empirical evaluation
KW - java/jdbc
KW - mutation testing
UR - http://www.scopus.com/inward/record.url?scp=79958737164&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=79958737164&partnerID=8YFLogxK
U2 - 10.1109/ICST.2011.63
DO - 10.1109/ICST.2011.63
M3 - Conference contribution
AN - SCOPUS:79958737164
SN - 9780769543420
T3 - Proceedings - 4th IEEE International Conference on Software Testing, Verification, and Validation, ICST 2011
SP - 259
EP - 268
BT - Proceedings - 4th IEEE International Conference on Software Testing, Verification, and Validation, ICST 2011
T2 - 4th IEEE International Conference on Software Testing, Verification, and Validation, ICST 2011
Y2 - 21 March 2011 through 25 March 2011
ER -