Hybrid concolic testing

R Majumdar, K Sen - 29th International Conference on Software …, 2007 - ieeexplore.ieee.org
29th International Conference on Software Engineering (ICSE'07), 2007ieeexplore.ieee.org
We present hybrid concolic testing, an algorithm that interleaves random testing with
concolic execution to obtain both a deep and a wide exploration of program state space. Our
algorithm generates test inputs automatically by interleaving random testing until saturation
with bounded exhaustive symbolic exploration of program points. It thus combines the ability
of random search to reach deep program states quickly together with the ability of concolic
testing to explore states in a neighborhood exhaustively. We have implemented our …
We present hybrid concolic testing, an algorithm that interleaves random testing with concolic execution to obtain both a deep and a wide exploration of program state space. Our algorithm generates test inputs automatically by interleaving random testing until saturation with bounded exhaustive symbolic exploration of program points. It thus combines the ability of random search to reach deep program states quickly together with the ability of concolic testing to explore states in a neighborhood exhaustively. We have implemented our algorithm on top of CUTE and applied it to obtain better branch coverage for an editor implementation (VIM 5.7, 150 K lines of code) as well as a data structure implementation in C. Our experiments suggest that hybrid concolic testing can handle large programs and provide, for the same testing budget, almost 4times the branch coverage than random testing and almost 2times that of concolic testing.
ieeexplore.ieee.org