Back to Search
Start Over
Automatically Detecting Integrity Violations in Database-Centric Applications
- 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.
- Subjects :
- Source code
Database
business.industry
Computer science
media_common.quotation_subject
020207 software engineering
Database administrator
02 engineering and technology
Static analysis
computer.software_genre
Task (project management)
Software
020204 information systems
0202 electrical engineering, electronic engineering, information engineering
Code (cryptography)
business
computer
Row
Associative property
media_common
Subjects
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