  In this paper we demonstrate an approach to model structure and behavior of
distributed systems, to map those models to a lightweight execution engine by
using a functional programming language and to systematically define and
execute tests for these models within the same technology. This is a
prerequisite for a smooth integration of model based development into an agile
method. The novelty of this paper is the demonstration, how composition and
state machine models for distributed asynchronously communicating systems can
easily be mapped to a lazy functional language and then using standard testing
techniques to define test on those programs. In particular distributed timing
aspects and underspecification can be treated accordingly within a functional
language, using a certain style of functions.
