We can find most of the concepts in Nancy Lynch's Distributed Algorithms.
I/O automata
-
$sig(A)$ , a signature$S$ is a triple consisting of three disjoint sets of actions: the input actions,$in(S)$ , the output actions,$out(S)$ and the internal actions,$int(S)$ -
$state(A)$ , a set of states -
$start(A)$ , initial states, a nonempty subset of$state(A)$ -
$trans(A)$ , a state transition relation; for every state$s \in state(A)$ and every action$\pi$ ,
there is state$s' \in state(A)$ , and a transition$(s, \pi, s') \in trans(A)$ -
$task(A)$ , a task partition
A trace of
in which, there are
The state transition graph of an I/O automata produces a collection of trace sets, which are used to generate a set of test cases.