NASA NTRS · 20150007883
Feedback-Driven Dynamic Invariant Discovery
Abstract
Program invariants can help software developers identify program properties that must be preserved as the software evolves, however, formulating correct invariants can be challenging. In this work, we introduce iDiscovery, a technique which leverages symbolic execution to improve the quality of dynamically discovered invariants computed by Daikon. Candidate invariants generated by Daikon are synthesized into assertions and instrumented onto the program. The instrumented code is executed symbolically to generate new test cases that are fed back to Daikon to help further re ne the set of candidate invariants. This feedback loop is executed until a x-point is reached. To mitigate the cost of symbolic execution, we present optimizations to prune the symbolic state space and to reduce the complexity of the generated path conditions. We also leverage recent advances in constraint solution reuse techniques to avoid computing results for the same constraints across iterations. Experimental results show that iDiscovery converges to a set of higher quality invariants compared to the initial set of candidate invariants in a small number of iterations.
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Zhang, Lingming, Yang, Guowei, Rungta, Neha S., Person, Suzette, Khurshid, Sarfraz. 2014-07-21. Feedback-Driven Dynamic Invariant Discovery. https://ntrs.nasa.gov/citations/20150007883
Cite the original work for its findings. Save a collection to share your selection of sources.