The Community for Technology Leaders
2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE) (2015)
Lincoln, NE, USA
Nov. 9, 2015 to Nov. 13, 2015
ISBN: 978-1-5090-0024-1
pp: 737-748
ABSTRACT
Formal verification has advanced to the point that developers can verify the correctness of small, critical modules. Unfortunately, despite considerable efforts, determining if a "verification" verifies what the author intends is still difficult. Previous approaches are difficult to understand and often limited in applicability. Developers need verification coverage in terms of the software they are verifying, not model checking diagnostics. We propose a methodology to allow developers to determine (and correct) what it is that they have verified, and tools to support that methodology. Our basic approach is based on a novel variation of mutation analysis and the idea of verification driven by falsification. We use the CBMC model checker to show that this approach is applicable not only to simple data structures and sorting routines, and verification of a routine in Mozilla's JavaScript engine, but to understanding an ongoing effort to verify the Linux kernel Read-Copy-Update (RCU) mechanism.
INDEX TERMS
Arrays, Model checking, Software, Sorting, Computer bugs, Software engineering
CITATION

A. Groce, I. Ahmed, C. Jensen and P. E. McKenney, "How Verified is My Code? Falsification-Driven Verification (T)," 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE), Lincoln, NE, USA, 2015, pp. 737-748.
doi:10.1109/ASE.2015.40
88 ms
(Ver 3.3 (11022016))