M. Kärki and M. Karinsalo, "Reuse in TTCN-3 test system," ETSI TTCN-3 User Conference 2005: Sophia Antipolis (France), June 6-6, 2005.
Added by: Deleted user (25 Jul 2008 14:48:26 Europe/Berlin) Last edited by: Deleted user (13 Aug 2008 14:11:09 Europe/Berlin)
|Resource type: Conference Paper
BibTeX citation key: Karkia
View all bibliographic details
Creators: Karinsalo, Kärki
Publisher: ETSI (Sophia Antipolis (France))
Collection: ETSI TTCN-3 User Conference 2005
Views index: %
Popularity index: 21%
Software reuse practices aim at improving efficiency of software development and quality of software products by reusing software items in a variety of contexts. The management of a variety of products benefits from software reuse as well. However, practice has shown that development of reusable software is challenging and failures are common. One of the challenges is to identify opportunities for reuse; and secondly, actually be able to reuse already written software.
Software reuse has been practiced for decades, evolving from ad-hoc code reuse to today’s component-based software engineering (CBSE) and product line engineering approaches. While CBSE uses different component compositions to build different products, the product line engineering approach aims to build an architecture that expresses the commonalities between different products, and variation points to express the diversity (e.g. common product family architecture with variation points for different products). In other words, CBSE takes a component driven, bottom-up approach to reuse by reusing individual components in different contexts; The product line engineering can be seen as top-down, architecture-driven approach where the common parts of the components and the overall system structure are the target of reuse.
TTCN-3 test system is conceptually a set of interacting entities, in which each entity implements a particular functionality needed to construct the entire test system. A central entity of a test system is TTCN-3 Executable (TE), which implements the execution of a TTCN-3 test suite. The TE is automatically generated from the ATS using TTCN-3 compiling tools. In addition to the TE entity, the TTCN-3 test system structure includes Test Management (TM), Component Handling (CH), Coding and Decoding (CD), SUT Adaptor (SA), and Platform Adaptor (PA), which implement the TTCN-3 runtime and control interfaces. TM is for overall management of the test execution, CH is used to administer test components, and CD is for handling of types and values. SA implements the communication with the SUT and PA implements timers and external functions.
The above described test system structure with its entities defines the reference architecture where functionality of TTCN-3 test system is decomposed and interconnection of the entities described. This reference architecture is useful step towards a TTCN-3 test system architecture: In a specific TTCN-3 test system, also known as a tester, the architecture and the components of the TTCN-3 test system need to be specified in detail. Finally, test system entities are implemented with software from scratch, or they are reused from existing test systems. Therefore, improving the efficiency of TTCN-3 test system development through reuse could provide benefits similar to software reuse benefits. However, to overcome the challenges of developing reusable test systems, test engineers should foresee the reuse needs, identify commonalities and differences between different test systems, and design and implement test systems with reuse practices in mind.
In this presentation, we describe a tentative approach for developing reusable TTCN-3 test systems by investigating software reuse practices, which have been proved successful in producing reusable software code. These practices include, component-based software development, and product line engineering and the techniques applied in their contexts: component compositions, component binding, and variability mechanisms. We also aim to unify these two practices to maximize the reuse level of TTCN-3 test systems. The approach is aimed people who are involved in TTCN-3 test system development but also for tool manufactures can benefit from the approach.
In particular, the approach
• refines the existing TTCN-3 test system structure from reuse perspective, i.e., existing architectural components (i.e, the entities) are decomposed into new ones to better reflect the functionality,
• defines means to compose different implementations of the architectural components into fully working test system. Particular, interest here is the definition of common rules and framework for smooth integration of the test system components,
• address the means to enhance the reusability of the individual test system components. In this case, the individual components are divided into common and specific parts, and
• finally, investigates the time when the components are taken into use (i.e., development-time, compilation-time, link-time, and runtime-time)
The approach is illustrated with examples to put the theoretical approach into practice. The first example illustrates how the component reusability is realized using TTCN-3 in C++ context. The other example illustrates the common rules and framework to address the reusability on test system level. In this case, multiple interfaces exist in the SUT to which different adaptations are needed. Thanks to taken approach new adaptations can be easily added and existing ones reused without the need for modification of the TTCN-3 test system.
Added by: Deleted user Last edited by: Deleted user