Methods for Testing and Specification (MTS) - The Testing and Test Control Notation version 3 - TTCN-3 Language extension: Advanced Matching

The present document defines the support of advance matching of TTCN-3. TTCN-3 can be used for the specification of all types of reactive system tests over a variety of communication ports. Typical areas of application are protocol testing (including mobile and Internet protocols), service testing (including supplementary services), module testing, testing of OMG CORBA® based platforms, APIs, etc. TTCN-3 is not restricted to conformance testing and can be used for many other kinds of testing including interoperability, robustness, regression, system and integration testing. The specification of test suites for physical layer protocols is outside the scope of the present document. TTCN-3 packages are intended to define additional TTCN-3 concepts, which are not mandatory as concepts in the TTCN-3 core language, but which are optional as part of a package which is suited for dedicated applications and/or usages of TTCN-3. While the design of TTCN-3 package has taken into account the consistency of a combined usage of the core language with a number of packages, the concrete usages of and guidelines for this package in combination with other packages is outside the scope of the present document.

Metode za preskušanje in specificiranje (MTS) - 3. različica zapisa preskušanja in krmiljenja preskusov - Razširitev nabora jezikov TTCN-3: napredno ujemanje

General Information

Status
Published
Publication Date
25-May-2020
Current Stage
6060 - National Implementation/Publication (Adopted Project)
Start Date
25-May-2020
Due Date
30-Jul-2020
Completion Date
26-May-2020

Buy Standard

Standard
ETSI ES 203 022 V1.4.1 (2020-05) - Methods for Testing and Specification (MTS); The Testing and Test Control Notation version 3; TTCN-3 Language extension: Advanced Matching
English language
46 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ETSI ES 203 022 V1.4.1 (2020-02) - Methods for Testing and Specification (MTS); The Testing and Test Control Notation version 3; TTCN-3 Language extension: Advanced Matching
English language
46 pages
sale 15% off
Preview
sale 15% off
Preview
Standardization document
SIST ES 203 022 V1.4.1:2020
English language
46 pages
sale 10% off
Preview
sale 10% off
Preview

e-Library read for
1 day

Standards Content (sample)

ETSI ES 203 022 V1.4.1 (2020-05)
ETSI STANDARD
Methods for Testing and Specification (MTS);
The Testing and Test Control Notation version 3;
TTCN-3 Language extension: Advanced Matching
---------------------- Page: 1 ----------------------
2 ETSI ES 203 022 V1.4.1 (2020-05)
Reference
RES/MTS-203022-AdvMatchv141
Keywords
conformance, testing, TTCN-3
ETSI
650 Route des Lucioles
F-06921 Sophia Antipolis Cedex - FRANCE
Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16
Siret N° 348 623 562 00017 - NAF 742 C
Association à but non lucratif enregistrée à la
Sous-Préfecture de Grasse (06) N° 7803/88
Important notice
The present document can be downloaded from:
http://www.etsi.org/standards-search

The present document may be made available in electronic versions and/or in print. The content of any electronic and/or

print versions of the present document shall not be modified without the prior written authorization of ETSI. In case of any

existing or perceived difference in contents between such versions and/or in print, the prevailing version of an ETSI

deliverable is the one made publicly available in PDF format at www.etsi.org/deliver.

Users of the present document should be aware that the document may be subject to revision or change of status.

Information on the current status of this and other ETSI documents is available at

https://portal.etsi.org/TB/ETSIDeliverableStatus.aspx

If you find errors in the present document, please send your comment to one of the following services:

https://portal.etsi.org/People/CommiteeSupportStaff.aspx
Copyright Notification

No part may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying

and microfilm except as authorized by written permission of ETSI.

The content of the PDF version shall not be modified without the written authorization of ETSI.

The copyright and the foregoing restriction extend to reproduction in all media.
© ETSI 2020.
All rights reserved.

DECT™, PLUGTESTS™, UMTS™ and the ETSI logo are trademarks of ETSI registered for the benefit of its Members.

3GPP™ and LTE™ are trademarks of ETSI registered for the benefit of its Members and

of the 3GPP Organizational Partners.

oneM2M™ logo is a trademark of ETSI registered for the benefit of its Members and

of the oneM2M Partners.
GSM and the GSM logo are trademarks registered and owned by the GSM Association.
ETSI
---------------------- Page: 2 ----------------------
3 ETSI ES 203 022 V1.4.1 (2020-05)
Contents

Intellectual Property Rights ................................................................................................................................ 5

Foreword ............................................................................................................................................................. 5

Modal verbs terminology .................................................................................................................................... 5

1 Scope ........................................................................................................................................................ 6

2 References ................................................................................................................................................ 6

2.1 Normative references ......................................................................................................................................... 6

2.2 Informative references ........................................................................................................................................ 6

3 Definition of terms, symbols and abbreviations ....................................................................................... 7

3.1 Terms .................................................................................................................................................................. 7

3.2 Symbols .............................................................................................................................................................. 7

3.3 Abbreviations ..................................................................................................................................................... 7

4 Package conformance and compatibility .................................................................................................. 7

5 Package Concepts for the Core Language ................................................................................................ 8

5.0 General ............................................................................................................................................................... 8

5.1 Dynamic Matching ............................................................................................................................................. 8

5.2 Templates with variable bindings ....................................................................................................................... 9

5.2.0 General .......................................................................................................................................................... 9

5.2.1 Value retrieval from matching ...................................................................................................................... 9

5.2.2 Declaring out parameters for template definitions ...................................................................................... 10

5.2.3 Matching template parameters and variables .............................................................................................. 12

5.3 Additional logical operators for combining matching mechanisms ................................................................. 13

5.3.0 General ........................................................................................................................................................ 13

5.3.1 Conjunction................................................................................................................................................. 13

5.3.2 Implication .................................................................................................................................................. 14

5.3.3 Exclusion .................................................................................................................................................... 15

5.3.4 Disjunction .................................................................................................................................................. 15

5.4 Repetition ......................................................................................................................................................... 16

5.4.1 General ........................................................................................................................................................ 16

5.4.2 Repetition in record of and array ................................................................................................................ 16

5.4.3 Repetition in string ..................................................................................................................................... 18

5.4.4 Modifications to ETSI ES 201 873-1, clause 15.11 (Concatenating templates of string and list types) ..... 19

5.4.4.0 General .................................................................................................................................................. 19

5.4.4.1 Step 1 of modifications to ETSI ES 201 873-1, clause 15.11 ............................................................... 19

5.4.4.2 Step 2 of modifications to ETSI ES 201 873-1, clause 15.11 ............................................................... 19

5.4.5 Modifications to ETSI ES 201 873-6 .......................................................................................................... 20

5.4.5.1 Changes to clause 7.2.2.3.1 (The abstract data type MatchingMechanism) .................................. 20

5.4.5.2 Changes to clause 7.2.2.3.2 (The abstract data type MatchingList) .............................................. 20

5.4.5.3 Changes to clause 8.3.2.17 (TciMatchingTypeType) ........................................................................... 20

5.4.5.4 Changes to clause 8.3.3.1 (Type) .......................................................................................................... 21

5.4.5.5 Changes to clause 9.5 (Data) ................................................................................................................. 21

5.4.5.6 Changes to clause 10.5.2.16 (TciMatchingTypeType) ......................................................................... 23

5.4.5.7 Changes to clause 10.5.3.19 (MatchingList) ......................................................................................... 23

5.4.5.8 Changes to clause 11.3.3.25 (MatchingMechanism) ............................................................................. 23

5.4.5.9 Changes to clause 12.4.2.16 (TciMatchingTypeType) ......................................................................... 24

5.4.5.10 Changes to clause B.4 (TCI-TL XML Schema for Templates)............................................................. 24

5.5 Equality operator for the omit symbol and templates with restriction omit ..................................................... 24

5.5.0 General ........................................................................................................................................................ 24

5.5.1 Modifications to ETSI ES 201 873-1, clause 7 (Expressions) .................................................................... 25

5.6 Encodable Values ............................................................................................................................................. 25

5.6.0 General ........................................................................................................................................................ 25

5.6.1 The encvalue Template Restriction ............................................................................................................ 26

5.6.2 Encoding Mutation Annotation................................................................................................................... 26

5.6.2.0 Description ............................................................................................................................................ 26

5.6.2.1 Modifications to ETSI ES 201 873-1, clause 22.2.1 (The Send operation) .......................................... 28

ETSI
---------------------- Page: 3 ----------------------
4 ETSI ES 203 022 V1.4.1 (2020-05)

