An Introduction to TTCN-3 - Colin Willcock - E-Book

An Introduction to TTCN-3 E-Book

Colin Willcock

0,0
84,99 €

oder
-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

This unique book provides a fully revised and up-to-date treatment of the TTCN-3 language

TTCN-3 is an internationally standardised test language with a powerful textual syntax which has established itself as a global, universal testing language. Application of TTCN-3 has been widened beyond telecommunication systems to areas such as the automotive industry, internet protocols, railway signalling, medical systems, and avionics.

An Introduction to TTCN-3 gives a solid introduction to the TTCN-3 language and its uses, guiding readers though the TTCN-3 standards, methodologies and tools with examples and advice based on the authors' extensive real-world experience. All the important concepts and constructs of the language are explained in a step-by-step, tutorial style, and the authors relate the testing language to the overall test system implementation, giving the bigger picture.

This second edition of the book has been updated and revised to cover the additions, changes and extensions to the TTCN-3 language since the first version was published. In addition, this book provides new material on the use of XML, test framework design and LTE testing with TTCN-3.

Key Features:

  • Provides a fully revised and up-to-date look at the TTCN-3 language
  • Addresses language standardization, tool implementation and applying TTCN-3 in real world scenarios such as VoIP and LTE testing
  • Explores recent advances such as TTCN-3 core language extensions on type parameterization, behavior types, real time and performance testing
  • Introduces the use of ASN.1 and XML with TTCN-3
  • Written by experts in the field
  • Includes an accompanying website containing code samples and links to the relevant standards documents (www.wiley.com/go/willcock_ttcn-3_2e)

This book is an ideal reference for test engineers, software developers, and standards professionals. Graduate students studying telecommunications and software engineering will also find this book insightful.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 591

Veröffentlichungsjahr: 2011

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Title Page

Copyright

List of Figures

List of Tables

About the Authors

Colin Willcock

Thomas Deiß

Stephan Tobies

Stefan Keil

Federico Engler

Stephan Schulz

Foreword

Preface

Acknowledgements

Abbreviations and Acronyms

Chapter 1: Introduction

1.1 TTCN-3 as a Language

1.2 The Development of TTCN-3

1.3 Summary

Chapter 2: TTCN-3 by Example

2.1 TTCN-3 Test Suite

2.2 TTCN-3 Test Systems

2.3 Summary

Chapter 3: Basic TTCN-3

3.1 Basic Constructs

3.2 Basic Statements

3.3 Summary

Chapter 4: Single Component TTCN-3

4.1 Ports

4.2 Components

4.3 Test Cases

4.4 Templates

4.5 Message-Based Communication

4.6 Timers

4.7 Alt Statement

4.8 Altsteps

4.9 Default Altsteps

4.10 Functions

4.11 Summary

Chapter 5: Multi Component TTCN-3

5.1 Multi Component Test Case Example

5.2 Test Components

5.3 Mappings and Connections

5.4 Component Type Extension

5.5 Miscellaneous Port Operations

5.6 SUT Addresses

5.7 Putting the Pieces Together

5.8 Summary

Chapter 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

6.7 Addressing

6.8 Summary

Chapter 7: Modular TTCN-3

7.1 Modules

7.2 Group Definitions

7.3 Importing

7.4 Module Parameters

7.5 Attributes

7.6 Summary

Chapter 8: TTCN-3 Data Types

8.1 The Session Initiation Protocol

8.2 Subtyping

8.3 TTCN-3 Built-in Types

8.4 User-Defined Types

8.5 Nested Type Definitions

8.6 Encoding and Decoding of Data

8.7 Summary

Chapter 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

9.6 Summary

Chapter 10: Templates

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 Assignment, Access of Templates and the Pre-Defined Functions Isvalue and Valueof

10.7 Summary

Chapter 11: Advanced Templates

11.1 Template Definitions for Complex Type Structures

11.2 Template References

11.3 Template Parameterisation

11.4 Selective Modification of Other Templates

11.5 Explicit versus Implicit Template Definitions

11.6 Restricting Template Usage

11.7 Template Variables and Computing Functions

11.8 Structuring of Template Definitions for Complex Types

11.9 Summary

