scispace - formally typeset
Proceedings ArticleDOI

Symbolic execution for software testing in practice: preliminary assessment

Reads0
Chats0
TLDR
Symbolic execution is a program analysis technique introduced in the 70s that has received renewed interest in recent years, due to algorithmic advances and increased availability of computational power and constraint solving technology.
Abstract
We present results for the "Impact Project Focus Area" on the topic of symbolic execution as used in software testing. Symbolic execution is a program analysis technique introduced in the 70s that has received renewed interest in recent years, due to algorithmic advances and increased availability of computational power and constraint solving technology. We review classical symbolic execution and some modern extensions such as generalized symbolic execution and dynamic test generation. We also give a preliminary assessment of the use in academia, research labs, and industry.

read more

Content maybe subject to copyright    Report

Citations
More filters
Journal ArticleDOI

Symbolic execution for software testing: three decades later

TL;DR: The challenges---and great promise---of modern symbolic execution techniques, and the tools to help implement them.
Journal ArticleDOI

An orchestrated survey of methodologies for automated software test case generation

TL;DR: An orchestrated survey of the most prominent techniques for automatic generation of software test cases, reviewed in self-standing sections, aimed at giving an introductory, up-to-date and (relatively) short overview of research in automatic test case generation.
BookDOI

Deductive Software Verification - The KeY Book

TL;DR: This book is the definitive guide to KeY that lets you explore the full potential of deductive software verification in practice and contains the complete theory behind KeY for active researchers who want to understand it in depth or use it in their own work.
Proceedings ArticleDOI

Software testing: a research travelogue (2000–2014)

TL;DR: The goal of this paper is to provide an accounting of some of the most successful research performed in software testing since the year 2000, and to present what appear to be the most significant challenges and opportunities in this area.
Journal ArticleDOI

Symbolic PathFinder: integrating symbolic execution with model checking for Java bytecode analysis

TL;DR: Symbolic PathFinder is a software analysis tool that combines symbolic execution with model checking for automated test case generation and error detection in Java bytecode programs.
References
More filters
Book ChapterDOI

Z3: an efficient SMT solver

TL;DR: Z3 is a new and efficient SMT Solver freely available from Microsoft Research that is used in various software verification and analysis applications.
Proceedings ArticleDOI

LLVM: a compilation framework for lifelong program analysis & transformation

TL;DR: The design of the LLVM representation and compiler framework is evaluated in three ways: the size and effectiveness of the representation, including the type information it provides; compiler performance for several interprocedural problems; and illustrative examples of the benefits LLVM provides for several challenging compiler problems.
Journal ArticleDOI

Symbolic execution and program testing

TL;DR: A particular system called EFFIGY which provides symbolic execution for program testing and debugging is described, which interpretively executes programs written in a simple PL/I style programming language.
Proceedings ArticleDOI

KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs

TL;DR: A new symbolic execution tool, KLEE, capable of automatically generating tests that achieve high coverage on a diverse set of complex and environmentally-intensive programs, and significantly beat the coverage of the developers' own hand-written test suite is presented.
Journal ArticleDOI

DART: directed automated random testing

TL;DR: DART is a new tool for automatically testing software that combines three main techniques, automated extraction of the interface of a program with its external environment using static source-code parsing, and dynamic analysis of how the program behaves under random testing and automatic generation of new test inputs to direct systematically the execution along alternative program paths.