一致性测试

2024-11-27

一致性测试(精选7篇)

一致性测试 篇1

1. 协议一致性测试的概念

协议测试是软件测试领域的一个分支, 属于黑盒测试, 它包括了三种类型的测试:一致性测试, 互操作性测试以及性能测试。

协议一致性测试是协议测试的一种, 依据某种协议对该协议的实现进行测试, 并判断该协议的实现是否与标准一致, 属于功能性测试。其主要目的是确认产品的功能符合标准规范的要求, 减少产品在运行过程中发生错误的风险。

协议一致性测试依据的标准是某种协议, 测试对象是设备的相应协议的实现, 目的是检验实现的输出是否与标准规定的一致。协议一致性测试的两大要素一是测试执行的标准, 另外是测试对象的输出结果与期望值的对比, 以确定被测系统的实现的可靠性以及提高在与其他同类型设备互联时的成功率。

2. 协议一致性测试的方法

测试系统对被测系统的访问模型依据被测协议实现的所处的上下层次来建立的。上下层的访问和被测协议实现是通过服务访问点来连接的, 测试系统对被测协议实现的测试控制和观察的接口可以设置在服务访问点, 也可以设置在服务提供层上或其他系统接口上。一个测试系统两个测试控制和观察的接口, 分别对应于被测实现的上层和下层访问点。测试系统对应于上层访问点的部分是上测试体, 对应于下层访问点的是下测试体。

IUT (Implementation Under Test) 和上层测试体之间通过抽象服务原语言 (ASP) 来通信, IUT和下层测试体协议数据单元 (PDU) 交换数据。在实际测试中, PDU采用抽象服务原语编码基本的消息信令, 而不是直接进行交互。协议一致性测试使用了被测试系统实现所使用的层间服务原语和协议数据单元PDU进行控制和解析。根据不同观察点的设置位置, 可以分为本地测试和外部测试, 本地测试适用于产品的内部测试而外部测试使用于远程方的测试。协议测试多用外部测试, 加上辅助的内部测试。外部测试可分为分布式, 协调式和远程式, 每一种又可以根据测试层次分为单层的, 多层的或嵌入式的。

本地测试法是协议测试中最常见的一种方法, 如图1所示。在这种测试模型中, 上下测试体以及协议协调过程是在同一个系统中完成的。这种模型假设被测协议层的上下层边界都存在访问接口, 测试系统通过接口对IUT施加激励进而观察输出的响应, 从测试系统的角度来说, 这种接口也成为控制观察点PCO (Point of Control and Observation) 。

分布式测试法, 协调式测试法和远程测试法这三种模型都假设IUT的下边界不存在接口。分布式测试模型下层测试体和IUT处于两个不同的系统中, 并且通过底层的服务协议来实现互连。同本地测试法不同, 分布式测试法的协调过程使用PCO交换的抽象服务原语来进行的, 上下测试体之间的同步是通过被测试系统实现的, 因此测试判决是通过下测试体作出的。

协调测试法是一种高级的抽象测试方法, 与分布式测试法相比较, 被测试IUT上边界与上测试体之间不需要有访问接口, 使用标准的测试管理协议和测试管理数据单元进行自动化的测试和管理。下测试体作为主控方, 自动对测试作出判决。上下测试体之间的通信可以基于被测试的协议, 也可以使用其他可靠的协议来传输控制数据单元, 用于高层协议的一致性测试。

远程测试法的主要优点是不需要显式地测试协调过程, 同时下测试体和IUT之间的同步依靠被测试的协议来实现, 上测试体的存在也是可以选择的。远程测试模型采用下测试模型通过其下层的服务系统与同一层次的被测系统交换数据单元。

3. 协议一致性测试的内容

协议一致性测试的内容主要包括了分析被测实体的具体实现所采用的协议规范和特性。要根据协议的规范, 研究协议的每个特性, 结合具体的被测实现, 建立仿真测试事件集合或交互行为序列, 这个用于描绘测试任务的事件集合或交互序列直观上使用时序的信令图来表示, 在具体的编程时使用TTCN3语言来编写事件集合或交互序列的测试用例。

协议一致性测试的标准包括了3个部分:抽象测试集, 协议实现一致性说明和协议实施附加信息, 如图2所示。可执行的协议测试集合基于上诉三部分基础上生成。测试生成使用抽象测试集描述特定的协议文本, 并且要求抽象测试集也是标准的。测试实现特定测试集的执行方法过程, 在这个过程中, 抽象测试集被转变为可以在具体测试设备或平台上可执行的测试用例, 也就是测试用例的编译选项的配置和编译过程以及可执行体和动态运行配置文件的生成。测试执行是运行已经可执行化的测试执行体, 观察被测实现的外部响应最终得到测试判决。

被测试对象应该自己系统协议实现的标准说明, 以用于测试时能以此作为测试对照。测试方可以根据PICS (Protocol Implementation conformance statements) 协议实现的一致性陈述和PIXIT (Protocol Implementation Ixtra information for testing) 进行配置参数和测试用例的选择, 进而得到将要测试的用例。

测试过程的状态变化经历了稳定状态, 被测试状态, 测试体结束状态, 验证结束状态。具体转换过程如图3所示:

在测试过程开始阶段, IUT首先由前置动作过程设置成初始的测试状态, 并且由测试用例激活测试过程, 即从稳定状态进入到测试状态。测试用例在测试体中经过一段时间运行后, 进入结束状态, 如果结果不一致, 就需要进一步分析结果中存在的问题, 进而转入验证结束状态, 如果结果相同, 通过后置动作恢复为稳定状态, 并且等待进入下一次测试过程。

协议一致性测试的过程分为了三个阶段, 第一阶段是测试生成, 其主要为某一特定的协议描述一个独立的抽象测试集合, 包括使用自然语言, 信令流图和测试编程语言。第二阶段是测试实现, 即将一组抽象测试集中的抽象测试用例转变为在实际测试设备或平台上可以执行的测试实体, 通常包括了测试用例的编译和链接以及测试环境的配置, 通常要模拟被测对象的具体所处的外部环境和执行要素等细节。第三个阶段即是执行测试用例, 对被测对象的协议实现施加测试激励, 通过观察返回的激励响应, 测试系统对比响应协议标准说明而得出的一致性判决, 必将测试判决记录到对应的测试日志或报告中。

测试生成是一致性测试的第一个阶段, 其要求是从协议描述中抽象独立的协议实现, 该实现是用标准化的协议测试语言描述的, 并且能够对协议的多方面进行描述, 生成测试集, 如图4所示。

通常抽象测试集使用一种抽象的测试方法。因此, 标准测试集更加应该使用一种标准话的经过严格定义的并且独立于任何实现的测试表示法来描述。国际标准化组织推荐了一种半形式化的测试语言TTCN (树表结合表示法) , 它具有严格的语法定义和灵活的抽象数据描述功能, 使抽象测试集描述更加标准化, 通用化和可变化。TTCN的描述具有典型的结构化层次, 在每个测试集是由称为测试用例的Test Case组成, 一个测试用例描述了一组测试步, 用来测试协议的一个需求或者一致性。每个测试用例又可以分为测试步和测试事件, 测试步包含了多个测试事件, 一个测试事件是在PCO上发生的一个交互动作, 如发送和接受动作。测试步就是由多个连续的测试事件组成。

从图上可以看出, 测试执行阶段首先是静态一致性检查, 依据协议标准的静态一致性需求对IUT进行静态检查, 而后在执行器上执行测试用例来检查IUT对动态一致性的满足程度。每个测试用例的判决结果为:通过, 失败或不确定性。最后静态一致性检查的结果和所有的测试用例执行的结果通过组合判断, 才会形成一个有关IUT的判决。只有当所有的测试都为失败时, 最终的结果才会是通过, 并且有专门的测试报告或测试日志来记录。

测试执行的机制是基于编译的测试执行, 基于编译的测试执行过程, 可执行的测试体是由许多的测试用例集编译而成的可执行文件体, 由抽象测试集到可执行体的转换是由转换器或编译器在测试之前完成的。可执行体只有在测试过程中才存在, 它顺序地读取测试事件, 编解码协议描述抽象服务原语和传输服务原语, 并将接受到经过解码的抽象服务原语与测试用例中的抽象原语模板比较, 以确定下一步要执行的测试步。

5. 总结