Chapter 12: Extension Packages

12.1 Static Test Configurations

12.2 Real-Time in TTCN-3

12.3 Type Parameterisation

12.4 Behaviour Types

12.5 Summary

Chapter 13: TTCN-3 Test Systems in Practice

13.1 The Anatomy of a TTCN-3 Test System

13.2 Test System Execution of a Simple Test Case

13.3 More about the SUT Adapter

13.4 More about the Platform Adapter

13.5 More about External Codecs

13.6 Documentation Comments

13.7 Summary

Chapter 14: Frameworks

14.1 Frameworks and Test Suites

14.2 TTCN-3 Libraries

14.3 Design of Frameworks

14.4 Example: the IPv6 Testing Framework

14.5 Summary

Chapter 15: Advice and Examples

15.1 TTCN-3 Style Guide

15.2 Suggestions for Modularisation

15.3 Template Specification for Complex Message Definitions

15.4 Useful Behaviour

15.5 Test Component Synchronisation

Chapter 16: LTE Testing with TTCN-3

16.1 LTE Description

16.2 LTE Test Suite

16.3 Summary

Chapter 17: Closing Thoughts and Future Directions

References

Index

This edition first published 2011

© 2011 John Wiley & Sons Ltd.

LTE is a trademark of ETSI. LTE and LTE Advanced logos have been reproduced by permission of ETSI—http://www.3GPP.org/

Registered office

John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex, PO19 8SQ, United Kingdom

For details of our global editorial offices, for customer services and for information about how to apply for permission to reuse the copyright material in this book please see our website at www.wiley.com.

The right of the author to be identified as the author of this work has been asserted in accordance with the Copyright, Designs and Patents Act 1988.

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, except as permitted by the UK Copyright, Designs and Patents Act 1988, without the prior permission of the publisher.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.

Designations used by companies to distinguish their products are often claimed as trademarks. All brand names and product names used in this book are trade names, service marks, trademarks or registered trademarks of their respective owners. The publisher is not associated with any product or vendor mentioned in this book. This publication is designed to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding that the publisher is not engaged in rendering professional services. If professional advice or other expert assistance is required, the services of a competent professional should be sought.

Library of Congress Cataloging-in-Publication Data

An introduction to TTCN-3 / Colin Willcock … [et al.].

p. cm.

Includes bibliographical references and index.

ISBN 978-0-470-66306-6 (cloth)

1. Telecommunication systems–Testing–Data processing. 2. Computer

networks–Testing–Data processing. 3. Programming languages (Electronic

computers) I. Willcock, Colin. II. Title.

TK5102.84.I58 2011

005.13–dc22

2010037017

Print ISBN: 978-0-470-66306-6 (HB)

ePDF ISBN: 978-0-470-97791-0

oBook ISBN: 978-0-470-97790-3

ePub ISBN: 978-0-470-97789-7

List of Figures

Figure 1.1TTCN-3 presentation formatsFigure 1.2An example of the tabular presentation formatFigure 1.3An example of the graphical presentation formatFigure 2.1The few steps needed to resolve a local host nameFigure 2.2The steps of resolving a remote host nameFigure 2.3A simple test purpose described with an MSC diagramFigure 2.4Logically, a name server has an application and a network interfaceFigure 2.5The configuration for our multi component test using four parallel test componentsFigure 2.6A schematic overview of a TTCN-3 test systemFigure 3.1Scope hierarchyFigure 4.1The ticket vending machine as the system under testFigure 5.1Entities in remote DNS name resolutionFigure 5.2Message exchange for remote DNS name resolutionFigure 5.3Test components in the DNS server test system configurationFigure 5.4DNS test system configuration after mappingFigure 5.5Test configuration with two client test componentsFigure 13.1Conceptual model of a TTCN-3 test systemFigure 13.2Interaction of test system entities when executing the DNS test caseFigure 13.3Interactions during DNS test system and test case initialisationFigure 13.4Interaction performed to set up UDP IP transportFigure 13.5Interactions performed to send a message to the SUTFigure 13.6Interaction for starting a timerFigure 13.7Interactions after reception of a message from the SUTFigure 13.8Interaction to stop a timerFigure 13.9Interaction in case of a timeoutFigure 13.10Interaction to tear down a communication channelFigure 13.11Test system with distributed SA implementationFigure 14.1Layered test suite implementationFigure 14.2Abstracted IPv6 test suite module structure with dependenciesFigure 15.1Example SIP message exchangeFigure 15.2Message based synchronisation with multiple test componentsFigure 15.3Synchronisation of test component execution with alive componentsFigure 15.4Message exchange to synchronise test componentsFigure 15.5Test configuration with synchronisation componentsFigure 16.1LTE architectureFigure 16.2LTE test system architectureFigure 16.3EUTRA component type

