@inproceedings{24a266e72f624b70ba1c58e82dc5f7e0,
title = "How verified is my code? Falsification-driven verification",
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.",
keywords = "Falsification, Model checking, Mutation, Oracles, Test harnesses, Verification",
author = "Alex Groce and Iftekhar Ahmed and Carlos Jensen and McKenney, {Paul E.}",
note = "Publisher Copyright: {\textcopyright} 2015 IEEE.; 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015 ; Conference date: 09-11-2015 Through 13-11-2015",
year = "2016",
month = jan,
day = "4",
doi = "10.1109/ASE.2015.40",
language = "English (US)",
series = "Proceedings - 2015 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
pages = "737--748",
booktitle = "Proceedings - 2015 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015",
}