Title :
Efficient symbolic execution for software testing
Author :
Kinder, Johannes
Author_Institution :
Dept. of Comput. Sci. at R. Holloway, Univ. of London, London, UK
Abstract :
Summary form only given. Symbolic execution has proven to be a practical technique for building automated test case generation and bug finding tools. While the basic technique had been introduced already in the 70s, the advent of modern SAT and SMT solvers has lead to a surge of tools and techniques in the area over the last decade. This tutorial will introduce and compare the different approaches to using symbolic execution for testing and discuss the specific challenges and trade-offs. A main challenge in symbolic execution is path explosion, and various proposals have been made to combat it. I will discuss how these techniques affect the number and type of solver queries that have to be made, and how this can lead to surprising effects on the efficiency of a symbolic execution engine. Going further, we will look at developments to increase the scope of symbolic execution to larger software systems. Specific topics covered include state merging, procedure summaries, abstraction, search strategies, and parallelization.
Keywords :
merging; parallel processing; program debugging; program testing; symbol manipulation; SAT solvers; SMT solvers; abstraction; automated test case generation; bug finding tools; parallelization; procedure summaries; search strategies; software systems; software testing; state merging; symbolic execution engine; Abstracts; Buildings; Computer science; Educational institutions; Electronic mail; Software testing; Tutorials;
Conference_Titel :
Formal Methods in Computer-Aided Design (FMCAD), 2014
Conference_Location :
Lausanne
DOI :
10.1109/FMCAD.2014.6987585