Show simple item record

dc.contributor.authorMcMinn, Phil
dc.contributor.authorWright, Chris J.
dc.contributor.authorKapfhammer, Gregory M.
dc.date.accessioned2016-01-28T17:00:27Z
dc.date.available2016-01-28T17:00:27Z
dc.date.issued2015-12-02
dc.identifier.citationPhil McMinn, Chris J. Wright, and Gregory M. Kapfhammer. 2015. The effectiveness of test coverage criteria for relational database schema integrity constraints. ACM Trans. Softw. Eng. Methodol. 25, 1, Article 8 (November 2015), 49 pages. DOI: http://dx.doi.org/10.1145/2818639en_US
dc.identifier.issn1049-331X
dc.identifier.issn1557-7392
dc.identifier.urihttp://hdl.handle.net/10456/40668
dc.description.abstractDespite industry advice to the contrary, there has been little work that has sought to test that a relational database's schema has correctly specified integrity constraints. These critically important constraints ensure the coherence of data in a database, defending it from manipulations that could violate requirements such as “usernames must be unique” or “the host name cannot be missing or unknown.” This article is the first to propose coverage criteria, derived from logic coverage criteria, that establish different levels of testing for the formulation of integrity constraints in a database schema. These range from simple criteria that mandate the testing of successful and unsuccessful INSERT statements into tables to more advanced criteria that test the formulation of complex integrity constraints such as multi-column PRIMARY KEYs and arbitrary CHECK constraints. Due to different vendor interpretations of the structured query language (SQL) specification with regard to how integrity constraints should actually function in practice, our criteria crucially account for the underlying semantics of the database management system (DBMS). After formally defining these coverage criteria and relating them in a subsumption hierarchy, we present two approaches for automatically generating tests that satisfy the criteria. We then describe the results of an empirical study that uses mutation analysis to investigate the fault-finding capability of data generated when our coverage criteria are applied to a wide variety of relational schemas hosted by three well-known and representative DBMSs—HyperSQL, PostgreSQL, and SQLite. In addition to revealing the complementary fault-finding capabilities of the presented criteria, the results show that mutation scores range from as low as just 12% of mutants being killed with the simplest of criteria to 96% with the most advanced.en_US
dc.language.isoen_USen_US
dc.publisherAssociation for Computing Machineryen_US
dc.relation.ispartofACM Transactions on Software Engineering and Methodologyen_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/2818639en_US
dc.subjectSoftware testingen_US
dc.subjectcoverage criteriaen_US
dc.subjectrelational database schemasen_US
dc.subjectschema testingen_US
dc.subjectintegrity constraintsen_US
dc.subjectautomatic test data generationen_US
dc.subjectmutation analysisen_US
dc.subjectsearch-based software engineeringen_US
dc.titleThe Effectiveness of Test Coverage Criteria for Relational Database Schema Integrity Constraintsen_US
dc.description.versionPublished articleen_US
dc.contributor.departmentComputer Scienceen_US
dc.citation.volume25en_US
dc.citation.issue1en_US
dc.identifier.doi10.1145/2818639
dc.contributor.avlauthorKapfhammer, Gregory M.


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record