Symstra: a framework for generating object-oriented unit tests using symbolic execution

  • Authors:
  • Tao Xie;Darko Marinov;Wolfram Schulte;David Notkin

  • Affiliations:
  • Dept. of Computer Science & Engineering, Univ. of Washington, Seattle, WA;Department of Computer Science, University of Illinois, Urbana-Champaign, IL;Microsoft Research, Redmond, WA;Dept. of Computer Science & Engineering, Univ. of Washington, Seattle, WA

  • Venue:
  • TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
  • Year:
  • 2005

Quantified Score

Hi-index 0.02

Visualization

Abstract

Object-oriented unit tests consist of sequences of method invocations. Behavior of an invocation depends on the method's arguments and the state of the receiver at the beginning of the invocation. Correspondingly, generating unit tests involves two tasks: generating method sequences that build relevant receiver-object states and generating relevant method arguments. This paper proposes Symstra, a framework that achieves both test generation tasks using symbolic execution of method sequences with symbolic arguments. The paper defines symbolic states of object-oriented programs and novel comparisons of states. Given a set of methods from the class under test and a bound on the length of sequences, Symstra systematically explores the object-state space of the class and prunes this exploration based on the state comparisons. Experimental results show that Symstra generates unit tests that achieve higher branch coverage faster than the existing test-generation techniques based on concrete method arguments.