5.6.2.2 Modifications to ETSI ES 201 873-1, clause 22.3.1 (The Call operation) ............................................ 28

5.6.2.3 Modifications to ETSI ES 201 873-1, clause 22.3.3 (The Reply operation) ......................................... 28

5.6.2.4 Modifications to ETSI ES 201 873-1, clause 22.3.5 (The Raise operation).......................................... 28

5.6.2.5 Modifications to ETSI ES 201 873-1, clause C.5.1 (The encoding function) ....................................... 29

5.6.2.6 Modifications to ETSI ES 201 873-1, clause C.5.3 (The encoding to universal charstring

function) ................................................................................................................................................ 29

5.6.2.7 Modifications to ETSI ES 201 873-1, clause C.5.5 (The encoding to octetstring function) ................. 30

5.7 Extension of the istemplatekind function ......................................................................................................... 30

5.7.1 Modifications to ETSI ES 201 873-1, clause C.3.5 (Matching mechanism detection) ............................... 30

5.7.2 Modifications to ETSI ES 201 873-1, clause E.2.2.5 (Matching mechanism detection) ............................ 30

6 TCI Extensions for the Package ............................................................................................................. 31

6.1 Extensions to clause 7.2.2.2.0 of ETSI ES 201 873-6, Basic rules .................................................................. 31

6.2 Extensions to clause 7.2.2.3.1 of ETSI ES 201 873-6, The abstract data type MatchingMechanism .............. 33

6.3 Extensions to clause 7.2.2.3.2 of ETSI ES 201 873-6, The abstract data type MatchingList ........................... 33

6.4 Extensions to clause 7.2.2.3 of ETSI ES 201 873-6, The abstract data type MatchingMechanism ................. 33

6.5 Extensions to clause 8 of ETSI ES 201 873-6, Java language mapping ....................................................... 34

6.6 Extensions to clause 9 of ETSI ES 201 873-6, ANSI C language mapping ..................................................... 37

6.7 Extensions to clause 10 of ETSI ES 201 873-6, C++ language mapping......................................................... 38

6.8 Extensions to clause 12 of ETSI ES 201 873-6, C# language mapping ........................................................... 41

6.9 Extensions to clause 7.2.2.2.1 of ETSI ES 201 873-6, The abstract data type Value ....................................... 43

6.10 Extensions to clause 7.2.2.4 of ETSI ES 201 873-6, Data types for complex TTCN-3 properties .................. 43

Annex A (normative): BNF and static semantics .............................................................................. 44

A.0 Additional TTCN-3 terminals ................................................................................................................ 44

A.1 Modified TTCN-3 syntax BNF productions .......................................................................................... 44

A.2 Deleted TTCN-3 syntax BNF productions ............................................................................................. 45

A.3 Additional TTCN-3 syntax BNF productions ........................................................................................ 45

History .............................................................................................................................................................. 46

ETSI
---------------------- Page: 4 ----------------------
5 ETSI ES 203 022 V1.4.1 (2020-05)
Intellectual Property Rights
Essential patents

IPRs essential or potentially essential to normative deliverables may have been declared to ETSI. The information

pertaining to these essential IPRs, if any, is publicly available for ETSI members and non-members, and can be found

in ETSI SR 000 314: "Intellectual Property Rights (IPRs); Essential, or potentially Essential, IPRs notified to ETSI in

respect of ETSI standards", which is available from the ETSI Secretariat. Latest updates are available on the ETSI Web

server (https://ipr.etsi.org/).

Pursuant to the ETSI IPR Policy, no investigation, including IPR searches, has been carried out by ETSI. No guarantee

can be given as to the existence of other IPRs not referenced in ETSI SR 000 314 (or the updates on the ETSI Web

server) which are, or may be, or may become, essential to the present document.
Trademarks

The present document may include trademarks and/or tradenames which are asserted and/or registered by their owners.

ETSI claims no ownership of these except for any which are indicated as being the property of ETSI, and conveys no

right to use or reproduce any trademark and/or tradename. Mention of those trademarks in the present document does

not constitute an endorsement by ETSI of products, services or organizations associated with those trademarks.

Foreword

This ETSI Standard (ES) has been produced by ETSI Technical Committee Methods for Testing and Specification

(MTS).

The use of underline (additional text) and strike through (deleted text) highlights the differences between base

document and extended documents.

The present document relates to the multi-part standard ETSI ES 201 873 covering the Testing and Test Control

Notation version 3, as identified in ETSI ES 201 873-1 [1].
Modal verbs terminology

In the present document "shall", "shall not", "should", "should not", "may", "need not", "will", "will not", "can" and

"cannot" are to be interpreted as described in clause 3.2 of the ETSI Drafting Rules (Verbal forms for the expression of

provisions).

"must" and "must not" are NOT allowed in ETSI deliverables except when used in direct citation.

ETSI
---------------------- Page: 5 ----------------------
6 ETSI ES 203 022 V1.4.1 (2020-05)
1 Scope

The present document defines the support of advance matching of TTCN-3. TTCN-3 can be used for the specification

of all types of reactive system tests over a variety of communication ports. Typical areas of application are protocol

testing (including mobile and Internet protocols), service testing (including supplementary services), module testing,

testing of OMG CORBA based platforms, APIs, etc. TTCN-3 is not restricted to conformance testing and can be used

for many other kinds of testing including interoperability, robustness, regression, system and integration testing. The

specification of test suites for physical layer protocols is outside the scope of the present document.

TTCN-3 packages are intended to define additional TTCN-3 concepts, which are not mandatory as concepts in the

TTCN-3 core language, but which are optional as part of a package which is suited for dedicated applications and/or

usages of TTCN-3.

While the design of TTCN-3 package has taken into account the consistency of a combined usage of the core language

with a number of packages, the concrete usages of and guidelines for this package in combination with other packages

is outside the scope of the present document.
2 References
2.1 Normative references

References are either specific (identified by date of publication and/or edition number or version number) or

non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the

referenced document (including any amendments) applies.

Referenced documents which are not found to be publicly available in the expected location might be found at

https://docbox.etsi.org/Reference/.

NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee

their long term validity.

The following referenced documents are necessary for the application of the present document.

[1] ETSI ES 201 873-1: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 1: TTCN-3 Core Language".

[2] ETSI ES 201 873-4: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 4: TTCN-3 Operational Semantics".

[3] ETSI ES 201 873-5: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 5: TTCN-3 Runtime Interface (TRI)".

[4] ETSI ES 201 873-6: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 6: TTCN-3 Control Interface (TCI)".
2.2 Informative references

References are either specific (identified by date of publication and/or edition number or version number) or

non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the

referenced document (including any amendments) applies.

NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee

their long term validity.

The following referenced documents are not necessary for the application of the present document but they assist the

user with regard to a particular subject area.

[i.1] ETSI ES 201 873-7: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 7: Using ASN.1 with TTCN-3".
ETSI
---------------------- Page: 6 ----------------------
7 ETSI ES 203 022 V1.4.1 (2020-05)

[i.2] ETSI ES 201 873-8: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 8: The IDL to TTCN-3 Mapping".

[i.3] ETSI ES 201 873-9: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 9: Using XML schema with TTCN-3".

[i.4] ETSI ES 201 873-10: "Methods for Testing and Specification (MTS); The Testing and Test

Control Notation version 3; Part 10: TTCN-3 Documentation Comment Specification".

3 Definition of terms, symbols and abbreviations
3.1 Terms

For the purposes of the present document, the terms given in ETSI ES 201 873-1 [1], ETSI ES 201 873-4 [2], ETSI

ES 201 873-5 [3] and ETSI ES 201 873-6 [4] apply.
3.2 Symbols
Void.
3.3 Abbreviations

For the purposes of the present document, the abbreviations given in ETSI ES 201 873-1 [1], ETSI ES 201 873-4 [2],

ETSI ES 201 873-5 [3] and ETSI ES 201 873-6 [4] apply.
4 Package conformance and compatibility
The package presented in the present document is identified by the package tag:

"TTCN-3:2017 Advanced Matching" - to be used with modules complying with the present document.

For an implementation claiming to conform to this package version, all features specified in the present document shall

be implemented consistently with the requirements given in the present document and in ETSI ES 201 873-1 [1] and

ETSI ES 201 873-4 [2].
The package presented in the present document is compatible to:
• ETSI ES 201 873-1 [1], version 4.9.1;
• ETSI ES 201 873-4 [2], version 4.6.1;
• ETSI ES 201 873-5 [3], version 4.8.1;
• ETSI ES 201 873-6 [4], version 4.9.1;
• ETSI ES 201 873-7 [i.1];
• ETSI ES 201 873-8 [i.2];
• ETSI ES 201 873-9 [i.3];
• ETSI ES 201 873-10 [i.4].

If later versions of those parts are available and should be used instead, the compatibility to the package presented in the

present document has to be checked individually.
ETSI
---------------------- Page: 7 ----------------------
8 ETSI ES 203 022 V1.4.1 (2020-05)
5 Package Concepts for the Core Language
5.0 General

This package defines advanced matching mechanisms for TTCN-3, i.e. new matching mechanisms which go beyond the

matching mechanisms defined in ETSI ES 201 873-1 [1]. This package realizes the following concepts:

• Dynamic matching: allows to specify matching in a function-like fashion, i.e. statement blocks and functions

can be used to define matching.

• Templates with variable bindings: ease the retrieval field values of received messages and signatures. For this

the "->" symbol is used to denote a value assignment to a variable or an out parameter in the scope of a

template definition in case of a successful template matching.

• Additional logical operators: conjunction, implication, exclusion and disjunction allow the combination

matching mechanisms for advanced matching.

• Repetition: allows to match repetitions of a sub-sequence templates inside values of a certain type.

• Restrictions for the omit symbol and templates with restriction omit are relieved allowing omit symbols and

templates with restriction omit as operands for the equality operator.
5.1 Dynamic Matching

A dynamic matching is a special matching mechanism. Similar to other matching mechanisms, it can be considered as a

Boolean function that indicates successful matching for the value to be matched by returning the value true and

unsuccessful matching by returning the value false.
Syntactical Structure
@dynamic (StatementBlock | FunctionRef)
Semantic Description

The StatementBlock shall return a value of type boolean. The value to be matched is referenced by the special

keyword value. When applying this matching mechanism to a value, the StatementBlock is executed and if and only if

the execution returns true, the dynamic matching function matches. Unsuccessful matching shall return false.

A dynamic matching function can only be used in the context of a template, the value expression inside the

StatementBlock shall have the same type as the whole template.

The notation @dynamic FunctionRef denotes a shorthand for the special case @dynamic { return

FunctionRef(value) } where FunctionRef is a reference to a Boolean function with the first parameter compatible

with the template's type. If the function contains more than one parameter, all parameters following the first one shall

have a default value. The type of the first formal parameter of the referenced function provides the type context, if this

template's place of usage does not provide a type context already.
Restrictions

a) The dynamic matching syntax shall only be used when a type context (as defined in clause 3 of ETSI

ES 201 873-1 [1]) is provided.
b) The StatementBlock shall compute a value of type boolean.

