Testing Your Code with Symbolic Execution

Abstract

Symbolic execution has gathered a lot of attention in recent years as an effective technique for generating high-coverage test suites and finding deep errors in complex software applications. In this tutorial, I will introduce symbolic execution, discuss its main challenges in terms of path exploration and constraint solving, and present our experience applying it in several different contexts, including bug finding, attack generation, patch testing and GPGPU testing.

Invited talk given at UPMARC Summer School 2013.