本文主要讨论了协议一致性测试方法的概念以及应用过程, 分别介绍了本地测试法、协调式测试发、分布式测试法和远程式测试法四种测试模型, 最后对协议一致性测试方法的测试内容进行了详细的论述。

参考文献

[1]庞其详, 刘云龙.通信协议的一致性测试[J].通信技术与发展, 1995, 34 (3)

[2]赵会群.通信软件测试技术基础[M].北京:人民邮电出版社, 2004, 35 (5)

[3]ETSI.ETSI ES 201 563-1 V3.2.1-2007 Methods For Testing AndSpecification (MTS) -The Testing And Test Control Notation Version 3, Part1:TTCN-3 Core Language[S], 2007, 53.

[4]ETSI.ETSI ES 205 876-5 V3.2.1-207 Methods For Testing AndSpecification (MTS) -The Testing And Test Control Notation Version3, Part5:TTCN-3 Runtime Interface (TRI) [S].2007, 65

AVS视频一致性测试分析 篇2

通常视音频编码标准只定义压缩码流的语法结构和解码过程,对编码过程和算法并无定义。不同的研发者可以采用完全不同的算法,因此编码比特流中的参数具有很大的灵活性,这要求解码器能够正确解码各种符合标准语法规定的码流。为验证编码比特流中语法元素的正确性和解码器的解码能力,需要对编码比特流和解码器进行一致性测试,即判断编码比特流以及解码器是否符合标准规定。

AVS标准中,视频部分(AVS-P2)规定了视频编码比特流的语法和语义结构;一致性测试部分(AVS-P4)规定了为验证编码比特流和解码器是否符合标准的要求,应如何设计测试码流和测试方法,描述了编码比特流和解码器的一致性测试过程,并给出了一些典型的权威码流用于对解码器的验证。

2 编码比特流一致性测试定义和方法

编码比特流一致性测试的目的是验证码流中的语法元素及语法结构的正确性,看其是否符合AVS-P2标准的要求。具体而言,可以选用参考解码器作为比特流验证器对码流进行解析,并抽取出全部语法元素,分析这些参数值是否符合AVS-P2的规定。如果所测试的比特流不引起比特流验证器的任何错误或参数值非法的消息,则可称其为符合标准的编码比特流[1]。

按照标准规定,测试内容主要包括:起始码的测试、序列头的测试、用户和扩展数据的测试、I图像头的测试、PB图像头的测试、条带的测试、宏块的测试和块的测试等方面。表1给出了AVS-P4对起始码的测试示例。

AVS-P2规定的起始码是一组特定的比特串,用于标记不同类型数据起始位置,表1只列举了对部分起始码的测试要求,并未全部列举。起始码应不具有二义性,不应出现在码流的其他任何位置。

3 解码器一致性测试

3.1 解码器一致性测试的定义

解码器一致性测试的主要目的是测试解码器是否能够正确解码符合AVS-P2语法规范的编码比特流。一个符合标准的被测解码器应该在规定的时间内,对特定档次和级别的测试码流中所有语法元素进行唯一正确的解码,解码结果应该与参考解码器的解码结果完全一致。为了验证解码器应付各种极限情况的解码能力,所设计的测试码流一般使用AVS-P2中规定的极限参数,如最大运动矢量,最大比特率等。由于AVS-P2不包含对显示处理的要求,所以解码器不需考虑显示处理过程。

通用的一致性测试方法通常从以下几个方面来测试视频解码器的一致性[2]:

1)算术精度要求。传统变换编码中采用了浮点变换,在解码过程中会产生漂移(编解码不匹配)的可能性。因此,被测解码器的输出结果与参考解码器的输出可能会存在精度误差。

2)解码输出和时序要求。由于解码器缓冲区尺寸以及输入输出速率不匹配等问题,可能会引起解码器缓存区的上溢和下溢(上溢是指解码器来不及解码当前收到的所有数据,下溢是指解码器接收不到数据)。解码器应具有处理时序要求以及防止解码缓冲区上溢和下溢的能力。

3)未来扩展的兼容性要求。兼容性要求包括后向兼容解码器和前向兼容解码器。后向兼容是指按旧的编码标准设计的解码器,可以对新标准的编码比特流进行解码;前向兼容是指按新的编码标准设计的解码器,可以对旧的编码标准的比特流进行解码。

4)与零比特填充、用户数据和保留扩展相关的其他要求。

3.2 解码器一致性测试的方法

解码器的测试方法主要有静态测试和动态测试2种,分别测试解码器不同方面的解码能力。

1)静态测试

由于AVS中采用了精确的整数DCT/IDCT变换,要求被测解码器解出的数据应该和参考解码器解出的数据完全相同,所以AVS的静态测试不需要对反变换精度进行测试。图1示出在AVS中基准档次的各个级别下,分别以4∶2∶0和4∶2∶2格式对解码器进行测试的步骤。

2)动态测试

动态测试记录显示处理的输出、检查场和帧的显示顺序和定时的正确性,场的奇偶序必须精确,如果场和帧重复编码,也要求解码处理的输出是重复的。但是,由于显示处理不包括在视频标准范围内,有时尽管视频解码器是合法的,但显示输出却发生了错误,此时视频解码器必须存储其输出,以便执行动态测试。

3.3 测试码流

虽然AVS-P4中规定的测试码流不可能测试到所有情况,但已覆盖了最基本的解码要求。下面是AVS-P4对测试码流的描述,概括为以下几个方面[1]:

1)静态测试

一般性静态测试:编码比特流中包含AVS-P2规范中所有可能的参数。VLC解码的静态测试:编码比特流中包含VLC码表中所有可能的情况。

2)动态测试

存储带宽的动态测试:编码比特流中包括的所有宏块是单向或双向预测。对亮度块有1/4的插补精度。位和符号分布的动态测试:编码比特流中包含位或符号的不规则分布。

3)其他静态和动态测试

跳过宏块的测试:编码比特流中包含各种情形的跳过宏块。加权预测的测试:编码比特流中使用了加权预测。最大跳帧数目的测试:编码比特流中包含最大126个跳帧。视频编解码和随机访问的测试:编码比特流中包含视频编解码及随机访问点。填充比特的测试:编码比特流中包含stuffing_bit和stuffing_byte。伪起始码仿真的测试:编码比特流中包含伪起始码(emulation_bit)。其他常规测试:其他一些常规性的测试。

AVS-P4规定了一些测试码流用于对解码器进行测试,但没有明确测试码流的设计方案。表2中列出根据AVS-P4描述的测试点所设计的3个测试比特流的示例。

测试码流#1中每一帧图像包含有6个条带(slice),P,B帧的slice0全部选用16×16大小的块模式进行编码,slice1全部为16×8的宏块模式,slice2全部为8×16的宏块模式,slice3全部为8×8的宏块模式,slice4全部为帧内的宏块,slice5全部为P帧跳过或者B帧跳过和直接模式宏块,该码流用于测试解码器对所有宏块类型和子块类型的解码能力,如果解码器能够正确解码该码流,说明被测解码器至少能够处理对所有宏块类型的正确解码,属于一般静态测试;测试码流#16的主要特点是通过对各帧的量化参数的控制,使连续编码图像之间比特率变化很大,该码流用于检查解码器对比特率大幅变化时的解码能力,属于存储器带宽的动态测试;测试码流#21中P,B帧的每个条带的每个宏块都使用了加权预测,且在不同的条带中分别使用了加权预测的亮度、色度缩放参数(0~255)和平移参数(-128~+127)最大、最小值的各种组合,该码流用于测试解码器对加权预测参数在极限情况下对加权预测宏块的解码能力。此外,AVS-P4还规定了更多针对不同测试点的测试码流,此处不再列举。

4 AVS视频解码器测试

视频解码器在DVD、数字电视、手机电视等接收设备上都会被广泛的应用。无论是开发硬件解码芯片还是设计软件解码器产品,在完成各子功能模块的设计之后,首先要对各模块进行功能测试,看是否能够正常工作,然后再进行整个解码系统的整体测试。对于软件解码器的各个子模块的测试比较容易,根据不同模块的功能要求,设计相应的测试比特流,分别对解码器各个模块进行功能测试即可;但对于硬件解码芯片的各个模块的测试相对来说比较困难。一种方法是可以与其他硬件单元一起来验证待测的目标单元,比如:要测试逆变换单元,可以通过逆扫描/逆量化单元得到逆变换单元需要的输入数据,但这样存在一个问题,就是逆扫描/逆量化单元需要提前验证好,所以这种方法效率较低;还有一种方法是可以采用软硬件相互协调的方法,为待测的硬件单元搭建一个软件的测试平台,用软件生成被测硬件单元所需要的输入数据,这种方法有更高的测试效率[2]。

