PART 2: ABSTRACT TEST SUITE SPECIFICATION Introduction This part of the Recommendation provides a common approach to the specification of "OSI or related CCITT X-Series or T-Series" (hereafter abbreviated to "OSI*") conformance test suites at a level which is independent of the means of executing those test suites (hereafter called "abstract test suites"). This level of abstraction is suitable for standardization and facilitates the comparison of results produced by different organizations which run the corresponding executable test suites. Section 1 recalls that there are requirements put on the OSI* protocol specifiers which have to be fulfilled before there can be an objective basis for the process of developing an abstract test suite. The need for consistent conformance sections and for PICS and PIXIT proformas in OSI* protocol Recommendations* is expressed. Section 2 describes the process of developing an abstract test suite, including the design criteria to be used and guidance on its structure and coverage. The possible abstract test methods are defined and guidance is given to help the test suite specifier to decide which method(s) to use in the production of a particular test suite. The relationship between abstract test suites for different methods is provided by a generic test suite which is independent of the test method. A test notation is defined and requirements and guidance are given on its use for specifying both generic and abstract test cases. These include the subdivision of test cases into test steps and the assignment of verdicts to outcomes. The test suite specifier is also required to provide information to the test realizers, particularly on the constraints governing test case selection and ordering. Finally, guidance and requirements are given on test suite maintenance. 1. Scope and field of application This part of the Recommendation specifies the requirements and provides guidance for the production of system-independent conformance test suites for one or more OSI* Recommendations*. In particular, it applies to the production of all conformance test suite Recommendations* for OSI* protocols. It applies to the production of conformance test cases which check the adherence of an implementation to the relevant static and/or dynamic conformance requirements by controlling and observing protocol behaviour. The abstract test methods included in this Recommendation are in fact capable of being used to specify any test case which can be expressed abstractly in terms of control and observation of protocol data units, abstract service primitives and abstract local primitives. Nevertheless, for some protocols, test cases may be needed which cannot be expressed in these terms. The specification of such test cases is outside the scope of this Recommendation, although those test cases may need to be included in a Recommendation* for a conformance test suite. Note - For example, some static conformance requirements related to an application service may require testing techniques which are specific to that particular application. The production of conformance test suites for multi-peer or physical layer protocols is outside the scope of this Recommendation. The relation between abstract test specification and formal description techniques is outside the scope of this Recommendation. 2. References Recommendation X.200 - Reference model of open systems interconnection for CCITT applications. (See also ISO 7498.) Recommendation X.214 - Transport service definition for open systems interconnection for CCITT applications. (See also ISO 8072.) Recommendation X.224 - Transport protocol specification for open systems interconnection for CCITT applications. (See also ISO 8073.) Recommendation X.210 - Open systems interconnection layer service definition conventions. (See also ISO TR 8509.) Recommendation X.208 - Specification of Abstract Syntax Notation One (ASN.1). (See also ISO 8824.) Recommendation X.209 - Specification of basic encoding rules for Abstract Syntax Notation One (ASN.1). (See also ISO 8825.) Recommendation X.290/1 - OSI conformance testing methodology and framework for protocol Recommendations for CCITT applications - Part 1: General concepts. ISO 8571-4 - Information processing systems - Open Systems Interconnection - File protocol specification. 3. Definitions For the purposes of this part of the Recommendation, all the definitions in Part 1 of the Recommendation apply. 4. Abbreviations For the purposes of this Recommendation the abbreviations given in section 4 of Part 1 of this Recommendation apply. The following abbreviations also apply to this Recommendation: ASP : the abstract service primitive on the side of the service provider remote from the IUT CM : coordinated multi-layer (test method) CS : coordinated single-layer (test method) CSE : coordinated single-layer embedded (test method) DM : distributed multi-layer (test method) DS : distributed single-layer (test method) DSE : distributed single-layer embedded (test method) FDT : formal description technique LM : local multi-layer (test method) LS : local single-layer (test method) LSE : local single-layer embedded (test method) RM : remote multi-layer (test method) RS : remote single-layer (test method) RSE : remote single-layer embedded (test method) TTCN: tree and tabular combined notation YL : loop-back (test method) YT : transverse (test method). 5. Compliance 5.1 A protocol Recommendation* which complies with this part of this Recommendation shall satisfy all the requirements stated in section 1. Note - Such compliance is a precondition for the protocol Recommendation* to be an effective basis for conformance testing of implementations. 5.2 An abstract test suite specification which complies with this part of this Recommendation a) shall be a conformance test suite; b) shall be specified in a test notation standardized by ISO or CCITT; c) shall satisfy all the requirements stated in section 2. 5.3 It is recommended that the test notation used be the Tree and Tabular Combined Notation (TTCN). If TTCN is used, the abstract test suite shall comply with all the requirements in Annex D. Section 1 - Requirements on protocol specifiers 6. Conformance requirements in OSI* Recommendations* 6.1 Introduction The meaning of conformance in OSI* is discussed in Part 1 of this Recommendation. It is necessary that there be an unambiguous and objective understanding of the conformance requirements of an OSI* protocol or transfer syntax Recommendation*, as a prerequisite to the production of an abstract test suite for that Recommendation*. This section states the requirements on protocol specifiers to ensure that there is such an understanding of the conformance requirements. 6.2 General requirements 6.2.1 A clear distinction shall be made between static and dynamic conformance requirements. To avoid ambiguity, they should be stated separately from one another. 6.2.2 It shall be clear what conformance to the Recommendation* means, in the sense of what shall be done, what is permitted but not mandatory, and what shall not be implemented, to conform to the Recommendation*. 6.2.3 It shall always be decidable whether an instance of communication conforms dynamically or not. For example, one should be able to look at a record of PDU activity and decide whether it is valid. 6.2.4 Requirements on the need to produce and content of a PICS shall be stated separately from the requirements on the protocol implementation itself. 6.3 Conformance sections 6.3.1 Each OSI* protocol and transfer syntax Recommendation* shall include a conformance section, which shall be expressed clearly and unambiguously. 6.3.2 Conformance sections shall distinguish between the following categories of information that they may contain: a) references to sections which state dynamic conformance requirements; b) static conformance requirements concerning the protocol implementation; c) static conformance requirements concerning multi-layer dependencies; d) what has to be stated in the PICS concerning (b) above; e) what has to be stated in the PICS concerning (c) above; f) what other information shall be provided (e.g. to assist testing) and whether this should be in the PICS or elsewhere. 6.3.3 In connection-oriented protocol Recommendations*, the conformance section should also include: a) the option to support either the initiation of a connection or the acceptance of a connection, or both; b) the requirement to be able to accept all correct sequences of PDUs received from peers, and respond with correct PDU sequences appropriate to the defined state of the connection; c) the requirement to be able to respond correctly to all incorrect sequences of PDUs received, the response being appropriate to the defined state of the connection. 6.4 Additional guidance for new protocol Recommendations* It is recognized that although existing protocol Recommendations* can be improved by the progression of an addendum to add a PICS proforma and make the conformance section align with the requirements stated above, it is unrealistic to expect any greater improvement. However, new protocol Recommendations* should be developed using the additional guidance given in Annex B to make the task of understanding the conformance requirements easier and less prone to ambiguity. 7. PICS proformas 7.1 Requirements on PICS proformas 7.1.1 The specific requirements to be met by suppliers in respect of each PICS they provide shall normally be stated in the relevant protocol Recommendation*. The specification of these requirements shall include a PICS proforma. In exceptional circumstances, the PICS proforma may be found in the abstract test suite Recommendation* rather than in protocol Recommendation*; in particular, this applies when the PICS proforma has to cover different versions of the same protocol coming from both ISO and CCITT. In normal circumstances, the PICS proforma should be found in an annex to the protocol Recommendation* and referenced in the conformance section, and, if necessary, progressed as an addendum rather than as part of the original Recommendation*. Note - A PICS for a specific protocol implementation will need to be accompanied by administrative and documentary information relating to the supplier, the system and its intended environment. 7.1.2 The PICS proforma shall be in the form of a questionnaire or checklist to be completed by the supplier or implementor of an implementation of the relevant OSI* protocol. 7.1.3 The PICS proforma shall cover all functions, elements of procedure, parameters, options, PDUs, timers, multi-layer dependencies and other capabilities identified in the protocol Recommendation*, including optional and conditional capabilities. It is desirable, where practicable, to include all mandatory features. There shall be a well-defined mapping between static conformance requirements and the PICS proforma and there shall be consistency between them. 7.1.4 The PICS proforma shall be preceded by a section that states: "The supplier of a protocol implementation which is claimed to conform to this Recommendation shall complete the following Protocol Implementation Conformance Statements (PICS) proforma and shall provide the information necessary to identify uniquely both the supplier and the implementation." 7.1.5 The name, version and date of the relevant protocol Recommendation* shall be stated on each page of the PICS proforma. 7.1.6 The PICS proforma for a specific protocol shall contain: a) explanations of special symbols, abbreviations, special terms, together with appropriate references; b) explicit instructions for completing and interpreting the PICS; c) provision for mentioning any mandatory feature that has not been implemented, with the appropriate rationale; d) one or more tables (or other kinds of form as necessary) to be completed to state the capabilities of the implementation in detail, including: 1) name of the feature, PDU type, timer, parameter, and other capabilities; 2) a column stating whether each is mandatory, optional, negotiable, or conditional; 3) wherever feasible, a column giving references to the relevant sections in the Recommendation; 4) a column giving the permitted range or values, if appropriate; 5) a column to be filled in to give the supported values or range of values, if appropriate; 6) a column to be filled in to state if each capability has been implemented; e) the proforma shall give a clear indication of the preferred data types (e.g. number bases, string types, octets, bits, seconds, minutes, etc.) for responses. 7.1.7 The PICS proforma shall use the following abbreviations as appropriate, unless they conflict with the abbreviations used in the specific protocol Recommendation*: m: mandatory o: optional c: conditional n: negotiable (using the protocol) x: exclusion of capability -: not applicable s: ability to send r: ability to receive 7.2 Guidance on PICS proformas Appendix III provides some general purpose examples to give guidance on the construction of PICS proformas. Section 2 - Requirements on abstract test suite specifiers 8. Test suite production process In order to present the requirements and general guidance for abstract test suite specification, it is useful to assume a normal form of the process of test suite production. This section describes the process in just such a normal form. Abstract test suite specifiers are not required to follow this normal form exactly, however, they are recommended to use a similar process involving the same steps, possibly in a different order. For the purposes of this Recommendation, the abstract test suite production process is assumed to be as follows: a) study the relevant Recommendation(s)* to determine what the conformance requirements (including options) are which need to be tested, and what needs to be stated in the PICS (see section 9); b) decide on the test groups which will be needed to achieve the appropriate coverage of the conformance requirements and refine the test groups into sets of test purposes (see section 10); c) specify generic test cases for each test purpose, using some appropriate test notation (see section 11); d) choose the test method(s) for which the complete abstract test cases need to be specified, and decide what restrictions need to be placed on the capabilities of the lower tester and (if appropriate to the chosen test method(s)) the upper tester and test coordination procedures (see section 12); e) choose the test notation for specifying the complete abstract test cases, and specify the complete abstract test cases, including the test step structure to be used (see section 13); f) specify the inter-relationships among the test cases and those between the test cases and the PICS and, as far as possible, the PIXIT, in order to determine the restrictions on the selection and parameterization of test cases for execution, and on the order in which they can be executed (see section 14); g) consider the procedures for maintaining the abstract test suite (see section 15). The remainder of this section provides requirements and guidance which relate to each step in the above process. 9. Determining the conformance requirements and PICS 9.1 Introduction Before an abstract test suite can be specified, the test suite specifier shall first determine what the conformance requirements are for the relevant Recommendation(s)* and what is stated in the PICS proforma concerning the implementation of those Recommendation(s)*. 9.2 Conformance requirements Section 1 of this part of the Recommendation specifies the requirements to be met by protocol specifiers as a prerequisite to the production of an abstract test suite for a particular protocol. In practice, early OSI* Recommendations* might not contain a clear specification of all the relevant conformance requirements. In particular, the static conformance requirements might be badly specified or even omitted. In such cases, the test suite specifier shall contribute to the production of an amendment or addendum to the relevant Recommendation(s)* to clarify the conformance requirements. If, however, an abstract test suite has to be produced in advance of the conformance requirements being clarified in the relevant Recommendation(s)*, then the test suite specifier shall adopt the short-term solution given in Annex C and state clearly in the test suite Recommendation* what the implications of this are (i.e. what is assumed to be mandatory, what conditional and what the conditions are, and what is assumed to be optional). 9.3 PICS proforma If no PICS proforma is included in a relevant protocol Recommendation*, the test suite specifier shall provide a PICS proforma to be processed as an addendum to that Recommendation*, or in exceptional circumstances (as discussed in  7.1.1) as an annex to the abstract test suite Recommendation*. Note - Progressing an addendum to an existing protocol Recommendation* may well be faster than progressing the abstract test suite Recommendation* because the PICS proforma is likely to be less controversial than the test suite and therefore is likely to require fewer revisions before a final text can be agreed. 10. Test suite structure 10.1 Basic requirements An abstract test suite shall comprise a number of test cases. The test cases shall be grouped into test groups, if necessary nested. The structure shall be hierarchical in the sense that an item at a lower level shall be completely contained within a higher level item. The structure need not, however, be strictly hierarchical in the sense that any one test case may occur in more than one test suite or test group. Similar test groups may occur in more than one higher level test group or test suite. The abstract test suite specifier shall ensure that a subset of the test purposes of each abstract test suite is concerned with capability testing, and another subset is concerned with behaviour testing. This need not lead to distinct test cases for behaviour and capability testing because it may be possible to use the same test steps for both a behaviour test purpose and for a capability test purpose. The test suite specifier shall provide an explanation of how the test purposes are derived from or relate to the protocol Recommendation*. The test suite specifier shall also provide a summary of the coverage achieved by the test suite. 10.2 The test group structure In order to ensure that the resulting abstract test suite provides adequate coverage of the relevant conformance requirements, the test suite specifier is advised to design the test suite structure in terms of nested test groups in a top down manner (see Figure 1). There are many ways of structuring the same test suite into test groups; no one way is necessarily right and the best approach for one test suite may not be appropriate for another test suite. Nevertheless, the test suite specifier shall ensure that the test suite includes test cases for whichever of the following categories is relevant: a) capability tests (for static conformance requirements); b) behaviour tests of valid behaviour; c) behaviour tests of syntactically invalid behaviour; d) behaviour tests of inopportune behaviour; e) tests focusing on PDUs sent to the IUT; f) tests focusing on PDUs received from the IUT; g) tests focusing on interactions between what is sent and received; h) tests related to each protocol mandatory feature; i) tests related to each optional feature which is implemented; j) tests related to each protocol phase; k) variations in the test event occurring in a particular state; l) timing and timer variations; m) PDU encoding variations; n) variations in values of individual parameters; o) variations in combinations of parameter values. This list is not exhaustive; additional categories might be needed to ensure adequate coverage of the relevant conformance requirements for a specific test suite. Furthermore, these categories overlap one another and it is the task of the test suite specifier to put them into an appropriate hierarchical structure. The following structure is an example of a single-layer test suite, provided for guidance: A. Capability tests A.1 Mandatory features A.2 Optional features said by the PICS to be supported B. Behaviour tests: response to valid behaviour by peer implementation B.1 Connection establishment phase (if relevant) B.1.1 Focus on what is sent to the IUT B.1.1.1 Test event variation in each state B.1.1.2 Timing/timer variation B.1.1.3 Encoding variation B.1.1.4 Individual parameter value variation B.1.1.5 Combination of parameter values B.1.2 Focus on what is received from the IUT - substructured as B.1.1 B.1.3 Focus on interactions - substructured as B.1.1 B.2 Data transfer phase - substructured as B.1 B.3 Connection release phase (if relevant) - substructured as B.1 C. Behaviour tests: response to syntactically invalid behaviour by peer implementation C.1 Connection establishment phase (if relevant) C.1.1 Focus on what is sent to the IUT C.1.1.1 Test event variation in each state C.1.1.2 Encoding variation of the invalid event C.1.1.3 Individual invalid parameter value variation C.1.1.4 Invalid parameter value combination variation C.1.2 Focus on what the IUT is requested to send C.1.2.1 Individual invalid parameter values C.1.2.2 Invalid combinations of parameter values C.2 Data transfer phase - substructured as C.1 C.3 Connection release phase (if relevant) - substructured as C.1 D. Behaviour tests: response to inopportune events by peer implementation D.1 Connection establishment phase (if relevant) D.1.1 Focus on what is sent to the IUT D.1.1.1 Test event variation in each state D.1.1.2 Timing/timer variation D.1.1.3 Special encoding variations D.1.1.4 Major individual parameter value variations D.1.1.5 Variation in major combination of parameter values D.1.2 Focus on what is requested to be sent by the IUT - substructured as D.1.1 D.2 Data transfer phase - substructured as D.1 D.3 Connection release phase (if relevant) - substructured as D.1 If the test suite is to cover more than one layer, then a single-layer test suite structure such as this could be replicated for each layer concerned. In addition, a correspondingly detailed structure could be produced for testing the capabilities and behaviour of multiple layers taken as a whole, including the interaction between the activities in adjacent layers. 10.3 Test purposes The test suite specifier shall ensure that, for each test case in an abstract test suite, there is a clear statement of the test purpose. It is suggested that these test purposes should be produced as the next refinement of the test suite, after its structure in terms of test groups has been defined. The test purposes could be produced directly from studying those sections in the relevant Recommendation(s)* which are appropriate to the test group concerned. For some test groups, the test purposes might be derivable directly from the protocol state table; for others, they might be derivable from the PDU encoding definitions or the descriptions of particular parameters, or from text which specifies the relevant conformance requirements. Alternatively, the test suite specifier could employ a formal description of the protocol(s) concerned and derive test purposes from that by means of some automated method. Whatever method is used to derive the test purposes, the test suite specifier shall ensure that they provide an adequate coverage of the conformance requirements of the Recommendation(s)* concerned. There shall be at least one test purpose related to each distinct conformance requirement. In addition, it is possible to give guidance on the meaning of "adequate coverage" with reference to the above example. In order to express this, a shorthand notation will be used: the letter "x" will represent all appropriate values for the first digit in the test group identifier, and similarly "y" for the second digit, so that B.x.y.1 stands for B.1.1.1, B.1.2.1, B.1.3.1, B.2.1.1, B.2.2.1, B.2.3.1, B.3.1.1, B.3.2.1 and B.3.3.1. With this notation, a minimum "adequate coverage" for the above example is considered to be as follows: a) for capability test groups (A.1, A.2): 1) at least one test purpose per relevant feature, class or subset; 2) at least one test purpose per relevant PDU type and each major variation of each such type, using "normal" or default values for each parameter; b) for test groups concerned with test event variation in each state (B.x.y.1, C.x.1.1, D.x.y.1):  at least one test purpose per relevant state/event combination; c) for test groups concerned with timers and timing (B.x.y.2, D.x.y.2): 1) at least one test purpose concerned with the expiry of each defined timer; 2) at least one test purpose concerned with very rapid response for each relevant type of PDU; 3) at least one test purpose concerned with very slow response for each relevant type of PDU; d) for test groups concerned with encoding variations (B.x.y.3, C.x.1.2, D.x.y.3):  at least one test purpose for each relevant kind of encoding variation per relevant PDU type; e) for test groups concerned with valid individual parameter values (B.x.y.4, D.x.y.4): 1) for each relevant integer parameter, test purposes concerned with the boundary values and one randomly selected mid-range value; 2) for each relevant bitwise parameter, test purposes for as many values as practical, but not less than all the "normal" or common values; 3) for other relevant parameters, at least one test purpose concerned with a value different from what is considered "normal" or default in other test groups; f) for test groups concerned with invalid individual parameter values (C.x.1.3, C.x.2.1): 1) for each relevant integer parameter, test purposes concerned with invalid values adjacent to the allowed boundary values plus one other randomly selected invalid value; 2) for each relevant bitwise parameter, test purposes for as many invalid values as practical; 3) for all other relevant types of parameter, at least one test purpose per parameter; g) for test groups concerned with combinations of parameter values (B.x.y.5, C.x.1.4, C.x.2.2, D.x.y.5): 1) at least one test purpose per "critical" value pair; 2) at least one test purpose per pair of interrelated parameters to test a random combination of relevant values. 11. Generic test case specification 11.1 Introduction The test suite specifier is recommended to specify a generic test suite, particularly if there is an intention to produce more than one abstract test suite. A generic test suite shall consist of one generic test case for each test purpose. Each generic test case will be a refinement of its test purpose, which can be used as a common root of corresponding abstract test cases for different test methods. If a generic test suite is produced in advance of abstract test suites, then it will be a useful step in the design process. If the generic test suite is produced after the production of at least one abstract test suite, then it will provide a means of relating different test suites to one another and analyzing where there may be gaps in their coverage. 11.2 Description of generic test cases A generic test case consists of a test description of an "initial state" [of the test body] and a specification of the test body in a standardized test notation. The "initial state" includes not only the protocol state, but also any necessary information concerning the state of the SUT and the testing environment. The test body is that part of a test case in which verdicts related to the test purpose are assigned to foreseen outcomes. The test body: a) shall be defined in the style of either the Remote or Distributed test method; Note - Generic test cases may use the full expressive power of these methods (see  12.3.3 for details), including the use of abstract local primitives. b) shall assign verdicts to all possible outcomes; all outcomes yielding "pass" verdicts shall be explicitly identified, whereas all outcomes yielding "fail" or "inconclusive" verdicts shall be either identified or categorized (which may include categorization of default verdicts); c) shall be described using a standardized test notation; the Tree and Tabular Combined Notation (TTCN) (defined in Annex D) is recommended. 11.3 Relation of generic to abstract test cases For a particular abstract test method there may be many abstract test cases that can be derived from a single generic test case. A major difference between an abstract test case and a generic test case is that the abstract test case includes specifications of a preamble and a postamble. The preamble starts from a chosen stable state and leads to the required initial state of the test body. The postamble starts from the end of the test body and returns to a chosen stable state. The preamble and postamble may be realized in different ways depending on the degree of control and observation provided by the test method used, or on the variety of different possible stable states which the derived abstract test case can start from and end in. These abstract test cases are simply different ways of achieving the same test purpose. In addition, the test body of an abstract test case may be different from the corresponding generic test case if the test method used for the abstract test case is different from that used for the generic test case. If a generic test suite is produced, it shall be used as the means of relating corresponding abstract test suites for different abstract test methods. 12. Abstract test methods 12.1 Introduction Each abstract test suite shall be specified in terms of the control and observation of events in accordance with one of the abstract test methods defined in this section. The chosen test method determines the points at which control and observation shall be specified and the categories of events which shall be used (e.g. (N-1)-ASPs, (N)-PDUs). 12.2. General specification of the abstract test methods 12.2.1 End-system IUTs For IUTs within end-system SUTs there are four categories of abstract test methods, one local, and three external ones which assume the lower tester is located remotely from the SUT and connected to it by a link or network. For generality, the test methods are described with reference to an IUT in which the highest layer is numbered "Nt" (for "top") and in which the lowest layer protocol to be tested is numbered "Nb" (for "bottom"). The IUT may implement protocols in layers lower than "Nb", but these are not of interest in the test method descriptions. The description applies to single-layer IUTs by taking Nt to be equal to Nb. 12.2.2 Abstract local primitives Abstract test suite specifiers may, if necessary, define a set of abstract local primitives (ALPs) to be used in specifying the test suite. An ALP is an abbreviation for a description of control and/or observation to be performed by the upper tester, which cannot be described in terms of ASPs but which initiate events or state changes defined within the relevant protocol Recommendation(s)*. ALPs may be used with any abstract test method for end- system IUTs, but, for simplicity, will not be shown in any of the figures which illustrate those methods. Any test case which uses an ALP shall be optional in the abstract test suite. 12.2.3 The local test methods Abbreviation: L In this method: a) the abstract test suite is specified in terms of control and observation of (Nb-1)-ASPs and (Nb) to (Nt)-PDUs; b) the abstract test suite is also specified in terms of control and observation of (Nt)-ASPs; c) the abstract test suite may also be specified in terms of control and observation by the upper tester of abstract local primitives (ALPs); d) the method requires access to the lower and upper boundaries of the IUT and a mapping between the specified ASPs and their realization within the SUT; e) the requirements for the test coordination procedures are specified in the abstract test suite but no assumption is made regarding their realization; f) the upper and lower testers are required to achieve control and observation of the specified ASPs and the required test coordination procedures. They are assumed to be integrated into the SUT. This method is illustrated in Figure 1. 12.2.4 External test methods 12.2.4.1 The distributed test method Abbreviation: D In this method: a) the abstract test suite is specified in terms of control and observation of (Nb-1)-ASP"s and (Nb) to (Nt)-PDUs; b) the abstract test suite is also specified in terms of control and observation of (Nt)-ASPs; the method requires access to the upper boundary of the IUT and a mapping between the (Nt)-ASPs and their realization within the SUT; c) the abstract test suite may also be specified in terms of control and observation by the upper tester of ALPs; d) the requirements for the test coordination procedures are specified in the abstract test suite but no assumption is made regarding their realization; e) the upper tester is required to achieve control and observation of the specified (Nt)-ASPs and to achieve the effects of the required test coordination procedures; no other assumptions are made; f) the lower tester is required to achieve control and observation of specified (Nb)-ASP"s and specified PDUs and to achieve the required test coordination procedures. This method is illustrated in Figure 2. FIGURE 1/X.290, PART 2 FIGURE 2/X.290 - PART 2 The local test method The distributed test method FIGURE 3/X.290, PART 2 FIGURE 4/X.290, PART 2 The coordinated test method The remote test method 12.2.4.2 The coordinated test method Abbreviation: C In this method: a) the abstract test suite is specified in terms of control and observation of (Nb-1)-ASP"s, (Nb) to (Nt)-PDUs and test management PDUs (TM-PDUs); b) (Nt)-ASPs need not be used in the specification of the abstract test suite; no assumption is made about the existence of an upper boundary of the IUT; c) the requirements for the test coordination procedures are specified in the abstract test suite by means of a standardized test management protocol; d) TM-PDUs may be defined which correspond to ALPS; e) the upper tester is required to implement the test management protocol and achieve the appropriate effects on the IUT; f) the lower tester is required to achieve control and observation of specified (Nb)-ASP"s and specified PDUs (including TM-PDUs). This method is illustrated in Figure 3. 12.2.4.3 The remote test method Abbreviation: R In this method, provision is made for the case where it is not possible to observe and control the upper boundary of the IUT. Also in this method: a) the abstract test suite is specified in terms of control and observation of (Nb-1)-ASP"s and (Nb) to (Nt)-PDUs; b) (Nt)-ASPs are not used in the specification of the abstract test suite; no assumption is made about the existence of an upper boundary of the IUT; c) the abstract test suite may also be described in terms of control and observation of ALPs within the SUT; d) some requirements for test coordination procedures may be implied or informally expressed in the abstract test suite but no assumption is made regarding their feasibility or realization; e) abstractly the SUT needs to carry out some upper tester functions to achieve whatever effects of test coordination procedures and whatever control and/or observation of the IUT are implied, informally expressed or described by ALPs in the abstract test suite for a given protocol; these functions are not specified nor are any assumptions made regarding their feasibility or realization; f) the lower tester is required to achieve control and observation of specified (Nb)-ASP"s and specified PDUs and should attempt to achieve the implied or informally expressed test coordination procedures in accordance with the relevant information in the PIXIT. This method is illustrated in Figure 4. 12.2.5 Single-layer, multi-layer and embedded variants Each category of test methods has a variant which can be applied to single-layer IUTs (abbreviation: S), and another which can be applied to multi- layer IUTs (abbreviation: M), when the set of adjacent layers is to be tested in combination (as a whole). For a multi-layer IUT in which the protocols are to be tested layer by layer, an embedded variant of the test methods has been defined (abbreviation: E). If control and observation are applied to a means of access to the upper boundary of the entities under test within SUT, then the test methods are normal (and no E is added to the abbreviated name). If, however, control and observation are applied through one or more OSI* layer entities above the entities under test, the test methods are called embedded (and an E is appended to the abbreviated name). Names of particular variants of the test methods shall be formed as follows: For example, DSE is the abbreviation for the "distributed single embedded" test method. 12.2.6 Open relay-systems For open relay-systems, loop-back and transverse abstract test methods are defined. They are given the abbreviated names: YL and YT, respectively. 12.3 Single-layer test methods for single-layer IUTs in end-systems For single-layer test methods, the abstract model of the IUT is called the (N)-entity under test. 12.3.1 The Local Single-layer test method The Local Single-layer (LS) abstract test method defines the points of control and observation as being at the service boundaries above and below the (N)- entity under test. The test events are specified in terms of (N)-ASPs above the IUT, and (N-1)-ASPs and (N)-PDUs below the IUT, as shown in Figure 5. In addition, ALPs may be used as test events. Abstractly, a lower tester is considered to observe and control the (N-1)-ASPs and (N)-PDUs while an upper tester observes and controls the (N)-ASPs and ALPs. The requirements to be met by test coordination procedures used to coordinate the realizations of the upper and lower testers are defined in the abstract test suites, although the test coordination procedures themselves are not. 12.3.2 The Distributed Single-layer test method The Distributed Single-layer (DS) abstract test method defines the points of control and observation as being at the service boundaries above the (N)-entity under test and above the (N-1)-Service Provider at the SAP remote from the (N) entity under test. The test events are specified in terms of (N)-ASPs above the IUT and (N-1)-ASP"s and (N)-PDUs remotely, as shown in Figure 6. In addition, ALPs may be used as test events. Abstractly, lower and upper testers are again considered to observe and control the behaviour at the respective points. The requirements to be met by the test coordination procedures are again defined in the abstract test suites, although the procedures themselves are not. For lower layers (1-3) where it may be unrealistic to specify observation and control of (N-1)-ASPs, the lower tester observation and control shall be specified in terms of (N)-PDUs and, when necessary, changes in the state of the underlying connection. Note - For example, the state of the underlying connection could be changed by setting up a new connection, or resetting or closing an existing connection. The observation and control to be performed by the lower tester can optionally be specified in terms of (N)-ASP"s where this will reduce the size of the test case specification without loss of required precision. 12.3.3 The Coordinated Single-layer test method The Coordinated Single-layer (CS) abstract test method is an enhanced version of the DS method, using a standardized upper tester and the definition of a test management protocol to realize the test coordination procedures between the upper and lower testers. The same standardized upper tester and test management protocol are not necessarily applicable to all test suites which use the coordinated method. Standardized upper testers and test management protocols are applicable to a particular standardized abstract test suite for the coordinated test method and may not be applicable to other abstract test suites for the coordinated method. There is only a single point of control and observation, above the (N- 1)-Service Provider at the SAP remote from the (N)-entity under test. Test events are specified in terms of (N-1)-ASP"s, (N)-PDUs and TM-PDUs, as shown in Figure 7. For lower layers (1-3) where it may be unrealistic to specify observation and control of (N-1)-ASP"s, the observation and control shall be specified in terms of TM-PDUs, (N)-PDUs and, when necessary, changes in the state of the underlying connection. Concerning the test management protocol: a) the test management protocol shall be implemented within the SUT directly above the abstract service boundary at the top of the IUT; b) the IUT shall not be required to interpret TM-PDUs, only pass them to and from the upper tester; c) a test management protocol is only defined for testing a particular protocol and so does not need to be independent of the underlying protocol; d) verdicts on test cases shall not be based on the ability of the SUT to exhibit any ASP or parameter of an ASP at the upper service boundary of the IUT, since this would contradict the definition of the coordinated method in that the upper service boundary of the IUT is not a point of control and observation in this method. However, it is recommended that the test management protocol be defined separately from the abstract test suites(s) in order to facilitate the task of the implementor of an upper tester. This definition (as with the definition of any OSI* protocol defined by ISO or CCITT) can refer to the ASPs of its underlying service (i.e. the ASPs at the upper service boundary of the IUT); e) TM-PDUs which correspond to ALPs are optional and there is no requirement for the upper tester to support them. FIGURE 5/X.290, PART 2 FIGURE 6/X.290, PART 2 The LS test method The DS test method FIGURE 7/X.290, PART 2 FIGURE 8/X.290, PART 2 The CS test method The RS test method 12.3.4 The Remote Single-layer test method The Remote Single-layer (RS) abstract test method defines the point of control and observation as being above the (N-1)-Service Provider at the SAP remote from the (N)-entity under test. The test events are specified in terms of the (N- 1)-ASP"s and (N)-PDUs remotely, as shown in Figure 8. In addition, ALPs may be used as test events. Some requirements for test coordination procedures may be implied or informally expressed in the abstract test suites, but no assumptions shall be made regarding their feasibility or realization. For the lower layers (1-3) where it is unrealistic to specify observation and control of (N-1)-ASP"s, the observation and control shall be specified in terms of (N)-PDUs and when necessary the state of the underlying connection. In addition, in order to overcome the lack of specification of behaviour above the (N)-entity under test, where necessary the required behaviour of the system under test shall be specified in terms of the (N-1)-ASP"s or (N)- PDUs which need to be observed by the lower tester. This form of implicit specification shall be taken to mean "do whatever is necessary within the system under test in order to provoke this required behaviour". Note - Such implicit specification is necessary with this test method for any test case which requires an IUT initiated event which cannot be initiated by means of an ALP. Since ALPs may only be defined if the same effect cannot be achieved by ASPs, then any PDU which can be initiated by an ASP needs implicit specification to allow it to be initiated in this test method. However, it is possible that some of the test cases in the abstract test suite cannot be executed (e.g. transmission and maintenance of busy conditions, transmission of consecutive unacknowledged Data PDUs, etc.). In such instances, it is left to the test laboratory and client to negotiate the method by which these tests can be accomplished. Even with such implicit specification of control of the IUT, in this method it is possible to specify control but not observation above the IUT, except through the use of ALPs. This is a major difference between this and the DS and CS test methods. 12.4 Multi-layer test methods for multi-layer IUTs (LM, DM, CM, RM) Multi-layer testing, when the combined allowed behaviour of the multi- layer implementation is known, involves testing all the layers of a multi-layer IUT as a whole, without controlling or observing any of the inter-layer boundaries within the IUT. In the Local Multi-layer (LM) test method the points of observation and control are the service boundaries directly above and below the IUT. The test events shall be specified in terms of the (Nt)-ASPs and ALPs above the IUT and the (N-1)-ASPs and (N) to (Nt)-PDUs below the IUT. In the Distributed Multi-layer (DM) test method the points of observation and control are at the service boundary above the IUT and above the (N-1)-Service Provider at the SAP remote from the IUT. The test events shall be specified in terms of the (Nt)-ASPs and ALPs above the IUT and the (N-1)-ASP"s and (N) to (Nt)- PDUs remotely. In the Coordinated Multi-layer (CM) test method the point of observation and control is above the (N-1)-Service Provider at the SAP remote from the IUT. The test events shall be specified in terms of the (N-1)-ASP"s, the (N) to (Nt)-PDUs and the TM-PDUs. The test management protocol shall be designed to operate over the (Nt)-Service, where (Nt) is the highest layer in the IUT. In the Remote Multi-layer (RM) test method the point of observation and control is above the (N-1)-Service Provider at the SAP remote from the IUT. The test events shall be specified in terms of the (N-1)-ASP"s and the (N) to (Nt)- PDUs, ALPs and the implicit specification of the control of the SUT behaviour when necessary. Some requirements for test coordination procedures may be implied or informally expressed, but no assumptions shall be made regarding their feasibility or realization. 12.5 Single-layer testing of multi-layer IUTs or SUTs (embedded methods) In embedded single-layer test methods testing is specified for a single layer within a multi-layer IUT, including the specification of the protocol activity in the layers above the one being tested but without specifying control or observation at service boundaries within the multi-layer IUT. Thus in a multi-layer IUT from layer (N) to (Nt), abstract test cases for testing layer (Ni) shall include the specification of the PDUs in layers (Ni+1) to (Nt) as well as those in layer (Ni). The Local Single-layer Embedded (LSE) test method uses the same points of control and observation as the LM test method for the same set of layers. The test events shall also be specified in the same terms as for the LM test method. The difference is that the LSE test method concentrates on a single-layer at a time, whereas the LM test method tests the multi-layer IUT as a whole. In the Distributed Single-layer Embedded (DSE) test method for layer (Ni) within a multi-layer IUT from layer (N) to (Nt) the points of observation and control are at the service boundary above the IUT and above the (Ni-1)- Service Provider at the SAP remote from the IUT, as illustrated in Figure 9(a). The test events shall be specified in terms of (Nt)-ASPs and ALPs above the IUT and (Ni-1)-ASP"s and (Ni) to (Nt)-PDUs remotely. Note - For the top layer in the multi-layer IUT, (Nt), this method is the same as the DS test method. The Coordinated Single-layer Embedded (CSE) test method uses features of both the CM and DSE test methods. The test events shall be specified in terms of (Ni-1)-ASP"s, (Ni) to (Nt)-PDUs and TM-PDUs and the test management protocol shall be designed to operate over the (Nt)-Service. This is illustrated in Figure 9(b). The Remote Single-layer Embedded (RSE) test method uses the same point of control and observation as the RS test method for the same layer, but differs from the RS test method in that (Ni+1) to (Nt)-PDUs shall be specified in test cases for layer (Ni). Successive use of a single-layer embedded test method (from layer (N) to (Nt)) is called incremental testing of a multi-layer IUT. The DSE/CSE/RSE methods are defined for a single layer under test in a multi-layer IUT. This does not mean that there cannot be accessible service boundaries within the multi-layer IUT, just that no such boundaries are used in the test methods. Thus, all layers between the layer under test and the highest layer for which PDUs are expressed as test events in the abstract test suite shall be regarded as being part of the multi-layer IUT. Note - DME/CME/RME test methods could theoretically be defined to test multiple layers as a whole within a larger multi-layer IUT, but in order to avoid excess complexity, they are not detailed in this Recommendation. 12.6 Relay test methods There are two abstract test methods for relay system testing: a) the loop-back test method (YL): used for testing a relay system from one subnetwork. This test method is illustrated in Figure 10. For this test method there are two points of observation and control on one subnetwork at SAPs remote from the (N)-Relay. For connection-oriented protocols, it requires that the two test connections are looped together on the far side of the (N)-Relay, but it is not specified whether this looping is performed within the (N)- Relay or in the second subnetwork. For connectionless protocols, it requires that the PDUs are looped back within the second subnetwork and addressed to return to the second point of observation and control. b) the transverse test method (YT): used for testing a relay system from two subnetworks. This test method is illustrated in Figure 11. In this test method there are two points of observation and control, one on each subnetwork, at SAPS remote from the (N)-Relay. FIGURE 9/X.290, PART 2 The embedded test methods FIGURE 10/X.290, PART 2 Loop-back test method (YL) FIGURE 11/X.290, PART 2 Transverse test method (YT) 12.7 Choice of test method 12.7.1 Introduction Before an abstract test suite can be defined, it is necessary to study all the environments in which the protocol is likely to be tested and establish accordingly the abstract test method(s) to be used for the production of one or more abstract test suites. Abstract test suite specifiers shall place a requirement in the abstract test suite Recommendation* defining which abstract test method(s) shall be supported as a minimum by any organization claiming to provide a comprehensive testing service for the protocol(s) in question. 12.7.2 IUT environments There is a relation between the test methods and the configurations of the real open systems to be tested. Section 7.2, Part 1 of this Recommendation gives a full account of the classification of systems and IUTs. When choosing a test method, the test suite specifiers should identify, if they have not already done so, whether the test suites they plan to produce are for IUTs which a) are single or multi-layer; b) belong to end or relay systems; c) belong to complete or partial systems; d) belong to fully open or mixed systems; e) have service boundaries accessible or not; f) are special purpose (i.e. to be used by a single application) or general purpose (i.e. to be used by several applications). 12.7.3 Applicability of the abstract test methods The possibility of developing an abstract test suite for a given abstract test method will depend on the protocol(s) being considered, together with the results of the study described in subsection 12.7.2. This applies to the possibility of developing test suites for a given combination of methods (e.g. incremental) or a given variant of a method (e.g. embedded). Some considerations concerning the applicability of the methods to different layers are discussed in Appendix I of Part 1 of this Recommendation. One or more appropriate abstract test methods shall be selected for the protocol being considered. Priorities should be assigned to the various test methods which have been identified, according to the configurations which are most likely to be found in real systems. 12.7.4 Illustrative examples Appendix IV provides an illustrative example of the choice of abstract test methods for given protocols. 12.8 Test coordination procedures For effective and reliable execution of conformance tests, some set of rules is required for the coordination of the test process between the lower tester and the upper tester. The general objective of these rules is to enable the lower tester to control remotely the operation of the upper tester or vice versa, in ways necessary to run the test suite selected for the IUT. These rules lead to the development of test coordination procedures to achieve the synchronization between the lower tester and the upper tester and the management of information exchanged during the testing process. The details and how these effects are achieved are closely related to the characteristics of the SUT, as well as the external test methods. For each abstract test suite using the coordinated, distributed or local test methods, a standard set of test coordination procedures should be developed. This is because those procedures depend on the functionality of the upper tester and definitions of test cases. In the case of the coordinated test methods (CS, CSE, CM) the test coordination procedures are realized by the standardization of a test management protocol. The test management protocol needs to be able to convey requests to the IUT to achieve the effect of a service primitive or ALP and to convey back to the lower tester the record of observations of effects equivalent to the occurrence of service primitives or ALPs. The upper tester should be an implementation of the test management protocol. It will be necessary to add test cases to the abstract test suite for the purpose of testing that the upper tester conforms to the requirements of the test management protocol specification. Such test cases do not contribute to the conformance assessment of the IUT. When defining test cases for the local and distributed test methods, the test suite specifier shall record any constraints on the upper tester and/or test coordination procedures which may be necessary. 13. Specification of abstract test suites 13.1 Test cases 13.1.1 The abstract test suite specifier shall select an appropriate standardized notation in which to define the abstract test cases. The Tree and Tabular Combined Notation (TTCN), defined in Annex D, is defined for this purpose. 13.1.2 Once the test notation and test method have been chosen, then the generic test cases can be expanded into abstract test cases. There are two main kinds of change required to convert a generic test case into an abstract test case. The first is to express the test body in terms of control and observation required by the test method, and, if relevant, include a description of the synchronization needed between upper and lower testers. The second kind of change is to specify the preamble and postamble. 13.1.3 Specification of preambles and postambles may result in more than one test step for each. The preamble shall start in a stable state and progress to the desired state. Conversely, the postamble shall progress from the final state of the test body to a stable state. A small number of stable states shall be defined for the protocol concerned, always containing as a minimum the "idle" state. Each abstract test case shall be capable of being run on its own and shall therefore include test steps to start the preamble from the "idle" state and to end the postamble in the "idle" state. However, other stable starting and final states for an abstract test case can be useful when efficient concatenation of abstract test cases is required. Furthermore, in designing the test step structure within the abstract test cases, the test suite specifier can benefit from using the same test steps in several abstract test cases. 13.1.4 In converting from generic test cases to abstract test cases, the test suite specifier shall ensure that the initial state for the test body is preserved, the pass paths through the test body are preserved and the assignment of verdicts to outcomes remains consistent. In order to maintain consistency, the following conditional requirements apply when assigning verdicts to outcomes: a) if the behaviour of the preamble and the postamble are valid then the verdict assigned to a particular outcome shall be the same as that assigned to the corresponding outcome in the generic test case; b) if the preamble results in the initial state of the test body not being reached, although there is no invalid behaviour, then the verdict shall be inconclusive; c) if the preamble results in the initial state of the test body not being reached, because of invalid behaviour, then the verdict shall be "fail but test purpose inconclusive" ("fail type 3"); d) if the postamble exhibits invalid behaviour and the generic test case (or test body) verdict is "pass" or "inconclusive", then the verdict shall be "fail but test purpose passed" ("fail type 2") or "fail but test purpose inconclusive" ("fail type 3"), respectively; e) if the generic test case (or test body) verdict is "fail" then invalid behaviour in the postamble shall not change the verdict ("fail type 1"). 13.1.5 The test suite specifier shall also ensure that each abstract test case explicitly identifies all the outcomes assigned the verdict "pass" and identifies or categorizes all the remaining foreseen outcomes, assigning to each individual outcome or category a verdict "fail" or "inconclusive". All unforeseen outcomes in the test body shall be assigned either a) the verdict "fail"; or b) the verdict "inconclusive". The test suite specifier shall ensure that the application of a) or b) is consistent throughout the abstract test suite. If a) is chosen, then any unforeseen outcome in the preamble shall be assigned the verdict "fail but test purpose inconclusive" ("fail type 3"), and any unforeseen outcome in the postamble shall be treated as a protocol violation, leading to the appropriate type of fail verdict. If b) is chosen, then any unforeseen outcome in the preamble shall be assigned the verdict "fail but test purpose inconclusive" ("fail type 3"), and any unforeseen outcome in the postamble shall be assigned the appropriate type of fail verdict. 13.2 Test suites An abstract test suite specification comprises a set of test cases and test steps. Preceding the test cases themselves shall be the following information: a) abstract test suite name, date of origin and version number; b) names (and version numbers) of the protocol Recommendation(s)* for which test cases are provided; c) names (and version numbers) of the service Recommendation(s)* whose primitives are specified as being observed; d) name (and version number) of the Recommendation* defining the test notation, or a reference to an annex for the same if it is not standardized elsewhere; e) name of target test method; f) description of the coverage of the test suite; for example, the functional subsets of the protocol Recommendation(s)* that are tested; g) description of the structure of the test suite, in terms of test groups and their relationship to the protocol Recommendation(s)*: h) description of the test coordination procedures (if applicable in the test method); i) statement of which test cases are optional and which mandatory for conformance to the abstract test suite Recommendation*; j) information to assist the test realizer and test laboratory in their use of the abstract test suite Recommendation* (see section 14). 14. Use of an abstract test suite specification The abstract test suite specifier shall provide information in the abstract test suite Recommendation* to assist the test realizer and test laboratory in their uses of the test suite. This information shall include, but is not limited to, the following: a) a mapping of the abstract test cases to the PICS proforma entries to determine whether or not each abstract test case is to be selected for the particular IUT; the mapping should be specified in a suitable notation for Boolean expressions; b) a mapping of the abstract test cases to the PIXIT proforma entries, to the extent that they are known by the abstract test suite specifier, to parameterize the test suite for the particular IUT and to determine which selected test cases cannot be run with the particular IUT. The test suite specifier shall define a partial PIXIT proforma. This shall contain a list of all the ALPs used in the test suite (or test management protocol) and a list of all parameters for which the test suite requires values. If any of the required parameter values will be found in the PICS, the PIXIT proforma entry for each such parameter shall reference the corresponding entry in the PICS proforma. Note - Other aspects of the PIXIT proforma are for further study. c) a list of the abstract test cases in the order that shall be used in the Protocol Conformance Test Report (PCTR), together with any information which shall be preserved in the PCTR on the status of each test case; this is a contribution to the development of a PCTR proforma; d) any restrictions that there may be on the order in which the test cases may be executed; e) reference to the description of the test coordination procedures (if applicable in the chosen test method); f) any necessary timing information. 15. Test suite maintenance Once an abstract test suite has been specified and is in use, it can be expected that errors and omissions in it will be detected by those who are using the test suite. The abstract test suite specifier shall in such circumstances progress the updating of the test suite via the relevant rapid amendment procedures. In addition, from time-to-time, changes will be made to the protocol Recommendation(s)* to which the test suite relates. The abstract test suite specifier shall ensure that the test suite is updated as soon as possible after changes to the relevant protocol Recommendation* have been ratified.