Efficient Synthesis of Method Call Sequences for Test Generation and Bounded Verification
Yunfan Zhang, Ruidong Zhu, Yingfei Xiong, Tao Xie
Abstract
Modern programs are usually heap-based, where the programs manipulate heap-based data structures to perform computations. In software engineering tasks such as test generation and bounded verification, we need to determine the existence of a reachable heap state that satisfies a given specification, or construct the heap state by a sequence of calls to the public methods. Given the huge space combined from the methods and their arguments, the existing approaches typically adopt static analysis or heuristic search to explore only a small part of search space in the hope of finding the target state and target call sequence early on. However, these approaches do not have satisfactory performance on many real-world complex methods and specifications. In this paper, we propose an efficient synthesis algorithm for method call sequences, including an offline procedure for exploring all reachable heap states within a scope, and an online procedure for generating a method call sequence from the explored heap states to satisfy the given specification. To improve the efficiency of state exploration, we introduce a notion of abstract heap state for compactly representing heap states of the same structure and propose a strategy of merging structurally-isomorphic states. The experimental results demonstrate that our approach substantially outperforms the baselines in both test generation and bounded verification. CCS CONCEPTS • Software and its engineering → Software testing and debugging; Formal software verification.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext d2bd69f3-a60f-454c-926c-e6617ee74468Cited by top-tier papers1
Ask how each one uses itBuilds on1
Related papers
- Sound and Complete Invariant-Based Heap EncodingsZafer Esen, Philipp Rümmer, Tjark WeberOOPSLA 2026
- Cyclic program synthesisShachar Itzhaky, Hila Peleg, Nadia Polikarpova, Reuben N. S. Rowe et al.PLDI 2021 · 26 citations
- Synthesizing Efficient Memoization AlgorithmsYican Sun, Xuanyu Peng, Yingfei XiongOOPSLA 2023 · 2 citations
- Theory Exploration Powered by Deductive SynthesisEytan Singher, Shachar ItzhakyCAV 2021 · 19 citations
- LISSA: Lazy Initialization with Specialized Solver AidJuan Manuel Copia, Pablo Ponzio, Nazareno Aguirre, Alessandra Gorla et al.ASE 2022 · 3 citations