在完成了各个子模块的成功测试后,要将各个模块组成一个整体系统,采用大量的测试比特流进行系统的整体功能测试。由于标准中描述的都是一些比较特殊的测试码流,即码流中的参数比较极端的情况,因此通过测试很容易发现在开发解码器过程中由于考虑不周到而导致的错误。通过反复的修正和测试,直到所开发的解码器各个功能模块满足标准的要求。

5 小结

一致性测试是视频编解码器开发过程中必不可少的一项重要工作,目前一些科研单位和公司为了方便进行视频编解码器的测试,也开发了一些相应的码流分析仪,如中科院计算所开发了AVS完备性测试码流发生分析仪,既可作为AVS码流信号源,用来产生标准的AVS测试码流,用于检测AVS解码器的完备性;同时也对AVS编码器产生的AVS码流进行一致性分析和检测,以判定该码流是否为符合标准规范的一致性码流,从而确定产生该码流的编码器是否符合标准。AVS完备性测试码流发生分析仪的研制,在很大程度上方便了一致性测试工作的进行。

参考文献

[1]数字音视频编解码技术标准工作组.信息技术先进音视频编码第4部分:一致性测试(FCD)[S].2006.

一致性测试 篇3

研究协议测试理论的原因是一个标准化的协议并不不能确保该协议的实现之间能够成功的进行通信。虽然形式化验证的方法尽量的避免了协议实现与协议描述的差距, 但在一个协议入网之前还是需要一种有效的方法来对协议的实现进行判别。协议的测试就是要解决以上问题。协议的测试理论包括了协议测试的整个过程, 其主要研究内容包括测试组织、测试方法、测试生成、测试集描述、测试执行和判决、测试结果分析等多个方面。其中研究的重点是如下几个方面:

1测试生成

主要关注如何从协议标准的描述中获得进行协议测试所需要的测试集。

2测试集描述

目的是寻找一种合适的语言或公式, 从而能以简洁、通用和结构化的方式表达协议测试所需要的测试例。

3测试的执行和判决

这是协议测试过程中的关键阶段, 如何解释测试例的含义以及如何做出测试判决是它的研究内容。

4测试结果分析

协议测试过程的最后一个阶段, 研究如何从测试结果中分析生成测试报告并得出对被测协议实现的结论。

由于协议行为的复杂性, 难以用人为构造测试例的办法覆盖一个协议的所有行为, 所以研究一种测试例自动生成的方法十分必要。测试例经过协议实现的执行之后就要对运行结果进行判断, 有严格语法语义定义的形式化方法是自动、准确判断协议行为的关键。基于Petri网的协议测试技术是解决以上问题的有效方案。

基于Petri网的协议一致性测试方案

一致性测试是一种“功能测试”, 它依据一个协议的描述对协议的某个实现进行测试, 判别一个协议的实现与所对应的协议标准是否相一致。本文对协议的测试主要采取以下几个步骤如图1:

1测试准备:抽象测试集的生成, 是为一个特定的协议产生一个独立于所有协议实现的抽象测试集ATS (Abstract Test Suite) 。

2测试操作:也称为测试实现。在这一阶段, 根据协议实现的“协议实现一致性声明”PICS (Protocol Implement Conformance Statements) 和要测试的内容从ATS中生成可在实际的测试系统上执行的测试例, 最终产生参数化的可执行测试例ITI (Implemental Test Illustration) 。

3测试执行:可执行测试例的执行, 让IUT (被测实现Implementation Under Test) 执行已具体化的测试例, 并对IUT的外部行为响应进行观察和记录。

4测试判定:将IUT的实际响应序列与测试例期望产生的结果比较, 判别IUT的运行结果是否与PICS的描述一致, 如有错误找出错误发生的位置。将测试结果生成测试报告, 便于测试人员对协议实现分析。

测试方案中关键问题的解决

协议测试中涉及的关键技术主要有抽象测试集的生成, 从抽象测试集到可执行测试例的转化和测试判定。本文将利用Petri网的理论解决以上问题, 主要采取以下思路如图2。

测试执行子模块负责测试系统在测试执行阶段的工作。它将测试实现子模块预处理过的可执行测试集ITI的一个个测试例逐步在被测实现IUT上执行, 每一个测试例可能有不同的报文结构组合。对每一个具体的测试例, 测试执行子模块将每一个测试步的动态行为和数据行为输入到被测实现IUT的上侧服务访问点, 激励被测实现并观察被测实现的响应。将被测实现的响应与预期的测试响应序列进行比较, 做出一致性判断。最后根据测试结果生成测试报告。

总结

本文给出了用Petri网理论对协议一致性测试的总体方案, 重点解决了两个难点问题: (1) 测试集和测试例的表示和生成; (2) 被测实现的实际响应序列和预期响应序列的比对。

对于第 (1) 个问题, 测试集合我们用协议的网模型表示, 因为协议网模型的运行可以反映协议的实际运行情况, 从而以简洁、结构化的方式表达出了对协议功能测试的测试集合, 测试例我们用进程表示, 一个进程只能反映Petri网的一种可能运行情况。可以用进程表达式表示一个网系统的所有进程, 这样我们可以用求取进程表达式的方式得到尽可能覆盖协议所有行为的测试例。对于第 (2) 问题, 通过观察代表具体测试例的进程的变迁序列求取协议的预期响应序列。

瞄线与火线多轴一致性测试系统 篇4

传统的靶板画线测量方法存在瞄准镜与火炮轴线安装位置有相对误差以及距离短的问题,不能满足装调和测试要求。瞄线与火线多轴一致性测试系统采用多波段大口径平行光管装置作为主要检测设备,利用平行光管的平行光的特性调试和检测光学观瞄镜、电视摄像机、红外热像仪、激光测距机的光轴(即瞄准轴线)与火线轴间的平行性精度,以达到各轴线间的平行性调校之目的[2]。其拓展应用还可以进行白光目视仪器光轴调校,以及白光、微光、红外、激光光学系统的常规参数检测和调校工具[3]。

1 多轴一致性测试系统

1.1 系统的组成

测试系统采用大口径自准直平行光管方式,如图1所示。用大口径自准直平行光管测试光学观瞄镜、电视摄像机、红外热像仪、激光测距机等的瞄准轴线一致性;平行光管后端放置光源(可见、红外)用于测试光学观瞄镜、电视摄像机、红外热像仪的光轴一致性,放置CCD用于测试激光测距机的光轴一致性。

整个测试系统固定在一个调整平台上,调整平台可进行升降、俯仰和水平调节,下方设置有轮子,在固定时可通过放下支角固定,设置有电子水泡用于调整水平,设置有激光垂直仪便于平台的调整,并可采用气浮方式隔离振动,也可以放置在隔振地基上工作。

1.2 平行光管结构

作为光学检测基础设备的平行光管来说,光学系统的选择是十分重要的。由于能同时透过白光、激光、红外光的光学材料很少,且大口径的这种材料更难找到,故大口径透射式平行光管的研制非常困难,所以多考虑R-C系统及其改型为基础,或是球面加工半反半透镜组成的系统。这里设计为口径Φ300 mm,焦距3 000 mm,主反射镜采用抛物面形式,次镜用平面反射镜。平行光管光路图和结构图如图2和图3所示。

1.3 平行光管分光光路

平行光管的分光组件有不同的形式,是依据被测系统的要求,主要包含光源发射和接收两部分,光源发射又包含可见光、红外、激光(1.06μm、1.54μm),接收部分主要针对激光测距机的发射进行接收,所以接收部分方案与激光测距机的发射相关,若考虑系统全面性,则需要可见光、红外、激光(1.06μm、1.54μm)三种光源,若考虑测试两种波长的激光测距机(1.06μm、1.54μm)接收部分也将需要两种探测器,这样系统需要六路分光(可见光光源、红外光源、1.54μm和1.06μm激光、1.54μm激光接收的四象限探测器、1.06μm激光接收的硅基四象限探测器或CCD)。六路分光不仅使光路复杂、成本升高、技术难度增大,由于分光造成的杂散光难于处理,甚至会使整个系统光路相互干扰造成系统的瘫痪[4]。基于如上考虑,将系统分光作成三路即可见/红外光源、激光光源、激光接收三路。

