Non-semantics-preserving transformations for higher-coverage test generation using symbolic execution

Date

2016-05

Authors

Converse, Hayes Elliott

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Symbolic execution is a well-studied method that can produce high-quality test suites for programs. However, scaling it to real-world applications is a significant challenge, as it depends on the expensive process of solving constraints on program inputs. Our insight is that non-semantics-preserving program transformations can reduce the cost of symbolic execution and the tests generated for the transformed programs can still serve as quality suites for the original program. We present several such transformations that are designed to improve test input generation and/or provide faster symbolic execution. We evaluated these optimizations using a suite of small examples and a substantial subset of Unix's Coreutils. In more than 50% of cases, our approach reduces the test generation time and increases the code coverage.

Description

LCSH Subject Headings

Citation