Generation of test purposes from Use Case Maps
The Use Case Map (UCM) scenario notation can be used to model service requirements and high-level designs for reactive and distributed systems. It is therefore a natural candidate for use in the process of generating requirementsdirected test suites. We survey several approaches for deriving test purposes from UCM models. We distinguish three main approaches. The first approach is based on testing patterns, the second one on UCM scenario definitions, and the third one on transformations to
... l specifications (e.g., in LOTOS). Several techniques will be briefly illustrated and compared in terms of quality of the test purposes obtained, ease of use, and tool support. We also identify challenges in refining these test purposes into test cases as well as opportunities for improving current UCM-based testing. Introduction During the past ten years, the Use Case Map (UCM) notation has been establishing itself for the specification of service requirements and high-level designs for various types of reactive and distributed systems   . A UCM model (also called map) depicts causal scenarios composed of responsibilities that can be assigned to an underlying component structure. Fig. 1 recalls the basic elements of this notation, with constructs for sequences (paths), alternatives (OR-forks, possibly with guarding conditions), and concurrent paths (AND-forks and AND-joins). Complex UCM models can also be decomposed: stubs on a path act as containers for sub-maps, which are called plug-ins. Engineers can use tools such as the UCM Navigator (UCMNAV) to create, maintain, analyze, and transform UCM models  . As other scenario notations, Use Case Maps can be used to direct test derivation. Since UCMs are often used at a very abstract level, close to user requirements, tests derived from UCM models have much potential for validating implementations at the system or acceptance level, or for testing more detailed design models (e.g., in SDL  or UML ) while they are developed. UCM models emphasize behavior rather than data, and they also abstract from detailed communication mechanisms. Therefore, they are inappropriate as the only source of information for the direct derivation of implementation-level test cases. However, they are very useful for deriving test purposes, which can then be refined into detailed test cases where data and communication aspects are added. A test purpose is composed of a test goal (a partiallyordered sequence of events) and of an expected test verdict (pass for an acceptance test, and fail for a rejection test). We shall see that UCM models are also useful for the generation of rejection tests, which ensure that a design or implementation under test refuses certain sequences of events.