对于光源组件的选择,可见和红外波段采用特殊处理的溴钨灯,其光谱特性如图4所示。

激光光源主要指激光测距机发出的光源,在系统中利用聚焦透镜、光纤耦合的方式,将激光测距机发出的光引入平行光管。对于不同波长的激光测距机(1.06μm和1.54μm),平行光管的激光发射光源都与测距机的接收探测器匹配[5]。

对于激光接收这一路光,因为平行光管中使用的CCD不能探测到1.06μm或者1.54μm波段,所以利用红外上转换器件,将激光在室温下转换成红光(峰值波长672 nm),CCD的光敏面置于红外探测转换器件后,接收转换后透射的红光,并经视频采集卡在计算机中显示出来。

平行光管分光光路图如图5所示,图中4为ZNS镜片,半反半透,由8溴钨灯发出的可见和红外波段光透过ZNS镜,照到3上,然后经过平行光管,平行出射;6为激光光源入口。利用光纤耦合方式,将激光测距机发射的光引入,透过分光棱镜,经ZNS反射,导进平行光管;7实际上是一个中继镜组,后面接CCD,用来接收激光光轴的。

(1为抛物面主镜;2为平面反射镜次镜;3为二次反射镜;4为ZNS镜;5为分光棱镜;6为激光光源入口;7为激光接收;8为溴钨灯)

2 扩径镜组系统的设计

可见光、电视、热成像、激光多光轴一致性测试是检验各个系统的光轴平行性。理论上只要平行光管的口径足够大,就可以满足测试要求。由于平行光管需要检测不同光谱之间的光轴平行性。所以只要平行光管的口径能够包含所有的探测器,并且平行光管精度足够,这种检测就比较简单了。

但是,光管口径越大,成本越高。瞄准系统光轴与炮膛轴线之间距离相差比较大,如何利用小口径平行光管,检测瞄线与火线多轴一致性,这里需要引入扩径系统的概念[6]。扩径系统是指利用光学转向器件,将平行光管发出的平行光折转,以一定位移量与原方向平行出射。

2.1 方案1:双平面镜反射方式

采用双平面镜反射方式作扩径镜组,如图6所示。

针对上述方案进行动态光学分析,可得出对平面反射镜组的要求,如图7设反射镜的坐标如下。

由图可知被反射面Ⅰ,Ⅱ的作用矩阵为

各面的象坐标系与该面的面坐标系的转换矩阵为

将式(4)写为矢量叉积形式(注意矩阵行列式值

式(6)中

-P1、-P2分别为反射面Ⅰ,Ⅱ的偏转轴矢量,得

式(7)表明了这个共有2面反射镜的系统的误差分析情况及误差调整修正关系。式中,α1x=α1P1x;α2x=α2P2x;α1z=α1P1z;α2z=α2P2z表示相应反射面绕其面形坐标轴的转角。系统作误差分析时,它们表示各个反射面相应的误差角;做光学调整时(此时称误差修正),表示相应反射面的修正量。表示像偏转矢量绕其坐标轴的旋转量。

可见必须保证单个反射镜在x、y、z三个方向的偏差分别与另一个反射镜的三个方向偏差绝对值相等才能保证出、入射的像不发生倾斜和偏转,这样对于两个反射镜的装调是非常困难的(用计算机辅助软件进行调节才能达到),而且在使用过程中结构上的变形难以保证精度(需用特殊结构材料才能保证)。

2.2 方案2:五棱镜反射方式

如图8为五棱镜的光路图[7],(x,y,z)为物坐标,(x',y',z')(x',y',z')分别是物坐标经过Ⅰ、Ⅱ面的像坐标,(x1,y1,z1)(x2,y2,z2)为Ⅰ、Ⅱ面的面形坐标。由图可知被分解元件的作用矩阵为

各面的像坐标与该面的面坐标系的转换矩阵为

像的绝对运动

式(10)中,α1x=α1P1x;α1y=α1P1y;α2x=α2P2x;α2y=α2P2y表示相应的面型绕其面型坐标的转角。轴重合。

所以五棱镜的原理误差(光轴偏、像倾斜)

式(11)中,ay表示在y'方向的光轴偏;az表示在z'方向的光轴偏;ux表示绕x'转动的像倾斜。可以看出,当五棱镜绕特征方向微小偏转时,不会产生像倾斜[8]。

由上述分析知,扩径系统若采用平面镜组,必须保证单个反射镜在x、y、z三个方向的偏差分别与另一个反射镜的三个方向偏差绝对值相等,才能保证出入射的像不发生倾斜和偏转,这样对于两个反射镜的装调是非常困难的,而且在使用过程中结构上的变形难以保证精度。若采用五棱镜组,光束经过两个五棱镜后,出射光束偏转误差比较小,且沿特征方向旋转时,不影响光束的出射方向,这在结构上来说,沿z轴方向的变形对光路不产生影响,这就减少一个误差的引入[9],所以设计中扩径镜组的选择使用了五棱镜。

五棱镜扩径镜组系统如图9所示。

3 误差分析

为了验证瞄线与火线多轴一致性测试系统能够满足在大视场情况下检测设备时的精度要求,进行下面的误差分析。

以平行光管可见光源作为基准计算出各光轴平行差,通过数据处理得任意两光轴之间的平行差[10]。

3.1 平行光管误差分析

设平行光管焦距为3 000 mm,采用CCD的像元尺寸为16μm,则平行光管的对准误差为,远远大于要求的误差,若分光棱镜的平行差和分光面误差控制在2 s以内。平行光管星孔光路和CCD光路的光轴差为

同时平行光管的两个轴可通过角锥棱镜或直角屋脊棱镜DIIJ-180校准,校准后精度可达0.025 mrad,可见平行光管本身的误差可以忽略不计。

3.2 瞄准线获取装置误差分析

设光学瞄准镜的光学参数为:放大倍率Γ=3-7×;视场角2ω=6∘~20∘;口径D=70 mm,出瞳直径dp=10~30 mm;出瞳距≥25 mm。选取1 3"CCD摄像机,其像面尺寸为3.6×4.8(mm2),像元尺寸为0.006 4 mm。根据0.6∘×0.8∘的视场要求,火炮瞄准镜与CCD物镜的组合焦距:;CCD摄影物镜的焦距:f'c=f'总Γ=34.377 mm,视场:6∘×8∘。140

组合系统的理论分辨率为:

目视瞄准镜采用叉丝对准,δ=20″,其对准误差为:,CCD上爱里斑半径为:,约为一个像元。CCD动态下隔行扫描的判读误差为两个像元,量化误差为:,测量的标准偏差为:

3.3 炮口轴线获取装置精度分析

将炮口轴线获取装置装于炮口,前面放置平行光管,使其十字线成像于校炮镜目视系统分划中心,转动校炮镜,使平行光管十字线的像相对于校炮镜目视系统分划中心摆动小于0.005 mm,则炮口轴线获取装置与炮口轴线同轴度误差为

3.4 扩径镜组精度分析

扩展棱镜组采用机械研磨方法,保证精度在2μm,则扩展棱镜组产生的角度误差为

在测量前在扩展棱镜组伸长某个长度时可实现标定和调校,调校采用自准直平行光管,设平行光管焦距为200 mm,每个CCD像元为10μm,则调校后精度为

可采用直角屋脊棱镜DIIJ-180进行调校精度为0.025 mrad。

3.5 电视摄像机与平行光管光轴平行差的误差

电视摄像机参数如下:

口径:50~100 mm

焦距:40~300 mm

视场:0.8∘×0.6∘~4∘×3∘

CCD像面尺寸:1 3″

CCD像元数:640×480

根据上述参数得:

CCD上爱里斑半径为

每个CCD的像元尺寸为10μm

衍射极限角为

CCD动态下若隔行扫描的判读误差为两个像元,量化误差为

若不考虑焦距只考虑视场的情况下,每个CCD像元对应的视场为0.021~0.104 mrad,所以系统能测视场范围为0.8∘×0.6∘~3.8∘×2.86∘的光轴差。

为解决大视场测试部分的测试,采用CCD像元细分技术,只要将CCD像元进行6细分就可达到要求,实际做到10~20细分,可以满足大视场测试时的精度要求。按焦距参数得测试精度可以达到0.05~0.001 mrad,按视场计算可以达到0.002 1~0.010 4 mrad。

3.6 光学观瞄镜与平行光管光轴平行差的误差此项平行差包含两项误差

(1)瞄准线获取装置误差σ1=0.05 mrad

(2)平行光管误差σ1=0.023 8 mrad

3.7 红外热像仪与平行光管光轴平行差的误差

红外热像仪参数为:

口径:60~140 mm

视场:3∘~9∘

红外传感器像元数:640×480

计算红外热像仪的衍射极限角为

每个像元对应的角度为:0.062 5~0.187 5 mrad,所以系统能测试的视场为3∘~4.76∘。,采用像元细分技术,可以作到4~20细分,若10细分则可在大视场情况下得到0.02 mrad的精度。

3.8 激光测距机与平行光管光轴平行差的误差

激光测距机发散角为2 mrad,如果直接接收,在平行光管的像面上会出现很大的光斑,造成测量超差,在激光测距机前加一个可变光阑孔,可以起到两个作用:

(1)使光能量衰减;

(2)取激光中心部分近轴光可经过试验确定光阑孔的大小。

激光发射光轴的偏差精度:

红外上转换材料的分辨率为50μm,则系统精度为0.016 mrad。在红外上转换分划板上刻划上间距小于0.3 mm的刻线,这样精度为0.1 mrad。

激光接收轴的偏差精度,只要小孔光阑在平行光管焦面上移动精度0.3 mm,这样精度为0.1 mrad。

3.9 火线与平行光管光轴平行差的误差

(1)炮口轴线获取装置与炮口轴线同轴度误差σ1=0.023 mrad

(2)平行光管误差σ2=0.025 mrad

(3)扩径镜组误差σ3=0.025 mrad

(4)CCD的检测误差为,只需要4细分就可得σ4=0.012 5 mrad,不采用细分计算精度则σ4=0.05 mrad

总的误差为

4 结束语

瞄线与火线多轴一致性测试系统的设计,使检测自动化、现代化,能够及时准确地输出测试结果,采取的五棱镜扩径镜组设计方案,极大地提高了测量系统的精度,并可为多轴一致性测试系统进行精确结构设计提供参考,对测试系统的误差分析,可以证明能够满足大视场情况下的测试精度要求。

参考文献

[1]陈文建,郑宝忠,杨建莉.多光谱多光轴自动校准技术[J].应用光学,2004,25(1):60-64.

[2]付跃刚,王志坚,李博.多光谱光学系统光学平行性的调校和检验方法探讨[J].长春光学精密机械学院学报,2001,24(4):11-14.

[3]黄静,刘朝晖,折文集,等.室内多波段光轴一致性测试系统的设计[J].应用光学,2007,28(5):663-666.

[4]李刚,周冰,孙新华,等.激光制导装置出射激光束散角和光轴平行性的简易检测方法[J].光学技术,2004,30(5):628-630.

[5]张雏,周冰,沈学举,等.精确校正激光测距仪三光轴平行的理论计算方法研究[J].光学.精密工程,2002,10(6):650-654.

[6]付跃刚,姜会林.火炮轴线一致性与偏离角测试系统研究[J].仪器仪表学报,2002,23(5)增刊:80-82.

[7]金友.采用静止光学头和移动五棱镜的长轨轮廓仪[J].光机电信息,1998(12):21-26.

[8]付跃刚,王志伟,王志坚.用五棱镜法调校平行光管原理的探讨[J].长春光学精密学院学报,2002,25(1):11-13.

[9]李松.用五棱镜法检测光束准直性的原理分析[J].测绘信息与工程,1999(2):30-31.

一致性测试 篇5

随着移动通信技术的不断发展和用户对高速率无线数据业务的需求激增,第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)已经完成了R8的标准制定,设备、终端制造商也推出了长时期演进(Long Term Evolution,LTE)的商用产品。网络运营商将逐步推进LTE网络的实验网搭建、测试以及小规模商用。在网络部署中,通常会采用多厂商设备进行对接。由于协议规范采用自然语言描述,协议栈开发人员在协议理解上往往存在一定的差异性,这就造成了多厂商设备组网时的协议一致性问题,所以需要对LTE设备进行协议一致性测试。协议一致性测试是一种功能性测试[1,2]。由于协议规范在软件实现过程中受人为因素影响较大,协议一致性测试并不能保证满足绝对的标准,但作为一个标尺,可以保证通过该测试的设备在网络中出现协议一致性问题的机率大大降低。如图1所示,LTE采用扁平结构[3,4],演进型Node B(Evolved NodeB,eNB)通过Mesh方式连接,涉及的接口包括连接eNB的X2接口、连接eNB和演进型分组核心网(Evolved Packet Core,EPC)的S1接口。其中S1接口分为连接eNB和移动性管理实体(Mobility Management Entity,MME)的S1-MME接口和连接eNB和服务网关(Serving GateWay,S-GW)的S1-U接口。本文提出了一种LTE协议一致性测试解决方案,拟解决多厂商设备在S1-MME和X2这两个控制平面接口的协议一致性验证问题。

