DocumentCode
1606970
Title
Coexecutability for Efficient Verification of Data Model Updates
Author
Bocic, Ivan ; Bultan, Tevfik
Author_Institution
Dept. of Comput. Sci., Univ. of California, Santa Barbara, Santa Barbara, CA, USA
Volume
1
fYear
2015
Firstpage
744
Lastpage
754
Abstract
Modern applications use back-end data stores for persistent data. Automated verification of the code that updates the data store would prevent bugs that can cause loss or corruption of data. In this paper, we focus on the most challenging part of this problem: automated verification of code that updates the data store and contains loops. Due to dependencies between loop iterations, verification of code that contains loops is a hard problem, and typically requires manual assistance in the form of loop invariants. We present a fully automated technique that improves verifiability of loops. We first define co execution, a method for modeling loop iterations that simplifies automated reasoning about loops. Then, we present a fully automated static program analysis that detects whether the behavior of a given loop can be modeled using co execution. We provide a customized verification technique for co executable loops that results in more effective verification. In our experiments we observed that, in 45% of cases, modeling loops using co execution reduces verification time between 1 and 4 orders of magnitude. In addition, the rate of inconclusive verification results in the presence of loops is reduced from 65% down to 24%, all without requiring loop invariants or any manual intervention.
Keywords
data handling; program control structures; program diagnostics; reasoning about programs; automated code verification; automated reasoning about loops; back-end data store; bug prevention; coexecutability; customized verification technique; data corruption; data loss; data model update verification; data store update; fully automated static program analysis; loop behavior; loop invariants; loop iteration modeling; loop verifiability; persistent data; Cognition; Computer bugs; Data models; Manuals; Object oriented modeling; Rails; Semantics; Data Models; Logic-based Verification; Loop Analysis;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on
Conference_Location
Florence
Type
conf
DOI
10.1109/ICSE.2015.87
Filename
7194622
Link To Document