Tree and Tabular Combined Notation (TTCN)
The Evolution of TTCN
Work on the Tree and Tabular Combined Notation (TTCN) first started in 1983 in ISO TC 97/SC 16 and later in ISO/IEC JTC 1/SC 21 and CCITT SG VII as part of the work on Open Systems Interconnection (OSI) conformance testing methodology and framework. It was standardized as twin texts ISO/IEC 9646-3 and CCITT Rec. X.292 in 1992 as one of the set of 7 twin texts (ISO/IEC 9646 7-part standard and CCITT X.290-series of Recommendations) on OSI conformance testing. Since then TTCN has been widely used for describing protocol conformance test suites in standardization organizations such as ITU-T, ISO/IEC, ATM Forum (now IP/MPLS Forum), ETSI, NIST and in industries.
2. TTCN (first edition)
The main characteristics of TTCN that contributed to its wide acceptance are:
- its Tabular Notation allows its user to describe easily and naturally in a tree form all possible scenarios of stimulus and various reactions to it between the tester and the Implementation Under Test (IUT),
- its verdict system is designed such that to facilitate conformance judgment on the test result agrees against the test purpose, and
- it provides a mechanism to describe appropriate constraints on received messages so that conformance of the received messages can be mechanically evaluated against the test purpose.
3. TTCN – edition 2
However, the first edition of TTCN was not designed to describe the concurrent behaviour within the tester, the IUT or between them and the need for an extension to deal with concurrent behaviour efficiently was soon recognized. In the process of extension, in addition to concurrency mechanism, the concepts of module and package were newly introduced to TTCN to increase reusability and to achieve encapsulation. Also manipulation of ASN.1 encoding was made possible beyond simple syntax declaration. The TTCN extended in this way was adopted as TTCN edition 2, or TTCN-2, in ISO/IEC and in ITU-T in 1998.
4. TTCN – edition 2++
Following publication of the 1998 edition of TTCN, several defect reports were submitted to ISO/IEC. The experts working on ETSI projects corrected the defects and the revised version of TTCN-2 was published as ETSI technical report TR 101 666. This version of TTCN became known as TTCN-2++ as ISO/IEC did not publish this version of TTCN. In 2002, ITU-T SG 17 made the same defect corrections in Recommendation X.292 and approved it on May 14, 2002.
5. TTCN – edition 3
In spite of the improvements in TTCN-2, TTCN was designed from the beginning with OSI-based protocol conformance testing in mind and even TTCN-2 was not adequate for the various kinds of testing such as interoperability testing, robustness testing, regression testing, system testing and integration testing or for various emerging testing application areas such as mobile protocol, Internet protocol, service testing, module testing, CORBA-based platform testing and API testing. Therefore a more flexible and powerful test description language was needed. In order to meet the need, the Special Task Force (STF) 133 and 156 of ETSI started working on a new version of TTCN in 1998 and completed it in October 2000.
TTCN-3 retained the proven features of TTCN-2 but was designed to provide the new features listed above. A single most visible difference is that the previous versions adopted as the main description notation the Tabular Notation and its textual counterpart a machine-processible language for translation to programs whereas in TTCN-3 the usual programming language-like notation is adopted as the core language. In October 2000, TTCN-3 was approved in ETSI. Then it was submitted to ITU-T as Z.140 (series). Z.140 and Z.141 were approved July 2001. In 2003, ITU-T approved an updated Z.140 and Z.141 and approved Z.142. To reflect the new nature of TTCN-3, the acronym TTCN was changed in 2003 to Testing and Test Control Notation from the previous Tree and Tabular Combined Notation, which still applies to TTCN-2 and Recommendation X.292 (2002).
The TTCN-3 Core Language can be expressed in a variety of presentation formats. While Recommendation Z.140 defines the Core Language, Recommendation Z.141 defines the Tabular Format for TTCN (TFT) and Recommendation Z.142 defines its Graphical Format for TTCN (GFT).
The TTCN-3 tabular presentation format, TFT, is similar in appearance and functionality to TTCN-2 and provides an alternative way of displaying the Core Language as well as emphasizing those aspects that are particular to the requirements of a standardized conformance test suite.
The TTCN-3 graphical presentation format, GFT, is based on the ITU-T Recommendation Z.120 defining Message Sequence Charts (MSC). GFT uses a subset of MSC with test specific extensions. The majority of extensions are textual extensions only. Graphical extensions are defined to ease the readability of GFT diagrams. Where possible, GFT is defined like MSC, so that established MSC tools with slight modifications can be used for the graphical definition of TTCN-3 test cases in terms of GFT.
The TTCN-3 Core Language may be used independently of TFT and GFT. However, TFT and GFT cannot be used without the core language.
Comparing it with TTCN-2, TTCN-3 has improvements in that TTCN-3 has a:
The major new capabilities of TTCN-3 are:
- well-defined syntax, interchange format and static semantics, and
- precise execution algorithm (operational semantics).
- different presentation formats (e.g. tabular and MSC presentation formats),
- dynamic concurrent testing configurations,
- operations for synchronous and asynchronous communications,
- ability to specify encoding information and other attributes (including user extensibility),
- data and signature templates with powerful matching mechanisms,
- type and value parameterization,
- assignment and handling of test verdicts,
- test suite parameterization and test case selection mechanisms,
- TTCN-3 Tabular presentation Format (TFT),
- Graphical presentation format (GFT),
- TTCN-3 Operational Semantics,
- TTCN-3 Runtime Interface (TRI),
- TTCN-3 Control Interface (TCI),
- combined use of TTCN-3 and ASN.1,
- The IDL to TTCN-3 mapping,
- Using XML Schema with TTCN-3, and
- TTCN-3 documentation tags.
Certainly TTCN-3 is a significant improvement over TTCN-2 in precision, expressiveness and capability to meet emerging testing needs. However, the industry and standard organizations put a lot of investment in developing TTCN and TTCN-2 test suites and would not want the investment to be simply discarded or demoted today when TTCN-3 does not provide backward compatibility for the preceding versions and new features require some extent of test-drives. Meanwhile, TTCN-2++ can continue to serve the test specification needs until TTCN-3 makes its way to such needs and becomes accepted.
6. TTCN – edition 3, further evolution
In March of 2006, revisions of Recommendations Z.140, Z.141 and Z.142 were approved. At the same time, four new Recommendations were added to the Z.140 series: "TTCN-3 Operational Semantics"; "TTCN-3 Runtime Interface (TRI)"; "TTCN-3 Control Interface (TCI)"; and "Using ASN.1 with TTCN-3". The set of seven TTCN Recommendations are listed below and the new Recommendations are briefly described:
7. TTCN edition 3, current status
- Z.140: TTCN-3 Core Language – Revised
- Z.141: TTCN-3 Tabular presentation Format (TFT) – Revised
- Z.142: TTCN-3 Graphical presentation Format (GFT) – Revised
- Z.143: TTCN-3 Operational Semantics – New
The operational semantics describes the meaning of behaviour of TTCN-3. This is needed for translating TTCN-3 statements into executable form or exact understanding of TTCN-3 behaviour. Z.143 describes the behaviour in an intuitive and unambiguous manner. The operational semantics is not meant to be completely formal and therefore the ability to perform mathematical proofs based on this semantics is limited. This semantics requires a graphical representation of TTCN-3 behaviour descriptions in form of flow graphs. The mapping of TTCN-3 behaviour descriptions onto flow graphs is straightforward.
- Z.144: TTCN-3 Runtime Interface (TRI) – New
TTCN-3 Runtime Interface specifies the runtime interface for TTCN-3 test system implementations. It provides a standardized adaptation for timing and communication of a test system to a particular processing platform and the system under test, respectively. Z.144 defines the interface as a set of operations independent of target language. It describes the structure of the test system, the TTCN-3 Runtime Interface specification and the interaction between the various entities.
The interface is defined in terms of operations, which are implemented as part of one entity that is called by other entities of the test system. For each operation, the interface specification defines the associated data structures, the intended effect on the test system and any constraints on the usage of the operation.
- Z.145: TTCN-3 Control Interface (TCI) – New
TTCN-3 Control Interface specifies the control interfaces for TTCN-3 test system implementations. It provides standardized adaptation for test system management, test component handling and encoding/decoding of a test system to a particular test platform. Z.145 defines the interfaces and associated data structures as a set of operations that are independent of the target language. It describes the structure of a TTCN-3 test system implementation and presents the TTCN-3 Control Interface specification. It should be noted that certain interface interactions, not included here are described in the TTCN-3 Runtime Interface specification.
In September 2007, while revising the existing TTCN-3 Recommendations, additional new TTCN-3 Recommendations were approved and it became necessary to renumber the parts in a new series starting with Z.161 to replace Z.140 and continuing through Z.170. Numbers beyond Z.170 are reserved for additional TTCN-3 Recommendations that are expected to be developed in the near future. TTCN-3 textual description, BNF syntax and operational semantics were updated to reflect approved change requests related to the core language.
The revised and new approved TTCN-3 Recommendations are given below indicating the new numbering:
Z.161 (Z.140 Revised), Testing and Test Control Notation version 3 (TTCN-3): Core language
This Recommendation defines TTCN-3 (Testing and Test Control Notation 3) intended for specification of test suites that are independent of platforms, test methods, protocol layers and protocols. TTCN-3 can be used for 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 CORBA-based platforms and APIs. The specification of test suites for physical layer protocols is outside the scope of this Recommendation.
Z.162 (Z.141 Revised), Testing and Test Control Notation version 3 (TTCN-3): Tabular presentation format (TFT)
This Recommendation defines TFT, the Tabular Format for TTCN-3. TFT is the tabular presentation format for TTCN-3 (Testing and Test Control Notation 3) Core Language defined in Recommendation Z.161. It is similar in appearance and functionality to TTCN-2 defined in Recommendation X.292 for conformance testing. The tabular format provides an alternative way of displaying the core language as well as emphasizing those aspects that are particular to the requirements of a standardized conformance test suite.
Z.163 (Z.142 Revised), Testing and Test Control Notation version 3 (TTCN-3): Graphical presentation format (GFT)
This Recommendation defines GFT, a graphical presentation format for TTCN-3 (Testing and Test Control Notation 3) Core Language defined in Recommendation Z.161. GFT is used for the graphical presentation of test behaviour in form of a subset of Message Sequence Charts as defined in Recommendation Z.120 with test specific extensions. GFT provides a number of graphical symbols to enable the graphical presentation of TTCN-3 test cases, functions, alt-steps and control parts. GFT can be applied whenever it is necessary to define or document test behaviour graphically.
Z.164 (Z.143 Revised), Testing and Test Control Notation version 3 (TTCN-3): Operational semantics (OS)
This Recommendation defines the operational semantics of TTCN-3 (Testing and Test Control Notation 3). The Recommendation is based on the TTCN-3 core language defined in Recommendation Z.161.
Z.165 (Z.144 Revised), Testing and Test Control Notation version 3 (TTCN-3): Runtime interface (TRI)
This Recommendation provides the specification of the runtime interface for TTCN-3 (Testing and Test Control Notation 3) test system implementations. The TTCN-3 Runtime Interface provides the recommended adaptation for timing and communication of a test system to a particular processing platform and the system under test, respectively. This Recommendation defines the interface as a set of operations independent of target language.
Z.166 (Z.145 Revised), Testing and Test Control Notation version 3 (TTCN-3): Control interface (TCI)
This Recommendation specifies the control interfaces for TTCN-3 (Testing and Test Control Notation 3) test system implementations. The TTCN-3 Control Interfaces provides the recommended adaptation for management, test component handling and encoding/decoding of a test system to a particular test platform. This Recommendation defines the interfaces as a set of operations independent of a target language.
Z.167 (Revised, ITU-T approval process initiated 19 September 2008), Testing and Test Control Notation version 3 (TTCN-3): Using ASN.1 with TTCN-3
This Recommendation defines the normative way of using ASN.1 as defined in ITU-T Recommendations X.680, X.681, X.682 and X.683 with TTCN-3 (Testing and Test Control Notation 3) as defined in Recommendation Z.161. It is aligned with TTCN-3 core language version 3.3.1. Accepted comments from ITU T SG 17 are incorporated. The harmonization of other languages with TTCN-3 is not covered by the present document.
Z.168 (New), Testing and Test Control Notation version 3 (TTCN-3): The IDL to TTCN-3 mapping
This Recommendation defines the mapping rules for CORBA IDL to TTCN-3 (as defined in Recommendation Z.161) to enable testing of CORBA-based systems. The principles of mapping CORBA IDL to TTCN-3 can be also used for the mapping of interface specification languages of other object-/component-based technologies
Z.169 (New, ITU-T approval initiated 19 September 2008), Testing and Test Control Notation version 3 (TTCN-3): Using XML Schema with TTCN-3
This Recommendation defines the mapping rules for W3C Schema to TTCN-3 (as defined in Recommendation Z.161) to enable testing of XML-based systems, interfaces and protocols. Z.169, Using XML Schema with TTCN-3, has not been approved by ETSI yet but is currently available for information as TD 3431. It is up for approval at ETSI in July.
Z.170 (New), Testing and Test Control Notation version 3 (TTCN-3): TTCN-3 documentation tags
This Recommendation defines a documentation of TTCN-3 source code using special documentation comments. The source code documentation can then be produced automatically from the TTCN-3 Core Language, e.g. in the form of hypertext web pages.