List of Tables

Table 2.1Creating our first TTCN-3 moduleTable 2.2The definition of our DNS message typeTable 2.3A send template for our DNS message typeTable 2.4A parameterised send template for our DNS questionsTable 2.5A parameterised receive template for our DNS answersTable 2.6The definition of our single port and single componentTable 2.7Our first test case assumes the correct answer will arrive without problemsTable 2.8Our extended test case is now able to handle incorrect incoming repliesTable 2.9Our test case is now able to also handle missing answersTable 2.10Signatures for procedures and the definition of a procedure-based portTable 2.11A parameterised template for the AddEntry signatureTable 2.12Using procedure-based communication from inside a TTCN-3 functionTable 3.1The main structure of a TTCN-3 moduleTable 3.2Examples of basic data typesTable 3.3Subtyping of basic data typesTable 3.4Basic use of functionsTable 3.5Use of parameters with default valuesTable 3.6Priority of operatorsTable 3.7Use of basic expressionsTable 3.8Chained if-else statementsTable 3.9Example select-case statementTable 3.10Functions with parameters and a return valueTable 3.11log, label and goto statements by exampleTable 3.12The complete host name look-up exampleTable 3.13Named Basic Scope UnitsTable 4.1Types for the ticket vending machineTable 4.2Port types for the ticket vending machineTable 4.3Ports with several message typesTable 4.4Interface of the ticket vending machineTable 4.5State of a test systemTable 4.6A test case with empty behaviourTable 4.7Test cases setting the local verdictTable 4.8Test cases setting the local verdict and verdict reasonTable 4.9Control part invoking test casesTable 4.10Upper bound on test case execution timeTable 4.11A test case with parametersTable 4.12Using a component variableTable 4.13Template definitionsTable 4.14Templates as parametersTable 4.15Send statementsTable 4.16Receive statementTable 4.17Value redirectionTable 4.18Check statementsTable 4.19Receiving on several portsTable 4.20Timer declarationsTable 4.21Timer start and expirationTable 4.22The alt statementTable 4.23An alt statement dealing with unexpected SUT behaviourTable 4.24Boolean guardsTable 4.25Repeat statement to await enough cashTable 4.26Expansion of stand-alone blocking statementsTable 4.27An altstep to wait for timer expirationTable 4.28Use of an altstep in an alt statementTable 4.29Altstep with local definitionTable 4.30Use of several altstepsTable 4.31Optional statement blocks in altstep-branchesTable 4.32Altstep receiving any messageTable 4.33Default altstepsTable 4.34Alt statement with explicit defaultsTable 4.35Altstep to check for timeout of component timerTable 4.36Stand-alone altstepTable 4.37Test case with multiple defaultsTable 4.38Function to describe behaviourTable 4.39Using a function defining behaviourTable 4.40Recursive functionTable 5.1The test system interface for testing a DNS serverTable 5.2A type definition for a main test componentTable 5.3A test case definition including a reference to a test system interfaceTable 5.4The component type definition for parallel DNS test componentsTable 5.5Establishment of a test configuration with multiple test componentsTable 5.6DNS test component creation as alive components in variable initialisationTable 5.7Parallel DNS test component behavioursTable 5.8Starting of parallel DNS test componentsTable 5.9Waiting for DNS test component terminationTable 5.10The running operationTable 5.11Mapping of DNS component portsTable 5.12Unmapping of DNS portsTable 5.13Port and component definitions for transmitting time valuesTable 5.14Many-to-one connections and mappingsTable 5.15Storing value and sender of a messageTable 5.16Selective receiveTable 5.17Specifying the recipient of a messageTable 5.18Specifying a list of recipient's for a messageTable 5.19Component definitions using extensionTable 5.20Logging of port status informationTable 5.21Complete definition of tc_remoteDNSResolution with concurrent PTC executionTable 5.22Alternative test case specification using sequential test executionTable 6.1IDL description of the directory serviceTable 6.2The signature definitions for the directory interfaceTable 6.3TTCN-3 port definitions for procedure-based communicationTable 6.4Setting John's passwordTable 6.5Specifying constraints for the return valueTable 6.6Parameter redirectionTable 6.7Assignment notation for parameter redirectionTable 6.8Return value redirectionTable 6.9Catching exceptionsTable 6.10Constraining exception informationTable 6.11Value redirection with catchTable 6.12Timed calls and catching a timeout exceptionTable 6.13Performing non-blocking callsTable 6.14Catching exceptions from non-blocking callsTable 6.15Getting replies from non-blocking functionsTable 6.16Getting rid of pending replies and exceptionsTable 6.17Setting fail verdict for any exceptionTable 6.18Accepting calls in TTCN-3Table 6.19Constraining accepted callsTable 6.20Redirecting incoming parametersTable 6.21Using addresses in procedure-based communicationTable 6.22Accepting calls from specified componentsTable 6.23TTCN-3 definitions for the DirectoryManager interfaceTable 6.24Logging into the directory serviceTable 7.1Example module definitions for DNS protocol typesTable 7.2DNS protocol type module definitions with groupsTable 7.3Importing all definitions from another moduleTable 7.4Declaring other modules to be friendsTable 7.5Example of mixed visibilityTable 7.6Example of friend visibilityTable 7.7Resolving a name clash between local and imported definitionsTable 7.8Defining module parameters with and without default valuesTable 7.9Assigning encode or variant attributesTable 7.10Assigning attributes to whole groups or modulesTable 7.11Assigning attributes when importingTable 7.12Example use of encoding attributes for textual encodingTable 8.1A SIP message inviting Bob to a callTable 8.2Bob's SIP reply to the invitationTable 8.3Some examples for subtype violationsTable 8.4Defining value listsTable 8.5Example field value restrictions for structured typesTable 8.6Defining of and subtyping with type listsTable 8.7Character set restrictionsTable 8.8String length unitsTable 8.9Comparing type-incompatible values is a type errorTable 8.10Example of Boolean variables and Boolean operatorsTable 8.11Useful integer subtypesTable 8.12A slightly improved version of Euclid's algorithm for the greatest common divisorTable 8.13Using float2intTable 8.14Some examples for charstring and universal charstring literalsTable 8.15Appending CR/LF to a charstringTable 8.16Defining and using enumerated typesTable 8.17Record type definitions and valuesTable 8.18Partially defined record valuesTable 8.19Record types with optional fieldsTable 8.20Defining and using set typesTable 8.21Defining and using union typesTable 8.22Using ischosenTable 8.23Defining record-of types and valuesTable 8.24Element access for record-of valueTable 8.25Defining and using arraysTable 8.26Partially defined arraysTable 8.27Matrix multiplication using arraysTable 8.28Defining set-of types and valuesTable 8.29Example nested type definitionsTable 8.30Example use of encvalue and decvalueTable 9.1Correctly and incorrectly typed expressionsTable 9.2Strict type compatibility for communication operationsTable 9.3Using explicit types to disambiguate implicit templatesTable 9.4Exploiting component type compatibility for function reuse and invocationTable 9.5Using the anytypeTable 9.6Correct and incorrect access to values stored in an anytype valueTable 9.7Using the anytype in the presence of imported typesTable 9.8A generic transport protocol, first attemptTable 9.9A generic transport protocol, second attemptTable 9.10Using address in sender redirection and addressingTable 9.11Using IP addresses for the address typeTable 9.12A recursive type definition for binary trees, first attemptTable 9.13Using unions to define recursive types with finite valuesTable 9.14Recursively calculating the sum of node values in a BinaryTreeTable 9.15Creating cyclic data structures with recursive typesTable 9.16Data type definitions for DNS in ASN.1Table 9.17Importing ASN.1 modules into TTCN-3Table 9.18TTCN-3’s equivalent to the ASN.1 module from Table 9.16Table 9.19Correspondence between ASN.1 type as TTCN-3 typesTable 9.20Using NULL type and value in TTCN-3Table 9.21IDL definitions for a simple directory serviceTable 9.22The result for mapping the DirectoryService IDL file to TTCN-3Table 9.23XML phonebook SchemaTable 9.24XML phonebook Schema converted into TTCN-3Table 9.25Example of a TTCN-3 template using XML typesTable 9.26The encoding of the phonebook entry templateTable 10.1Example template definitionsTable 10.2The definition of the simplified HostPort typeTable 10.3Template definitions with constant reference and constant expressionsTable 10.4Some simple example template definitions with matching expressionsTable 10.5An example use of the TTCN-3 match operationTable 10.6Example template definitions for one specific valueTable 10.7Example template definitions with the ‘any’ matching expressionTable 10.8Example template definitions with value listsTable 10.9Example template definition with a complemented value listTable 10.10Example template definitions with a value rangeTable 10.11User-defined template definitions with any expression for fieldsTable 10.12Example template definitions with the ‘any-or-none’ expressionTable 10.13Example template definition with ifpresent matching attributeTable 10.14Example template definition to omit a fieldTable 10.15Using ‘any-or-none’ in record of templatesTable 10.16Matching for set of templatesTable 10.17Example template definitions with length matching attributeTable 10.18Matching permutationsTable 10.19Template definitions with superset and subset matching expressionsTable 10.20String template definitions with any matching expressionTable 10.21Using the length matching attribute with stringsTable 10.22List of TTCN-3 character escape sequencesTable 10.23Text template definitions with character escape sequencesTable 10.24Template definition with concatenationTable 10.25Text template definitions with regular expressionsTable 10.26Text string extraction using the TTCN-3 regexp operationTable 10.27Example signature template definitionsTable 10.28Using valueof and isvalueTable 10.29Types and applicable matching expressionsTable 11.1Verbose value template for a complex typeTable 11.2Decomposition of a template definition with template referencesTable 11.3Template definitions with value parametersTable 11.4Template definition with template parametersTable 11.5Base template and modified template definitionsTable 11.6Base template and modified template definitions with parametersTable 11.7Send operation with implicit DNS message templateTable 11.8Template causing a runtime errorTable 11.9Templates with restrictionsTable 11.10Computing a templateTable 11.11Implicitly setting template fieldsTable 12.1Static test configurationTable 12.2Creating a static test configurationTable 12.3Test case on static test configurationTable 12.4Executing a test case on a static test componentTable 12.5Send message at specific timeTable 12.6Retrieving the reception timeTable 12.7Value parameterisation of typesTable 12.8Instantiation of value parameterisation of a typeTable 12.9Generic protocol definition with type parameterTable 12.10Use of type parametersTable 12.11Behaviour types for sorted trees of character stringsTable 12.12Calling a parameter of a behaviour typeTable 12.13Behaviour valuesTable 13.1The example DNS server test caseTable 13.2TTCN-3 type definitions for the DNS message and a valueTable 13.3Documenting a functionTable 14.1Typical IPv6 test case function implementationTable 14.2IPv6 test purpose functionTable 14.3IPv6 library function implementationTable 15.1Prefixes of identifiersTable 15.2Example modularisation of a protocol testing test suiteTable 15.3An example structured SIP TTCN-3 protocol type definitionTable 15.4Definition and example use of SIP INVITE templatesTable 15.5A SIP 200 OK response definitionTable 15.6The INVITE message exchangeTable 15.7A SIP INVITE and BYE message exchangeTable 15.8Setting the verdict according to a Boolean conditionTable 15.9Receive unexpected messagesTable 15.10Wait for some timeTable 15.11Wait without defaultsTable 15.12Waiting without being interruptedTable 15.13Successful altstepTable 15.14charstring and universal charstring conversion functionsTable 15.15Conversion of a string to a float valueTable 15.16Addition of bitstring valuesTable 15.17Example test synchronisation with alive test componentsTable 15.18Synchronisation message and port definitionsTable 15.19General synchronisation component type for synchronisation slavesTable 15.20Common slave synchronisation function to wait to start execution in a given phaseTable 15.21Common slave synchronisation function for indicating the end of a phase to the masterTable 15.22Example use of common slave synchronisation functionsTable 15.23Common function to manage slave component referencesTable 15.24General synchronisation component type for synchronisation masterTable 15.25Common master synchronisation function to start a phase on slave componentsTable 15.26Common master synchronisation function to wait for the end of a given phase from all slavesTable 15.27Example use of master synchronisation functionsTable 16.1Example test case from LTE test suiteTable 16.2Definition of EUTRA PTCTable 16.3Test group areas for LTE test suiteTable 16.4Example test stepTable 16.5Example SRB templateTable 16.6SRB_COMMON_REQ type definitionTable 16.7C_Plane_Request_Type definitionTable 16.8RRC_MSG_Request_Type definition

