Concolic testing
Author:
Open Access
- 5 November 2007
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 571-572
Abstract
Concolic testing automates test input generation by com- bining the concrete and symbolic (concolic) execution of the code under test. Traditional test input generation tech- niques use either (1) concrete execution or (2) symbolic exe- cution that builds constraints and is followed by a generation of concrete test inputs from these constraints. In contrast, concolic testing tightly couples both concrete and symbolic executions: they run simultaneously, and each gets feedback from the other. We have implemented concolic testing in tools for test- ing both C and Java programs. We have used the tools to nd bugs in several real-world software systems including SGLIB, a popular C data structure library used in a com- mercial tool, a third-party implementation of the Needham- Schroeder protocol and the TMN protocol, the scheduler of Honeywell's DEOS real-time operating system, and the Sun Microsystems' JDK 1.4 collection framework. In this tuto- rial, we will describe concolic testing and some of its recent extensions.Keywords
This publication has 14 references indexed in Scilit:
- CUTE and jCUTE: Concolic Unit Testing and Explicit Path Model-Checking Tools2006
- CUTE2005
- DART2005
- Eclat: Automatic Generation and Classification of Test Inputs2005
- Symstra: A Framework for Generating Object-Oriented Unit Tests Using Symbolic Execution2005
- Test input generation with java PathFinder2004
- JCrasher: an automatic robustness tester for JavaSoftware: Practice and Experience, 2004
- A semantic model of program faults1996
- Symbolic execution systems—a reviewSoftware Engineering Journal, 1988
- Symbolic execution and program testingCommunications of the ACM, 1976