Heuristics for Scalable Dynamic Test Generation

  • Authors:
  • J. Burnim;K. Sen

  • Affiliations:
  • EECS, UC Berkeley, Berkeley, CA;EECS, UC Berkeley, Berkeley, CA

  • Venue:
  • ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.02

Visualization

Abstract

Recently there has been great success in using symbolic execution to automatically generate test inputs for small software systems. A primary challenge in scaling such approaches to larger programs is the combinatorial explosion of the path space. It is likely that sophisticated strategies for searching this path space are needed to generate inputs that effectively test large programs (by, e.g., achieving significant branch coverage). We present several such heuristic search strategies, including a novel strategy guided by the control flow graph of the program under test. We have implemented these strategies in CREST, our open source concolic testing tool for C, and evaluated them on two widely-used software tools, grep 2.2 (15 K lines of code) and Vim 5.7 (150 K lines). On these benchmarks, the presented heuristics achieve significantly greater branch coverage on the same testing budget than concolic testing with a traditional depth-first search strategy.