c) The StatementBlock shall be deterministic and side-effect free and follow the restrictions of clause 16.1.4 of

ETSI ES 201 873-1 [1].

d) The StatementBlock shall not use variables that are declared outside of the StatementBlock.

e) The StatementBlock shall not use inout or out parameters.
ETSI
---------------------- Page: 8 ----------------------
9 ETSI ES 203 022 V1.4.1 (2020-05)

f) Only if the dynamic matching syntax appears on the right-hand-side of a parameterized template definition, the

formal in parameters of that definition may be referenced inside the StatementBlock. All other formal in

parameters shall not be used by the StatementBlock.

g) The FunctionRef shall not have a runs on clause and the StatementBlock shall not use any behaviour that

has a runs on clause.
EXAMPLE:
type record of integer Numbers;
template Numbers mw_sorted := @dynamic { // value is of type Numbers
for (var integer v_i := 1; v_i < lengthof(value); v_i := v_i + 1) {
if (value[v_i-1] > value[v_i]) { return false }
}
return true;
} // mw_sorted(v_recInt) matches all values of type Numbers
// if elements of v_recInt do not break an ascending order
type record Coordinate { float x, float y };

external function @deterministic fx_distance(Coordinate p_a, Coordinate p_b) return float;

template Coordinate mw_closeTo(Coordinate p_origin := { 0.0, 0.0 }, float p_maxDistance := 1.0)

// access to in parameters is allowed
:= @dynamic { return fx_distance(p_origin, value) <= p_maxDistance; };
// mw_closeTo(c,d) matches all values of type Coordinate
// which have maximum distance of d from Coordinate c
external function @deterministic fx_isPrime(integer p_x) return boolean;
p.receive(@dynamic fx_isPrime)
// is the same as p.receive(integer:@dynamic { return fx_isPrime(value) })
5.2 Templates with variable bindings
5.2.0 General

The possibilities to retrieve field values of received messages and signatures in ETSI ES 201 873-1 [1] are restricted

and cumbersome. To overcome this situation, this clause implements the definition of templates with variable bindings

that store the actual value matched by a template instance if the matching of all containing templates is successful. This

feature is implemented by using the "->" symbol for denoting a value assignment to a variable or an out parameter in

the scope of a template definition in case of a successful template matching. Such a value assignment can syntactically

be specified at all places where a template matching mechanism or a template reference is used in a template definition

or an inline template.
5.2.1 Value retrieval from matching

In case of a successful template match, the value which matches the template can be assigned to a variable. This can be

specified by using the "->" symbol.
Syntactical Structure
TemplateInstance "->" VariableRef
Semantic Description

If a template successfully matches a value and contains a value retrieval assignment for a TemplateInstance, then, if

during the matching process that TemplateInstance and all its containing TemplateInstances contribute to the successful

template match, the part of the value the TemplateInstance was matching is assigned to the VariableRef referenced in

the value retrieval assignment.
EXAMPLE:
template integer mw_t1(out integer p)

:= (?, (1..3) -> p); // mw_t1 always matches because of the first list element,

// and since the (1..3) does not contribute to the successful match
// the out parameter p is not assigned a value
template integer mw_t2(out integer p_small, out integer p_big)
:= ((1..3) -> p_small, (3..5) -> p_big)
ETSI
---------------------- Page: 9 ----------------------
10 ETSI ES 203 022 V1.4.1 (2020-05)
// due to the preference of (1..3) over (3..5),
// matching mw_t2 to number in (1..3) will cause only p_small to be assigned,
// while matching it to number in (4..5) will cause only p_big to be assigned
Restrictions

Additional to the restrictions given in clause 5.2.3, the following restrictions apply:

a) If TemplateInstance describes the matching of a mandatory element in a template definition, VariableRef shall

refer to a variable of the same type as the mandatory element.

b) If TemplateInstance describes the matching of an optional element in a template definition, VariableRef shall

refer to a template variable of the same type as the optional element. In case of a successful matching, the

matching value or omit shall be assigned to the template variable denoted by VariableRef.

c) Value retrieval shall not be used in special places as described in clause 16.1.4 of ETSI ES 201 873-1 [1] with

the exception of the matching parts of receiving operations. If val
...

Final draft ETSI ES 203 022 V1.4.1 (2020-02)
ETSI STANDARD
Methods for Testing and Specification (MTS);
The Testing and Test Control Notation version 3;
TTCN-3 Language extension: Advanced Matching
---------------------- Page: 1 ----------------------
2 Final draft ETSI ES 203 022 V1.4.1 (2020-02)
Reference
RES/MTS-203022-AdvMatchv141
Keywords
conformance, testing, TTCN-3
ETSI
650 Route des Lucioles
F-06921 Sophia Antipolis Cedex - FRANCE
Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16
Siret N° 348 623 562 00017 - NAF 742 C
Association à but non lucratif enregistrée à la
Sous-Préfecture de Grasse (06) N° 7803/88
Important notice
The present document can be downloaded from:
http://www.etsi.org/standards-search

The present document may be made available in electronic versions and/or in print. The content of any electronic and/or

print versions of the present document shall not be modified without the prior written authorization of ETSI. In case of any

existing or perceived difference in contents between such versions and/or in print, the prevailing version of an ETSI

deliverable is the one made publicly available in PDF format at www.etsi.org/deliver.

Users of the present document should be aware that the document may be subject to revision or change of status.

Information on the current status of this and other ETSI documents is available at

https://portal.etsi.org/TB/ETSIDeliverableStatus.aspx

If you find errors in the present document, please send your comment to one of the following services:

https://portal.etsi.org/People/CommiteeSupportStaff.aspx
Copyright Notification

No part may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying

and microfilm except as authorized by written permission of ETSI.

The content of the PDF version shall not be modified without the written authorization of ETSI.

The copyright and the foregoing restriction extend to reproduction in all media.
© ETSI 2020.
All rights reserved.

