Nikolai Tillmann and Wolfram Schulte
Unit tests are popular, but it is an art to write them in a way that specifies a program’s behavior well and it is laborious to write enough of them to have confidence in the correctness of an implementation. Symbolic execution is an approach that can help. We describe techniques for unit testing based on symbolic execution. These techniques can be used to increase code coverage by finding relevant variations of existing unit tests, and they can be used to generate unit tests from an implementation automatically when no prior unit tests exist. The adoption of symbolic analysis techniques in commercial testing tools has already begun.
In IEEE Software
© 2008 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE. http://www.ieee.org/