Abstractions from tests
Authors:
Open Access
- 25 January 2012
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 373-386
Abstract
We present a framework for leveraging dynamic analysis to find good abstractions for static analysis. A static analysis in our framework is parametrised. Our main insight is to directly and efficiently compute from a concrete trace, a necessary condition on the parameter configurations to prove a given query, and thereby prune the space of parameter configurations that the static analysis must consider. We provide constructive algorithms for two instance analyses in our framework: a flow- and context-sensitive thread-escape analysis and a flow- and context-insensitive points-to analysis. We show the efficacy of these analyses, and our approach, on six Java programs comprising two million bytecodes: the thread-escape analysis resolves 80% of queries on average, disproving 28% and proving 52%; the points-to analysis resolves 99% of queries on average, disproving 29% and proving 70%.Keywords
This publication has 20 references indexed in Scilit:
- From Tests to Proofs2009
- The Yogi Project: Software Property Checking via Static Analysis and TestingLecture Notes in Computer Science, 2009
- Relevance heuristics for program analysis2008
- Path invariants2007
- SYNERGY2006
- The DaCapo benchmarks2006
- Testing, abstraction, theorem proving: better together!2006
- CUTE2005
- Abstractions from proofs2004
- Counterexample-guided abstraction refinement for symbolic model checkingJournal of the ACM, 2003