DECT™, PLUGTESTS™, UMTS™ and the ETSI logo are trademarks of ETSI registered for the benefit of its Members.

3GPP™ and LTE™ are trademarks of ETSI registered for the benefit of its Members and

of the 3GPP Organizational Partners.

oneM2M™ logo is a trademark of ETSI registered for the benefit of its Members and

of the oneM2M Partners.
GSM and the GSM logo are trademarks registered and owned by the GSM Association.
ETSI
---------------------- Page: 2 ----------------------
3 Final draft ETSI ES 203 022 V1.4.1 (2020-02)
Contents

Intellectual Property Rights ................................................................................................................................ 5

Foreword ............................................................................................................................................................. 5

Modal verbs terminology .................................................................................................................................... 5

1 Scope ........................................................................................................................................................ 6

2 References ................................................................................................................................................ 6

2.1 Normative references ......................................................................................................................................... 6

2.2 Informative references ........................................................................................................................................ 6

3 Definition of terms, symbols and abbreviations ....................................................................................... 7

3.1 Terms .................................................................................................................................................................. 7

3.2 Symbols .............................................................................................................................................................. 7

3.3 Abbreviations ..................................................................................................................................................... 7

4 Package conformance and compatibility .................................................................................................. 7

5 Package Concepts for the Core Language ................................................................................................ 8

5.0 General ............................................................................................................................................................... 8

5.1 Dynamic Matching ............................................................................................................................................. 8

5.2 Templates with variable bindings ....................................................................................................................... 9

5.2.0 General .......................................................................................................................................................... 9

5.2.1 Value retrieval from matching ...................................................................................................................... 9

5.2.2 Declaring out parameters for template definitions ...................................................................................... 10

5.2.3 Matching template parameters and variables .............................................................................................. 12

5.3 Additional logical operators for combining matching mechanisms ................................................................. 13

5.3.0 General ........................................................................................................................................................ 13

5.3.1 Conjunction................................................................................................................................................. 13

5.3.2 Implication .................................................................................................................................................. 14

5.3.3 Exclusion .................................................................................................................................................... 15

5.3.4 Disjunction .................................................................................................................................................. 15

5.4 Repetition ......................................................................................................................................................... 16

5.4.1 General ........................................................................................................................................................ 16

5.4.2 Repetition in record of and array ................................................................................................................ 16

5.4.3 Repetition in string ..................................................................................................................................... 18

5.4.4 Modifications to ETSI ES 201 873-1, clause 15.11 (Concatenating templates of string and list types) ..... 19

5.4.4.0 General .................................................................................................................................................. 19

5.4.4.1 Step 1 of modifications to ETSI ES 201 873-1, clause 15.11 ............................................................... 19

5.4.4.2 Step 2 of modifications to ETSI ES 201 873-1, clause 15.11 ............................................................... 19

5.4.5 Modifications to ETSI ES 201 873-6 .......................................................................................................... 20

5.4.5.1 Changes to clause 7.2.2.3.1 (The abstract data type MatchingMechanism) .................................. 20

5.4.5.2 Changes to clause 7.2.2.3.2 (The abstract data type MatchingList) .............................................. 20

5.4.5.3 Changes to clause 8.3.2.17 (TciMatchingTypeType) ........................................................................... 20

5.4.5.4 Changes to clause 8.3.3.1 (Type) .......................................................................................................... 21

5.4.5.5 Changes to clause 9.5 (Data) ................................................................................................................. 21

5.4.5.6 Changes to clause 10.5.2.16 (TciMatchingTypeType) ......................................................................... 23

5.4.5.7 Changes to clause 10.5.3.19 (MatchingList) ......................................................................................... 23

5.4.5.8 Changes to clause 11.3.3.25 (MatchingMechanism) ............................................................................. 23

5.4.5.9 Changes to clause 12.4.2.16 (TciMatchingTypeType) ......................................................................... 24

5.4.5.10 Changes to clause B.4 (TCI-TL XML Schema for Templates)............................................................. 24

5.5 Equality operator for the omit symbol and templates with restriction omit ..................................................... 24

5.5.0 General ........................................................................................................................................................ 24

5.5.1 Modifications to ETSI ES 201 873-1, clause 7 (Expressions) .................................................................... 25

5.6 Encodable Values ............................................................................................................................................. 25

5.6.0 General ........................................................................................................................................................ 25

5.6.1 The encvalue Template Restriction ............................................................................................................ 26

5.6.2 Encoding Mutation Annotation................................................................................................................... 26

5.6.2.0 Description ............................................................................................................................................ 26

5.6.2.1 Modifications to ETSI ES 201 873-1, clause 22.2.1 (The Send operation) .......................................... 28

ETSI
---------------------- Page: 3 ----------------------
4 Final draft ETSI ES 203 022 V1.4.1 (2020-02)

5.6.2.2 Modifications to ETSI ES 201 873-1, clause 22.3.1 (The Call operation) ............................................ 28

5.6.2.3 Modifications to ETSI ES 201 873-1, clause 22.3.3 (The Reply operation) ......................................... 28

5.6.2.4 Modifications to ETSI ES 201 873-1, clause 22.3.5 (The Raise operation).......................................... 28

5.6.2.5 Modifications to ETSI ES 201 873-1, clause C.5.1 (The encoding function) ....................................... 29

5.6.2.6 Modifications to ETSI ES 201 873-1, clause C.5.3 (The encoding to universal charstring

function) ................................................................................................................................................ 29

5.6.2.7 Modifications to ETSI ES 201 873-1, clause C.5.5 (The encoding to octetstring function) ................. 30

5.7 Extension of the istemplatekind function ......................................................................................................... 30

5.7.1 Modifications to ETSI ES 201 873-1, clause C.3.5 (Matching mechanism detection) ............................... 30

5.7.2 Modifications to ETSI ES 201 873-1, clause E.2.2.5 (Matching mechanism detection) ............................ 30

6 TCI Extensions for the Package ............................................................................................................. 31

6.1 Extensions to clause 7.2.2.2.0 of ETSI ES 201 873-6, Basic rules .................................................................. 31

6.2 Extensions to clause 7.2.2.3.1 of ETSI ES 201 873-6, The abstract data type MatchingMechanism .............. 33

6.3 Extensions to clause 7.2.2.3.2 of ETSI ES 201 873-6, The abstract data type MatchingList ........................... 33

6.4 Extensions to clause 7.2.2.3 of ETSI ES 201 873-6, The abstract data type MatchingMechanism ................. 33

6.5 Extensions to clause 8 of ETSI ES 201 873-6, Java language mapping ....................................................... 34

6.6 Extensions to clause 9 of ETSI ES 201 873-6, ANSI C language mapping ..................................................... 37

6.7 Extensions to clause 10 of ETSI ES 201 873-6, C++ language mapping......................................................... 38

6.8 Extensions to clause 12 of ETSI ES 201 873-6, C# language mapping ........................................................... 41

6.9 Extensions to clause 7.2.2.2.1 of ETSI ES 201 873-6, The abstract data type Value ....................................... 43

6.10 Extensions to clause 7.2.2.4 of ETSI ES 201 873-6, Data types for complex TTCN-3 properties .................. 43

Annex A (normative): BNF and static semantics .............................................................................. 44

A.0 Additional TTCN-3 terminals ................................................................................................................ 44

A.1 Modified TTCN-3 syntax BNF productions .......................................................................................... 44

A.2 Deleted TTCN-3 syntax BNF productions ............................................................................................. 45

A.3 Additional TTCN-3 syntax BNF productions ........................................................................................ 45

History .............................................................................................................................................................. 46

ETSI
---------------------- Page: 4 ----------------------
5 Final draft ETSI ES 203 022 V1.4.1 (2020-02)
Intellectual Property Rights
Essential patents

IPRs essential or potentially essential to normative deliverables may have been declared to ETSI. The information

pertaining to these essential IPRs, if any, is publicly available for ETSI members and non-members, and can be found

in ETSI SR 000 314: "Intellectual Property Rights (IPRs); Essential, or potentially Essential, IPRs notified to ETSI in

respect of ETSI standards", which is available from the ETSI Secretariat. Latest updates are available on the ETSI Web

