Symbolic execution is a program analysis technique to determine the program inputs that cause each part of a program to execute. Recent years have seen a surge in the number of software testing techniques that employ symbolic execution. In this talk, I will first give an introduction to symbolic execution. I will then describe two symbolic execution approaches that we developed to scale symbolic execution to large real-world software. The Ffrst approach parallelizes symbolic execution on clusters of commodity hardware, while providing linear speedups of the analysis. The second approach is selective symbolic execution that automatically minimizes the amount of code that has to be executed symbolically given a target analysis. The frameworks that implement both of these approaches are open source, and they are widely used by researchers and practitioners around the world. I will then describe an application that we built using parallel symbolic execution that allows classifying bugs in concurrent programs according to their potential severity. Finally, I will talk about some open questions and potential future research avenues where symbolic execution can be of help.


Baris Kasikci will join Microsoft Research Cambridge as a researcher in July, and he will start as an assistant professor of Electrical Engineering and Computer Science at the University of Michigan in Fall 2017. He completed his Ph.D. in the Dependable Systems Laboratory (DSLAB) at EPFL, advised by George Candea. His research is centered around developing techniques, tools, and environments that help developers build more reliable and secure software. He is interested in finding solutions that allow programmers to better reason about their code, and that efficiently detect bugs, classify them, and diagnose their root cause.

Baris is the recipient of the 2016 Roger Needham PhD Award for best PhD thesis in computer systems in Europe. Baris is also one of the four recipients of the VMware 2014-2015 Graduate Fellowship. During his Ph.D., he interned at Microsoft Research, VMware, and Intel. Before starting his Ph.D., he worked as a software engineer for four years, mainly developing real-time embedded systems software. More details can be found at

Les commentaires sont clos.