1 一致性测试仪的系统架构

一致性测试仪采用高性能工业控制机上扩展高速率网络接口卡实现,其系统架构如图2所示。其中,NIC为网络接口卡,从数据接口接收/发送数据包,进行物理层到网络层的协议解码和处理功能。为了支持一致性测试中多种物理和逻辑接口同时工作以及仪表组网功能,测试仪需要配备多个接口卡。在这种情况下,外部设备互联总线(Peripheral Component Interface,PCI)的共享式连接方式将导致每张板卡的实际传输速率降低,难以保证高速数据包的处理。所以本方案中采用PCI-Express[5]这种点对点串行连接的设备连接方式,保证了通道的专有性,避免了多板卡间的干扰,经过优化,单个设备的读速率可达到最大166Mbyte/s以及136Mbyte/s[6]的写速率。硬件平台再通过板卡驱动和上层的Win32系统进行交互,在Win32系统上搭载一致性测试软件系统。包括协议栈仿真套件、测试例生成和验证套件、用户二次开发接口。在本方案中软硬件平台的研究与开发是关键,下面分别详细介绍软硬件平台中所涉及到的关键技术。

2 硬件实现

LTE作为面向更高用户数据率和更大系统容量的新一代移动通信系统,LTE在空中接口上采用了正交频分复用(Orthogonal Frequency Division Multiplex,OFDM)[7]和多天线技术[8],能够支持下行和上行无线接入承载的瞬时峰值分组速率是100 Mbit/s和50 Mbit/s[9],S1接口上的速率将远超过UTRAN中Iu接口所采用的155 Mbit/s速率,所以现有的网络处理器(Network Processor,NP)无法满足要求。而FPGA性能优于NP,还可实现深度分处理和软硬件的可升级性。下面分别介绍硬件实现的数字前端和FPGA协议处理。

2.1 数字前端

数据采集是协议分析的首要环节。数据采集模块需要完成的功能包括:IP数据包的接收、流量过滤或者协议解码、转发等,功能多,数据速率高,因此选择成本合适的功能强大的处理器极为关键。随着集成技术的快速发展,功能强大的多核处理器已经出现,这将使得处理器的选择更为灵活。IP数据处理模块处理器可选择专用的网络处理器,目前,能用于高速IP数据处理的网络处理器(network process units,NPU)有很多,选择也较多,可以根据实际需要选择一款符合要求的网络处理器(NPU)。然而,用于用户数据包协议(User Datagram Protocol,UDP)、GPRS隧道协议用户面(GPRS Tunnel Protocol,GTP-U)、SCTP协议处理的处理器在市场上却没有,因此需要设计一款专用于以上3个协议的处理器。相对于网络处理器以软件为中心的编程特性,FPGA是以硬件为中心的编程特性。

基于FPGA的高速数据包处理模块架构如图3所示。在通道最前端是多个PHY芯片,它为不同物理介质提供支持,每种类型的PHY芯片都有其相应的MAC芯片,将采集到的数据恢复成标准的帧结构或将需要发送的数据进行封装,因此,FPGA的性能优于NPU。FPGA优于NPU还体现在深度处理、硬件可升级性、软件可升级性等方面,因此选择FPGA处理协议。

