An Introduction to TTCN-3
- A complete tutorial reference on TTCN-3 with real-world examples and expert advice based on author’s practical industrial experience using the standard.
- Offering a unique insider perspective: Nokia has been instrumental in the development of both the language and tools associated with TTCN-3 and the author is in a unique position to document this experience to help and guide new users.
- And an associated web site that contains code samples from the book and links to the relevant standards documents.
This book provides the perfect companion to the available TTCN-3 language standards filling the gaps in areas such as style guide, structuring, and pointing out the dangers or pitfalls based on the author’s personal TTCN-3 experience from language standardization, tool implementation and applying TTCN-3 for a number of years in the real world. The style and level of the book make it suitable for both engineers learning and applying the language in the real world and students learning TTCN-3 as part of their studies.
List of Figures.
List of Tables.
Abbreviations and Acronyms.
1.1 TTCN-3 as a Language.
1.2 The Development of TTCN-3.
2 TTCN-3 by Example.
2.1 TTCN-3 Test Suite.
2.2 TTCN-3 Test Systems.
3 Basic TTCN-3.
3.1 Basic Constructs.
3.2 Basic Statements.
4 Non-concurrent TTCN-3.
4.3 Test Cases.
4.5 Message-based Communication.
4.7 Alt Statement.
4.9 Default Altsteps.
5 Concurrent TTCN-3.
5.1 Concurrent Test Case Example.
5.2 Test Components.
5.3 Mappings and Connections.
5.4 Miscellaneous Port Operations.
5.5 SUT Addresses.
6 Procedure-based Communication.
6.1 Procedure-Versus Message-based Communication.
6.2 An Example – the Directory Service.
6.3 Procedure-based Communication in TTCN-3.
6.4 Communication Operations.
6.5 Procedure-based Communication on the Client Side.
6.6 Procedure-based Communication on the Server Side.
7 Modular TTCN-3.
7.2 Group Definitions.
7.4 Module Parameters.
8 TTCN-3 Data Types.
8.1 The Session Initiation Protocol.
8.3 TTCN-3 Built-in Types.
8.4 User-defined Types.
9 Advanced Type Topics.
9.1 Type Compatibility.
9.2 The Anytype Type.
9.3 The Address Type.
9.4 Recursive Type Definitions.
9.5 Foreign Type Systems.
10.1 A First Look at TTCN-3 Templates.
10.2 The TTCN-3 Match Operation.
10.3 Template Definition for One Specific Value.
10.4 Template Definitions with Matching Expressions.
10.5 Template Definitions for Signatures.
10.6 About Assignment, Access of Templates, and the Valueof Operation.
11 Advanced Templates.
11.1 Template Definitions for Complex Type Structures.
11.2 Template References.
11.3 Template Parameterization.
11.4 Selective Modification of Other Templates.
11.5 Explicit Versus Implicit Template Definitions.
11.6 Structuring of Template Definitions for Complex Types.
12 TTCN-3 Test Systems in Practice.
12.1 The Anatomy of a TTCN-3 Test System.
12.2 Test System Execution of a Simple Test Case.
12.3 More About The SUT Adapter.
12.4 More About The Platform Adapter.
12.5 More About External Codecs.
13 Advice and Examples.
13.1 TTCN-3 Style Guide.
13.2 Suggestions for Modularization.
13.3 Template Specification for Complex Message Definitions.
13.4 Useful Behaviour.
13.5 Synchronizing Parallel Test Components.
14 Closing Thoughts and Future Directions.
Thomas Deiß is a Principal Scientist at Nokia Research Center. He received an MSc in Computer Science and a PhD in Natural Sciences from the University of Kaiserslautern in 1990 and 1999. He is currently working in the area of testingmobile communication systems with TTCN-2 and TTCN-3. Thomas has been developing TTCN-3-based test systems, has developed course materials and taught courses about TTCN-3, and has contributed to TTCN-3 standardization. He is a contributor to the European TT-medal project, which strives to improve test methodology and languages for software-intensive systems.
Until March 2005, Stephan Tobies has worked as a Senior Research Engineer at Nokia Research Center. He received an MSc in Computer Science and a PhD in Natural Sciences from the University of Technology in Aachen in 1998 and 2001. He has been a member of ETSI Strategic Task Force 253, which is responsible for the maintenance and extension of the TTCN-3 standard. He has been a leading developer of an industry-grade TTCN-3 tool and has been working in the area of TTCN-3 language development and test system implementation. Stephan is now working for the European Microsoft Innovation Center.
Stefan Keil is a Research Engineer at Nokia Research Center. He received an MSc in Electrical Engineering from the Ruhr University in Bochum in 1996. Stefan has worked for Alcatel as a programmer in the field of fixed line communications and a technical trainer for broadband communication fibre technology. Since 2000 he has been working for Nokia in the area of test system implementation, TTCN-3 tool development, and training.
Until December 2004, Federico Engler has been a Principal Engineer at Nokia Research Center. He studied computer science at Uppsala University from 1989 till 1993. After that, he started working for Telelogic, where he was involved in standardization issues around TTCN-2, TTCN-3, and ASN.1, as well as TTCN-3 tool development. In January 2003, Federico started working for Nokia in the area of automated test solutions, which involved the mapping, documentation, and synchronization of testrelated activities at a Nokia-wide level.He has also been involved in activities around improved visualization and documentation of tests and test results within Nokia.
Stephan Schulz is a Senior Research Engineer at Nokia Research Center. He received a BSc in Electrical Engineering from State University of New York at Binghamton in 1995 and an MSc and PhD in Computer Engineering from University of Arizona at Tucson in 1997 and 2001. He has been an editor of the TTCN-3 Runtime Interface (TRI) standard and hasmade a number of contributions in the field of TTCN-3-based text-based protocol testing. Stephan has been developing and teaching TTCN-3 courses for Nokia engineers. Currently, he is one of the main architects in the ETSI design team of a TTCN-3 IPv6 testing library.