Stream X-machines have been used to specify real systems requiring to represent complex data structures. They are a kind of extended finite state machine using a shared memory to specify communications between the components of systems. In this paper we introduce an extension of the Stream X-machines formalism in order to specify systems that present temporal requirements. On the one hand, we consider that (output) actions take time to be performed. On the other hand, our formalism allows to specify timeouts. Timeouts represent the time a system can wait for the environment to react. Since timeous affect the set of available actions of the system, a relation focusing on the functional behavior of systems, that is, the actions that they can perform, must explicitly take into account the possible timeouts. We also propose a formal testing methodology allowing to systematically test a system with respect to a specification. Finally, we introduce a test derivation algorithm. Given a specification, the derived test suite is sound and complete, that is, a system under test successfully passes the test suite if and only if this system conforms to the specification.