2.2 FPGA协议处理模块

FPGA协议处理模块的最前端是IP分离子层,完成IP数据包分离和接口转换,使得多端口调度模块以同样的操作流程对各个端口进行调度。多端口调度模块输出IP数据包到上层IP解封装模块进行处理,同时告知上层模块当前IP包关联的物理端口。

IP解封装模块首先提取IP地址生成IP地址表,IP地址表根据物理端口的数量被分为多个段,每个段存放在相应端口上传输的IP地址。为了明确数据来源,这里将IP地址与端口关联在一起。IP过滤模块根据上层应用感兴趣的数据进行IP地址过滤,减少了上层应用处理的数据量。

过滤之后的数据根据类型不同分别送到UDP解封模块或SCTP模块进行协议解析,提取出的参数按照控制平面和用户平面数据包分别存放到UDP端口表和SCTP信息存储空间中。其中控制平面数据经过SCTP处理后,所承载的上层数据被存放到特定存储空间供应用层调用分析;用户平面数据经过UDP解封处理后,送入GTP-U处理模块进行协议处理,并且将相应信息与IP地址和UDP端口按一定方式进行关联。用户寄存器主要用于存储相关协议的参数配置,包括源/目的IP地址、源/目的UDP端口、SCTP参数及GTP-U参数。这些参数主要用于协议产生模块生成高速大流量协议数据。

3 软件实现

与针对其他网络的协议一致性测试平台[10]类似,本方案的软件平台同样包括了测试例生成和扩展的二次开发接口。作为LTE这一新型网络的协议一致性测试仪,针对S1和X2接口设计出了协议仿真技术,采用实例注册技术,支持多对多接口实例仿真,真实地仿真网络设备的各种控制行为和业务能力。

协议栈架构如图4所示。基于S1和X2接口协议栈传输网络层一致的情况,采用多用户注册架构的SCTP协议栈。采用同样的架构,同时支持注册多个上层应用,为支持S1/X2接口实例同时测试提供支撑。

SCTP协议栈、S1-AP协议栈与X2-AP协议栈采用一致性架构,具有良好的扩展能力和友好的维护接口,而且支持不同层次的监测,在协议栈内部各模块间提供监测借口。其中S1-AP同时支持EPC侧和eNB侧,并根据注册实例决定协议栈的行为能力。主要模块功能如下:1) 主处理模块完成协议栈的具体实现及接口协议的对外体现;2) 维护接口模块接受服务用户的配置和管理,实现维护协议栈的运行;3) 数据库模块维护注册实例的信息、运行数据和工作状态;4) 用户接口模块为服务用户的接口,对注册实例提供行为能力支持,并且提供二次开发接口,支持测试例和新协议的开发。

4 小结

TD-LTE的网络测试验证于2009年完成了概念验证,而技术验证也进入了后期,2010年下半年已经逐步启动规模试验。这是一个全面推动网络技术、设备与测试仪表、组网技术等方面技术进步的关键阶段,通过规模试验可以及早发现和解决问题。本文通过结合重邮东电通信技术有限公司在通信测试仪表软硬件开发上的积累,提出了一种LTE协议一致性测试的产品方案。目前,该方案已进入实际开发阶段,并且将联合泰尔实验室、中国移动设计院等单位进行标准化测试和试运行。这将对推动LTE合理化产业布局产生积极的作用。

摘要:在研究LTE网络演进进程、网络架构及接口协议特性的基础上提出了一种针对X2和S1接口的协议一致性测试方案。从产品实现的角度介绍了该方案的软硬件平台架构。该方案采用硬件解码技术应对LTE网络中高速网络流所带来的协议数据包处理问题,在软件架构中提供开放的用户接口支持自定义的测试例扩展和自定义协议开发,为不断演进的网络在组网上提供支撑。

关键词:协议,一致性,LTE,测试

参考文献

[1]李校林,文小强.LTE-Uu接口协议栈中ASN.1模块的设计与应用[J].电视技术,2010,34(10):71-73.

[2]JING Zhong,JIANG Xiong.Protocol conformance test suite for home a-gent of mobile IPv6[J].Electronic Commerce and Business Intelligence,2009(6/7):45-48.

[3]QIU Qinlong,CHEN Jian,ZHANG Qifei,et al.LTE/SAE model and itsimplementation in NS2[C]//Proc.5th International Conference on Mo-bile Ad-hoc and Sensor Networks.[S.l.]:IEEE Press,2009:299-303.

[4]3GPP TS 36.300,Evolved universal terrestrial radio access(E-UTRA)and evolved universal terrestrial radio access network(E-UTRAN);over-all description;stage 2[S].2009.

[5]3GPP TS 36.423,Evolved universal terrestrial radio access network(E-UTRAN);X2 application protocol(X2AP)[S].2009.

[6]FROCK H,GERUSO M,WETZEL M.A survey of high speed bus tech-nologies for data movement in ATE systems[C]//Proc.IEEE SystemReadiness Technology Conference.[S.l.]:IEEE Press,2006:655-657.

[7]PENG Yu,LI Bo,LIU Datong,et al.A high speed DMA transactionmethod for PCI express devices[C]//Proc.IEEE Circuits and SystemsInternational Conference on Testing and Diagnosis.[S.l.]:IEEE Press,2009:1-4.

[8]CAI Qipeng,ZHAO Zhao,SCZYSLO S,et al.A novel simulation systemfor the performance evaluation of 3GPP LTE System in Indoor Scenarios[C]//Proc.3rd International Symposium on Wireless Pervasive Compu-ting.[S.l.]:IEEE Press,2008:415-419.

[9]3GPP TR 25.913,Requirements for evolved UTRA(E-UTRA)and e-volved UTRAN(E-UTRAN)[S].2005.

一致性测试 篇6

Modbus协议已经成为一种事实的工业标准, 但Modbus设备间的一致性、互操作性较差, 是制约Modbus发展的瓶颈。为了解决Modbus协议的一致性和互操作性问题, 国内外的研究机构展开了深入的研究并取得了一些成果。

在Modbus-IDA国际组织的支持下, 进行Modbus一致性测试的实验室陆续建立。目前, 在国外得到Modbus-IDA国际组织授权的Modbus一致性测试实验室仅有两处:一处是位于美国密歇根大学的Modbus TCP一致性测试实验室;另一处为设在该课题所在机械工业仪器仪表综合技术经济研究所的Modbus Serial Line/TCP一致性测试实验室, 它是独立于产品制造商的第三方测试机构[1,2]。国外其他研究机构对Modbus测试系统的研究处于发展阶段, Modbus测试系统被应用到火电厂、电力监控系统、控制系统安全认证中, 但都未形成一致性和互操作测试标准和自动化方法[3,4,5,6]。

在国内对进行Modbus一致性和互操作性测试研究的机构主要有:北京交通大学的研究人员开展了Modbus串行链路协议一致性测试系统的研发工作[7,8];开普电器检测研究院在Modbus协议一致性测试方面有多年的经验, 已加入Modbus-IDA协会[9]。

总得来说, 国外在Modbus协议的一致性和互操作性测试的研究已经取得了一定的成果, 并形成了一些测试系统, 但国内用户分享成果的代价较大, 并且无法进行Modbus设备的互操作性测试, 并且尚未形成测试自动化方法;国内的研究已经起步并取得了一些初步研究成果, 但在国内尚未形成测试标准和测试自动化方法。

为了克服目前研究中所存在的问题, 本文主要研究Modbus协议的一致性测试的自动化方法, 测试的自动化方法主要包括测试用例的自动生成和测试结果的自动分析两方面, 限于篇幅对测试结果的自动分析方法不予展开论述, 主要论述测试用例的自动生成方法。

1 一致性测试的基本原理

协议测试理论经过几十年的发展, 在许多方面都取得了很大的进展, 其中最成熟的是协议一致性测试的理论, 主要代表是ISO制定的国际标准ISO/IEC-9646:协议一致性测试的方法和框架。图1是一致性测试的基本示意图。IUT (Implementation Under Test) 是根据规范的具体实现, 是一个内部不可见的实体;规范 (Speciflcation) 以某种形式化语言或者自然语言描述, 但不管怎样的描述形式, 其根本都是一个扩展自动机模型;测试仪 (Tester) 根据规范为IUT产生一组测试序列 (Test Sequence) , 然后观察IUT的外部行为是否符合规范的描述[7,8]。

