南京邮电大学第7章一致性测试技术(1-概述)第7章协议一致性测试技术(1-概述)2内容提要概述1一致性测试概念2一致性测试方法3第7章协议一致性测试技术(1-概述)3一致性测试:概述测试是检查一个网络部件某一方面的特性是否满足某种特定需求时常用的一种方法。验证一项新的协议实现,通常需要进行多项测试。一般要考虑以下四个方面:一致性测试(conformancetesting)互操作测试(interoperateabilitytesting)性能测试(performancetesting)鲁棒性测试(robustnesstesting)一致性测试旨在检测所实现的协议实体(或系统)与协议规范的符合程度(而验证则是检查形式化规范的内部一致性)互操作测试建立在一致性测试基础之上,重点检测同一种协议的不同实现版本之间,或同一类协议的不同实现版本之间互通的能力和互操作能力性能测试与前两种测试不同,它不是一种功能测试,而是主要检测协议实体或系统的性能参数,如吞吐量、传输时延、联接时间、执行速度、并发度等,并根据这些参数对协议实现的性能做出评价鲁棒性测试旨在检测协议实体或系统在各种恶劣环境下运行的能力,如信道被切断、通信结点掉电、注入干扰报文等。此外,一些不严格进行一致性测试评价的生产厂商常进行的互连通测试一般认为是一致性测试的一个方面。第7章协议一致性测试技术(1-概述)4一致性测试原理当第一个公用数据网投入使用后,该网络的管理者要做的一件重要事情是:确定购买的商用网络设备是否符合相关的网络标准,但又不必关心设备的内部细节,这就是协议的一致性测试问题。ReferenceSpecificationImplementationUnderTest(IUT)Tester一致性测试(ConformanceTesting)协议验证TestSequence给定一个已知协议的规范(specification),例如用有限状态机描述的协议规范,和一个未知的协议实现。对于测试者而言,协议实现相当于一个黑盒子,测试者可以提供输入信号(报文),然后观察输出结果。通常将被测试的协议实现称为IUT(ImplementationUnderTest,被测实现)或SUT(SystemUnderTest,被测系统)。将一系列用来测试实现一致性的输入测试序列为一致性测试集(conformancetestsuite)。测试集是根据协议的规范得生成的,它是进行协议一致性测试的基础。第7章协议一致性测试技术(1-概述)5一致性测试vs.验证“一致性测试”的目的是测试一个协议的给定实现外部行为是否符合协议的规范。如果一个协议的形式化规范中存在一个设计错误,则当且仅当完全基于该规范的协议实现(faithfulimplementation)中也包含同样的错误时,该实现才能通过协议的一致性测试。如果协议的实现与协议的规范不符,则一致性测试将失败。不要将“一致性”理解为“同一协议的不同实现之间的一致性”。“一致性”指的是被测系统(也就是协议的各种实现)与协议标准的一致性。而“验证”则是检查形式化规范的内部一致性。第7章协议一致性测试技术(1-概述)6一致性测试:发展概况20世纪80年代初,欧洲的许多研究机构开始在建立标准化的协议一致性测试活动方面进行合作,其目的是制定一个在OSI框架内进行协议一致性测试的指导标准。最初的参与者包括法国巴黎的ADI、德国Darmastadt的国家通信研究所(GMD)和英国的国家物理实验室(NPL)。这些研究机构在这之前曾分别关注于一致性测试的不同方面的研究。例如,•ADI设计并实现了一台X.25协议测试仪;•GMD开发了一种钟对OSI体系结构中的会话层协议进行被动监控和错误检测的分析工具;•而NPL则实现了一个用来对网络服务进行测试的测试系统。美国的国家标准和技术局(NIST)由于成功地研制了OSI体系结构中的第4类运输协议的测试系统,所以后来也被邀请参加了这一合作项目。第7章协议一致性测试技术(1-概述)7一致性测试:发展概况(Cont.)到1984年,更多来自欧洲和北美的研究人员加入到这一研究之中,取得的成果:各种测试结构、测试语言、各种测试方法的可行性、测试序列的自动生成等等。这些成果及其术语有许多在后来由ISO制定的一致性测试标准ISO9646中被采用。到了90年代,随着一系列国际标准的制定,这一领域正迅速走向成熟。第7章协议一致性测试技术(1-概述)8一致性测试:发展概况(Cont.)国际标准化组织ISO专门制定了一套国际标准ISO9646,主要包括:ISO9646-1(CCITTX.290)一般概念ISO9646-2抽象测试集(suite)规范ISO9646-3树表组合记法TTCN(TreeandTabularCombinedNotation)ISO9646-4测试实现ISO9646-5一致性认证处理对测试实验室及其客户的要求ISO9646-6测试实验室的操作此外,ISO还制订出了一些针对某一层协议的一致性测试的国际标准。例如,ISO10025为运输协议的一致性测试标准,ISO10168为会话协议的一致性测试标准第7章协议一致性测试技术(1-概述)9一致性测试:发展概况(Cont.)ISO9646的制定是协议一致性测试领域的一个里程碑ISO定义的一序列一致性测试标准为协议的一致性测试提供了基本方法和框架,为测试集制定了设计步骤和描述方法,并为测试系统的实现提供了指导。此后,协议一致性测试技术得到了快速发展,一些形式化工具和测试系统得到建立,部分OSI协议的测试集标准被制定出来。由于协议测试的技术复杂性和庞大开销,一般是协议实现者和协议用户所力不能及的事情。第7章协议一致性测试技术(1-概述)10一致性测试:发展概况(Cont.)因此,进行独立于生产者和用户的第三方测试是常采用的方法。例如,美国的国家标准和技术局、新罕布什尔大学的互操作测试实验室IOL,德国国家通信研究所的高速网络测试环境,韩国电子和通信研究所的宽带ISDN测试系统BITS等,在协议的一致性测试以及测试结构与测试环境等方面的研究都达到了一定水平,并开始提供部分测试服务和测试系统。国内的清华大学吴建平教授的实验室在一致性测试方面处于国内领先地位。第7章协议一致性测试技术(1-概述)11一致性测试:发展概况(Cont.)有一点特别要提到的是,90年代以来,人们逐渐考虑在测试研究中大量采用形式化方法,力图使测试研究以严格的数学语言为基础来清晰无二义性地讨论一致性的概念和方法特别是体现在ISO和ITU-T共同开始的“一致性测试中的形式化方法”计划。该计划的主要目的是以协议形式化技术为基础、应用目前的形式化方法到协议一致性测试的各个阶段,如对一致性概念和测试过程的形式定义、对一致性测试集和测试例的形式描述以及基于形式规范的测试生成的定义等方面。第7章协议一致性测试技术(1-概述)12一致性测试:发展概况(Cont.)近几年来,随着计算机网络技术,特别是因特网的不断发展,人们发现以前基于传统的OSI模型的对等协议测试的理论已经不能适应实践的需要,因此需要进行更多的理论和实践工作,如复杂的分布式系统的测试、高速网络测试和TCP/IP协议测试(如路由协议的一致性测试)等。第7章协议一致性测试技术(1-概述)13一致性测试:前提一致性测试是假定了协议标准本身是正确的这一前提下进行的。虽然在进行一致性测试时可能发现协议中存在的某些问题或甚至是错误,但这并不是一致性测试的本身的目的。一致性测试的目的是希望通过这个测试可增加同一协议的不同实现之间能够互连的概率。通过一致性测试可以给用户提供两个信息:通过了一致性测试的协议实现,具有协议所要求的各种能力。在具有代表性的通信实例中,被测试的协议实现的外部特性与标准协议的要求一致。第7章协议一致性测试技术(1-概述)14内容提要概述1一致性测试概念2一致性测试方法3第7章协议一致性测试技术(1-概述)15一致性测试要求一、一致性测试要求第7章协议一致性测试技术(1-概述)16一致性测试要求在协议标准中,通常包括一致性条款,规定对相关实现的一致性要求CR(ConformanceRequirement)强制性要求。即在所有情况下都要进行检查的要求。有条件的要求。即在标准所规定的具体条件下必须满足的要求。任选的要求。即为协调实现而可以选择的要求。禁止的要求。在标准中还要规定出什么事情是禁止做的。可以将上述一致性要求划分为两组:动态一致性要求静态一致性要求第7章协议一致性测试技术(1-概述)17动态一致性要求DCRDCR:能够决定一个标准所允许的可能的行为(或行为集)的要求(包括可选的):DCR隐式定义了与协议使用有关的最大一组能力。一个具体的系统若与某一标准动态地一致,则这个系统的行为就应当是该标准所允许的全部行为集合中的一个成员。动态一致性要求常用动词“将”描述,例如,“当收到一个XYZPDU时,接收端将发送一个ABCPDU”。第7章协议一致性测试技术(1-概述)18静态一致性要求SCRSCR:为了最大限度地实现系统之间的互连,必须将各种要求加以分类(例如对所有实现的强制性要求、有条件或任选的要求等),形成的约束:定义各类协议子集的内容(即协议实现者欲实现某类协议所必须包括的内容),定义PDU的最大长度、各种协议参数、变量、计时器的取值范围等等。SCR是促进互通而允许的最小实现能力。第7章协议一致性测试技术(1-概述)19DCR和SCR由此可见,动态一致性是指协议规范中规定的通信实例中的协议实现所必须呈现的外部特性的组合或允许的各种选择性组合,而静态一致性是指协议规范中为使协议实现能够互连而定义的功有类别、功能单元的分组以及选择性功能等等。第7章协议一致性测试技术(1-概述)20一致性测试要求:选项由于选项要求给协议实现者留下了选择的余地,必须要有一个关于已实现的能力和选项的说明,从而对照相关要求对该实现进行一致性测试。这个说明就是协议一致性陈述PICS(ProtocolImplementationConformanceStatement)。为测试一个协议的实现,测试实验室除了需要由PICS提供的信息外,还需要与IUT和它的测试环境的信息,即协议实现额外信息PIXIT(ProtocolImplementeXtraInformationStatement)。它作为抽象测试集的一部分提出。这些要求往往使用表格形式来描述。第7章协议一致性测试技术(1-概述)21第7章协议一致性测试技术(1-概述)22第7章协议一致性测试技术(1-概述)23第7章协议一致性测试技术(1-概述)24一致性系统上述一致性要求必须精确地、无二义性地被描述,这当然也要用到我们前面介绍的形式描述技术。我们将同时满足静态和动态一致性要求,并且符合PICS中陈述的能力的系统或实现称为一致性系统。第7章协议一致性测试技术(1-概述)25一致性测试级别二、一致性测试级别第7章协议一致性测试技术(1-概述)26一致性测试级别为什么要将一致性测试分级?一致性测试的主要目的是提高不同系统之间能够互通的概率。虽然一致性是保证互通能力的必须条件,但并不是充分条件。如果两个实现都能与某个协议标准的子集相一致,则这两个系统之间在些情况下互通要比在其它情况下互通容易实现。所以为了实现互通,应对系统的PICS进行比较,特别是协议标准的不同任选能力上。实际的限制和经济上的考虑使得人们不能进行穷举测试。ISO9646将协议一致性测试分为四级,由低到高分别为基本互连测试、能力测试、行为测试、一致性分解测试。第7章协议一致性测试技术(1-概述)27基本互连测试对协议中的主要特征进行有限的测试,以确定被测对象是否有足够的标准化程序实现初步互连。基本互连测试旨在检查IUT是否具备进一步测试的条件,是否有最小的连接能力,能否接收和发送数据。第7章协议一致性测试技术(1-概述