COTE  Component Testing using the Unified Modelling Language

by Claude Jard and Simon Pickin

COTE is a French national project which aims to prototype an integrated testing environment for software components modelled in the Unified Modelling Language (UML).

A mass market in reusable software components requires a high level of component quality, making testing a crucial part of software quality assurance. For components modelled in UML (the Unified Modelling Language widely used in industry), there are significant advantages in also using UML for the test description language. This language is to be the pivotal formalism of a UML testing environment. It will be used as input by the executable test generator and, in work of a more tentative nature, will be produced as output by the test synthesiser. The prototyping of such an integrated testing environment is the goal of the COTE project.

After more than thirty years as a desideratum, component-based software is finally becoming a reality. In a software component economy, the provider needs to have confidence that the components will work correctly in widely differing contexts, while the client needs to have a clear, simple and reliable path to integrating components that ensures their correct functioning in the relevant application. The different players involved in the provision and acquisition of software components therefore need methods, tools and techniques to verify, test and certify them. Testing is a crucial part of software quality assurance, and the potential gains in productivity that can be obtained by automation of the testing process are large.

The notion of testing currently used in many approaches to object-based software testing is restricted to checks on the result of single method invocations using fixed parameters, or possibly to the execution of a sequence of such checks. Beyond these aspects, we wish to be able to correctly treat asynchronous messages, callbacks, branching, loops, explicit concurrency and active objects. We therefore seek inspiration from telecom testing, and in particular from the work carried out on conformance testing of telecom protocols. We are interested in black-box testing, and among the properties we wish to test are those concerned with correct ordering of the messages interchanged between the system under test conditions (the component being tested, possibly combined with other components whose communications are not all visible to the tester) and the tester, who plays the role of the systems environment. Among the different views used in UML modelling, interactions are most suitable for describing message orderings. With simplicity and user-friendliness in mind, we set ourselves the goal of providing a UML test profile based on the UML sequence diagram.

General architecture of the UML integrated case tool.

The COTE project is supported by the French Government through the RNTL (Réseau National des Technologies Logicielles) programme. It started in November 2000 and will last for a total of two years. The members of COTE are: France Telecom, GEMPLUS, IMAG/LSR, IRISA and Softeam (the project leader). The project is adapting those model-based testing techniques which have achieved a certain level of maturity (like TGV, mainly developed at IRISA and partly transferred to industry), in order to transpose them to the component setting. As well as test synthesis (from test purposes to abstract tests) and test generation (from abstract tests to concrete tests for particular platforms), work is also being carried out on techniques for statically certifying conformance and consistency. The intention is to obtain a good external coverage with a minimum of test definition work. The different techniques are being defined and employed at the level of the abstract model in order for them to be applicable in all currently employed component technologies (eg, EJB, CORBA or COM/.NET). The work of the project centres on black box unit testing of two types: behavioural tests generated from dynamic information, such as state diagrams, and functional tests generated from static information, such as pre- and post-conditions. It is not within the scope of the project to attempt to unify these two approaches in a systematic manner by treating data symbolically and using abstract interpretation and proof techniques. However, the interaction of the two types of technique is being studied with the aim of using them jointly in a complementary fashion. Several case studies are under development: a telecom information system and a smart card application in electronic commerce.