server (https://ipr.etsi.org/).

Pursuant to the ETSI IPR Policy, no investigation, including IPR searches, has been carried out by ETSI. No guarantee

can be given as to the existence of other IPRs not referenced in ETSI SR 000 314 (or the updates on the ETSI Web

server) which are, or may be, or may become, essential to the present document.
Trademarks

The present document may include trademarks and/or tradenames which are asserted and/or registered by their owners.

ETSI claims no ownership of these except for any which are indicated as being the property of ETSI, and conveys no

right to use or reproduce any trademark and/or tradename. Mention of those trademarks in the present document does

not constitute an endorsement by ETSI of products, services or organizations associated with those trademarks.

Foreword

This final draft ETSI Standard (ES) has been produced by ETSI Technical Committee Methods for Testing and

Specification (MTS), and is now submitted for the ETSI standards Membership Approval Procedure.

The use of underline (additional text) and strike through (deleted text) highlights the differences between base

document and extended documents.

The present document relates to the multi-part standard ETSI ES 201 873 covering the Testing and Test Control

Notation version 3, as identified in ETSI ES 201 873-1 [1].
Modal verbs terminology

In the present document "shall", "shall not", "should", "should not", "may", "need not", "will", "will not", "can" and

"cannot" are to be interpreted as described in clause 3.2 of the ETSI Drafting Rules (Verbal forms for the expression of

provisions).

"must" and "must not" are NOT allowed in ETSI deliverables except when used in direct citation.

ETSI
---------------------- Page: 5 ----------------------
6 Final draft ETSI ES 203 022 V1.4.1 (2020-02)
1 Scope

The present document defines the support of advance matching of TTCN-3. TTCN-3 can be used for the specification

of all types of reactive system tests over a variety of communication ports. Typical areas of application are protocol

testing (including mobile and Internet protocols), service testing (including supplementary services), module testing,

testing of OMG CORBA based platforms, APIs, etc. TTCN-3 is not restricted to conformance testing and can be used

for many other kinds of testing including interoperability, robustness, regression, system and integration testing. The

specification of test suites for physical layer protocols is outside the scope of the present document.

TTCN-3 packages are intended to define additional TTCN-3 concepts, which are not mandatory as concepts in the

TTCN-3 core language, but which are optional as part of a package which is suited for dedicated applications and/or

usages of TTCN-3.

While the design of TTCN-3 package has taken into account the consistency of a combined usage of the core language

with a number of packages, the concrete usages of and guidelines for this package in combination with other packages

is outside the scope of the present document.
2 References
2.1 Normative references

References are either specific (identified by date of publication and/or edition number or version number) or

non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the

referenced document (including any amendments) applies.

Referenced documents which are not found to be publicly available in the expected location might be found at

https://docbox.etsi.org/Reference/.

NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee

their long term validity.

The following referenced documents are necessary for the application of the present document.

[1] ETSI ES 201 873-1: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 1: TTCN-3 Core Language".

[2] ETSI ES 201 873-4: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 4: TTCN-3 Operational Semantics".

[3] ETSI ES 201 873-5: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 5: TTCN-3 Runtime Interface (TRI)".

[4] ETSI ES 201 873-6: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 6: TTCN-3 Control Interface (TCI)".
2.2 Informative references

References are either specific (identified by date of publication and/or edition number or version number) or

non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the

referenced document (including any amendments) applies.

NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee

their long term validity.

The following referenced documents are not necessary for the application of the present document but they assist the

user with regard to a particular subject area.

[i.1] ETSI ES 201 873-7: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 7: Using ASN.1 with TTCN-3".
ETSI
---------------------- Page: 6 ----------------------
7 Final draft ETSI ES 203 022 V1.4.1 (2020-02)

[i.2] ETSI ES 201 873-8: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 8: The IDL to TTCN-3 Mapping".

[i.3] ETSI ES 201 873-9: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 9: Using XML schema with TTCN-3".

[i.4] ETSI ES 201 873-10: "Methods for Testing and Specification (MTS); The Testing and Test

Control Notation version 3; Part 10: TTCN-3 Documentation Comment Specification".

3 Definition of terms, symbols and abbreviations
3.1 Terms

For the purposes of the present document, the terms given in ETSI ES 201 873-1 [1], ETSI ES 201 873-4 [2], ETSI

ES 201 873-5 [3] and ETSI ES 201 873-6 [4] apply.
3.2 Symbols
Void.
3.3 Abbreviations

For the purposes of the present document, the abbreviations given in ETSI ES 201 873-1 [1], ETSI ES 201 873-4 [2],

ETSI ES 201 873-5 [3] and ETSI ES 201 873-6 [4] apply.
4 Package conformance and compatibility
The package presented in the present document is identified by the package tag:

"TTCN-3:2017 Advanced Matching" - to be used with modules complying with the present document.

For an implementation claiming to conform to this package version, all features specified in the present document shall

be implemented consistently with the requirements given in the present document and in ETSI ES 201 873-1 [1] and

ETSI ES 201 873-4 [2].
The package presented in the present document is compatible to:
• ETSI ES 201 873-1 [1], version 4.9.1;
• ETSI ES 201 873-4 [2], version 4.6.1;
• ETSI ES 201 873-5 [3], version 4.8.1;
• ETSI ES 201 873-6 [4], version 4.9.1;
• ETSI ES 201 873-7 [i.1];
• ETSI ES 201 873-8 [i.2];
• ETSI ES 201 873-9 [i.3];
• ETSI ES 201 873-10 [i.4].

If later versions of those parts are available and should be used instead, the compatibility to the package presented in the

present document has to be checked individually.
ETSI
---------------------- Page: 7 ----------------------
8 Final draft ETSI ES 203 022 V1.4.1 (2020-02)
5 Package Concepts for the Core Language
5.0 General

This package defines advanced matching mechanisms for TTCN-3, i.e. new matching mechanisms which go beyond the

matching mechanisms defined in ETSI ES 201 873-1 [1]. This package realizes the following concepts:

• Dynamic matching: allows to specify matching in a function-like fashion, i.e. statement blocks and functions

can be used to define matching.

• Templates with variable bindings: ease the retrieval field values of received messages and signatures. For this

the "->" symbol is used to denote a value assignment to a variable or an out parameter in the scope of a

template definition in case of a successful template matching.

• Additional logical operators: conjunction, implication, exclusion and disjunction allow the combination

matching mechanisms for advanced matching.

• Repetition: allows to match repetitions of a sub-sequence templates inside values of a certain type.

• Restrictions for the omit symbol and templates with restriction omit are relieved allowing omit symbols and

templates with restriction omit as operands for the equality operator.
5.1 Dynamic Matching

A dynamic matching is a special matching mechanism. Similar to other matching mechanisms, it can be considered as a

Boolean function that indicates successful matching for the value to be matched by returning the value true and

unsuccessful matching by returning the value false.
Syntactical Structure
@dynamic (StatementBlock | FunctionRef)
Semantic Description

The StatementBlock shall return a value of type boolean. The value to be matched is referenced by the special

keyword value. When applying this matching mechanism to a value, the StatementBlock is executed and if and only if

the execution returns true, the dynamic matching function matches. Unsuccessful matching shall return false.

A dynamic matching function can only be used in the context of a template, the value expression inside the

StatementBlock shall have the same type as the whole template.

The notation @dynamic FunctionRef denotes a shorthand for the special case @dynamic { return

FunctionRef(value) } where FunctionRef is a reference to a Boolean function with the first parameter compatible

with the template's type. If the function contains more than one parameter, all parameters following the first one shall

have a default value. The type of the first formal parameter of the referenced function provides the type context, if this

template's place of usage does not provide a type context already.
Restrictions

a) The dynamic matching syntax shall only be used when a type context (as defined in clause 3 of ETSI

ES 201 873-1 [1]) is provided.
b) The StatementBlock shall compute a value of type boolean.

c) The StatementBlock shall be deterministic and side-effect free and follow the restrictions of clause 16.1.4 of

ETSI ES 201 873-1 [1].

d) The StatementBlock shall not use variables that are declared outside of the StatementBlock.

e) The StatementBlock shall not use inout or out parameters.
ETSI
---------------------- Page: 8 ----------------------
9 Final draft ETSI ES 203 022 V1.4.1 (2020-02)

f) Only if the dynamic matching syntax appears on the right-hand-side of a parameterized template definition, the

formal in parameters of that definition may be referenced inside the StatementBlock. All other formal in

parameters shall not be used by the StatementBlock.

g) The FunctionRef shall not have a runs on clause and the StatementBlock shall not use any behaviour that

