Cow_Suite: A UML-Based Tool for Test-Suite Planning and Derivation
by Francesca Basanieri, Antonia Bertolino, Gaetano Lombardi, Giovanni Nucera, Eda Marchetti and Alberto Ribolini
The Cow_Suite tool provides an integrated, practical and tool-supported approach to the strategic generation and planning of Unified Modeling Language (UML)-based test suites for large industrial software systems. The tool can be adopted from the early stages of system analysis and modelling, and uses the UML diagrams developed for analysis and design without requiring any additional formalism or specific ad-hoc effort for testing purposes.
The Cow_Suite (COWtest pluS UIT Environment) approach supports the early generation of high-level strategic test plans, which can be outlined during the early phases of software life cycles and continuously refined and updated throughout development as the design evolves. Cow_Suite combines two original components: a method to derive test cases, called UIT (Use Interaction Test), and a strategy for test prioritization and selection, called Cowtest (Cost-Weighted Test Strategy). These two components work in conjunction as Cowtest helps decide which and how many test cases should be planned within the universe of test cases that UIT could derive for the entire system under consideration.
The tool was developed at ISTI-CNR in collaboration with Ericsson Lab Italy (ERI, Rome), within the framework of the PISATEL inititative.
With respect to the many UML-based test approaches already proposed, the main innovative features of Cow_Suite can be summarised as:
- usability: there is no need to augment the UML specifications with specific annotations to facilitate test derivation, nor to translate the UML diagrams into an intermediate notation that the testing methods can process. Cow_Suite adapts to the modelling notations and procedures in use, and not vice versa.
- timeliness: while other methods require a complete and fairly detailed set of UML diagrams, Cow_Suite can begin to outline a test plan from the early stages of software development. Naturally the plan will be as abstract as the diagrams being processed.
- incrementality: Cow_Suite has been conceived for system and integration testing, typically conducted in an incremental fashion, considering progressively larger parts of the system and addressing, at each step, the relevant functionalities and interactions for that level.
- scale: Cow_Suite trades thoroughness for comprehensiveness: it addresses UML-based testing of real-world systems in a practical, efficient way. The combined usage of Cowtest and UIT makes it possible to derive a feasible number of test cases while keeping the coverage of functional areas as wide as possible.
The Cow_Suite tool has been designed to be compatible with the Rational Rose tool from which it retrieves the required information. In particular, it employs the Use Case, Sequence, Communication and Class diagrams.
The tool execution starts by importing information on the UML design elements and organising it in a sort of hierarchy, whose root is represented by an Actor and leaves by Sequence or Communication Diagrams (see Figure 1). This hierarchy provides the user with a complete view of the status of the functionality specification and up-to-date documentation on Use Cases and their Realisation, Sequence and Communication Diagrams associated with each specification level, the reused nodes and those elements not linked with the other parts of the design.
|Figure 1: The Cow_Suite hierarchical organisation of the UML diagrams.
At this point, users can annotate each node with a specific weight, representing the relative 'importance' of this node with respect to the other nodes at the same level, and choose between two supported test strategies: a fixed number of test cases, or fixed functional coverage.
Users can then decide the integration level at which the test suite should be derived (or which of the elements of the UML model should be tested), by simply highlighting a portion of the hierarchy.
|Figure 2: The Cow_Suite usage schema.
The UIT component will then automatically derive a list of test cases on the basis of the UML diagrams corresponding to the chosen integration level. These will be specified with a granularity corresponding to the degree of detail at which the considered diagrams are modelled. In Figure 2 we show a schema of the process adopted by the tool.
The Cow_Suite tool has already been applied to several case studies. In one industrial case study we compared the UIT-derived test plan with an existing test plan (called ERI). The ERI test plan had been developed manually, following the standard in-house procedures at Ericsson, based mainly on the testers' skill and their knowledge of the system. The UIT test plan was instead derived automatically at ISTI-CNR, using only the available UML design diagrams. The purpose of the comparison was to evaluate the main advantages of the UIT test plan in terms of cost, schedule and test strategy selection. The following advantages emerged from experimentation with the tool:
- derivation of a detailed test plan in advance with respect to the testing stage; this plan can be used as a baseline for deciding the most appropriate test selection strategy
- a realistic evaluation of the requirements and functional coverage that can be reached (timely implementation of corrective actions or different choices for the test strategy are possible)
- reduction of the time necessary for test plan derivation (the same level of requirement coverage was obtained in a quarter of the time).
On the negative side we observed that the automatic derivation of test cases failed to include exceptional test cases, that is, test cases to handle abnormal system behaviour. This is reasonable and suggests that as good practice an expert should check the automated test plan before deployment to cover special situations.
Further experimentation is of course desirable, and Cow_Suite is freely available in a prototype version for public usage.
Eda Marchetti, ISTI-CNR, Italy
Tel: +39 050 315 3467