EDBT 2026 Demo / reviewers in the wild / expert
Ziqi Shuai
dblp:241/0945
· DBLP profile ↗
16ranked-venue papers
2as first author
12since 2021 · last 2026
0009-0003-0575-5074ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 16 · 2 first-author · 12 since 2021Artificial intelligence and machine learning · 1 · 1 since 2021Systems, architecture and hardware · 1Theory of computation · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Selective Concolic TestingabstractAbstract The principled combination of symbolic execution and random testing lacks a formal foundation, especially in deciding which inputs to symbolize. We propose selective concolic testing, a cost-aware framework that formulates this choice as an optimized policy problem of a MDP (Markov Decision Process). We model program exploration over a finite control-flow graph, where MDP states represent covered statements, actions partition path constraints into symbolic and random fragments, rewards reflect coverage gain, and costs account for SMT solving effort and sampling inefficiency. Our framework yields the first formal characterization of selective symbolization as policy synthesis in a probabilistic system. We prove that exact policy computation is intractable due to the exponential state space and the hardness of solution-density estimation via model counting. Our formulation enables a practical approximation: we partition constraint dependency graphs and use machine learning to predict solver timeouts, guiding per-constraint symbolization decisions. Built on top of KLEE and JFS, our prototype validates the approach on real-world floating-point benchmarks. Results show that selectively symbolizing inputs, guided by predicted solvability and cost, significantly improves coverage efficiency. Our work thus provides both a rigorous theoretical foundation and a practical instantiation for hybrid program analysis. Guofeng Zhang 0005, Zhenbang Chen 0001, Ziqi Shuai, Jun Sun 0001, Weijiang Hong, Yufeng Zhang 0001, Ji Wang 0001 |
FM (2) | 3 |
| 2025 | Symbolic execution of floating-point programs: How far are we?
Guofeng Zhang 0005, Ziqi Shuai, Zhenbang Chen 0001, Ji Wang 0001 |
J. Syst. Softw. | 3 |
| 2024 | FDSE: Enhance Symbolic Execution by Fuzzing-based Pre-Analysis (Competition Contribution)abstractAbstract serves as an automatic test generation tool designed for C programs based on symbolic execution. employs fuzzing-based pre-analysis and combines static symbolic execution and dynamic symbolic execution to improve the effectiveness of test generation. achieves 5132 scores and is ranked 4th in the branch coverage track of Test-Comp 2024. Guofeng Zhang 0005, Ziqi Shuai, Kelin Ma, Kunlin Liu, Zhenbang Chen 0001, Ji Wang 0001 |
FASE | 2 |
| 2024 | Adaptive solving strategy synthesis for symbolic executionabstractSummary Constraint solving is the enabling technique for symbolic execution. The advancement of constraint solving boosts the development and application of symbolic execution. Modern Satisfiability Modulo Theories (SMT) solvers provide the mechanism of solving strategy, allowing users to control the solving procedure. This mechanism significantly improves the solver's generalization ability. We observe that the symbolic executions of different programs are different constraint solving problems. Therefore, we propose synthesizing solving strategies for a program to fit the program's symbolic execution best. To achieve this, we propose an adaptive framework for synthesizing solving strategies, in which the constraints are classified into different categories, and the solving strategies are synthesized for different categories on demand. We propose novel synthesis algorithms that combine the offline trained deep learning models and online tuning to synthesize the solving strategy. The algorithms balance the synthesis overhead and the improvement achieved by the synthesized solving strategy. We have implemented our method on the state‐of‐the‐art symbolic execution engine KLEE for C programs and Symbolic Pathfinder (SPF) for Java programs. The results of the extensive experiments indicate that our method effectively improves the efficiency of symbolic execution. For the Coreutils benchmark, our method, on average, increases the numbers of paths and queries by 74.37% and 73.94% under Breadth First Search (BFS), respectively. Besides, we applied our method to a different benchmark of C programs and a benchmark of Java programs to validate the generalization ability. The results demonstrate that for the C benchmark, our method increases the numbers of paths and queries by 71.09% and 70.60% under BFS, respectively; For the Java benchmark, our method increases the numbers of paths and queries by 50.31% and 49.93% under BFS, respectively. These results show that our method has a good generalization ability. Zhenbang Chen 0001, Guofeng Zhang 0005, Ziqi Shuai, Weiyu Pan, Yufeng Zhang 0001, Ji Wang 0001 |
J. Softw. Evol. Process. | 4 |
| 2023 | Symbolic Execution of MPI Programs with One-Sided CommunicationsabstractMessage-passing interface (MPI) programs are non-deterministic and challenging to ensure correctness. The introduction of one-sided communications makes the problem of non-determinism more severe for MPI programs. This paper reports our in-progress work of symbolic execution for the MPI programs with one-sided communications. Our approach can cover the non-determinism caused by the inputs, one-sided communication, and message- passing operations of MPI programs. The preliminary evaluation's results indicate the promising of our approach. Nenghui Hu, Zheng Bian, Ziqi Shuai, Zhenbang Chen 0001, Yufeng Zhang 0001 |
APSEC | 3 |
| 2023 | Unsatisfiable Core Based Constraint Solving Cache in Symbolic ExecutionabstractConstraint solving stands out as a significant bot-tleneck in symbolic execution. Caching is a commonly adopted approach to alleviate this bottleneck. However, the cutting-edge caching technique targeting unsatisfiable constraints, known as unsatisfiable core caching, primarily involves checking whether the constraint being solved contains an unsatisfiable core that has been previously collected. Such straightforward reuse frequently proves less effective in numerous scenarios. In this paper, we present a novel method to enhance the utilization of unsatisfiable cores. By excavating unsatisfiable cores, our method can compute an easily solvable over-approximation that tends to be unsatis-fiable for each constraint, which facilitates the determination of the satisfiability of the original constraint. We implemented our method on KLEE symbolic executor. The evaluation results on 27 real-world programs are encouraging. Ziqi Shuai, Zhenbang Chen 0001, Yufeng Zhang 0001, Hengbiao Yu, Ji Wang 0001 |
APSEC | 1 |
| 2022 | Optimal Refinement-based Array Constraint Solving for Symbolic ExecutionabstractArray constraint solving is widely adopted by the existing symbolic execution engines for encoding programs precisely. The counterexample-guided abstraction refinement (CEGAR) based method is state-of-the-art for array constraint solving. However, we observed that the CEGAR-based method may need many refinements to solve the array constraints produced by the symbolic executor, which decreases the performance of constraint solving. Based on the observation, we propose a machine learning-based method to improve the efficiency of the CEGAR-based array constraint solving. Our method adaptively turns on or off the CEGAR loop according to different solving problems. We have implemented our method on the symbolic executor KLEE and its underlying CEGAR-based constraint solver STP. We have conducted an extensive experiment on 55 real-world programs. On average, our method increases the number of explored paths by 21%. The results of the extensive experiments on real-world C programs show the effectiveness of our method. Meixi Liu, Ziqi Shuai, Kelin Ma |
APSEC | 2 |
| 2022 | Symbolic Execution of Floating-point Programs: How far are we?abstractFloating-point programs are challenging for symbolic execution due to the constraint solving problem. To investigate the effectiveness and limitations of the existing methods, we conduct the first empirical study in this paper on five existing symbolic execution methods for floating-point programs. We have implemented the existing methods on the state-of-the-art symbolic execution KLEE and use the real-world representative floatingpoint programs as the benchmarks, which are used to evaluate the existing methods with respect to code coverage and bug finding. The results indicate that the existing methods complement each other in bug finding. Based on the findings of the experimental results, we propose synergizing the existing methods to improve symbolic execution‘s effectiveness. The experimental results demonstrate that our synergic method can detect more bugs. Guofeng Zhang 0005, Zhenbang Chen 0001, Ziqi Shuai |
APSEC | 3 |
| 2022 | Synergizing Symbolic Execution and Fuzzing By Function-level Selective SymbolizationabstractConstraint solving and environment modeling are two challenging problems for symbolic execution. When a program contains non-linear expressions, it is difficult for symbolic execution to explore the program’s whole path space due to the high complexity of the constraint solving for the nonlinear constraints. Besides, when the program uses a third-party library and the source code of the library is not available, the symbolic execution of the program often under-approximates the analysis by concrete execution or over-approximates by introducing new symbolic variables, which may fail to explore the whole path space or introduce false alarms, respectively. This paper proposes FUSE, a framework of synergizing symbolic execution and fuzzing by function-level selective symbolization to tackle these problems. First, FUSE collects the path constraints of each function selectively and introduces symbolic function invocation expressions for the complex or third-party functions. Then, FUSE combines SMT solving and fuzzing to solve the path constraints. We have implemented FUSE on the start-of-theart symbolic execution engine KLEE. The experimental results demonstrate that FUSE effectively and efficiently improves the code coverage. Compared with the state-of-the-art, FUSE achieves 6. 6x speedups for achieving the same code coverage. Guofeng Zhang 0005, Zhenbang Chen 0001, Ziqi Shuai, Yufeng Zhang 0001, Ji Wang 0001 |
APSEC | 3 |
| 2021 | Synthesize solving strategy for symbolic executionabstractSymbolic execution is powered by constraint solving. The advancement of constraint solving boosts the development and the applications of symbolic execution. Modern SMT solvers provide the mechanism of solving strategy that allows the users to control the solving procedure, which significantly improves the solver's generalization ability. We observe that the symbolic executions of different programs are actually different constraint solving problems. Therefore, we propose synthesizing a solving strategy for a program to fit the program's symbolic execution best. To achieve this, we divide symbolic execution into two stages. The SMT formulas solved in the first stage are used to online synthesize a solving strategy, which is then employed during the constraint solving in the second stage. We propose novel synthesis algorithms that combine offline trained deep learning models and online tuning to synthesize the solving strategy. The algorithms balance the synthesis overhead and the improvement achieved by the synthesized solving strategy. Zhenbang Chen 0001, Ziqi Shuai, Guofeng Zhang 0005, Weiyu Pan, Yufeng Zhang 0001, Ji Wang 0001 |
ISSTA | 3 |
| 2021 | Type and interval aware array constraint solving for symbolic executionabstractArray constraints are prevalent in analyzing a program with symbolic execution. Solving array constraints is challenging due to the complexity of the precise encoding for arrays. In this work, we propose to synergize symbolic execution and array constraint solving. Our method addresses the difficulties in solving array constraints with novel ideas. First, we propose a lightweight method for pre-checking the unsatisfiability of array constraints based on integer linear programming. Second, observing that encoding arrays at the byte-level introduces many redundant axioms that reduce the effectiveness of constraint solving, we propose type and interval aware axiom generation. Note that the type information of array variables is inferred by symbolic execution, whereas interval information is calculated through the above pre-checking step. We have implemented our methods based on KLEE and its underlying constraint solver STP and conducted large-scale experiments on 75 real-world programs. The experimental results show that our method effectively improves the efficiency of symbolic execution. Our method solves 182.56% more constraints and explores 277.56% more paths on average under the same time threshold. Ziqi Shuai, Zhenbang Chen 0001, Yufeng Zhang 0001, Jun Sun 0001, Ji Wang 0001 |
ISSTA | 1 |
| 2021 | Optimal Conjunctive Normal Form Encoding for Symbolic ExecutionabstractConstraint solving is a key challenge in symbolic execution.Usually, symbolic execution uses the fixed-size bitvector theory to precisely model the program's behavior and generates the bit-vector formula to query the SMT solver.To solve such bit-vector formula, SMT solvers usually adopt a bitblasting and conjunctive normal form (CNF) conversion step, transforming the original formula into a equi-satisfiable CNF formula, and then check the formula's satisfiability.However, the different CNF conversions can significantly affect the efficiency of SAT solving.We observe that each CNF encoding algorithm has its suitable applications, while adopting a specific CNF conversion algorithm for all formulas is often not optimal.Therefore, we propose to intelligently select a suitable CNF encoding algorithm for each logical formula.We have integrated our selection algorithm into the symbolic execution framework based on KLEE and STP, which are the state-of-the-art symbolic execution engine for C programs and its default underlying constraint solver, respectively.The experimental results, based on extensive evaluation of 86 real-world C programs in Coreutils benchmark, indicate that our method can effectively improve the efficiency of symbolic execution.On average, our method increases the number of the explored paths by 27.2%. Weiyu Pan, Ziqi Shuai |
SEKE | 2 |
| 2020 | Synthesizing Smart Solving Strategy for Symbolic ExecutionabstractConstraint solving is one of the challenges for symbolic execution. Modern SMT solvers allow users to customize the internal solving procedure by solving strategies. In this extended abstract, we report our recent progress in synthesizing a program-specific solving strategy for the symbolic execution of a program. We propose a two-stage procedure for symbolic execution. At the first stage, we synthesize a solving strategy by utilizing deep learning techniques. Then, the strategy will be used in the second stage to improve the performance of constraint solving. The preliminary experimental results indicate the promising of our method. Zhenbang Chen 0001, Ziqi Shuai, Yufeng Zhang 0001, Weiyu Pan |
ASE | 3 |
| 2020 | Multiplex Symbolic Execution: Exploring Multiple Paths by Solving OnceabstractPath explosion and constraint solving are two challenges to symbolic execution's scalability. Symbolic execution explores the program's path space with a searching strategy and invokes the underlying constraint solver in a black-box manner to check the feasibility of a path. Inside the constraint solver, another searching procedure is employed to prove or disprove the feasibility. Hence, there exists the problem of double searchings in symbolic execution. In this paper, we propose to unify the double searching procedures to improve the scalability of symbolic execution. We propose Multiplex Symbolic Execution (MuSE) that utilizes the intermediate assignments during the constraint solving procedure to generate new program inputs. MuSE maps the constraint solving procedure to the path exploration in symbolic execution and explores multiple paths in one time of solving. We have implemented MuSE on two symbolic execution tools (based on KLEE and JPF) and three commonly used constraint solving algorithms. The results of the extensive experiments on real-world benchmarks indicate that MuSE has orders of magnitude speedup to achieve the same coverage. Yufeng Zhang 0001, Zhenbang Chen 0001, Ziqi Shuai, Kenli Li 0001, Ji Wang 0001 |
ASE | 3 |
| 2020 | Efficient Multiplex Symbolic Execution with Adaptive Search StrategyabstractSymbolic execution is still facing the scalability problem caused by path explosion and constraint solving overhead. The recently proposed MuSE framework supports exploring multiple paths by generating partial solutions in one time of solving. In this work, we improve MuSE from two aspects. Firstly, we use a light-weight check to reduce redundant partial solutions for avoiding the redundant executions having the same results. Secondly, we introduce online learning to devise an adaptive search strategy for the target programs. The preliminary experimental results indicate the promising of the proposed methods. Yufeng Zhang 0001, Zhenbang Chen 0001, Ziqi Shuai, Ji Wang 0001 |
ASE | 4 |
| 2019 | A Wear Leveling Aware Memory Allocator for Both Stack and Heap Management in PCM-based Main Memory SystemsabstractPhase change memory (PCM) has been considered as a replacement of DRAM, due to its potentials in high storage density and low leakage power. However, the limited write endurance presents critical challenges. Various wear leveling techniques have been proposed to mitigate this issue from different perspectives, including both hardware and software levels. This paper proposes a wear leveling aware memory allocator, which (1) always prefers allocating memory blocks with less writes upon memory requests, and (2) leaves blocks allocated more than a threshold value unallocable temporarily. Furthermore, for the first time, this allocator provides a uniform management scheme for both stack and heap areas, thus could better balance writes in stack and heap areas. Experimental evaluations show that, compared to state-of-the-art memory allocators (i.e., glibc malloc, NVMalloc and Walloc), the proposed memory allocator improves the PCM wear leveling, in terms of CoV (a wear leveling indicator) by 41.9%, 30.3%, and 35.8%, respectively. Wei Li 0241, Ziqi Shuai, Chun Jason Xue, Mengting Yuan 0001, Qing'an Li |
DATE | 2 |