has a runs on clause.
EXAMPLE:
type record of integer Numbers;
template Numbers mw_sorted := @dynamic { // value is of type Numbers
for (var integer v_i := 1; v_i < lengthof(value); v_i := v_i + 1) {
if (value[v_i-1] > value[v_i]) { return false }
}
return true;
} // mw_sorted(v_recInt) matches all values of type Numbers
// if elements of v_recInt do not break an ascending order
type record Coordinate { float x, float y };

external function @deterministic fx_distance(Coordinate p_a, Coordinate p_b) return float;

template Coordinate mw_closeTo(Coordinate p_origin := { 0.0, 0.0 }, float p_maxDistance := 1.0)

// access to in parameters is allowed
:= @dynamic { return fx_distance(p_origin, value) <= p_maxDistance; };
// mw_closeTo(c,d) matches all values of type Coordinate
// which have maximum distance of d from Coordinate c
external function @deterministic fx_isPrime(integer p_x) return boolean;
p.receive(@dynamic fx_isPrime)
// is the same as p.receive(integer:@dynamic { return fx_isPrime(value) })
5.2 Templates with variable bindings
5.2.0 General

The possibilities to retrieve field values of received messages and signatures in ETSI ES 201 873-1 [1] are restricted

and cumbersome. To overcome this situation, this clause implements the definition of templates with variable bindings

that store the actual value matched by a template instance if the matching of all containing templates is successful. This

feature is implemented by using the "->" symbol for denoting a value assignment to a variable or an out parameter in

the scope of a template definition in case of a successful template matching. Such a value assignment can syntactically

be specified at all places where a template matching mechanism or a template reference is used in a template definition

or an inline template.
5.2.1 Value retrieval from matching

In case of a successful template match, the value which matches the template can be assigned to a variable. This can be

specified by using the "->" symbol.
Syntactical Structure
TemplateInstance "->" VariableRef
Semantic Description

If a template successfully matches a value and contains a value retrieval assignment for a TemplateInstance, then, if

during the matching process that TemplateInstance and all its containing TemplateInstances contribute to the successful

template match, the part of the value the TemplateInstance was matching is assigned to the VariableRef referenced in

the value retrieval assignment.
EXAMPLE:
template integer mw_t1(out integer p)

:= (?, (1..3) -> p); // mw_t1 always matches because of the first list element,

// and since the (1..3) does not contribute to the successful match
// the out parameter p is not assigned a value
template integer mw_t2(out integer p_small, out integer p_big)
:= ((1..3) -> p_small, (3..5) -> p_big)
ETSI
---------------------- Page: 9 ----------------------
10 Final draft ETSI ES 203 022 V1.4.1 (2020-02)
// due to the preference of (1..3) over (3..5),
// matching mw_t2 to number in (1..3) will cause only p_small to be assigned,
// while matching it to number in (4..5) will cause only p_big to be assigned
Restrictions

Additional to the restrictions given in clause 5.2.3, the following restrictions apply:

a) If TempateInstance describes the matching of a mandatory element in a template definition, VariableRef shall

refer to a variable of the same type as the mandatory element.

b) If TempateInstance describes the matching of an optional element in a template definition, VariableRef shall

refer to a template variable of the same type as the optional element. In case of a successful matching, the

matching value or omit shall be assigned to the template variable denoted b
...

SLOVENSKI STANDARD
SIST ES 203 022 V1.4.1:2020
01-julij-2020

Metode za preskušanje in specificiranje (MTS) - 3. različica zapisa preskušanja in

krmiljenja preskusov - Razširitev nabora jezikov TTCN-3: napredno ujemanje

Methods for Testing and Specification (MTS) - The Testing and Test Control Notation

version 3 - TTCN-3 Language extension: Advanced Matching
Ta slovenski standard je istoveten z: ETSI ES 203 022 V1.4.1 (2020-05)
ICS:
35.060 Jeziki, ki se uporabljajo v Languages used in
informacijski tehniki in information technology
tehnologiji
SIST ES 203 022 V1.4.1:2020 en

2003-01.Slovenski inštitut za standardizacijo. Razmnoževanje celote ali delov tega standarda ni dovoljeno.

---------------------- Page: 1 ----------------------
SIST ES 203 022 V1.4.1:2020
---------------------- Page: 2 ----------------------
SIST ES 203 022 V1.4.1:2020
ETSI ES 203 022 V1.4.1 (2020-05)
ETSI STANDARD
Methods for Testing and Specification (MTS);
The Testing and Test Control Notation version 3;
TTCN-3 Language extension: Advanced Matching
---------------------- Page: 3 ----------------------
SIST ES 203 022 V1.4.1:2020
2 ETSI ES 203 022 V1.4.1 (2020-05)
Reference
RES/MTS-203022-AdvMatchv141
Keywords
conformance, testing, TTCN-3
ETSI
650 Route des Lucioles
F-06921 Sophia Antipolis Cedex - FRANCE
Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16
Siret N° 348 623 562 00017 - NAF 742 C
Association à but non lucratif enregistrée à la
Sous-Préfecture de Grasse (06) N° 7803/88
Important notice
The present document can be downloaded from:
http://www.etsi.org/standards-search

The present document may be made available in electronic versions and/or in print. The content of any electronic and/or

print versions of the present document shall not be modified without the prior written authorization of ETSI. In case of any

existing or perceived difference in contents between such versions and/or in print, the prevailing version of an ETSI

deliverable is the one made publicly available in PDF format at www.etsi.org/deliver.

Users of the present document should be aware that the document may be subject to revision or change of status.

Information on the current status of this and other ETSI documents is available at

https://portal.etsi.org/TB/ETSIDeliverableStatus.aspx

If you find errors in the present document, please send your comment to one of the following services:

https://portal.etsi.org/People/CommiteeSupportStaff.aspx
Copyright Notification

No part may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying

and microfilm except as authorized by written permission of ETSI.

The content of the PDF version shall not be modified without the written authorization of ETSI.

The copyright and the foregoing restriction extend to reproduction in all media.
© ETSI 2020.
All rights reserved.

DECT™, PLUGTESTS™, UMTS™ and the ETSI logo are trademarks of ETSI registered for the benefit of its Members.

3GPP™ and LTE™ are trademarks of ETSI registered for the benefit of its Members and

of the 3GPP Organizational Partners.

oneM2M™ logo is a trademark of ETSI registered for the benefit of its Members and

of the oneM2M Partners.
GSM and the GSM logo are trademarks registered and owned by the GSM Association.
ETSI
---------------------- Page: 4 ----------------------
SIST ES 203 022 V1.4.1:2020
3 ETSI ES 203 022 V1.4.1 (2020-05)
Contents

Intellectual Property Rights ................................................................................................................................ 5

Foreword ............................................................................................................................................................. 5

Modal verbs terminology .................................................................................................................................... 5

1 Scope ........................................................................................................................................................ 6

2 References ................................................................................................................................................ 6

2.1 Normative references ......................................................................................................................................... 6

2.2 Informative references ........................................................................................................................................ 6

3 Definition of terms, symbols and abbreviations ....................................................................................... 7

3.1 Terms .................................................................................................................................................................. 7

3.2 Symbols .............................................................................................................................................................. 7

3.3 Abbreviations ..................................................................................................................................................... 7

4 Package conformance and compatibility .................................................................................................. 7

5 Package Concepts for the Core Language ................................................................................................ 8

5.0 General ............................................................................................................................................................... 8

5.1 Dynamic Matching ............................................................................................................................................. 8

5.2 Templates with variable bindings ....................................................................................................................... 9

5.2.0 General .......................................................................................................................................................... 9

5.2.1 Value retrieval from matching ...................................................................................................................... 9

5.2.2 Declaring out parameters for template definitions ...................................................................................... 10

5.2.3 Matching template parameters and variables .............................................................................................. 12

5.3 Additional logical operators for combining matching mechanisms ................................................................. 13

5.3.0 General ........................................................................................................................................................ 13

5.3.1 Conjunction................................................................................................................................................. 13

5.3.2 Implication .................................................................................................................................................. 14

5.3.3 Exclusion .................................................................................................................................................... 15

5.3.4 Disjunction .................................................................................................................................................. 15

5.4 Repetition ......................................................................................................................................................... 16

5.4.1 General ........................................................................................................................................................ 16

5.4.2 Repetition in record of and array ................................................................................................................ 16

5.4.3 Repetition in string ..................................................................................................................................... 18

5.4.4 Modifications to ETSI ES 201 873-1, clause 15.11 (Concatenating templates of string and list types) ..... 19

5.4.4.0 General .................................................................................................................................................. 19

5.4.4.1 Step 1 of modifications to ETSI ES 201 873-1, clause 15.11 ............................................................... 19

