Concolic Testing
TechniqueConcolic testing is a hybrid software and hardware verification technique that combines concrete execution with symbolic constraint tracking. By solving symbolic constraints, it systematically generates new inputs that steer execution along unexplored paths to maximize code coverage and expose bugs. The method has been adapted from general-purpose software into specialized settings such as logic programming, embedded RISC-V binaries analyzed through virtual prototypes, and RTL hardware designs, while known limitations include the path-explosion problem and scalability challenges on complex programs.
WIKI
Overview
Concolic testing (CT) is a verification technique that fuses concrete execution with symbolic execution. As a program runs concretely, CT records symbolic constraints on inputs along each branch. By negating selected constraints and invoking a constraint solver, CT produces new concrete inputs that drive execution down previously unexplored paths. The technique is widely used to maximize code coverage, activate hard-to-reach branches, expose assertion violations, and generate test suites that exercise different program behaviors (citation: Abstraction-driven Concolic Testing; LLM4DV; Sci China Inf Sci 2022, §6.1).