Back to Search Start Over

Automatically Detecting Integrity Violations in Database-Centric Applications

Authors :
Mark Grechanik
Boyang Li
Denys Poshyvanyk
Source :
ICPC
Publication Year :
2017
Publisher :
IEEE, 2017.

Abstract

Database-centric applications (DCAs) are widely used by many companies and organizations to perform various control and analytical tasks using large databases. Real-world databases are described by complex schemas that oftentimes contain hundreds of tables consisting of thousands of attributes. However, when software engineers develop DCAs, they may write code that can inadvertently violate the integrity of these databases. Alternatively, business analysts and database administrators can also make errors that lead to integrity violations (semantic bugs). To detect these violations, stakeholders must create assertions that check the validity of the data in the rows of the database tables. Unfortunately, creating assertions is a manual, laborious and error-prone task. Thus, a fundamental problem of testing DCAs is how to find such semantic bugs automatically. We propose a novel solution, namely DACITE, that enables stakeholders to automatically obtain constraints that semantically relate database attributes and code statements using a combination of static analysis of the source code and associative rule mining of the databases. We rely on SAT-solvers to validate if a solution to the combined constraints exists and issue warnings on possible semantic bugs to stakeholders. We evaluated our approach on eight open-source DCAs and our results suggest that semantic bugs can be found automatically with high precision. The results of the study with developers show that warnings produced by DACITE are useful and enable them to find semantic bugs faster.

Details

Database :
OpenAIRE
Journal :
2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC)
Accession number :
edsair.doi...........255626a05ddd8725ae4bed3ac18b080d
Full Text :
https://doi.org/10.1109/icpc.2017.37