5.4.4.2 Step 2 of modifications to ETSI ES 201 873-1, clause 15.11 ............................................................... 19

5.4.5 Modifications to ETSI ES 201 873-6 .......................................................................................................... 20

5.4.5.1 Changes to clause 7.2.2.3.1 (The abstract data type MatchingMechanism) .................................. 20

5.4.5.2 Changes to clause 7.2.2.3.2 (The abstract data type MatchingList) .............................................. 20

5.4.5.3 Changes to clause 8.3.2.17 (TciMatchingTypeType) ........................................................................... 20

5.4.5.4 Changes to clause 8.3.3.1 (Type) .......................................................................................................... 21

5.4.5.5 Changes to clause 9.5 (Data) ................................................................................................................. 21

5.4.5.6 Changes to clause 10.5.2.16 (TciMatchingTypeType) ......................................................................... 23

5.4.5.7 Changes to clause 10.5.3.19 (MatchingList) ......................................................................................... 23

5.4.5.8 Changes to clause 11.3.3.25 (MatchingMechanism) ............................................................................. 23

5.4.5.9 Changes to clause 12.4.2.16 (TciMatchingTypeType) ......................................................................... 24

5.4.5.10 Changes to clause B.4 (TCI-TL XML Schema for Templates)............................................................. 24

5.5 Equality operator for the omit symbol and templates with restriction omit ..................................................... 24

5.5.0 General ........................................................................................................................................................ 24

5.5.1 Modifications to ETSI ES 201 873-1, clause 7 (Expressions) .................................................................... 25

5.6 Encodable Values ............................................................................................................................................. 25

5.6.0 General ........................................................................................................................................................ 25

5.6.1 The encvalue Template Restriction ............................................................................................................ 26

5.6.2 Encoding Mutation Annotation................................................................................................................... 26

5.6.2.0 Description ............................................................................................................................................ 26

5.6.2.1 Modifications to ETSI ES 201 873-1, clause 22.2.1 (The Send operation) .......................................... 28

ETSI
---------------------- Page: 5 ----------------------
SIST ES 203 022 V1.4.1:2020
4 ETSI ES 203 022 V1.4.1 (2020-05)

5.6.2.2 Modifications to ETSI ES 201 873-1, clause 22.3.1 (The Call operation) ............................................ 28

5.6.2.3 Modifications to ETSI ES 201 873-1, clause 22.3.3 (The Reply operation) ......................................... 28

5.6.2.4 Modifications to ETSI ES 201 873-1, clause 22.3.5 (The Raise operation).......................................... 28

5.6.2.5 Modifications to ETSI ES 201 873-1, clause C.5.1 (The encoding function) ....................................... 29

5.6.2.6 Modifications to ETSI ES 201 873-1, clause C.5.3 (The encoding to universal charstring

function) ................................................................................................................................................ 29

5.6.2.7 Modifications to ETSI ES 201 873-1, clause C.5.5 (The encoding to octetstring function) ................. 30

5.7 Extension of the istemplatekind function ......................................................................................................... 30

5.7.1 Modifications to ETSI ES 201 873-1, clause C.3.5 (Matching mechanism detection) ............................... 30

5.7.2 Modifications to ETSI ES 201 873-1, clause E.2.2.5 (Matching mechanism detection) ............................ 30

6 TCI Extensions for the Package ............................................................................................................. 31

6.1 Extensions to clause 7.2.2.2.0 of ETSI ES 201 873-6, Basic rules .................................................................. 31

6.2 Extensions to clause 7.2.2.3.1 of ETSI ES 201 873-6, The abstract data type MatchingMechanism .............. 33

6.3 Extensions to clause 7.2.2.3.2 of ETSI ES 201 873-6, The abstract data type MatchingList ........................... 33

6.4 Extensions to clause 7.2.2.3 of ETSI ES 201 873-6, The abstract data type MatchingMechanism ................. 33

6.5 Extensions to clause 8 of ETSI ES 201 873-6, Java language mapping ....................................................... 34

6.6 Extensions to clause 9 of ETSI ES 201 873-6, ANSI C language mapping ..................................................... 37

6.7 Extensions to clause 10 of ETSI ES 201 873-6, C++ language mapping......................................................... 38

6.8 Extensions to clause 12 of ETSI ES 201 873-6, C# language mapping ........................................................... 41

6.9 Extensions to clause 7.2.2.2.1 of ETSI ES 201 873-6, The abstract data type Value ....................................... 43

6.10 Extensions to clause 7.2.2.4 of ETSI ES 201 873-6, Data types for complex TTCN-3 properties .................. 43

Annex A (normative): BNF and static semantics .............................................................................. 44

A.0 Additional TTCN-3 terminals ................................................................................................................ 44

A.1 Modified TTCN-3 syntax BNF productions .......................................................................................... 44

A.2 Deleted TTCN-3 syntax BNF productions ............................................................................................. 45

A.3 Additional TTCN-3 syntax BNF productions ........................................................................................ 45

History .............................................................................................................................................................. 46

ETSI
---------------------- Page: 6 ----------------------
SIST ES 203 022 V1.4.1:2020
5 ETSI ES 203 022 V1.4.1 (2020-05)
Intellectual Property Rights
Essential patents

IPRs essential or potentially essential to normative deliverables may have been declared to ETSI. The information

pertaining to these essential IPRs, if any, is publicly available for ETSI members and non-members, and can be found

in ETSI SR 000 314: "Intellectual Property Rights (IPRs); Essential, or potentially Essential, IPRs notified to ETSI in

respect of ETSI standards", which is available from the ETSI Secretariat. Latest updates are available on the ETSI Web

