of runnable test cases but instead produces a test case generator. When this principle is broadly applied, the development activities shift towards “meta development”. The developers are concerned with setting up a process able to find good solutions autonomously instead of finding the good solutions directly.

Scenarios {#sec:scenarios}
=========

We now want to include the issue of testing adaptive systems in our formal framework. We recognize that any development process for systems following the principles described in Section \[sec:formal\] produces two central types of artifacts: The first one is a system $S = X \stackrel{Z}{\leadsto} Y$ with a specific desired behavior $Y$ so that it manages to adapt to a given adaptation space. The second is a set of situations, test cases, constraints, and checked properties that this system’s behavior has been validated against. We call artifacts of the second type by the group name of *[scenarios]{}*.

\[def:scenario\] Let $S = X \stackrel{Z}{\leadsto} Y$ be a system and $\mathcal{A} = \{(E, \gamma, \phi)\}$ a singleton adaptation domain. A tuple $c = (X, Y, g, f), g \in \{\top, \bot \}, f \in \text{cod}(\phi)$ with $g = \top \iff S \otimes E \models \gamma$ and $f = \phi(S \otimes E)$ is 