目前的实际工程测试中, 测试序列主要是由少数专家凭借经验制定的。因为原始的规范通常都是自然语言描述的, 不同的实现者在使用形式化语言建模的过程中, 就可能产生了一个一致性问题:原始规范和形式化规范之间可能在语义上产生偏差。根据这样衍生的形式化描述产生的测试序列不能作为判断是否通过一致性测试的依据。

对于一致性测试的过程, 大约需要分五个步骤来完成[8], 图2是一致性测试的过程。

第一步, 分析测试需求。也就是说, 分析相应的标准或规范, 从中找出一组测试标准, 建立用于实现的一致性描述PICS (Protocol Implement Conformance Statement) 。每个PICS应该尽可能的简单并且仅仅集中在一个原子功能上, 测试标准之间要做到不相抵触。

第二步, 在PICS上增加一些用于测试实现的协议实现额外信息PIXIT (Protocol Implementation Extra Information Statement) , PICS和PIXIT就组成用于测试实现的一致性信息CITI (Conformanee Information for Testing the Implementation) 。

第三步, 基于CITI, 生成一组抽象的测试用例ATC (Abstract Test Case) 的集合——抽象测试套件ATS (Abstract Test Suite) 。

第四步, 对各ATC中的参数选择合适的输入值以及相应的“预测结果”, 得到可执行的测试用例ETC (Executable Test Case) 的集合——可执行的测试套件ETS (Executable Test Suite) 。当然, 生成的可执行测试套件是与所处的测试平台是密切相关的。

第五步, 对被测单元UUT (Unit Under Test) 执行ETC的时候, 被测单元的测试过程将会产生一个“通过”或“失败”的报告。报告“失败”即未能通过测试则意味着与规范不一致。

2 一致性自动化测试方法

目前测试过程中的“生成ETS”、“测试UUT”等工作步骤中实现了简单的测试系统, 能够对一些工作实现自动化, 如根据手工输入的Modbus协议的从站号、功能号、地址等参数生成测试用例, 能够自动执行测试用例并生成简要测试报告。但这些测试过程存在以下问题:测试用例的生成需要大量的人为干预;另外, 测试结果只是简要的测试报告, 没有更进一步的分析报告, 以帮助用户更容易地确定问题所在。

如图2虚线框部分所示, “生成ETS”、“测试UUT”等工作步骤可以实现测试自动化。自动化后的体系结构如图3所示。其中可视化用例设计器、测试用例生成器完成测试用例的自动生成工作;测试结果分析器完成测试结果的自动分析工作。限于篇幅对测试结果的自动分析方法不予展开论述, 主要论述测试用例的自动生成方法。

通常在一致性测试过程中, 测试用例的设计和生成是软件测试的关键任务和难点, 据统计, 约有40%一致性测试开销用于设计和生成测试用例上。长期以来, 测试用例的设计和生成主要依靠手工完成, 这意味着要求测试人员具有相当的经验和较高的专业水平。因此, 实际工程中的测试用例生成往往带有很大的盲目性, 主要依靠直觉经验产生测试用例, 这导致测试用例数量多, 测试效果差, 测试成本居高不下。另外, 如何生成最能发现被测系统 (或程序) 存在问题的测试用例, 如何能用最少的测试用例实现足够大的覆盖率, 也是测试人员一直追求的目标。这些问题的解决方案就是测试用例的自动生成[10]。

2.1 测试用例的自动生成方法的体系结构

图3中的测试用例自动生成器是测试用例自动生成工作的核心。其体系结构如图4所示。

其中用例设计描述是描述用例特性的文本, 根据所选择的算法不同而描述方式也不同:如采用“基于形式规格说明的方法”则用Z, VDM, OBJ, LARCH [11]等语言来描述, 如采用“组合覆盖方法”则用XML脚本来描述。

算法适配器为各种算法提供接口, 它向上为描述解析器提供算法支持服务, 向下解释各种算法, 使得体系结构能够兼容多种算法而增强体系结构的扩展性和适用范围。

描述解析器基于算法适配器来分析用例设计描述, 将描述统一转换成用例生成器可识别的内部描述形式, 然后传递给用例生成器。

用例生成器获得来自描述解析器的内部描述, 并根据描述自动生成可执行测试用例。可执行的测试用例支持多种形式存储, 如内存存储、文件存储、数据库存储等, 具体的存储格式随用例执行器的需求而变。

2.2 测试用例的自动生成方法的实现

为了验证体系结构的合理性和有效性, 基于Microsoft VC 6.0 SP6、Modbus ActiveX控件、“分类树方法”、CTE XL (Classification Tree Editor eXtended Logics) 实现了Modbus协议一致性测试的自动化系统。

其中CTE XL是我们系统中的可视化用例设计器, 它是一个语法控制的、可视化、图形化的编辑器。帮助我们更加有效地使用分类树方法进行测试用例的设计。

分类树方法是黑盒测试中的一种部分测试方法, 由Grochtmann 和Grinun 提出, 后又由Chen 和Poon 改进[11], 它是一种有效的功能测试方法。分类树方法的基本思想是: 首先逐层划分测试对象的输入域, 然后将划分的独立的类结合为无冗余的测试用例, 这些测试用例覆盖了整个输入数据域。

算法适配器、描述解析器、用例生成器、分类树方法均使用Microsoft VC 6.0 SP6实现。

Modbus ActiveX控件用来执行用例并生成测试报告。该控件具有多线程、多任务、多优先级等特性, 支持Modbus Serial Line/TCP通信协议, 支持RTU和ASCII两种通信模式, 具有良好的性能。

系统实际使用时, 首先用CTE XL构建用例设计, 也就是生成Z语言描述的规格说明, 然后描述解析器解析该规格说明并生成测试用例模板 (系统内部格式) , 交由用例生成器生成可执行的测试用例, 最后由Modbus ActiveX控件用来执行用例并生成测试报告。人工参与的部分只是在第一步, 即用CTE XL构建用例设计, 其余部分均自动完成, 大大降低测试人员的工作量, 提高了测试工作的效率和客观性。

该实现已经被应用到“山东石油化工厂装车管理系统”中用来测试管理系统和油气批量控制仪之间Modbus通信, 也被应用到“长庆单井计量信息系统”中用来测试信息系统和PLC之间的Modbus通信, 限于篇幅测试过程不赘述, 经过测试发现了一些隐藏的Modbus一致性问题并且便于使用, 提高了一致性测试有效性和客观性, 同时增强了产品的可靠性和可用性, 也证明了本文所论述的一致性测试自动化方法的有效性和实用性。

3 结 语

在分析了现有Modbus协议一致性测试中存在的问题后, 本文提出了一致性测试的自动化方法, 基于这个方法设计并实现了一致性测试系统, 在实际应用中该系统发现一些隐藏的Modbus一致性问题, 提高了Modbus一致性测试的有效性和客观性, 证明了该方法的有效性和实用性。目前该方法的实现基于分类树方法, 下一步将研究其他测试用例自动生成方法, 使其进一步完善。

参考文献

[1]修为明.现场总线技术及发展[J].电力系统装备, 2005 (3) :78-82.

[2]机械工业仪器仪表综合技术经济研究所.基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南 (GB/Z1958.2-2004) [M].北京:中国标准化出版社, 2004.

[3]Liu Qing, Li Yingmei.Modbus/TCP-based Network ControlSystem for Water Process in the Firepower Plant[A].Pro-ceedings of the World Congress on Intelligent Control andAutomation[C].2006:432-435.

[4]Li Juan, Zhang Bo, Qiu Dongyuan.Multi-computer Commu-nication Based on Modbus RTU in Power Quality Monito-ring System[J].Electric Power Automation Equipment, 2007, 27 (1) :93-96.

[5]Chen Bin, Zhang Bo, An Changsi, et al.Electric Device Net-work Monitoring System Based on Modbus/TCP Protocoland Web[J].Chinese Journal of Scientific Instrument, 2006, 27 (9) :1 062-1 066.

[6]Liao Gen-Yih, Chen Yu-Jen, Lu Wen-Chun, et al.TowardAuthenticating the Master in the Modbus Protocol[J].IEEETrans.on Power Delivery, 2008, 23 (4) :2 628-2 629.

