中华人民共和国国家标准信息技术开放系统互连表示层一致性测试套第部分基本编码测试套结构和测试目的发布实施国家质量技术监督局发布前言本标准等同采用国际标准信息技术开放系统互连表示层一致性测试套第部分基本编码测试套结构和测试目的在信息技术开放系统互连表示层一致性测试套总标题下目前包括以下个部分第部分即表示协议测试套结构和测试目的第部分即基本编码测试套结构和测试目的本标准由中华人民共和国信息产业部提出本标准由信息产业部电子标准化研究所归口本标准起草单位清华大学中国电子技术标准化研究所本标准主要起草人徐明伟陈立宇夏宜吴建平郑洪仁前言国际标准化组织和国际电工委员会是世界性的标准化专门机构国家成员体它们都是或的成员国通过国际组织建立的各个技术委员会参与制定针对特定技术范围的国际标准和的各技术委员会在共同感兴趣的领域内进行合作与和有联系的其他官方和非官方国际组织也可以参与国际标准的制定工作对信息技术和建立了一个联合技术委员会即由联合技术委员会提出的国际标准草案需分发给国家成员体进行表决发布一项国际标准至少需要的参与表决的国家成员体投票赞成国际标准是由信息技术联合技术委员会的开放系统互连数据管理和开放分布式处理分委员会制定的在信息技术开放系统互连表示层一致性测试套总标题下目前包括以下个部分第部分表示协议测试套结构和测试目的第部分基本编码测试套结构和测试目的第部分公共表示抽象测试套引言本标准规定了一个测试套结构和一组测试目的供测试套制定者作为评价与基本编码规则的一致性所需的所有标准化一致性测试套的基准是在中为抽象语法记法一而定义的相关的标准化一致性测试的基本目的是根据相关的协议标准建立统一的一致性测试和无歧义的评价规程来检查表示层实现根据对语法进行转换的能力这些测试套的标准化将使不同测试实验室得出的测试结果具有可比性并能够被普遍地接受从而减少对同一个实现所进行的重复测试基于本标准的一致性测试套是由以下人员设计的提供对基本编码规则进行一致性测试服务的实验室为上述测试实验室提供测试手段的测试实现者编码和或解码的实现者一致性测试的目的是提高不同实现互工作的可能性尽管单靠一致性测试本身并不能保证互工作一致性测试通过确定某实现具有所需的功能以及在典型通信实例中其行为与协议规范相一致来增加每一个实现与编码规则规定相一致的可信度中华人民共和国国家标准信息技术开放系统互连表示层一致性测试套第部分基本编码测试套结构和测试目的国家质量技术监督局批准实施范围本标准根据为整个的基本编码规定了测试套结构和测试目的本标准并不规定这些一致性测试是如何实现或使用的也不规定测试结果是如何表示或使用的注不同测试方法的选择可能会限制测试目的的实现本标准规定的测试套结构和测试目的形成了抽象测试套规范的一般框架任何一致的一般或抽象测试套不仅要求基于本标准而且要求基于这样一些确定的抽象语法这些语法决定了与本标准定义的测试目的相关的抽象测试例中用到的特定的类型和值注由于为编码设计的抽象测试套是基于抽象语法的所以多个一般或抽象的编码测试套对于包含多个抽象语法的应用上下文可能是必要的本标准不包括对相关协议实现的一个通用的性能可靠性或健壮性的评价也不包括对编码解码器设计的评价引用标准下列标准所包含的条文通过在本标准中引用而构成为本标准的条文本标准出版时所示版本均为有效所有标准都会被修订使用本标准的各方应探讨使用下列标准最新版本的可能性信息技术开放系统互连基本参考模型第部分基本模型信息处理系统开放系统互连面向连接的表示服务定义信息处理系统开放系统互连面向连接的表示协议规范信息处理系统开放系统互连抽象语法记法一规范信息处理系统开放系统互连抽象语法记法一基本编码规则规范信息技术开放系统互连一致性测试方法和框架第部分基本概念信息技术开放系统互连一致性测试方法和结构第部分抽象测试套规范定义参考模型的定义本标准采用中定义的下列术语表示层表示协议数据单元表示服务定义本标准采用中定义的下列术语抽象语法一致性测试方法和框架定义本标准采用中定义的下列术语抽象测试例基本互连测试行为测试的能力能力测试一致性测试一致性测试套动态一致性要求被测实现不合适测试事件下测试器形式表协议实现一致性声明静态一致性要求语法无效测试事件被测系统测试组测试目的缩略语数据单元表示协议数据单元表示服务数据单元其他缩略语抽象语法记法一见已定义上下文集合功能单元被测实现下测试器测试套结构与测试目的一致性遵从本标准的抽象测试套应该指定测试套所基于的抽象语法由一组测试例组成该组测试例与第章规定的测试目的集合或子集相对应明确地表明所使用的测试目的覆盖所有在第章中规定的相关测试目的并适用于该测试套所选择的覆盖范围和测试方法根据适当的值增加选中的测试目的该的值由指定的抽象语法确定使用一个测试套结构该结构是第章规定的测试套结构的适当子集或全集使用第章中规定的命名约定来命名其测试组和测试例这种命名约定使第章中使用的测试组和测试例的名字在具有相关性时能够被使用对于第章如果在选中的测试目的和用于测试例选择的形式表之间存在一定关系的话必须保持规定的关系包含与指定抽象语法相关的的引用遵从测试方法引言本标准使用的测试方法遵从的要求和与抽象测试套之间的关系本标准中的测试目的来源于的基本编码规则即这个来源重点为测试协议的一致性方面标识测试目的然而对于使用何种测试方法这些测试目的应如何实现以及在测试时需注意的实践或经济约束未加以考虑对于抽象测试套所指定的抽象语法在本标准中规定的测试目的的适当覆盖范围可能要求为单个测试目的选择多个基于该抽象语法的不同类型的值对这些值的编码和解码的测试可能无法在一个单独的测试例中完成所以本标准将所有指定的测试目的映射到各测试组分支从任何这样的代表测试目的的测试组分支可以引出一个或多个抽象测试例应注意本标准的意图是基本编码的所有抽象测试套都应包括对本标准中提到的所有测试目的的测试然而抽象测试套的制定者也可按照第章的要求将本标准的测试目的划分成子集测试选择为选择适当的测试例必须基于这样的的内容该与用于引出抽象测试套的抽象语法相关由于应用的并没有明确地指定的哪种类型和或值受条目的影响抽象测试套的制定者应提供对这些的索引以便进行测试例的选择判决每个抽象测试例的判决是依据的能力与基本编码规则要求的行为的一致性以及对应用的中所列功能和参数值的支持来确定的一致性评价基于各个判决标准的基本编码规则以及的相关应用测试套覆盖范围测试目的被规定并组织起来以覆盖类型的所有各种编码形式该覆盖范围是根据作为指定抽象定义成员的类型的值域由抽象测试套的指定者通过对测试组分支的测试例的选择来确定的这里的测试组分支是指如代表测试目的的测试组等等测试套结构基本编码规则的测试套由测试组和测试例组成每个测试例有一个精确定义的目的在测试套中使用了嵌套测试组以提供按逻辑排序的测试例测试组可以按任意深度嵌套它们可用于帮助规划开发理解或执行测试套该测试套主要包括两个测试组编码器的测试它用于验证对值的编码是否符合基本编码规则和相关应用的要求解码器的测试它测试对符合基本编码规则和相关应用要求的编码进行正确解码的程度以及对所有不符合基本编码规则或指定抽象语法的编码进行检测的程度每个测试组都可进一步分成许多更低级的测试子组主要测试组的完整结构在图中给出图测试套结构大标记外在标记隐含标记私有标记类型变体上下文特定标记应用标记通用标记图编码类型变体测试通用标记应用标记类型变体上下文特定标记私有标记图解码类型变体测试命名约定本章描述了测试组目标和测试目的中所用到的形式表两种用到的形式表描述如下第一种形式表用于含嵌套测试组的测试组它描述了该测试组的目标并列出了它下面的测试子组该形式如下第项是必备的它是该测试组在本标准中的正式章条号第项是必备的它是该测试组的符号名注意该名字的最后一项是以全称给出的后面接着一个缩写第项是可选的引用它指向基本标准中的相关章条如果对于该测试组没有合适的引用该项可省略第项是必备的它是该测试组目标的自然语言陈述第项由该测试组所包含的下一级测试子组的引用组成第形式表用于由这样的一组测试例组成的测试组这些测试例各有一个基于指定抽象语法的不同的值它描述该测试组的目标该形式表如下第项是必备的它是该测试组在本标准中的正式章条号第项是必备的它是该测试组的符号名注意该名字的最后一项是以全称给出的后面接着一个缩写第项是可选的引用它指向基本标准中的相关章条如果对于该测试组没有合适的引用该项可省略第项是必备的它是该测试组目标的自然语言陈述优先级本标准定义了基本编码的测试目的本标准并不打算与抵触或对其提供解释如果存在本标准与相抵触的情况那么认为本标准是错误的具有高优先级注任何人在使用标准时若遇到不准确或模棱两可的情况则应立即通知我国的标准化主管部门以便使该情况得到调查并采取适当的措施编码器的测试测试组目标测试应用于用户数据参数的基于基本编码规则的编码器的实现该测试包括检查该实现是否可以对基于指定抽象语法的值进行编码的功能当有多个合法的编码变体存在时测试并不需要对它们明确地进行选择子组类型变体长度变体类型变体测试组目标检查指定抽象语法中所有类型的值如果有可能的话应选中这些值这样实现可以使用以长度八位位组的短格式编写的编码注实现可选择使用短格式长格式或是不定格式的长度八位位组如果可以的话子组通用标记应用标记上下文特定标记私有标记隐含标记外在标记大标记通用标记测试组目标检查带通用标记的类型值子组布尔型整型位串八位位组串空客体标识符客体描述符外部类型序列集合枚举类型实型布尔测试组目标检查布尔型子组真假真测试组目标检查真值假测试组目标检查假值整型测试组目标检查整型子组正数负数零正数测试组目标检查正数值其中至少包括一个大于的值负数测试组目标检查负数值其中至少包括一个小于的值零测试组目标检查值位串测试组目标检查位串子组空按八位位组对齐未使用位空测试组目标检查为空的位串值按八位位组对齐测试组目标检查位数为八的倍数的位串值未使用位测试组目标检查位数不为八的倍数的位串值八位位组串测试组目标检查八位位组串子组空非空空测试组目标检查为空的八位位组串值非空测试组目标检查非空的八位位组串值空测试组目标检查为空的串客体标识符测试组目标检查客体标识符客体描述符测试组目标检查客体描述符外部类型测试组目标检查外部类型序列测试组目标检查序列注对被测试的抽象语法若其语法和语义允许序列的所有元素都省略那么必须在该测试组中包括测试目的测试组目标检查子组空非空空测试组目标检查为空的序列值非空测试组目标检查非空的序列值集合测试组目标检查集合注对被测试的抽象语法若其语法和语义允许集合的所有元素都省略那么必须在该测试组中包括测试目的测试组目标检查子组空非空空测试组目标检查为空的集合值非空测试组目标检查非空的集合值测试组目标检查测试组目标检查测试组目标检查测试组目标检查测试组目标检查测试组目标检查测试组目标检查测试组目标检查测试组目标检查测试组目标检查枚举类型测试组目标检查枚举类型实型测试组目标检查实型应用标记测试组目标检查任意可用于指定抽象语法的应用标记这里所选的值可参见子组上下文特定标记测试组目标检查任意可用于指定抽象语法的上下文特定标记这里所选的值可参见子组私有标记测试组目标检查任意可用于指定抽象语法的私有标记这里所选的值可参见子组隐含标记测试组目标确保隐含标记被正确处理子组单隐含标记多隐含标记单隐含标记测试组目标测试单隐含标记多隐含标记测试组目标测试应用于内置的类型的多隐含标记外在标记测试组目标确保外在标记被正确处理子组单外在标记多外在标记单外在标记测试组目标测试单外在标记多外在标记测试组目标测试应用于内置的类型的多外在标记大标记测试组目标确保大于的标记数被正确编码并以必需的最少八位位组编码长度变体测试组目标检查该实现是否可以为不能以长度八位位组的短格式编码的值生成合法长度的编码注实现可选择使用长格式或是不定格式的长度八位位组如果可以的话子组整型位串八位位组串客体标识符序列集合枚举类型实型整型测试组目标检查整型注不能以长度八位位组的短格式编码的整型值至少必须包含个二进制位大多数应用可能不使用这种值位串测试组目标检查位串八位位组串测试组目标检