server (https://ipr.etsi.org/).

Pursuant to the ETSI IPR Policy, no investigation, including IPR searches, has been carried out by ETSI. No guarantee

can be given as to the existence of other IPRs not referenced in ETSI SR 000 314 (or the updates on the ETSI Web

server) which are, or may be, or may become, essential to the present document.
Trademarks

The present document may include trademarks and/or tradenames which are asserted and/or registered by their owners.

ETSI claims no ownership of these except for any which are indicated as being the property of ETSI, and conveys no

right to use or reproduce any trademark and/or tradename. Mention of those trademarks in the present document does

not constitute an endorsement by ETSI of products, services or organizations associated with those trademarks.

Foreword

This ETSI Standard (ES) has been produced by ETSI Technical Committee Methods for Testing and Specification

(MTS).

The use of underline (additional text) and strike through (deleted text) highlights the differences between base

document and extended documents.

The present document relates to the multi-part standard ETSI ES 201 873 covering the Testing and Test Control

Notation version 3, as identified in ETSI ES 201 873-1 [1].
Modal verbs terminology

In the present document "shall", "shall not", "should", "should not", "may", "need not", "will", "will not", "can" and

"cannot" are to be interpreted as described in clause 3.2 of the ETSI Drafting Rules (Verbal forms for the expression of

provisions).

"must" and "must not" are NOT allowed in ETSI deliverables except when used in direct citation.

ETSI
---------------------- Page: 7 ----------------------
SIST ES 203 022 V1.4.1:2020
6 ETSI ES 203 022 V1.4.1 (2020-05)
1 Scope

The present document defines the support of advance matching of TTCN-3. TTCN-3 can be used for the specification

of all types of reactive system tests over a variety of communication ports. Typical areas of application are protocol

testing (including mobile and Internet protocols), service testing (including supplementary services), module testing,

testing of OMG CORBA based platforms, APIs, etc. TTCN-3 is not restricted to conformance testing and can be used

for many other kinds of testing including interoperability, robustness, regression, system and integration testing. The

specification of test suites for physical layer protocols is outside the scope of the present document.

TTCN-3 packages are intended to define additional TTCN-3 concepts, which are not mandatory as concepts in the

TTCN-3 core language, but which are optional as part of a package which is suited for dedicated applications and/or

usages of TTCN-3.

While the design of TTCN-3 package has taken into account the consistency of a combined usage of the core language

with a number of packages, the concrete usages of and guidelines for this package in combination with other packages

is outside the scope of the present document.
2 References
2.1 Normative references

References are either specific (identified by date of publication and/or edition number or version number) or

non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the

referenced document (including any amendments) applies.

Referenced documents which are not found to be publicly available in the expected location might be found at

https://docbox.etsi.org/Reference/.

NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee

their long term validity.

The following referenced documents are necessary for the application of the present document.

[1] ETSI ES 201 873-1: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 1: TTCN-3 Core Language".

[2] ETSI ES 201 873-4: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 4: TTCN-3 Operational Semantics".

[3] ETSI ES 201 873-5: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 5: TTCN-3 Runtime Interface (TRI)".

[4] ETSI ES 201 873-6: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 6: TTCN-3 Control Interface (TCI)".
2.2 Informative references

References are either specific (identified by date of publication and/or edition number or version number) or

non-specific. For specific references, only the cited version applies. For non-specific references, the latest version of the

referenced document (including any amendments) applies.

NOTE: While any hyperlinks included in this clause were valid at the time of publication, ETSI cannot guarantee

their long term validity.

The following referenced documents are not necessary for the application of the present document but they assist the

user with regard to a particular subject area.

[i.1] ETSI ES 201 873-7: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 7: Using ASN.1 with TTCN-3".
ETSI
---------------------- Page: 8 ----------------------
SIST ES 203 022 V1.4.1:2020
7 ETSI ES 203 022 V1.4.1 (2020-05)

[i.2] ETSI ES 201 873-8: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 8: The IDL to TTCN-3 Mapping".

[i.3] ETSI ES 201 873-9: "Methods for Testing and Specification (MTS); The Testing and Test Control

Notation version 3; Part 9: Using XML schema with TTCN-3".

[i.4] ETSI ES 201 873-10: "Methods for Testing and Specification (MTS); The Testing and Test

Control Notation version 3; Part 10: TTCN-3 Documentation Comment Specification".

3 Definition of terms, symbols and abbreviations
3.1 Terms

For the purposes of the present document, the terms given in ETSI ES 201 873-1 [1], ETSI ES 201 873-4 [2], ETSI

ES 201 873-5 [3] and ETSI ES 201 873-6 [4] apply.
3.2 Symbols
Void.
3.3 Abbreviations

For the purposes of the present document, the abbreviations given in ETSI ES 201 873-1 [1], ETSI ES 201 873-4 [2],

ETSI ES 201 873-5 [3] and ETSI ES 201 873-6 [4] apply.
4 Package conformance and compatibility
The package presented in the present document is identified by the package tag:

"TTCN-3:2017 Advanced Matching" - to be used with modules complying with the present document.

For an implementation claiming to conform to this package version, all features specified in the present document shall

be implemented consistently with the requirements given in the present document and in ETSI ES 201 873-1 [1] and

ETSI ES 201 873-4 [2].
The package presented in the present document is compatible to:
• ETSI ES 201 873-1 [1], version 4.9.1;
• ETSI ES 201 873-4 [2], version 4.6.1;
• ETSI ES 201 873-5 [3], version 4.8.1;
• ETSI ES 201 873-6 [4], version 4.9.1;
• ETSI ES 201 873-7 [i.1];
• ETSI ES 201 873-8 [i.2];
• ETSI ES 201 873-9 [i.3];
• ETSI ES 201 873-10 [i.4].

If later versions of those parts are available and should be used instead, the compatibility to the package presented in the

present document has to be checked individually.
ETSI
---------------------- Page: 9 ----------------------
SIST ES 203 022 V1.4.1:2020
8 ETSI ES 203 022 V1.4.1 (2020-05)
5 Package Concepts for the Core Language
5.0 General

This package defines advanced matching mechanisms for TTCN-3, i.e. new matching mechanisms which go beyond the

matching mechanisms defined in ETSI ES 201 873-1 [1]. This package realizes the following concepts:

• Dynamic matching: allows to specify matching in a function-like fashion, i.e. statement blocks and functions

can be used to define matching.

• Templates with variable bindings: ease the retrieval field values of received messages and signatures. For this

the "->" symbol is used to denote a value assignment to a variable or an out parameter in the scope of a

template definition in case of a successful template matching.

• Additional logical operators: conjunction, implication, exclusion and disjunction allow the combination

matching mechanisms for advanced matching.

• Repetition: allows to match repetitions of a sub-sequence templates inside values of a certain type.

• Restrictions for the omit symbol and templates with restriction omit are relieved allowing omit symbols and

templates with restriction omit as operands for the equality operator.
5.1 Dynamic Matching

A dynamic matching is a special matching mechanism. Similar to other matching mechanisms, it can be considered as a

Boolean function that indicates successful matching for the value to be matched by returning the value true and

unsuccessful matching by returning the value false.
Syntactical Structure
@dynamic (StatementBlock | FunctionRef)
Semantic Description

The StatementBlock shall return a value of type boolean. The value to be matched is referenced by the special

keyword value. When applying this matching mechanism to a value, the StatementBlock is executed and if and only if

the execution returns true, the dynamic matching function matches. Unsuccessful matching shall return false.

A dynamic matching function can only be used in the context of a template, the value expression inside the

StatementBlock shall have the same type as the whole template.

The notation @dynamic FunctionRef denotes a shorthand for the special case @dynamic { return

FunctionRef(value) } where FunctionRef is a reference to a Boolean function with the first parameter compatible

with the template's type. If the function contains more than one parameter, all parameters following the first one shall

have a default value. The type of the first formal parameter of the referenced function provides the type context, if this

template's place of usage does not provide a type context already.
Restrictions

a) The dynamic matching syntax shall only be used when a type context (as defined in clause 3 of ETSI

ES 201 873-1 [1]) is provided.
b) The StatementBlock shall compute a value of type boolean.

c) The StatementBlock shall be deterministic and side-effect free and follow the restrictions of clause 16.1.4 of

ETSI ES 201 873-1 [1].

d) The StatementBlock shall not use variables that are declared outside of the StatementBlock.

e) The StatementBlock shall not use inout or out parameters.
ETSI
---------------------- Page: 10 ----------------------
SIST ES 203 022 V1.4.1:2020
9 ETSI ES 203 022 V1.4.1 (2020-05)

f) Only if the dynamic matching syntax appears on the right-hand-side of a parameterized template definition, the

formal in parameters of that definition may be referenced inside the StatementBlock. All other formal in

parameters shall not be used by the StatementBlock.

g) The FunctionRef shall not have a runs on clause and the StatementBlock shall not use any behaviour that

has a runs on clause.
EXAMPLE:
type record of integer Numbers;
template Numbers mw_sorted := @dynamic { // value is of type Numbers
for (var integer v_i := 1; v_i < lengthof(value); v_i := v_i + 1) {
if (value[v_i-1] > value[v_i]) { return false }
}
return true;
} // mw_sorted(v_recInt) matches all values of type Numbers
// if elements of v_recInt do not break an ascending order
type record Coordinate { float x, float y };

external function @deterministic fx_distance(Coordinate p_a, Coordinate p_b) return float;

template Coordinate mw_closeTo(Coordinate p_origin := { 0.0, 0.0 }, float p_maxDistance := 1.0)

// access to in parameters is allowed
:= @dynamic { return fx_distance(p_origin, value) <= p_maxDistance; };
// mw_closeTo(c,d) matches all values of type Coordinate
// which have maximum distance of d from Coordinate c
external function @deterministic fx_isPrime(integer p_x) return boolean;
p.receive(@dynamic fx_isPrime)
// is the same as p.receive(integer:@dynamic { return fx_isPrime(value) })
5.2 Templates with variable bindings
5.2.0 General

The possibilities to retrieve field values of received messages and signatures in ETSI ES 201 873-1 [1] are restricted

and cumbersome. To overcome this situation, this clause implements the definition of templates with variable bindings

that store the actual value matched by a template instance if the matching of all containing templates is successful. This

feature is implemented by using the "->" symbol for denoting a value assignment to a variable or an out parameter in

the scope of a template definition in case of a successful template matching. Such a value assignment can syntactically

be specified at all places where a template matching mechanism or a template reference is used in a template definition

or an inline template.
5.2.1 Value retrieval from matching

In case of a successful template match, the value which matches the template can be assigned to a variable. This can be

specified by using the "->" symbol.
Syntactical Structure
TemplateInstance "->" VariableRef
Semantic Description

If a template successfully matches a value and contains a value retrieval assignment for a TemplateInstance, then, if

during the matching process that TemplateInstance and all its containing TemplateInstances contribute to the successful

template match, the part of the value the TemplateInstance was matching is assigned to the VariableRef referenced in

the value retrieval assignment.
EXAMPLE:
template integer mw_t1(out integer p)

:= (?, (1..3) -> p); // mw_t1 always matches because of the first list element,

// and since the (1..3) does not contribute to the successful match
// the out parameter p is not assigned a value
template integer mw_t2(out integer p_small, out integer p_big)
:= ((1..3) -> p_small, (
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.