Upload
subiec79
View
46
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Ttcn3 Basics
Citation preview
TTCN-3
© 2012 -TCLOUD Information Technologies Pvt Ltd
by TCLOUD Information Technologies (P) LTD
Introduction to TTCN-3
� Introduction to TTCN-3
� Capabilities of TTCN-3
� Message based concepts & Procedure Based Communicat ion� Managing concurrency and parallel testing with TTCN -3� Concurrent testing configurations, communication me chanisms,
© 2012 -TCLOUD Information Technologies Pvt Ltd
� TTCN-3 test system in a nutshell� SUT, TMC, TE, TCI, TRI, SA, PA, components, ports
�TTCN first saw the light of day as a fledgling language in the mid-1980s.
�Since the, it has arguably progressed to be the de facto standardized language for writing test specifications.
�some ten years later, new technologies, not least the advent of the internet and the merging of mobile and fixed telecommunications, put
Introduction : TTCN-3
© 2012 -TCLOUD Information Technologies Pvt Ltd
internet and the merging of mobile and fixed telecommunications, put pressure on TTCN to modernize. That, together with a growing perception in industry that rigorous and efficient testing was not a luxury but rather a necessity, made ETSI (European Telecommunication Standardization Institute) to decide to overhaul the original ISO/IEC TTCN specification.
�The result was TTCN-3.
Introduction to TTCN -3
� Introduction to TTCN-3
� Capabilities of TTCN-3
� Message based concepts & Procedure Based Communicat ion� Managing concurrency and parallel testing with TTCN -3� Concurrent testing configurations, communication me chanisms
© 2012 -TCLOUD Information Technologies Pvt Ltd
� TTCN-3 test system in a nutshell� SUT, TMC, TE, TCI, TRI, SA, PA, components, ports
To test the SUT, we need to exchange messages with it. The two most important operations to do this are the send operation and the receive operation. The send operation can be used to send a message to the SUT. The receive operation compares a received message against a template. If the message matches the template, then the message is removed from the message queue.
Message-based communication
Capabilities of TTCN -3 (1)…
testcase tc_purchaseA () runs on TVMTester {
© 2012 -TCLOUD Information Technologies Pvt Ltd
testcase tc_purchaseA () runs on TVMTester {// request the ticketpt_request.send( a_ticketA );pt_ticket.receive( a_payticket );// pay the ticketpt_cash.send( a_coin50 );pt_cash.send( a_coin100 );pt_ticket.receive( a_ticketA );setverdict( pass );};
Procedure-based communication
TTCN-3 procedure-based communication is used to model the (remote) method invocation of IDL. Indeed, the procedure-based communication mechanism of TTCN-3, with the separation of in, out, and inout parameters, has been modelled on IDL to serve exactly this purpose.
Capabilities of TTCN -3 (2)...
© 2012 -TCLOUD Information Technologies Pvt Ltd
Concurrent TTCN -3
� Why do we need a concurrent test architecture?
Capabilities of TTCN -3 (3)…Managing concurrency and parallel testing withTTCN -3
© 2012 -TCLOUD Information Technologies Pvt Ltd
� What kind of architectures can be used?
� How TTCN-3 supports such architectures?
� TTCN-3 Configuration Operations.
� Tips and Guidelines.
Terminology� PCO Point of Control and Observation� CP Control Point (Port type)� MTC Main Test Component (Component type)� PTC Parallel Test Component (Component type)� TS Test System
Capabilities of TTCN -3 (4)…Managing concurrency and parallel testing withTTCN -3
© 2012 -TCLOUD Information Technologies Pvt Ltd
� TS Test System� TSI Test System Interface� SUT System Under Test
Capabilities of TTCN -3: Managing concurrency(5)…
Why do we need a concurrent test architecture?..
� By nature, devices and users which are interfaced to the SUT are functioning in a concurrent manner.
� Even with perfectly synchronized inputs to the SUT, there are no guaranties that the SUT will reply with the exact same sequence of outputs.
© 2012 -TCLOUD Information Technologies Pvt Ltd
outputs.
Capabilities of TTCN-3: Managing concurrency (6)…
Tester T1 sends the message A to the SUT
� The SUT replies to both Testers, T1 and T2
� The SUT first sends C to T2, then B to T1
� Therefore the Test Sequence is {T1!A, T2?C, T1?B}
© 2012 -TCLOUD Information Technologies Pvt Ltd
Why do we need a concurrent test architecture?
� The non-deterministic behaviors of the SUT and the channel delays yield to a set of possible sequences.
- This trivial example yields to two possible outcomes.� Having this kind of alternatives would soon generate very complex non-concurrent test case descriptions.
Capabilities of TTCN-3: Managing concurrency (7)…
testcase TC_NonConcurrent_01()runs on HostYpe {
© 2012 -TCLOUD Information Technologies Pvt Ltd
T1.send(A);alt {
[ ] T1.receive(B) {T2.receive(C)
}[ ] T2.receive(C)
T1.receive(B)}}
// Other events...}
Capabilities of TTCN-3: Managing concurrency (8)…
Why do we need a concurrent test architecture?
� Conformance testing:- A PBX must accept 12 simultaneous connection requests.- A railroad switching controller must compute inputs from four
detection devices and give feedback.
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Service, function and feature testing:- Establish a 3-way conference.
� Stress, robustness and load testing:- System must accept 13 simultaneous Service Requests multiple
times during a sustaining period of time.
Capabilities of TTCN-3: Managing concurrency (9)…
� Each tester uses different set of messages and interfaces: multiple port types.
� Each tester is different: multiple component types.
� But one port type per component type
© 2012 -TCLOUD Information Technologies Pvt Ltd
Capabilities of TTCN-3: Managing concurrency (10)…
� Architecture with multiple testers of different types.
� Each tester type can have multiple kind of interfaces
© 2012 -TCLOUD Information Technologies Pvt Ltd
Capabilities of TTCN-3: Managing concurrency (11)…
� The Executable Test suite can be:
-One Node - Multi-threaded (simplest, Default)-Multi-Node-Mixed
© 2012 -TCLOUD Information Technologies Pvt Ltd
Capabilities of TTCN-3: Managing concurrency (12)…
Benefits with concurrent TTCN
� Less code to write� Can have several test architectures in the same test suite� Several service providers can be used.� Other components can be created at any time during
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Other components can be created at any time during the test case execution.� Concurrency
- we can have several components executing simultaneously
- Several processes aiming at the same goal
Introduction to TTCN-3
� Introduction to TTCN-3
� Capabilities of TTCN-3
� Message based concepts & Procedure Based Communicat ion� Managing concurrency and parallel testing with TTCN -3� Concurrent testing configurations, communication me chanisms
© 2012 -TCLOUD Information Technologies Pvt Ltd
� TTCN-3 test system in a nutshell� SUT, TMC, TE, TCI, TRI, SA, PA, components, ports
TTCN-3 Test System in a nutshell (1)…
TTCN-3 specifies a test but a test system is needed for test execution
TRI and TCI standards define test system architecture
Test System Executor
Test Control
[compiled]TTCN-3 Executable
CodecsLogging
TTCN-3 Test System
TCI
TRI
© 2012 -TCLOUD Information Technologies Pvt Ltd
– TTCN- 3 tools are required to support internal interfaces
– Allows reuse of test platforms with different tools but also for different SUTs
SUT Adapter Platform Adapter
System Under Test (SUT)
TCI = TTCN-3 Control InterfaceTRI = TTCN-3 Runtime Interface
An example adaptation: A IPv6 test system
Test System Executor
ParameterFile
IPv6 Codecs
ToolLogging
TTCN-3 Test System
TCI
TTCN-3 Test System in a nutshell (2)…
A test system requires:
� A TTCN-3 tool = TTCN-3 compiler and execution environment� A test platform for a specific
© 2012 -TCLOUD Information Technologies Pvt Ltd
Ethernet Adapter Real-time Adapter
Open Source FreeBSD Router
[compiled]
IPv6 ATS TTCN-3 Executable
TRI
� A test platform for a specific device under test
� Note: Tools come with default Test Control & Logging
TTCN-3 Test System in a nutshell (3)…
TTCN-3 code is not executable by itself. It needs to be interpreted or translated into some executable format. TTCN-3 test system provides the following parts outside of the TTCN-3 code.
TM: Handles the overall test management by passing TTCN-3
Architecture of a TTCN-3 system
© 2012 -TCLOUD Information Technologies Pvt Ltd
management by passing TTCN-3 module parameters to the TE, and by instructing it to start and stop execution of the test cases.
CH: The CH entity enables the distribution of the TE over several devices (if required) by passing information of test case events between the distributed TEs.
TTCN-3 Test System in a nutshell (4)…
CD: Responsible for encoding the message into some format that is understood by the SUT. Responsible for decoding the message from SUT into TTCN-3 value
© 2012 -TCLOUD Information Technologies Pvt Ltd
TTCN-3 value representation.
TL: The TL entity is responsible for maintaining test logs, which consists of events the TE notifies it about.
TTCN-3 Test System in a nutshell (5)…TE: The TE entity corresponds to the executable code resulting from compilation or interpretation of an Abstract Test Suite (ATS), which consists one or more TTCN-3modules
SA: Handles the actual interaction with the SUT, when this is requested by the
Architecture of a TTCN-3 system
© 2012 -TCLOUD Information Technologies Pvt Ltd
the SUT, when this is requested by theTE or initiated by the SUT, and it also notifies the TE about any incoming events coming from the SUT (messages, function calls).
PA: The Platform Adapter (PA) realizes the external function call statements of TTCN-3, and it provides to the TE a timer service.
TCI: Exist between the TE and TMC,and between the TE and SA
TTCN-3 Test System in a nutshell (6)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
and between the TE and SA and PA. It specifies the interface for user-implemented codecs.
TRI: Exist between TE and SA and PA. Most of the operations the interface provides are implemented by the SA and PA, and called by the TE.
TTCN-3 Test System in a nutshell (7)…
Inside TTCN -3 Executable
© 2012 -TCLOUD Information Technologies Pvt Ltd
Component:•A component is a user specified entity, which contains user-defined ports.•can interact with other components and the SUT with message and procedure operations. • May contain private variables and timers. The component itself does not specify any kind of behavior but it provides an environment for it. •This means that one can start functionality in the component and this functionality can then use the ports, variables, and timers of the component.• The functionality that can be started in the component can be either a test case or a function.
TTCN-3 Test System in a nutshell (8)…Inside TTCN -3 Executable
Port:• When two components want to communicate with each other, the ports of the componentshave to be first connected with each other.
© 2012 -TCLOUD Information Technologies Pvt Ltd
TSI:• Unlike the other components, one cannot start any functionality in it,• It does not have any internal variables or timers. This component acts as an abstract. •Interface between the test case and the System Under Test (SUT). •The ports of the system component (TSI) are visible to the SUT Adapter, which routes any messages or procedure operations seen at these ports between the test case components and the real test system interface at the SUT..
• When a component needs to communicatewith the SUT, its port has to be mapped with one of the ports of the TSI component
TTCN-3 Executable
TTCN-3 Test System
TRI
Test Control
Codecs
Logging
TCI
InternalCommunication
PTC PTC
MTC
TTCN-3 Test System in a nutshell
Inside TTCN-3 Executable : Concurrent Test ConfigurationMTC is responsible for creating other components which are called Parallel Test Components,and for starting functionality in them.
© 2012 -TCLOUD Information Technologies Pvt Ltd
SUT Adapter Platform Adapter
System Under Test (SUT)
TRI
Implementation Under Test
All test behavior is executed on one (main) test c omponentA test involves execution of many parallel test com ponentsDynamic instantiation of components and communicati on links
So…what is new in TTCN -3 and what are the TTCN -3 corner stones??
� Main new aspects& Concepts of TTCN3• Different TTCN-3 Presentation Formats• Logging Aspects
� Basic Elements of TTCN-3• Basic Language Elements
- Core Language Elements- Scoping Rules- Basic Programming Statements- Expressions- Operators & their Precedence
© 2012 -TCLOUD Information Technologies Pvt Ltd
- Operators & their Precedence- Control Transfer Statements, Module Import, Module Parameterization
• TTCN-3 Types- Basic & Structured Types- Any Type, Sub typing - Timer
� Building blocks of TTCN-3 -Type Definitions-Templates-Test Configurations-Test cases
Main new aspects& Concepts of TTCN 3
TTCN can be integrated with types systems of other languages
Fully harmonized with ASN.1 (1997)TTCN-3
Core IDL Types &
XML Types &
Values
ASN.1 Types
& Values
Use of TTCN -3 With Other Languages
© 2012 -TCLOUD Information Technologies Pvt Ltd
with ASN.1 (1997)
Harmonized with other languages� IDL, XML, C/C++
Core Language
IDL Types &
Values
Other types & Values n
IDL: Integration Description Language
Main new aspects& Concepts of TTCN 3
Different TTCN-3 Presentation FormatsThe Core Language and Other Presentation Formats
TTCN-3
Text format
Tabular
Format
Core format is text based (most popular)
TTCN-3 can be edited or viewed in other formats
� Tabular format
© 2012 -TCLOUD Information Technologies Pvt Ltd
TTCN-3 Core Language Presentation
Format 3
PresentationFormat n
Graphical Format
� Tabular format (for TTCN-2 people)
� Graphical format (good for visual overview)
� Other standardized formats in the future?
� Proprietary formats possible
Main new aspects & Concepts of TTCN 3
testcase TC_resolveTCLOUDWww() runs on DnsClient{
timer t_ack;serverPort.send(m_dnsQuestion("www.tcloudtech.com"));t_ack.start(1.0);alt {
[] serverPort.receive(mw_dnsAnswer("176.136.72.81")) {
setverdict (pass);}
Different TTCN-3 Presentation Formats: Example Core (Text) Format
© 2012 -TCLOUD Information Technologies Pvt Ltd
}
[] serverPort.receive { // any other messagesetverdict(fail);}
[] t_ack.timeout {setverdict(inconc);
}
}t_ack.stop;
}
Main new aspects& Concepts of TTCN 3
Different TTCN-3 Presentation Formats Example Grap hical Format
testcase TC_resolveTCLOUDWww() runs on DnsClient
DnsClient
mtc
DnsPort
serverPort
m_dnsQuestion("www.tcloudtech.com")
timer t_ack
t_ack
© 2012 -TCLOUD Information Technologies Pvt Ltd
m_dnsQuestion("www.tcloudtech.com")t_ack
altmw_dnsAnswer("176.136.72.81")
?
t_ack
inconc
fail
pass
t_ack
Main new aspects& Concepts of TTCN 3Different TTCN-3 Presentation Formats Example Tabu lar Format
Testcase
Name TC_resolveTCLOUDWww()
Group
Purpose
System Interface
MTC Type DnsClient
Comments
Local Def Name Type Initial value Comments
t_ack timer
© 2012 -TCLOUD Information Technologies Pvt Ltd
t_ack timer
Behavior
serverPort.send(m_dnsQuestion("www.tcloudtech.com"));
t_ack.start(1.0);
alt {
[] serverPort.receive(mw_dnsAnswer("176.136.72.81")) { setverdict (pass); }
[] serverPort.receive // any other message{ setverdict(fail); }
[] t_ack.timeout{ setverdict(inconc); }
}
t_ack.stop;
Detailed Comments:
Main new aspects& Concepts of TTCN 3
� Logging Aspects
It is allowed to use in a user log statement• literal values (incl. charstrings -> the only logged item in v.2.2.1)• module parameter values• constant (TTCN-3, ASN.1 or external) values.• templates.• variable values.• component instance actual values and names.
© 2012 -TCLOUD Information Technologies Pvt Ltd
• component instance actual values and names.• component states (running & alive).• port states.• timer states and elapsed time.• default reference values (incl. 'UNITIALIZED' ).• function return values (TTCN-3 or external).• formal parameter values.
Main new aspects& Concepts of TTCN3
� Main new aspects& Concepts of TTCN3• Triple C, Module concept, Extendibility• Different TTCN-3 Presentation Formats• Logging Aspects
� Basic Elements of TTCN-3• Basic Language Elements
- Core Language Elements- Scoping Rules- Basic Programming Statements- Expressions
© 2012 -TCLOUD Information Technologies Pvt Ltd
- Expressions- Operators & their Precedence- Control Transfer Statements, Module Import, Module Parameterization
• TTCN-3 Types- Basic & Structured Types- Any Type, Sub typing - Timer
� Building blocks of TTCN-3 -Type Definitions-Templates-Test Configurations-Test cases
Basic Elements of TTCN -3: Basic Language Elements
Core Language Elements(1)
• Keywords per language element• TTCN-3 module definition: module• Import of definitions from other module: import• Grouping of definitions: group• Data type definition: type• Communication port definitions: port• Test component definitions: component• Signature definitions: signature
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Signature definitions: signature• External function/constant definitions: external• Constant definitions: const• Data/signature template definitions: template• Function definitions: function• Alt step definitions: altstep• Test case definitions: test case• Variable declarations: var• Timer declarations: timer
• Keywords are written in all lowercase letters
Core Language Elements(2)
�Generally, the order in which declarations can be m ade is arbitrary
� Identifiers• Start with a letter• Can contain digits and underscores• Are case sensitive
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Are case sensitive
� Comments• as free text• may appear anywhere in a TTCN-3 specification module• Nested comments are not allowed
Scoping Rules
� Six scope units• Module definition part• Control part• Component types• Functions• Alt steps• Test cases
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Test cases• “Blocks of statements and declarations”
� Each scope unit can have declarations (optional)
Basic Program Statements
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
�Label/goto construct can only be used in alternativ es
�{ } can not be omitted
� Expressions are only allowed for compatible types
� They are read left to right, respecting parenthesis
Expressions
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Boolean expression can only contain boolean values or boolean expressions
�There are no prefix or postfix operations (like C: i++;)
Operations ...(1)
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
Operations ... (2)
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
And their precedence ...
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
Operation: Bit oriented
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
�Bitwise operators• Operands can be of compatible type
• bitstring• hexstring• octetstring
• Operands must have the same compatible type and the same length�Shift and rotate operators
• Right hand operand must be an Integer (expression)
�Labels can be declared everywhere except as a top a lternative in a alt or interleave statement
�Label identifiers shall be unique in their scope• Example
label MyLabel;i := i +1;
Label / Goto
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
i := i +1;label L01;goto MyLabel;
� Goto can be used to jump forward and backward in one fun ction, but not into an alt, interleave while, for statement, e tc.
� DON’T USE IT! (“Why goto’s are considered harmful”)
�Grammar ruleif “(“ BooleanExpression “)”StatementBlockElseIfClause[ElseClause]ElseIfClause := else if “(“ BooleanExpression “)” StatementBlockElseClause := else StatementBlock
Control Flow: The if-clause
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
�{ } are mandatory!
�Exampleif (i>5) {x(7) ;} else if (i<5) {y(9) ;} else { return ;}
�Grammar rule• for “(“ Initial ; Final ; Step “)” StatementBlock• Initial := VarInstance / Assignment• Final := BooleanExpression• Step := Assignment
�Examplefor ( var integer i:=0; i<10; i:= i + 1) {y:=i;}
Control Flow: The for clause
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
}
Control Flow: The while clause�Grammar rule
while “(“ BooleanExpression “)” {StatementBlock }
�BooleanExpression will be evaluated before entering the Statement Block.�{ } are mandatory!!!� Example
while (i<10) {i := i + 1;}
� Grammar ruledo { StatementBlock } while “(“ BooleanExpression “)”
� BooleanExpression will be evaluated after execution of theStatementBlock.
� { } are mandatory!!!
Control Flow: do-while-clause
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Exampledo {i := i + 1;} while (i<10)
activate, deactivate, stop, repeat and return
Other Control transfer statements
Groups in TTCN -3
• TTCN-3 groups are a way to organize data
• Limited functionality• No scope unit• In TTCN-3 specification only importing is specified
• Group identifiers have their own scoping rules
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Group identifiers have their own scoping rules• Group identifiers can be reused
• Examplegroup G1 {group Valid {...}}group G2 {group Valid {...}}
Module Import
�Import of� Single definition
import from MyModuleC {type MyType;}� All definitions
import from MyModule all;� Groups
import from MyModule {group Valid;}� Definitions of the same kind
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Definitions of the same kindimport from MyModule {template all;}
� Definitions of the foreign languageimport from MyModule language “ASN.1:1997” all;
� Mixtureimport from MyModule {type MyType, OtherType; template all;}
� Import is by default nonrecursive� Name clashes are handled with module name prefixes
Module Parameterization
� Needed for parameterization at runtime
� Module Parameters• Several test system installations
• Different access data to SUT• Different capabilities/versions of SUT
• Do not execute irrelevant test cases• Provide data when starting test system
Basic Elements of TTCN -3: Basic Language Elements
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Provide data when starting test system• No hardcoding into constants to avoid recompilation
• modulepar {charstring mp_nameServerHost:=
"localhost";integer mp_nameServerPort := 2000}
� External Constants•Similar concept but without default value external const integer port No;
Main new aspects& Concepts of TTCN3
� Main new aspects& Concepts of TTCN3• Triple C, Module concept, Extendibility• Different TTCN-3 Presentation Formats• Logging Aspects
� Basic Elements of TTCN-3• Basic Language Elements
- Core Language Elements- Scoping Rules- Basic Programming Statements- Expressions
© 2012 -TCLOUD Information Technologies Pvt Ltd
- Expressions- Operators & their Precedence- Control Transfer Statements, Module Import, Module Parameterization
• TTCN-3 Types- Basic & Structured Types- Any Type, Sub typing - Timer
� Building blocks of TTCN-3 -Type Definitions-Templates-Test Configurations-Test cases
TTCN-3 Types
� Basic Types(1)• Boolean type
Boolean : true, false
• Integer type
Integer : unrestricted range
Example: -5,0,33445555
• Float type
© 2012 -TCLOUD Information Technologies Pvt Ltd
Float : unrestricted range
Example: -5.3,0.3,0.34E-1
•Char type
Char : A single character according to ISO/IEC 646
Example: “a”,”0”
• Universal Char type
Universal Char type: A single character according to ISO/IEC 10646
Example: “a”, char(0,0,1,113)
TTCN-3 Types
� Basic Types(2)
�Octet string type
Octet string : a sequnce of octets
Example: ‘AAF09E’O,’00FF’O
�Hex string type
Hex string : a sequnce of hexdigits
© 2012 -TCLOUD Information Technologies Pvt Ltd
Hex string : a sequnce of hexdigits
Example: ‘AAF09E’H,’0FF’H
�Bit string type
Bit string : a sequence of bits
Example: ‘1101’,’0110’
Contd…..
� (Universal) Char string type[Universal] Char string : a sequence of charsExample : ”Hello”, “Hell” & char(0,0,0,46)
� Verdict TypeVerdict Type: a type for test verdictsExample : pass, fail, inconc
� Basic Types(3)
TTCN-3 Types
© 2012 -TCLOUD Information Technologies Pvt Ltd
Example : pass, fail, inconc
type record url {charstring protocol,charstring host,charstring file}
type set of dinosaur dinolist;
� Structured Type Definition
TTCN-3 Types
© 2012 -TCLOUD Information Technologies Pvt Ltd
type set of dinosaur dinolist;
type record dinosaur { charstring name,integer len,integer mass optional,charstring time,charstring place}
� Relevant TTCN-3 Definitions
type set of dinosaur dinolist ;type record dinosaur {charstring name,charstring len,charstring mass ,charstring time ,charstring place}type record url {charstring protocol ,
TTCN-3 Types
© 2012 -TCLOUD Information Technologies Pvt Ltd
charstring protocol ,charstring host ,charstring file}template url requestURL := {protocol := " http://",host := " www.tcloudtech.com ",file := " /TTCN-3_Example/dinolist.xml "}type port httpTestPortType message {out url ;in dinolist ;}
Types : record, record of, set, set of, union, enumeratedCan be nested into: record, record of, set, set of, union
type record MyRecord {
union {integer choice1,octetstring choice2
� Nested structured type definitions
TTCN-3 Types
© 2012 -TCLOUD Information Technologies Pvt Ltd
octetstring choice2} field1,
enumerated {Rose, lotus, lilli
} field2,integer field3 (0..31)
};
const MyRecord.field1 := { choice2 := '80'O };
� Any type
TTCN-3 Types
�Models a union of all known types in a TTCN-3 module
Var anytype MyVarOne, MyVarTwo;
Var integer MyVarThree;
MyVarOne.integer :=34;
MyVarTwo:={integer :=Myvarone+1};
© 2012 -TCLOUD Information Technologies Pvt Ltd
MyVarTwo:={integer :=Myvarone+1};
MyVarThree;=MyVarOne X 12;
�DON’T USE THIS!
� Basic and Structured types can be sub typed
TTCN-3 Types
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Sub typing : Examples
TTCN-3 Types
�Sub typing of simple types
• type integer Byte (0….255)
• type integer odd (1,3,5,7,9)
• type octet string Buffer length (2…5)
© 2012 -TCLOUD Information Technologies Pvt Ltd
• type octet string Buffer length (2…5)
• type char string Identifier (“a”..”z”,”A”…”Z”)
�Sub typing of Structured elements
• Type record length(10) of integer MyRecord OfType
• Type record length(0….10) of charstring stringarrey length(12);
� Sub typing : Examples
TTCN-3 Types
�Type compatibility is required for assignements, comparison and instantiation
�Enumerated are only compatible to themselves strong typing)
�Basic types: the value “b” is compatible to type “A “ if
© 2012 -TCLOUD Information Technologies Pvt Ltd
�Basic types: the value “b” is compatible to type “A “ if type “B” resolves to the same root type as type “A” and it does not violate subtyping (eg. Ranges, length restrictions) of type “A”.
Example: type integer A(0,…256);
type integer B(10……256);
Var B myB :=b:
• Timers are used to observe time progress
• Timers can be declared and used• local in control part, testcases, functions and altesteps• additionaly component wide in component type definition
• Timer values are floats, its unit are seconds
• Examples of timer declaration• timer t1 := 1.0 ; // default value one second
TTCN-3 Timers
© 2012 -TCLOUD Information Technologies Pvt Ltd
• timer t1 := 1.0 ; // default value one second• timer t2 := 0.010 ; // default value of ten milliseconds• timer t3 := 1E-2 ; // using alt float notation
• Examples of timer operations• t1.start(5.5) ; // overriding any default value• t2.stop ;• boolean b := t1.running ;• float f := t2.read ;• t3.timeout ;
Main new aspects& Concepts of TTCN3
� Main new aspects& Concepts of TTCN3• Triple C, Module concept, Extendibility• Different TTCN-3 Presentation Formats• Logging Aspects
� Basic Elements of TTCN-3• Basic Language Elements
- Core Language Elements- Scoping Rules- Basic Programming Statements- Expressions
© 2012 -TCLOUD Information Technologies Pvt Ltd
- Expressions- Operators & their Precedences- Control Transfer Statements, Module Import, Module Parameterization
• TTCN-3 Types- Basic & Structured Types- Any Type, Sub typing - Timer
� Building blocks of TTCN-3 -Type Definitions-Templates-Test Configurations-Test cases
Building blocks of TTCN -3 Module (1)…
� Type definition (Definition of different types used in the message)
� Templates (test data description) and matching mechanisms(pattern matching)
� Test configurations• Formally defined interfaces to the SUT• Dynamic creation of test component
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Dynamic creation of test component• Concurrency to describe distributed test setups
� Test cases• Small (complete) separate compileable programs• Share (type and data) information
� Test verdicts
Structured Definitions Part
module TcloudDnsTests{
group MessageStructure{
// Defintions of message types}
Building blocks of TTCN -3 Module (2)…
� TTCN3 Module
© 2012 -TCLOUD Information Technologies Pvt Ltd
}group TestData{
// Templates for messages instances}group TestSystemConfiguration{
// Port and component types and mappings}group TestCases{
// Test case definitions}
}
� TTCN3 Modulemodule TcloudDnsTests{
// Test definition part
control{
// Test execution part// (optional)
Module (…)
Module Definitions
Building blocks of TTCN -3 Module (3)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
// (optional)}
}Module Control
module TcloudDnsTests{
// Message structure// Actual test data// Test configuration// Test Case definitio
}
Definitions Part
� TTCN3 Module
Module (…)
Module Definitions
module TcloudDnsTests{
// Test definition partmodulepar boolean mp_example;
testcase TC_resolveTCLOUDWww() runs on DnsClient{
Control Part
Building blocks of TTCN -3 Module (4)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
Module Control
Definitions // .. as in previous slide}
// Test execution partcontrol {if (mp_example) {
execute(TC_resolveTCLOUDWww());}
}}
Control Part
� TTCN3 Module Definition Continued..
�Module Definitions
•Type Definitions
•Templates
•Port Definitions
type record DNSQuery {
charstring hostname,
AnswerType answer optional ,
QueryType qtype
}
Building blocks of TTCN -3 Module (5)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
•Component Definitions
•Test case
•Control Part
�Module Control
type union AnswerType {
Byte address[4],
charstring hostname}
type integer Byte (0 .. 255);
type enumeration QueryType {
}A, NS, CNAME
� Module Definitions
•Type Definitions
•Templates
•Port Definitions
template DNSQuery query {
host name :=“ www.tcloudtech.com ”; answer := omit ; qtype := A;
}
� TTCN3 Module Definition Continued..
Building blocks of TTCN -3 Module (6)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
•Component Definitions
•Test case
•Control Part
�Module Control
}
template DNSQuery response modifiesquery {
answer.address := {176,136,72,81};
}
• Templates• Basic and Parameterized Templates• Modified and Inline Templates• Matching
Examples of Send Templates
• Template of basic type
�Template Details
Building blocks of TTCN -3 Module (7)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Template of basic typetemplate integer i := 1 ;template octetstring o := 'AABBCC'O
• Template of structured typestemplate MyRecord r := {fieldA := omit, // must be declared optionalfieldB := 1,fieldC := f(4) }template MyUnion u := {integerVariant := 4 }
Examples of Receive Templates
• Template of basic typetemplate integer i := ? ;template octet string o := 'AA??CC'Otemplate integer i := 1 ;template integer i := (1, 2, 4..5) ;
�Template Details continued
Building blocks of TTCN -3 Module (8)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Template of structured typestemplate MyRecord r := {
fieldA := *, // must be declared optionalfieldB := ?,fieldC := pattern “ab*z” }
template MyUnion u := {integerVariant := 2 }
• Elements that can have templates as parameters• Function• Testcase• Altstep
Parameterization of Templates
�Template Details continued
Building blocks of TTCN -3 Module (10)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Altstep• Template
function f2(template MyRecord r1)runs on C {p1.send(r1) ;}
Parameterization of Templates
• Parameterization with values• template MyRecord r2(integer i) := {integerField1 := i,integerField2 := i+2,charstringField := ””"Hello””"}
�Template Details continued
Building blocks of TTCN -3 Module (9)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
charstringField := ””"Hello””"}
• Parameterization with templates• To enable passing of wildcards and other matching operations
• template MyRecord r2(template SubRecord r1) := {aRecordField := r1,charstringField := ””"Hello”"" }
Modifications of Templates
• Parameterization is applicable
• Example// Giventemplate MyRecordType MyTemplate1(integer i) := {
�Template Details continued
Building blocks of TTCN -3 Module (11)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
field1 := i,field2 := "A string",field3 := true}
// then writingtemplate MyRecordType MyTemplate2(integer i)
modifies MyTemplate1 := {// field1 remains parameterizedfield2 := "A modified string"// field3 is unchanged }
Implicit (Inline) Templates
• Named templates vs. unnamed templates
• Unnamed, so called inline templates reduce amount o f template definitions
• Especially in combination with modifies
�Template Details continued
Building blocks of TTCN -3 Module (12)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Especially in combination with modifies
• Might enhance readability, but handle with care
• Example:template MyRecord r1 := {
fieldA1 := { fieldB1:= 2, fieldB2 := "test" },fieldA2 := 2}
Matching Operations
• Group 1: Specific Values• expression that resolves to a single value• omit
• Group 2 : Instead of Values• ? wildcard for any value• * wildcard for any value or no value at all
Building blocks of TTCN -3 Module (13)
�Template Details continued
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Group 3: Special Symbols inside values• ? wildcard for any single element of a string, array, record of, and set of• * wildcard for any number of consecutive elements of a string, array,record of, and set of
• Group 4: Unspecific Values• length: restriction on length of strings and of number of elements of array, record of, and set of• ifpresent: for matching optional field values
Basic Elements of TTCN -3 Module (1)…
�Test system configuration
type port DNSPort message {
inout DNSQuery;
// a port may send/receive messages
// of more than one type}
// Port Definition� Module Definitions
•Type Definitions
•Templates
•Test system configuration
•Port Definitions
© 2012 -TCLOUD Information Technologies Pvt Ltd
}
type component DNSTester {
port DNSPort P;
// a component may have more than
one port}
// Component Definition
PDNSTesterDNSQuery
•Port Definitions
•Component Definitions
•Test case
� Module Control
Basic Elements of TTCN -3 (2)…
TTCN3 Module Definition Continued… Test Case
testcase Testcase1() runs on DNSTester {
P.send(query);
P.receive(response);
setverdict(pass);
stop;}
� Module Definitions
•Type Definitions
•Templates
•Test system configuration
© 2012 -TCLOUD Information Technologies Pvt Ltd
Client
(“www.tcloudtech.com”,A)
(“www.tcloudtech.com”, 176.136.72.81 ,A)
DNS
Pass
•Port Definitions
•Component Definitions
•Test case
� Module Control
Basic Elements of TTCN -3 (3)…
TTCN3 Module Definition Continued… : Control part
�Controls the execution of the test case
control {
execute (Testcase1());
� Module Definitions
•Type Definitions
•Templates
•Test system configuration
© 2012 -TCLOUD Information Technologies Pvt Ltd
// more test cases might follow
}
•Test system configuration
•Port Definitions
•Component Definitions
•Test case
� Module Control
�Introduction to Test Data type, Actual test data, Test Configuration,- Test component, Communication ports, Functions, Test Behavior - Control and monitor component - How TTCN-3 supports concurrent architectures- Behavior alternative
� Foreign data (ASN.1) usage in TTCN -3
Building blocks of TTCN -3 test suite
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Foreign data (ASN.1) usage in TTCN -3- Goal, Overview, ASN.1 to TTCN-3 mapping, Conventions,ASN.1/
TTCN-3 type equivalence, Open Type, Other String Types, Structured Types, ASN.1 values, Modules
Building blocks of a TTCN -3 Test Suite (1)…
Test Suite
Test Data Types
Data types which specify• Structure of messages or calls and theirStructure of messages or calls and theirStructure of messages or calls and theirStructure of messages or calls and their
information elements (fields, parameters)information elements (fields, parameters)information elements (fields, parameters)information elements (fields, parameters)• Internal data structures (e.g., for computation)Internal data structures (e.g., for computation)Internal data structures (e.g., for computation)Internal data structures (e.g., for computation)• Possibly encoding or display informationPossibly encoding or display informationPossibly encoding or display informationPossibly encoding or display informationBuilt-in basic typesinteger, boolean, float,integer, boolean, float,integer, boolean, float,integer, boolean, float,bitstring, hexstring, octetstring,bitstring, hexstring, octetstring,bitstring, hexstring, octetstring,bitstring, hexstring, octetstring,
© 2012 -TCLOUD Information Technologies Pvt Ltd
bitstring, hexstring, octetstring,bitstring, hexstring, octetstring,bitstring, hexstring, octetstring,bitstring, hexstring, octetstring,charstring, universal charstringcharstring, universal charstringcharstring, universal charstringcharstring, universal charstring... and structured typesrecord, record of, set, set ofrecord, record of, set, set ofrecord, record of, set, set ofrecord, record of, set, set ofunion, enumeratedunion, enumeratedunion, enumeratedunion, enumerated... and special types such ascomponent, port, verdict type, default, etc component, port, verdict type, default, etc component, port, verdict type, default, etc component, port, verdict type, default, etc
Building blocks of a TTCN -3 Test Suite (2)…
Test Suite
Actual Test Data
Test Data Types
Actual test data (values) used during testing• Constants or Templates for specific
message or call parameter values• Matching expressions for allowing multiple
message or call parameter values• value range, value list, wildcards,
presence, length, size, permutation
© 2012 -TCLOUD Information Technologies Pvt Ltd
presence, length, size, permutation• regular expressions
• Using also template decomposition,parameterization and modification
Test Data Definitions• Templates define the test data• Are based on basic or structured types
• Send templates, contain only concrete values and no matching operations
• Receive templates can contain
Building blocks of a TTCN -3 Test Suite (3)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Receive templates can contain• Wildcards• Matching operations
Building blocks of a TTCN -3 Test Suite (4)…
Test Suite
Actual Test Data
Test Data Types
Static aspects
• Test component and port types
Dynamic aspects
• Dynamic instantiation andmanagement of test components
• Mappings of test components to
© 2012 -TCLOUD Information Technologies Pvt Ltd
Test Configuration
Test Data • Mappings of test components toabstract test system interfaces
• Connections between testcomponent interfaces
• Management of test components
Test Suite
Actual Test Data
Test Data Types
test cases
• specify sending/receiving messages,computation (e.g., checksums), and verdict assignment
• can be decomposed with functions andaltsteps
• can (re)use default behavior
Building blocks of a TTCN -3 Test Suite (5)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
Test Behaviour
Test Configuration
• can (re)use default behavior
• can use timers and timeouts
test execution control (optional)• order, repetition, conditions, etc
TTCN-3 functions define the behavior of the parallel testcomponents function root_behaviour runs on DNSTester {
alt {
[ ] P.receive (rootquery) {
P.Send(rootanswer);
setverdict (pass );
}
DNS Root NS
(“tcloudtech.com”, NS)alt
Parallel Test Component
Building blocks of a TTCN -3 Test Suite (6)…
© 2012 -TCLOUD Information Technologies Pvt Ltd
}
[ ] P. receive { setverdict (fail );
}
}
stop ;
}
(“tcloudtech.com”, “ns.tcloudtech.com”, NS)
Pass
fail
� Test Verdicts� Type verdicttype
• 5 values: none, pass, inconc, fail, error• error: set by runtime system
� Each component maintains a verdict• Initial value: none
• setverdict ( …) to change verdict
Building blocks of a TTCN -3 Test Suite (6)...
© 2012 -TCLOUD Information Technologies Pvt Ltd
• setverdict ( …) to change verdict• getverdict to read verdict
• Verdict cannot be improved• setverdict ( fail ) ;• setverdict ( pass) ;• getverdict; // --> fail
� Overall verdict: minimum of testcomponent verdicts
• Several components in a test configuration• Always: Main Test Component, Test System Interface
• Main Test Component• Reference: mtc• Created when test case execution starts
Building blocks of a TTCN -3 Test Suite
� Special Components
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Test system interface• Reference: system• Created when test case execution starts• Defines ports to communicate with SUT• May contain timers, etc.
• Initially: one test component, mtc and system coincide
• Later: access to timers, etc., dynamic test configurations
var DNSTester RootComp, NSComp, ClientComp;
RootComp := DNSTester. create ;
NSComp := DNSTester. create ;
ClientComp := DNSTester. create ;
map(RootComp:P, system :ROOT);
testcase Testcase3() runs on mtc
system TSI {
Building blocks of a TTCN -3 Test SuiteDynamic Configuration
© 2012 -TCLOUD Information Technologies Pvt Ltd
map(NSComp:P, system :NS);
map(ClientComp:P, system :CLIENT)
RootComp. start (RootBehaviour());
NSComp. start (NSBehaviour());
ClientComp. start (ClientBehaviour());
ClientComp. done ;
// block until ClientComp is donestop ;
}
How TTCN-3 supports concurrent architectures?� Dynamic creation of the test configuration
- Creation of components• create
� Creation of connections between Components• map, unmap
� Creation of connections with the TSI/SUT• connect, disconnect
� Dynamic control of the component behavior
Building blocks of a TTCN -3 Test Suite
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Dynamic control of the component behavior- Control of component behavior
• start, stop, kill- Lookup of component behavior
• running, done, alive, killed
� Communication between components- Exchange of messages between components
send, receive- Implicit verdict mechanism
setverdict, getverdictnone, pass, inconc, fail, error
Testing Concept : Self-test of Test Cases� Use concurrency to perform a self-test of a test case
- All behavior is encapsulated in a function. In the normal case, this function is simply called in the MTC.
Building blocks of a TTCN -3 Test Suite
© 2012 -TCLOUD Information Technologies Pvt Ltd
-For Self-Testing, a simulation of each of the SUT port is implemented in one or more Parallel Test Components (PTCs). They are connected to MTC ports.
- Since the Test System Interface can be left empty, SUT Adaptation is not needed for the self-test test suite.
Building blocks of a TTCN -3 Test Suite
• Everything that “pure” functions are, plus• Runs-on clause defining the component type the func tion can beexecuted only• Port parameters possible• Templates as parameters, can only be in
• Examples• Runs -on clause
Behaviour Functions
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Runs -on clausefunction f() runs on C return integer {p.send (SomeTemplate) ;return 1;}
• Template parametersfunction f(template R myRecord) runs on C {p.send (myRecord) ;}
• Use runs on to access component entities• Timers, ports, constants, variables
type component AddressBookClient {port ServerPort pt_server;const float c_maxDuration := 2.0;… ;
Building blocks of a TTCN -3 Test Suite
Functions on Components
© 2012 -TCLOUD Information Technologies Pvt Ltd
… ;}
function f_addEntry (in Entry p_entry )runs on AddressBookClient{
pt_server. send ( … );pt_server. receive ( … ) { … };
}
function f_startup() runs on MyComp{/* A new component of type SomeComp is created, and a reference to this* component is stored into variable cp_someCompRef. */var SomeComp cp_someCompRef := SomeComp.create;/* Local port pt_control is connected with the port pt_ctrl* of the newly created component. */connect(self:pt_control, cp_someCompRef:pt_ctrl);/* Port pt_data of the newly created component is m apped* with the port tcp of the test system interface co mponent.*/
Building blocks of a TTCN -3 Test Suite
Functions on Components: Example
© 2012 -TCLOUD Information Technologies Pvt Ltd
*/map(cp_someCompRef:pt_data, system:pt_tcp);/* Function tp_someBehaviour() is started in the co mponent,* and string "10.10.10.1" is given to it as a param eter.* .start() is a non blocking command, so the execut ion continues* immediately after the below statement.*/cp_someCompRef.start(tp_someBehaviour("10.10.10.1") );// Wait for cp_someCompRef to finish its execution.cp_someCompRef.done;// Set own verdict to pass.setverdict(pass);// Stop own execution.self.stop}
�Introduction to Test Data type, Actual test data, Test Configuration,- Test component, Communication ports, - Functions, Test Behavior - Control and monitor component - How TTCN-3 supports concurrent architectures- Behavior alternative
Building blocks of TTCN -3 test suite
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Foreign data (ASN.1) usage in TTCN-3- Goal, Overview, ASN.1 to TTCN-3 mapping, Conventions,ASN.1/ TTCN-3
type equivalence, Open Type, Other String Types, Structured Types, ASN.1 values, Modules
Behavior alternative : alt statement & altstep
Alt Statement: Alt statement allows to group several block operations into a single statement.It is also possible to have an alt statement with only a single alternative.The alt statement specifies a list of receiving operations: receive, getcall, getreply, catch trigger and check, done and timeout. The "done" operation blocks the execution of calling component, until the specified other component has finished its function execution.
Altstep: In TTCN-3, altstep is similar to function in that they can have parameters, but unlike functions, they also allow the description of guard
© 2012 -TCLOUD Information Technologies Pvt Ltd
parameters, but unlike functions, they also allow the description of guard expressions and receive and timeout operations.
Functions versus Altsteps• Two similar concepts, where are the differences?
Guideline: Use functions, whenever possible
Functions Alts teps-------------- ---------Return value No re turn valuecan't be used as default Can be used as default
queryserverPortmtc
Building blocks of a TTCN -3 Test Suite
Test Behaviorresponse
testcase TC_resolveTCLOUDWww() runs on DnsClient{
timer t_ack;serverPort.send(m_dnsQuestion (‘www.tcloudtech.com ’));t_ack.start(1.0);alt {
[]
© 2012 -TCLOUD Information Technologies Pvt Ltd
[] serverPort.receive(mw_dnsAnswer(“ 176.136.72.81")) {
setverdict(pass);}
[] serverPort.receive { // any other messagesetverdict(fail);
}[] t_ack.timeout {
setverdict(inconc);} }
t_ack.stop;}
Events of two ports(pt_myport,pt_control) and a tim er (t_timer)// Function-local timertimer t_timer;// Function-local variablesvar MyPdu myPdu;var integer count := 0;// Start timert_timer.start(10.0);// Alt-statementalt{
Behavior alternative : Alt Statement (Example)
© 2012 -TCLOUD Information Technologies Pvt Ltd
{// Receive maximum of maxCount PDUs that match with template a_myPdu_r[count < c_maxCount] pt_myPort.receive(a_myPdu_r) -> value myPdu{// Forward the received message via port pt_myOtherPortpt_myOtherPort.send(myPdu);setverdict(pass);count := count + 1;// Wait for next PDUrepeat;}
/* Else if we receive something else than a_myPdu_r (plain .receive matches* with everything)*/[/* Empty boolean guard is treated as true */] pt_myPort.receive{log("Received something else");setverdict(falil);// Execution continues at line “self.stop”}// Else if we receive from control port an instruction to stop[] pt_control.receive(charstring: "stop")
Behavior alternative : Alt Statement (Example contd .)
© 2012 -TCLOUD Information Technologies Pvt Ltd
[] pt_control.receive(charstring: "stop"){log("Received control message ""stop"" via pt_contrl");// Execution continues at line “self.stop”}// Else if timer expires[] t_timer.timeout{// Execution continues at line “self.stop”}}self.stop;
Behavior alternative : Altstep (Example)
altstep alt_timeGuard ( inout timer p_t ) {[] p_t.timeout { setverdict ( fail ) }};
t_guard.start ( 30.0 );
�could be used within an alt statement in the following manner
altstep definition:
© 2012 -TCLOUD Information Technologies Pvt Ltd
t_guard.start ( 30.0 );alt {[] pt_ticket.receive ( a_ticketA ) {t_guard.stop ;setverdict ( pass )};[] alt_timeGuard( t_guard );}
An altstep can also be activated as one of the default alternatives.
testcase Testcase1() runs on DNSTester {
P.send (query);
P.receive (answer);
setverdict(pass );
stop ;}
Client DNS
Alt statement: Revisit DNS Tester Example)
Behavior alternative
© 2012 -TCLOUD Information Technologies Pvt Ltd
Client
(“www.tcloudtech.com”, A)
(“www.tcloudtech.com”, 176.136.72.81 ,A)
DNS
Pass
Behavior alternative : Erroneous Behavior (DNS Teste r Example)
Client DNS
• P.receive(answer) blocks until it receives a message that
matches answer .
• Any other message does not unblock the tester, which then blocks forever.
• If no message is received, the tester will also block forever.
© 2012 -TCLOUD Information Technologies Pvt Ltd
(www.tcloudtech.com, A)
Blocked
Alt statement: Dealing with erroneous behaviour (DN S Tester)testcase Testcase2() runs on DNSTester {
timer t := 5.0;
P.send (query);
t.start ;
alt {
[ ] P.receive (answer) {
setverdict (pass );
}
Client
(www.tcloudtech.com,A)
DNS
© 2012 -TCLOUD Information Technologies Pvt Ltd
}
[ ] P.receive { // any message
setverdict (fail );
}
[ ] t. timeout {
setverdict (inconc )
}
}
stop ; }
inconc
Non-local DNS Query
Send fully qualified hostname
Return IP-addressLocal N/W
client
Internet’s root service
Parallel Test Component 1
Parallel Test Component 2
Tester
© 2012 -TCLOUD Information Technologies Pvt Ltd
root service
Remote DNS
Parallel Test Component 2
Main Test Component
Local DNS
System Under Test
Non-local DNS Query contd.
Client
(“www.tcloudtech.com”,A)
DNS Root NS NS
(“tcloudtech.com”,NS)
(“tcloudtech.com”,”tcloudtech.com,NS)
(“www.tcloudtech.com”,A)
© 2012 -TCLOUD Information Technologies Pvt Ltd
Pass
(“www.tcloudtech.com”,A)
(“www.tcloudtech.com”, 176.136.72.81 ,A)
(“www.tcloudtech.com”, 176.136.72.81 ,A)
� Introduction to Test Data type, Actual test data, T est Configuration- Test component, Communication ports, Functions, Test Behavior - Control and monitor component - How TTCN-3 supports concurrent architectures- Behavior alternative
� Foreign data (ASN.1) usage in TTCN -3
Building blocks of TTCN -3 test suite
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Foreign data (ASN.1) usage in TTCN -3- Goal, Overview, ASN.1 to TTCN-3 mapping, Conventions,ASN.1/ TTCN-3
type equivalence, Open Type, Other String Types, Structured Types, ASN.1 values, Modules
Foreign data (ASN.1) usage in TTCN -3
Integration of ASN.1 into TTCN -3
� Two approaches• Direct: import ASN.1 modules• Indirect: Convert ASN.1 to TTCN-3, import TTCN-3• Same definitions are available
• m1.asn1:
© 2012 -TCLOUD Information Technologies Pvt Ltd
• m1.asn1:module m1 ....
• t.ttcn3:module t {
import from m1 language "ASN.1:1997" all;}
Overview
• ASN.1 to TTCN-3 mapping
• Simple types and constants
• Single Module
Foreign data (ASN.1) usage in TTCN -3
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Single Module
• Single Interface
Foreign data (ASN.1) usage in TTCN -3
ASN.1 to TTCN -3 Mapping
� Given an ASN.1 module, how can the definitions be used in
�TTCN-3 test cases?
�ASN.1: Abstract Syntax Notation One (ITU -T X.680)
© 2012 -TCLOUD Information Technologies Pvt Ltd
�ASN.1: Abstract Syntax Notation One (ITU -T X.680)
�Types, constants� Modules� No behavioral interface
�Mapping to TTCN-3
�Straight forward one-to-one mapping
Foreign data (ASN.1) usage in TTCN -3
�Referencing to ASN.1 modules by standardized langua ge tags
�"ASN.1:1997" for ASN.1 version 1997,� "ASN.1:1994" for ASN.1 version 1994,� "ASN.1:1988" for Blue Book version of ASN.1
Conventions
© 2012 -TCLOUD Information Technologies Pvt Ltd
�Different preprocessing steps
�Replace all “-” with “_”
�TTCN-3 keywords
�Strictly: ASN.1 definitions using TTCN-3 keywords cannot be converted�Solution: append ‘_’ to used keywords
Foreign data (ASN.1) usage in TTCN -3
ASN.1 / TTCN-3 Type Equivalence
© 2012 -TCLOUD Information Technologies Pvt Ltd
Foreign data (ASN.1) usage in TTCN -3
OPEN TYPE / NULL
�ASN.1: OPEN TYPE
� TTCN-3: anytype� Union over types known in a module� ‘known’: defined, imported
© 2012 -TCLOUD Information Technologies Pvt Ltd
�ASN.1: NULL
�TTCN-3: enumerated
�• type enumerated <identifier> { NULL }�• <identifier>: ASN.1 Type reference
Foreign data (ASN.1) usage in TTCN -3Other String Types
• BMPString -> universal charstring( char ( 0,0,0,0 ) .. char ( 0,0,255,255) )
• UTF8String -> universal charstring
• NumericString -> constrained charstring
© 2012 -TCLOUD Information Technologies Pvt Ltd
• NumericString -> constrained charstring
• PrintableString -> constrained charstring
• TeletexString, T61String -> constrained universal charstring
• VideotexString -> constrained universal charstring
• GraphicString -> universal charstring
• GeneralString -> universal charstring
Foreign data (ASN.1) usage in TTCN -3
Structured Types
� SEQUENCE -> record
� SEQUENCE OF -> record of• Including length restrictions
� SET -> set
© 2012 -TCLOUD Information Technologies Pvt Ltd
� SET -> set
� SET OF -> set of• Including length restrictions
� CHOICE -> union
� ENUMERATED -> enumerated
Foreign data (ASN.1) usage in TTCN -3
• One-to-one transformationmyValue MyMessageType ::= {
field1 "A string",field2 123,
field3 {field31 '11011'B,field32 456789,
ASN.1 Values
© 2012 -TCLOUD Information Technologies Pvt Ltd
field32 456789,field33 'FF'O},
field4 {true, false}}
• Missing optional fields are equivalent to omitted f ields in TTCN-3
Building blocks of TTCN -3 test suite
� Introduction to Test Data type, Actual test data, T est Configuration- Test component, Communication ports, Functions, Test Behavior - Control and monitor component - How TTCN-3 supports concurrent architectures- Behavior alternative
� Foreign data (ASN.1) usage in TTCN -3
© 2012 -TCLOUD Information Technologies Pvt Ltd
� Foreign data (ASN.1) usage in TTCN -3- Goal, Overview, ASN.1 to TTCN-3 mapping, Conventions,ASN.1/ TTCN-3
type equivalence, Open Type, Other String Types, Structured Types, ASN.1 values, Modules
� Tool Providers• Testing Technologies• Elvior• Telelogic
TTCN-3 tool providers
© 2012 -TCLOUD Information Technologies Pvt Ltd
• Telelogic• Danet• DaVinci Communications• Strategic Test Solutions• Open TTCN
The TTCN-3 Standards�ES 201 873-1 (Z.140)
TTCN-3 Core Language
�ES 201 873-2 (Z.141)TTCN-3 Tabular Presentation Format (TFT)
� ES 201 873-3 (Z.142)TTCN-3 Graphical Presentation Format (GFT)
�ES 201 873-4 (Z.143)
© 2012 -TCLOUD Information Technologies Pvt Ltd
�ES 201 873-4 (Z.143)TTCN-3 Operational Semantics
�ES 201 873-5TTCN-3 Runtime Interface (TRI)
� ES 201 873-6TTCN-3 Control Interfaces (TCI)
�ES 201 873-7 and onwards (under development)Using ASN.1, XML, IDL, C/C++ with TTCN-3