About the Authors

Colin Willcock

Colin Willcock is currently manager for 3GPP Radio Access Network Standardisation at Nokia Siemens Networks. He received a BSc from Sheffield University in 1986, an MSc from Edinburgh University in 1987, and a PhD in parallel computation from the University of Kent in 1992. Colin was part of the core ETSI team that developed the TTCN-3 language and spent many years leading and participating in the TTCN-3 language maintenance. In the past, he has worked on numerous standardisation efforts at ETSI, ITU-T, and 3GPP, focusing on various aspects of formal specification languages. He was the project leader for the European TT-medal project, which strove to improve test methodology and languages for software-intensive systems and also lead the D-MINT project, which aimed to improve test methodology and languages for software-intensive systems and explored the use of model-based testing in an industrial context.

Thomas Deiß

Thomas Deiß is a Senior System Specialist at Nokia Siemens Networks. 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 specifying transport features for mobile communication systems. Before joining Nokia Siemens Networks, Thomas developed the Nokia Research Center TTCN-2 and TTCN-3-based test systems, developed course materials and taught courses about TTCN-3, and has participated for several years in TTCN-3 standardisation. He was a contributor to the European TT-medal and D-MINT projects, which strove to improve test methodology and languages for software-intensive systems and explored the use of model-based testing in an industrial context.

