abstract:Concolic testing (a portmanteau of concrete and symbolic), first coined in the paper "CUTE: A concolic unit testing engine for C" by Koushik Sen, Darko Marinov, and Gul Agha, is a hybrid software verification technique that interleaves concrete execution (testing on particular inputs) with symbolic execution, a classical technique that treats program variables as symbolic variables. Symbolic execution is used in conjunction with an automated theorem prover or constraint solver based on constraint logic programming to generate new concrete inputs (test cases) with the aim of maximizing code coverage.