[7]杨宇慧.Modbus协议测试规范国家标准草案的制订及测试系统的开发[D].北京:北京交通大学, 2007.

[8]贾文婷.Modbus串行链路协议符合性测试系统的研究和开发[D].北京:北京交通大学, 2008.

[9]开普电器检测研究院.Modbus规约检验[EB/OL].http://www.ncqtr.com/intro_1.asp?id=27&c_id=3&s_id=7, 2008.

[10]李军义.软件测试用例自动生成技术研究[D].长沙:湖南大学, 2007.

一致性测试 篇7

计算机网络协议一致性测试是检验计算机网络各部分正确互连、互通和互操作的关键技术,用来验证产品协议实现与相应协议标准之间的一致性。即在同一网络协议标准下检验不同的待测设备是否在相同的外部输入下,输出相同的结果。

目前,我国网络产品检测的技术水平和能力与国际上存在较大差距,协议一致性测试产品的设计大多停留在测试方法的理论研究上,在协议测试的通用平台方面还缺乏较好的解决方案。

1 网络协议一致性测试概述

网络协议的一致性测试是一种功能性的黑盒测试,通常包括静态测试和动态测试两类。静态测试是指协议实现者向测试方提交“协议实现一致性声明”与协议中的静态一致性要求相比较,动态测试是运行测试集对DUT(Device under Test)进行测试。

协议一致性测试包括三个阶段:第一阶段是测试生成,为特定协议产生独立于所有协议实现的抽象测试集;第二阶段是测试实现,把抽象测试集中的测试例转换成可执行的测试例;第三阶段为测试执行,在特定的DUT上执行测试用例。

通用网络协议一致性测试平台用于动态测试,也分为三个阶段:第一阶段是对一个指定的协议生成一个测试套集,根据协议的要求,这个测试套集可以在实现前对收发双方进行的交互进行完全设定,或者在某些需要双方互动(字段值需要对方的数据来进行填写)的字段给出一个变量。第二阶段是按照这个测试套集对被测设备的协议实现(DUT)进行黑盒测试;第三个阶段是通过比较DUT的实际输出与预期输出的异同,从而实现网络协议的一致性测试。

通用平台对各个不同的协议可支持生成不同的测试套集,分别进行测试和一致性对比。

2 通用平台组成

通用平台由控制台、测试机两部分组成。其中控制台负责配置测试套集的策略、测试结果的统计分析及人机交互;测试机负责生成或接收测试套集,然后生成测试流发送到被测设备;并从被测设备接收测试数据;然后将数据返回控制台。如图1所示。

2.1 控制台

控制台硬件可以是一台PC机,其网卡与测试机控制口相连。在高层通过人机对话界面,对协议、算法及网络参数进行配置,对测试套集生成模式及使用方式等进行策略设置;通过驱动程序与测试机进行通信,向测试机输入测试套集的参数配置,并接收测试机输出的结果;并对测试结果进行统计分析。

软件模块包括界面模块、协议接口模块、算法接口模块、网络接口模块、通信模块、统计分析模块。

2.2 测试机

2.2.1 硬件组成

测试机硬件采用高性能、高可靠性、高稳定性的嵌入式多核处理器平台。配置高速100M、1000M自适应以太网口,可扩展的大容量DDR2内存和大容量的Flash空间。硬件框图如图2所示

多核处理器平台的核心部件为CPU、CPLD和FPGA。

CPU主要用于接收来自控制机的网络、协议、算法参数并生成实现网络协议的测试套集,它可以直接对被测设备发送或者接收测试流,或者通过自定义总线将测试套集存储在SRAM中,以实现快速的测试;它还实现对外围配套器件的控制,包括DDR、Flash、噪声、日历时钟以及译码等。CPU的PCI总线转换出一个网络,作为测试机的控制口,与控制机进行通信。CPU的串口总线接出一个RS232串口。

CPLD主要用于CPU启动、数据总线的译码、FPGA逻辑配置等处理。

FPGA主要用于网络接口处理和测试流发送、接收。首先,它提供两个软MAC核与PHY芯片相连实现DUT的发送和接收网口;其次,它提供另外两个软MAC核可以允许CPU直接与DUT进行发送接收测试流;也可以调用外部SRAM实现测试流发送接收等操作。FPGA和CPU之间有两种不同的通讯接口,一种是数据总线接口,用于传输基本配置信息、状态信息和SRAM数据;一种是RGMII网口接口,用于传输测试流数据。

2.2.2 软件组成

CPU软件使用裁剪的定制LINUX操作系统,内核版本2.6以上,配IPv4协议栈等。CPU要实现的软件功能比较多,软件模块有以下几个:

(1)与控制机的通信模块:负责接收来自控制机的网络、协议、算法参数以及其他命令,并回送测试结果。

(2)算法实现模块:实现协议中需要的算法。

(3)套集生成模块:这是实现一个协议所需要的IP包的集合,包括发送的IP包和接收的IP包。每个不同的协议将产生定制的套集。每个套集的主要流程就是生成指定的某个协议所需IP包的过程。但是在协议的实现上,会按照协议的要求对相应的字段进行边界测试、正确性和错误测试。并体现在不同的测试流里。

(4)测试流发送模块:将存储在SRAM里的测试流发送至DUT。

(5)测试流接收模块:接收DUT发出的响应流,存储在SRAM里。

(6)结果的协议分析模块:CPU接收到测试流后,将其按照协议要求拆分成各个字段,并与协议进行比对分析。并将结果发送到与控制机的通信模块。

在发送IP包和接收IP包有关联的情况下,比如IV向量由接收包传递过来后才能确定下一包发送的内容,必须由CPU直接进行测试。

在协议比较简单,发送IP包和接收IP包没有关联的情况下,可以将测试套集装载在SRAM里,由FPGA进行测试。这种情况下,也可以测试DUT的性能。

3 工作流程与测试内容

协议一致性测试的主要过程包括:标准测试套集生成、测试执行、结果分析三个部分。标准测试套集是通过分析协议来确定要测试的各个方面,从而产生测试用例的集合;测试执行为测试用例的运行过程;接收数据分析是对测试结果进行分析,从而得到协议实现与协议说明是否一致的判决。如图3所示。

图3通用平台工作流程(参见右栏)

协议一致性测试的内容包括三个方面:一是协议格式、完整性的一致性测试,能够正确识别收到的协议,并且按照协议做出正确的响应,响应的格式要与协议一致。二是测试协议中包含的算法的正确性。要能够正确地加密和解密相应的信息。三是要对协议的实现过程包括握手、协商等进行一致性测试。

4 测试套集的生成方法

测试套集的生成方法理论上有可达性分析与测试序列两种。可达性分析是从一个初始状态出发,生成并检查系统能够到达的所有状态。测试序列方法是针对FSM中的单个转移生成的测试子序列,再将这些测试子序列连接起来作为完整的测试序列。

通用平台对测试套集的生成方法不作限定。因为网络协议千差万别,套用某一个方法是不现实的。因此不论什么方法,即使是手工方法,只要能够正确地诠释协议,生成的测试套集符合套集接口要求都可以直接输入到平台上实施测试。套集可以是完整的协议测试,也可以是某个协议测试套集的一部分。这样大大方便了协议测试套集的调试与测试。

通用平台也提供了一种测试套集的生成方法。就是将协议的分析过程体现在控制机的界面上,在界面上对协议进行分割,确定转移点和子序列,并给出子序列的数据范围。然后CPU的套集生成软件将这些转移点和子序列通过组合连接起来,形成测试套集。

5 结束语

在协议一致性测试的需求越来越迫切的同时,协议的功能越来越强,复杂性也越来越高,使得测试难度越来越大。通用平台的硬件设计为以后协议的发展做好了可持续发展的基础,而软件设计也将提供开源和稳定的接口以供协议的发展,增加对协议的支持。

参考文献

[1]ISO/IEC 9646.2:1994信息技术开放系统互连一致性测试方法和框架第2部分抽象测试套规范[S].

[2]ISO/IEC 9646.6:1994信息技术开放系统互连一致性测试方法和框架第6部分协议轮廓测试规范[S].

[3]卓兰,吴东亚.计算机网络产品协议一致性测试技术及研究标准[J].信息技术与标准化,2007(9):15-19.

上一篇:整合实验下一篇:修补路面技术