Stephan Tobies

Stephan Tobies is a Software Design Engineer at the European Microsoft Innovation Center where he works on software verification. 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 actively involved with TTCN-3 until 2005 while working as a Senior Research Engineer at Nokia Research Center. During that time, he has been a member of ETSI Strategic Task Force 253, which was responsible for the maintenance and extension of the TTCN-3 standard. He has been a lead developer of an industry-grade TTCN-3 tool and has been working in the area of TTCN-3 language development and test system implementation.

Stefan Keil

Stefan Keil is a software developer at Research In Motion. 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. From 2000 to 2007 he worked as a Research Engineer at Nokia Research Center in the area of test system implementation, TTCN-3 tool development, and training. At Nokia Siemens Network he worked from 2007 to 2009 in software specification for base station software. In 2009 Stefan started working for Research In Motion in the field of embedded software development on end user devices.

Federico Engler

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 standardisation 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 synchronisation of test-related activities at a Nokia-wide level. He has also been involved in activities around improved visualisation and documentation of tests and test results within Nokia. Federico is currently working for TeliaSonera CIS where he leads the development of portal-based telecommunications applications.

Stephan Schulz

Stephan Schulz is currently the Chief Technology Officer at Conformiq Inc. He received an MSc and PhD in Computer Engineering from University of Arizona at Tucson in 1997 and 2001. Prior to his positions at Conformiq he has worked as a resident testing expert at ETSI's Centre for Testing and Interoperability as well as a Senior Research Engineer at Nokia Research Center. Throughout his career he has been consulting different users and organisations on TTCN-3 deployment as well as test suite and test system development. He has been an editor of the TTCN-3 Runtime Interface (TRI) standard, lead TTCN-3 architect in various ETSI Specialist Task Forces, designer of ETSI's official TTCN-3 web site, and author of many publications on the testing of text-based protocols with TTCN-3. He has been developing and teaching TTCN-3 courses as well as co-chaired four TTCN-3 User Conferences. In 2010, he was elected chairman of ETSI's Technical Committee Methods for Testing and Specification which is overseeing TTCN-3 standardisation.

