Dynamic Symbolic Execution for Testing Distributed Objects

  • Authors:
  • Andreas Griesmayer;Bernhard Aichernig;Einar Broch Johnsen;Rudolf Schlatte

  • Affiliations:
  • International Institute for Software Technology, United Nations University (UNU-IIST), Macao S.A.R., China;International Institute for Software Technology, United Nations University (UNU-IIST), Macao S.A.R., China and Institute for Software Technology, Graz University of Technology, Austria;Department of Informatics, University of Oslo, Norway;International Institute for Software Technology, United Nations University (UNU-IIST), Macao S.A.R., China and Institute for Software Technology, Graz University of Technology, Austria

  • Venue:
  • TAP '09 Proceedings of the 3rd International Conference on Tests and Proofs
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper extends dynamic symbolic execution to distributed and concurrent systems. Dynamic symbolic execution can be used in software testing to systematically identify equivalence classes of input values and has been shown to scale well to large systems. Although mainly applied to sequential programs, this scalability makes it interesting to consider the technique in the distributed and concurrent setting as well. In order to extend the technique to concurrent systems, it is necessary to obtain sufficient control over the scheduling of concurrent activities to avoid race conditions. Creol, a modeling language for distributed concurrent objects, solves this problem by abstracting from a particular scheduling policy but explicitly defining scheduling points. This provides sufficient control to apply the technique of dynamic symbolic execution for model based testing of interleaved processes. The technique has been formalized in rewriting logic, executes in Maude, and applied to non-trivial examples, including an industrial case study.