In model based testing test cases are derived from a specification of the implementation that we want to test. In general the specification is given on a more abstract level than the implementation. This may result in test cases that are not executable, because their actions are too abstract; the implementation does not understand them. One approach is to rewrite the specification to the required level of detail and regenerate the test cases. Rewriting a specification by hand is an error-prone and time consuming exercise that is not always favorable. Very often there is a good reason for the level of abstraction in a specification, for example to illustrate the structure of the system or to separate concerns. In this paper we present an approach to automatically obtain test cases of the required level of detail by means of action refinement. Action refinement is a way to add information to the abstract specification. The extra information relates actions from the abstract specification to concrete actions of the implementation. We will apply this approach to a simple case of action refinement, so called atomic linear input-inputs refinement. For this type of action refinement our approach enables us to automatically refine traces and transition systems. Furthermore, we present an implementation relation that relates an abstract specification with its concrete implementation and show that it is equivalent with the UIOCO implementation relation on the refined specification.
|Name||CTIT Technical Report Series|
|Publisher||University of Twente, Centre for Telematics and Information Technology (CTIT)|