Foreword

TTCN first saw the light of day as a fledgling language in the mid-1980s. With a major modernization of TTCN over 10 years ago, resulting in TTCN-3, it has arguably progressed to be the de factointernational standardised language for writing test specifications for reactive systems. Here at ETSI, TTCN is the cornerstone of many complex test specifications, covering a wide range of technologies, including 3GPP LTE™,1 Intelligent Transport Systems, eHealth, Voice Over IP and IPv6.

I had the pleasure of working with Dr. Colin Willcock and Professor Jens Grabowski to produce the very first edition of the core specification of TTCN-3. Since that time, the language has gone from strength to strength. It has a growing body of users, good tool support and, most importantly, a dedicated and very active maintenance team. Indeed, TTCN-3 is a living language, continuous improvements and the addition of new features, demanded by the user community, means that this book too has been updated. This second edition addresses those new features admirably.

As is common with any programming language, the language specification is often not the first place a user will go to learn her new craft. Often, this will be done by reading a good textbook (or at least looking at the examples). Unfortunately, the TTCN-3 community has not had this luxury—until now, that is. This very first TTCN-3 book fulfils a long-awaited need and I see its publication as a milestone in the evolution of the language. The authors of this book are uniquely qualified to explain the details of TTCN-3 as applied to practical, real-life situations. They have a wide experience of contributing to the development of TTCN-3, building TTCN-3 tools and test systems and using the language in serious commercial projects, ranging from mobile communications to the automotive industry.

