1. 11th TTCN-3 User Conference Implementing TTCN-3 Bangalore, June 2012.

Slides:



Advertisements
Similar presentations
TTCN-3 Users Conference
Advertisements

© 2003 Fokus/TIP 1 Testability Interface Test Runtime Interface (TRI) George Din, Andreas Hoffmann, Ina Schieferdecker { din | a.hoffmann | schieferdecker.
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Configuration management
COM vs. CORBA.
The Use of TTCN-3 for Software Testing Ina Schieferdecker FOKUS, Berlin
An overview on the Testing and Test Control Notation version 3 (TTCN-3) Helmut Neukirchen Háskóli Íslands
IHA præsentation1 Protocol Testing Lesson 5. IHA præsentation2 Outline for today Guidelines for testing protocols TTCN – A Standard Language For Testing.
.NET Mobile Application Development Remote Procedure Call.
Course Instructor: Aisha Azeem
Configuration Management
Jos van Rooyen Erik Altena Leon Wolters TTCN-3 in the Financial Domain.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
This chapter is extracted from Sommerville’s slides. Text book chapter
PROGRAMMING LANGUAGES The Study of Programming Languages.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
ETSI Protocol and Testing Competence Centre
1 Shawlands Academy Higher Computing Software Development Unit.
Adapting Legacy Computational Software for XMSF 1 © 2003 White & Pullen, GMU03F-SIW-112 Adapting Legacy Computational Software for XMSF Elizabeth L. White.
© LogicaCMG All rights reserved Erik Altena Jos van Rooyen Leon Wolters Towards a Keyword-Driven Test Presentation Format using TestFrame.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Sasken Confidential © 2009 Sasken Communication Technologies Future of TTCN-3 Power Management and Testing Infrastructure 3 May 2012.
1. 11th TTCN-3 User Conference An Introduction to TTCN-3 Bangalore, June 2012.
Configuration Management (CM)
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
1. Validating Wireless Protocol Conformance Test Cases Amresh Nandan Paresh Jain June 2004.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
International Telecommunication Union Geneva, 9(pm)-10 February 2009 Providing testability for ITU Recommendations Ostap Monkewich, OMCI ITU-T Workshop.
TTCN Protocol Testing on Steroids! IEEE P WPAN Meeting March 6-10, 2000 Albuquerque, NM USA 802 Plenary Meeting Matthew Graney Telelogic North America.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
TTCN-3 MOST Challenges Maria Teodorescu
 Data Fuzzing with TTCN-3 Stephan Pietsch, Bogdan Stanca-Kaposta, Dr. Jacob Wieland, Dirk Tepelmann, Ju ̈ rgen Großmann, Martin Schneider TTCN-3 User.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Service Service metadata what Service is who responsible for service constraints service creation service maintenance service deployment rules rules processing.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
The Software Development Process
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
TTCN-3 and ASN.1 interworking Analysis of backward compatibility in ASN.1 Géza Horváth TTCN-3 User Conference – 9 June 2011.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Copyright © GENIVI Alliance 2015
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Slide 1 2/22/2016 Policy-Based Management With SNMP SNMPCONF Working Group - Interim Meeting May 2000 Jon Saperia.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
Software Architecture for Multimodal Interactive Systems : Voice-enabled Graphical Notebook.
TTCN-3 Testing and Test Control Notation Version 3.
Software test automation with UML2.0 TestingProfile & TTCN-3 Maili Markvardt.
Unified functional/load test architecture and methodology using TTCN-3 TELEFÓNICA I+D Date: June 1st, 2007.
1 TTCN CONFORMANCE TEST SUITE TTCN-3 Part 1 & Part 9 STF 487 Bogdan Stanca-Kaposta/ Testing Technologies Tomas Urban / Elvior Andras Kovacs / Broadbit.
XML-based Representation of Test Cases for Distributed Systems Alexander Kraas 7. October 2008.
Databases and DBMSs Todd S. Bacastow January 2005.
Common Object Request Broker Architecture (CORBA)
TTCN Case Study - InterWatch
TTCN CONFORMANCE TEST SUITE TTCN-3 Part 1 & Part 9 STF 487 MILESTONE 2
Testing Wireless over Wire with TTCN-3
Extension Package: Behaviour Types
Ch > 28.4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Service-centric Software Engineering
Data, Databases, and DBMSs
Inventory of Distributed Computing Concepts
TTCN-3 Status Report.
Analysis models and design models
Typical Workflow - today
Object-oriented Features of TTCN-3
ETSI TC MTS TDL SC meeting Reports
Ponder policy toolkit Jovana Balkoski, Rashid Mijumbi
Presentation transcript:

1

11th TTCN-3 User Conference Implementing TTCN-3 Bangalore, June 2012

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © Implementing TTCN-3? We have selected the protocol or application to test the test access  UDP, IPv4, Ethernet 3 Ethernet IPv4 UDP DNS

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © Implementing TTCN-3? We have written TTCN- 3 test cases for DNS on an abstract level We have to care for the concrete technical details like test access 4 Test Access DNS

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 5 History of TTCN-3 was published as ETSI standard in October 2000 Works on standardizing the runtime interfaces started immediately Main drivers NOKIA, Ericsson Testing Technologies, Telelogic FOKUS, TU Berlin TRI - TTCN-3 Runtime Interface First draft released 10/2001 First version released 2002 Current version dated 06/2011 TCI – TTCN-3 Control Interfaces Work for TCI started after v1.0 of TRI v1.0 of TCI released 03/2003 Ongoing task in the maintenance group  TCI TRI  

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 6 Standard Overview Semantics Execution Environment Language Mappings TTCN-3 Concepts and Syntax Presentation Formats … Core Language Tabular Presentation Format Graphical Presentation Format Operational Semantics TTCN-3 Runtime Interfaces (TRI) TTCN-3 Control Interfaces (TCI) ASN.1 to TTCN-3 IDL to TTCN-3 XML to TTCN-3

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 7 A TTCN-3 Test System TE–TTCN-3 Executable TM–Test Management TL–Test Logging CD–Codec CH–Component Handling SA–System Adapter PA–Platform Adapter SUT–System Under Test ETSI ES TTCN-3 Core Language (CL) ETSI ES TTCN-3 Runtime Interface (TRI) ETSI ES TTCN-3 Control Interfaces (TCI) TM: ManagementTL: Logging TE CD: Codec CH: Component Handling SA: System Adapter PA: Platform Adapter TRI TCI Test System User System Under Test (SUT)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 8 Implementation ATS TE SUT Communication + TE Test System

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 9 Steps to Implement TTCN-3 Translate TTCN-3 into executable code Adapt runtime environment to test management Implement communication and test platform aspects Translate TTCN-3 into executable code Adapt runtime environment to test management Implement communication and test platform aspects

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 10 Translate TTCN-3 Into Executable Code Reads module definitions written in the TTCN-3 core notation Generates code and compiles it into executable code Runtime support through runtime libraries F:\AB>TTthree DNSTest exampleModule.ttcn3 RuntimeLib Compilation TE

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 11 Steps to Implement TTCN-3 Translate TTCN-3 into executable code Adapt runtime environment to test management Implement communication and test platform aspects

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 12 TCI – Distribution, Management and Codec Adaptation Facts on the TTCN-3 Control Interfaces (TCI) Standardized (part 6) Language independent specification using IDL Multi-vendor support TM: ManagementTL: Logging TE CD: Codec CH: Component Handling SA: System Adapter PA: Platform Adapter TRI TCI Test System User System Under Test (SUT)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 13 Common Structure of Sub-Interfaces Have to be provided by the user (i.e. called by TE) Required functionality of the TE (i.e. called by the user) Applies to all TCI interfaces TciCH RequiredTciCH Provided TE TciCD RequiredTciCD Provided CD: Codec CH: Component Handling

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 14 A TTCN-3 Test System ETSI ES TTCN-3 Core Language (CL) ETSI ES TTCN-3 Runtime Interface (TRI) ETSI ES TTCN-3 Control Interfaces (TCI) TE–TTCN-3 Executable TM–Test Management TL–Test Logging CD–Codec CH–Component Handling SA–System Adapter PA–Platform Adapter SUT–System Under Test TM: ManagementTL: Logging TE CD: Codec CH: Component Handling SA: System Adapter PA: Platform Adapter TRI TCI Test System User System Under Test (SUT)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 15 Why Test Management Interface? Different applications need different test management functionality Command line test management Graphical test management Web-based test management Integration into existing platforms One TTCN-3 oriented interface needed!

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 16 The Test Management Interface TM provides User Interface, incl. error reporting Keeps track of test case execution Module parameter resolving Logging TE provides Entry points to the TE Start/stop test case Start/stop control part 6 operations provided 9 operations required TciTM Provided TciTM Required TM TE

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 17 Dynamics of Test Management (1) testcase Testcase1() runs on DNSTester{ P.send(query); P.receive(answer); setverdict(pass); } TMTE send receive pass tciTestCaseTerminated(pass) tciTestCaseStarted(Testcase1,…,5.0) tciStartControl() tciControlTerminated() tciRootModule(DNSTester)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 18 TMTE Dynamics of Test Management (2) testcase Testcase2() runs on DNSTester { var charstring h:= MODULE_PAR ; log(h); setverdict(pass); } MODULE_PAR ?? h:= “HELLO” pass tciGetModulePar(MODULE_PAR) tciTestCaseStarted(Testcase2,…,-) tciLog(“HELLO”) tciTestCaseTerminated(pass) tciStartTestCase(Testcase2)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 19 TMTE Dynamics of Test Management (2) testcase Testcase2() runs on DNSTester { var charstring h:= MODULE_PAR ; log(h); setverdict(pass); } MODULE_PAR ?? h:= “HELLO” pass tciGetModulePar(MODULE_PAR) tciTestCaseStarted(Testcase2,…,-) tciLog(“HELLO”) tciTestCaseTerminated(pass) tciStartTestCase(Testcase2)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 20 The TciTMRequired Interface TE offers the entry point for test case execution and some rudimentary database functionality Complete set of operations voidtciRootModule(moduleId); TciModuleParameterListtciGetModuleParameters(moduleId); TciTestCaseIdListtciGetTestCases(); TciParameterTypeListtciGetTestCaseParameters(testCaseId); TriPortIdList tciGetTestCaseTSI(testCaseId); void tciStartTestCase(testCaseId, parameterList ); voidtciStopTestCase(); TriComponentIdtciStartControl(); voidtciStopControl(); TciTM Provided TciTM Required TM TE

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 21 The TciTMProvided Interface Feedback of the TE to the status of execution or request for module parameters Complete set of operations void tciTestCaseStarted (testCaseId, parameterList, timerValue); void tciTestCaseTerminated ( verdict, parameterList); void tciControlTerminated (); Value tciGetModulePar (parameterId); void tciLog (testComponentId, message); void tciError (String message); TciTM Provided TciTM Required TM TE

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 22 A TTCN-3 Test System ETSI ES TTCN-3 Core Language (CL) ETSI ES TTCN-3 Runtime Interface (TRI) ETSI ES TTCN-3 Control Interfaces (TCI) TE–TTCN-3 Executable TM–Test Management TL–Test Logging CD–Codec CH–Component Handling SA–System Adapter PA–Platform Adapter SUT–System Under Test TM: ManagementTL: Logging TE CD: Codec CH: Component Handling SA: System Adapter PA: Platform Adapter TRI TCI Test System User System Under Test (SUT)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 23 Why Logging Interface? Includes all operations needed to retrieve information about test execution Controls the detail level of log information performed by TE, SA, PA, CH, CD

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 24 The TciTLProvided Interface TciTL Provided TciTL Required TL TE TciTL contains only Provided sub interface 105 operations Extract of operations void tliTcExecute(TString, TInteger, TString, TInteger, TriComponentIdType, TciTestCaseIdType, TriParameterListType, TriTimerDurationType) void tliTcStart(TString, TInteger, TString, TInteger, TriComponentIdType, TciTestCaseIdType, TriParameterListType, TriTimerDurationType) void tliTcStop(TString, TInteger, TString, TInteger,TriComponentIdType) void tliTcStarted(TString, TInteger, TString, TInteger, TriComponentIdType, TciTestCaseIdType, TciParameterListType, TriTimerDurationType)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 25 A TTCN-3 Test System ETSI ES TTCN-3 Core Language (CL) ETSI ES TTCN-3 Runtime Interface (TRI) ETSI ES TTCN-3 Control Interfaces (TCI) TE–TTCN-3 Executable TM–Test Management TL–Test Logging CD–Codec CH–Component Handling SA–System Adapter PA–Platform Adapter SUT–System Under Test TM: ManagementTL: Logging TE CD: Codec CH: Component Handling SA: System Adapter PA: Platform Adapter TRI TCI Test System User System Under Test (SUT)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 26 Why Component Handling Interface? TTCN-3 suitable for different test applications Functional testing Load testing Interoperability testing Need to distribute test components if running short of resources!

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 27 Distributed Testing Network / Distributed System

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 28 The Component Handling Interface Management of TTCN-3 components No implementation of TTCN-3 functionality Distribution of TTCN-3 configuration operations Distribution of TTCN-3 intercomponent communication Concept of Distributed TE, i.e. multiple TEs A single component handling entity Presence of a distinct TE*, i.e. the TE where a test case or the control part has been started Distinct TE* responsible for final verdict calculation The most complex interface 17 required operations 17 provided operations

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 29 Example: DNS Tester Scalability Testing testcase scalabilityTest() runs on ABClient system ABTester { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } testcase scalabilityTest() runs on MTC system TestSystemInt function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } }

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 30 Example: DNS Tester Scalability Testing function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } } TE * tciStartTestCase testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; }

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 31 function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } } Example: DNS Tester Scalability Testing tciCreateTestComponent tciCreateTestComponentReq testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } TE *

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 32 function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } } Example: DNS Tester Scalability Testing tciStartTestComponent tciStartTestComponentReq testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } TE *

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 33 function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } } Example: DNS Tester Scalability Testing tciTestCaseStarted testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } TE *

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 34 Example: DNS Tester Scalability Testing tciCreateTestComponentReq tciCreateTestComponent testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } TE * function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } }

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 35 Example: DNS Tester Scalability Testing tciConnectReq tciConnect testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } TE * function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } }

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } 36 Example: DNS Tester Scalability Testing tciStartTestComponentReq tciStartTestComponent TE * function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } }

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } 37 Example: DNS Tester Scalability Testing tciSendConnect tciEnqueueMsgConnected TE * function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } }

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © Example: DNS Tester Scalability Testing TE * function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } } setverdict(pass) ; stop ; testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } 38

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } } 39 Example: DNS Tester Scalability Testing tciTestComponentTerminated tciTestComponentTerminatedReq TE * all component.done ;

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 40 Example: DNS Tester Scalability Testing testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; } tciTestComponentTerminatedReq tciTestComponentTerminated TE * function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } }

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 41 Example: DNS Tester Scalability Testing tciTestCaseTerminated TE * function clntBehavior(...) { runs on MyPtcType { // Do what you have to do ! setverdict(pass) ; stop ; } } testcase scalabilityTest() runs on MTC system TestSystemInt { var integer i; for(i:=0;i<MAXNUMBER;i:=i+1) { abC[i] := MyPtcType.create; map(abC[i]:S, system:R); connect(mtc:C, abC[i]:C); abC.start(clntBehavior(USER[i])); C.send(....) to abC[i] ; } all component.done ; }

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 42 Steps To Implement TTCN-3 Translate TTCN-3 into executable code Adapt runtime environment to test management Implement communication and test platform aspects

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 43 TRI – Communication Adaptation Facts on the TTCN-3 Runtime Interfaces (TRI) Standardized (part 5) Language independent specification Multi-vendor support TM: ManagementTL: Logging TE CD: Codec CH: Component Handling SA: System Adapter PA: Platform Adapter TRI TCI Test System User System Under Test (SUT)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 44 Why TRI ? Abstract Test Specifications (ATS) have to run on different test devices of different vendors Different access to underlying protocol stacks ATS shall runs against systems in different development stages Simulation Software only Embedded in hardware ATS can use different communications mechanisms and dynamic test configurations

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 45 Goals of TRI Specify a small and well-defined runtime interface for all future TTCN-3 test system implementations Free TRI definition from any unnecessary restrictions Exclude test management and data access Exclude communication between test components and their execution model Avoid bias towards any particular programming language Historical older interface Reference Implementation Slightly different interface naming

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 46 The TRI Communication Interface Interface structure Due to historical reasons different naming Applies to all TRI interfaces SA reports status back TE indicates error TriCommunicationTE TriCommunicationSA SA TE

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 47 control { execute(Testcase1(), 5.0); } testcase Testcase1() runs on DNSTester system TSI { map(mtc:P, system:P); P.send(query); P.receive(answer); setverdict(pass); } Dynamics of TRI SA TESA triEnqMsg(mtcId,systemPortId,a,msg) triExecuteTestcase(Testcase1,TSI) triSAReset() SUT process triMap(mtcId,systemPortId) triSend(mtcId,systemPortId,a,msg) pass

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 48 TriCommunicationSA Interface Defines setting up configuration and sending of message to and/or calling of operations in the SUT Complete set of operations TriStatusType triSUTactionInformal (…); TriStatusType triSUTactionTemplate (…); TriStatusType triExecuteTestCase(…); TriStatusType triMap(…); TriStatusType triUnmap(…); TriStatusType triSend(…); TriStatusType triCall(…); TriStatusType triReply(…); TriStatusType triRaise(…); TriStatusType triSAReset(); TSI TC

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 49 TriCommunicationTE Interface Defines receiving of messages and/or calling of operations in the TE Complete set of operations void triEnqueueMsg(…); void triEnqueueCall(…); void triEnqueueReply(…); void triEnqueueException(…); TSI TC

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 50 The TRI Platform Interface Interface structure Implementation of time and external functions PA reports status back TE indicates error TriPlatformTE TriPlatformPA PA TE

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 51 testcase Testcase2() runs on DNSTester system TSI{ var timer t := 5.0 ; t.start ; var octetstring crc := crc32(myData); t.timeout; setverdict(pass); } Dynamics of TRI PA TEPA triTimeout(t) triStartTimer(t, 5.0) triPAReset() SUT triExternalFunction(crc32, myData) calculation pass

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 52 TriPlatform Interface Defines control of time and calling of external functions Complete set of operations (PA) TriStatusType triPAReset(); TriStatusType triStartTimer(…); TriStatusType triStopTimer(…); TriStatusType triReadTimer(…); TriStatusType triTimerRunning(…); TriStatusType triExternalFunction(…); Complete set of operations (TE) void triTimeout(…); PA TC 

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 53 A TTCN-3 Test System TE–TTCN-3 Executable TM–Test Management TL–Test Logging CD–Codec CH–Component Handling SA–System Adapter PA–Platform Adapter SUT–System Under Test ETSI ES TTCN-3 Core Language (CL) ETSI ES TTCN-3 Runtime Interface (TRI) ETSI ES TTCN-3 Control Interfaces (TCI) TM: ManagementTL: Logging TE CD: Codec CH: Component Handling SA: System Adapter PA: Platform Adapter TRI TCI Test System User System Under Test (SUT)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 54 Why Codec Interface? TTCN-3 data has to be translated into a representation the SUT understands Two different tasks Encoding Internal TTCN-3 data representation to bitstring Needs access to the TTCN-3 type and value system Decoding Bitstring to TTCN-3 data representation Based upon a decoding hypothesis TE may query multiple times for the decoding of the same bitstring

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 55 The Codec and Value Interface Management of different codecs Complete set of provided ( TciCDProvided ) operations TriMessageType encode (in Value value) Value decode (in TriMessageType message, in Type hyp) Facts on the TTCN-3 Type and Value Interface TE maintains abstract type and data presentation Codec translates between abstract and concrete presentation CD: Codec TciCD ProvidedTciCD Required

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 56 Dynamics of the Codec (Sending) control { execute(Testcase1(), 5.0); } testcase Testcase1() runs on DNSTester system TSI { map(mtc:P, system:P); P.send(query); P.receive(answer); setverdict(pass); } TESA SUT CD triExecuteTestcase(Testcase1,tsiP) triMap(mtcId,systemPortId) encode(value) encode triSend(mtcId,systemPortId,a,msg) process

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 57 Dynamics of the Codec (Receiving) control { execute(Testcase1(), 5.0); } testcase Testcase1() runs on DNSTester system TSI{ map(mtc:P, system:P); P.send(query); P.receive(answer); setverdict(pass); } TESA triEnqMsg(mtcId,systemPortId,a,msg) SUT decode(msg,type) CD process try to decode pass

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 58 The decodingHypothesis The interpretation of an arbitrary bitstring is context sensitive Example: What is ' 'O ? Four bytes as one octetstring: ' 'O An integer: A charstring: "YES" Decode() can be read as follows: Try to decode the provided bitstring, with the appropriated decoding rules into a value of given type If you succeed, return the value If you fail, return NULL

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 59 Access To TTCN-3 Data Types and Values Formal definition Specification of abstract data types Type for TTCN-3 types Different ADT types for TTCN-3 values Set of high-level operations define the functionality Practical usage TTCN-3 environments provide functions/operations to Access TTCN-3 types Read existing TTCN-3 values and Create new TTCN-3 values Underlying philosophy behind the ADT operations is an object oriented model

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 60 Abstract Data Type: Type Type represents every TTCN-3 type Only types defined in TTCN-3 modules can be accessed No creation of user defined types at the TCI... but creation of new instances of given type! type record DNSQuery { charstring hostname, AnswerType answer optional, QueryType qtype } type union AnswerType { Byte ipAddress[4], charstring hostname } type integer Byte ( ); type enumerated QueryType { A, NS, CNAME, MX } Type TciModuleId getDefiningModule() String getName() TciTypeClass getTypeClass() String getTypeEncoding() Value newInstance()

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 61 ADT: Value UnionValueEnumeratedValueRecordOfValue RecordValue HexstringValueOctetstringValueCharstringValueBitstringValue UniversalCharstringValue Value Type getType() String getValueEncoding() boolean notPresent() FloatValue IntegerValue BooleanValue ObjidValue VerdictValue

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 62 The Codec Interface Complete set of required ( TciCDRequired ) operations Type getTypeForName(…) Type getInteger() Type getFloat() Type getBoolean() Type getChar() Type getUniversalChar() Type getObjid() Type getCharstring () Type getUniversalCharstring () Type getHexstring () Type getBitstring() Type getOctetstring () Type getVerdict() void tciErrorReq(…)

Copyright Testing Technologies Confidential Information. All Rights Reserved. More Information at © 63 TE The Codec and Value Interface 3rd party codec provides Operations to construct values Operations to query values Operations to encode values Operations to decode bitstring TE CD provides Operations to construct values Operations to query values CD implementation maps TCI value structures into codec value structures CD TciCD ProvidedTciCD Requested 3rd Party Codec