Affiliation:
1. Microsoft Research
2. University of Colorado Boulder
Abstract
We introduce Verification Modulo Versions (VMV), a new static analysis technique for reducing the number of alarms reported by static verifiers while providing sound semantic guarantees. First, VMV extracts semantic environment conditions from a base program P. Environmental conditions can either be sufficient conditions (implying the safety of P) or necessary conditions (implied by the safety of P). Then, VMV instruments a new version of the program, P', with the inferred conditions. We prove that we can use (i) sufficient conditions to identify abstract regressions of P' w.r.t. P; and (ii) necessary conditions to prove the relative correctness of P' w.r.t. P. We show that the extraction of environmental conditions can be performed at a hierarchy of abstraction levels (history, state, or call conditions) with each subsequent level requiring a less sophisticated matching of the syntactic changes between P' and P. Call conditions are particularly useful because they only require the syntactic matching of entry points and callee names across program versions. We have implemented VMV in a widely used static analysis and verification tool. We report our experience on two large code bases and demonstrate a substantial reduction in alarms while additionally providing relative correctness guarantees.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
12 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Finding Fixed Vulnerabilities with Off-the-Shelf Static Analysis;2023 IEEE 8th European Symposium on Security and Privacy (EuroS&P);2023-07
2. WINE: Warning miner for improving bug finders;Information and Software Technology;2023-03
3. Fast Change-Based Alarm Reporting for Evolving Software Systems;2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE);2021-10
4. Fixpoint reuse for incremental JavaScript analysis;Proceedings of the 8th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis - SOAP 2019;2019
5. Abstract semantic diffing of evolving concurrent programs;Formal Methods in System Design;2018-08-21