The essence of TTCN-3 is really quite simple, which partly explains its increasing popularity. The early chapters of this book capture this essence and provide the novice reader with a clear and intuitive introduction to the language. For the more demanding reader, subsequent chapters delve into the language in greater depth.

This excellent book is likely to be regarded as the definitive TTCN-3 user's companion for many years to come.

Anthony Wiles

European Telecommunications Standards Institute (ETSI)

1 ™LTE is a trade mark of ETSI.

Preface

At this point in time, nearly 10 years after the first TTCN-3 core language standard was published and 5 years after the first version of this book appeared it seems the right moment to bring out a new revised and extended version. In this second version of the book we have integrated the 4000+ change requests that have been added to the language since the first version of the book came out. In addition we have added a new chapter on testing frameworks and a new chapter explaining LTE [1] testing using TTCN-3.

Looking back over the 10 years, I feel somewhat like a parent to the language. I was there all those years ago at its inception and I look back to those early days with nostalgia and affection. It was a pleasure to work in that small focused team at ETSI trying to define and develop a global testing language. Like any child we had high hopes for TTCN-3, but also great uncertainty of whether it would ever match those hopes and aspirations. After the first standards were published, there followed a hectic period of dissemination and one important milestone following another. The official TTCN-3 launch event, the first commercial TTCN-3 tool set, the TT-Medal European project, the first TTCN-3 book, the further development and maintenance of the language at ETSI. I had the pleasure of leading or involvement in all these development steps along the way.

Now, 10 years later the TTCN-3 language has grown, both in terms of use and functionality to become a global testing language in terms of geography and a wide spread testing technology in terms of industrial domains where it is used. TTCN-3 and automated software testing are no longer the major focus for me, with others taking over the mantel of maintaining and extending the language. To use the parent analogy, I feel the child is now making its own way in the world without me. However it is still with a certain pride and affection that I watch the success of the language from the side lines.

Colin Willcock

Nokia Siemens Networks (NSN)

Acknowledgements

We would like to thank those people without whom this book would never have been written. First and foremost are our families and friends, who supported us and bore our (physical or mental) absence while we wrote this book. Next we would like to thank the people in the ETSI task forces who have shaped TTCN-3 and continue to advance the language and its use in many areas. We would also like to thank the European ITEA programme, which has supported the transfer of TTCN-3 technology to European industry through the TT-Medal project. Lastly, we would like to thank the test engineers in our companies with whom we have worked and whose application of TTCN-3 in the real world has contributed much to our TTCN-3 experience.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!