|
测试工作伴随着整个网络工程的全过程,无论是布线安装还是系统调试,都需要进行反复的测试和确定。
|
|
|
|
|
|
|
|
测试内容包括逐项列出的测试步骤、名称、内容和预期达到的目标。
|
|
|
|
测试清单是对每项测试内容列出测试的部位和参与测试的单位,包括进度的安排、测试工具和相应的条件(设备和软件等)。
|
|
|
|
测试设计说明是对每项测试内容的测试设计进行考虑,包括测试的控制方式、输入条件和预期的输出结果。
|
|
|
|
评价准则用来说明测试所能检查的范围及其局限性,以及用来判断测试工作是否通过的评价尺度,包括合理的输出结果、测试输出结果与预期输出结果之间容许出现的偏差范围。
|
|
|
测试工作完成后,应提交一份测试分析报告。该报告主要包括下列内容:概要说明、测试结果、结论、原因分析、建议和评价。
|
|
|
|
网络测试是对网络设备、网络系统以及网络对应用的支持进行检测,以展示和证明网络系统能否满足用户在性能、安全性、易用性、可管理性等方面需求的测试。网络测试的实施一般包括以下环节。
|
|
|
|
◆在对相关网络技术和实现细节透彻掌握的基础上,设计测试方案。
|
|
|
|
◆配置测试环境,包括测试工具的选择及必要的测试工具的研发。
|
|
|
|
|
|
网络测试包括网络设备测试、网络系统测试和网络应用测试3个层次。
|
|
|
|
网络设备测试主要包括以下几个方面:功能测试、可靠性和稳定性测试、一致性测试、互操作性测试和性能测试等。
|
|
|
(1)功能测试用来验证产品是否具有设计的每一项功能。
|
|
|
(2)可靠性和稳定性测试往往通过加重负载的办法来分析和评估系统的可靠性和稳定性。
|
|
|
(3)一致性测试用来验证产品的各项功能是否符合标准。
|
|
|
(4)互操作性测试用来考查一个网络产品是否能在不同厂家的多种网络产品互联的网络环境中很好地工作。网络产品不同于其他产品的最大特点是必须符合标准,不同的网络产品之间要能互操作。
|
|
|
(5)性能测试的主要目标是分析产品在各种不同的配置和负载条件下的容量和对负载的处理能力,如交换机的吞吐量、转发延迟等。
|
|
|
典型的网络设备性能测试方法有两种:第一种是将设备放在一个仿真的网络环境中进行测试,第二种是使用专用的网络测试设备对产品进行测试。
|
|
|
|
网络系统测试除了普通意义上的物理连通性、基本功能和一致性的测试以外,主要包括网络系统的规划验证测试、网络系统的性能测试、网络系统的可靠性与可用性的测试与评估、网络流量的测量和模型化等。
|
|
|
(1)网络系统的规划验证测试主要采用的两个基本手段是模拟和仿真。
|
|
|
◆模拟是通过软件的办法,建立网络系统的模型,模拟实际网络的运行。通过设定各种配置和参数模拟系统的行为,对系统的容量、性能以及对应用的支撑程度给出定量的评价。这对于大型网络的规划设计是不可缺少的环节。
|
|
|
◆仿真是指通过建立典型的试验环境,仿真实际的网络系统。规划验证测试的目的在于分析所采用的网络技术的可行性和合理性,网络设计方案的合理性,所选网络设备的功能、性能等是否能够合理地、有效地支持网络系统的设计目标。
|
|
|
(2)网络系统的性能测试是指通过对网络系统的被动测量和主动测量来确定系统中站点的可达性、网络系统的吞吐量、传输速率、带宽利用率、丢包率、服务器和网络设备的响应时间、产生最大网络流量的应用和用户,以及服务质量等。此项工作同时可以发现系统的物理连接和系统配置中的问题,确定网络瓶颈,发现网络问题。测试设备记录一段时间内的网络流量,实时和非实时地分析数据。被动测量不干涉网络的正常工作,不影响网络的性能。主动测量向网络发送特定类型的数据包或网络应用,以便分析系统的行为。
|
|
|
(3)网络系统的可靠性与可用性的测试与评估。系统可用性取决于系统的可靠性(MTTF)及可维护性(MTTR)的高低,其中可靠性是指系统服务多久不中断,可维护性是指服务中断后多久可恢复。三者之间满足如下关系:
|
|
|
System Usability=MTTF/(MTTF+MTTR)*100%
|
|
|
其中,MTTF是指平均无故障时间,MTTR是指平均故障修复时间,MTBF是指平均故障间隔时间。有MTBF=MTTF+MTTR,故
|
|
|
System Usability=MTTF/MTBR*100%
|
|
|
(4)网络流量的测量和模型化。网络流量的测量和模型化对于分析网络性能和带宽的利用率、指导网络流量管理、开发高效的网络应用十分重要。这方面的工作主要有以下几个方面。
|
|
|
◆产生已知特征的流量,使该流量沿网络传播,最后回到测试仪。记录和分析流量特性的任何改变(如延迟漂移)。
|
|
|
◆对链路总体流量的测量和传输时间、吞吐量、带宽利用率等进行分析。
|
|
|
◆分析特定流量的特征和提供的QoS;收集一个时间段内的测量数据进行分析,分析流量沿网络传播过程中流量特征的变化和网络流量的统计行为,建立流量模型。
|
|
|
(5)网络应用层次上的测试则主要体现在测试网络对应用的支持水平,如网络应用的性能和服务质量的测试等。例如,部署基于IP的语音传输VoIP时,最直接的问题是网络中的交换机和路由器设备能否有效地支持语音传输,网络能支持多大的语音流量、多少个语音通道;如果网络支持VoIP,对网络的其他业务特别是关键业务,会产生什么样的影响;网络是否支持服务质量QoS。这些问题都需要通过网络应用测试来回答。
|
|
|
(6)网络系统测试的核心工具是协议分析仪。这是一种专用的网络测试设备,它能够连接到网络上,产生并向网络发送数据,捕捉网络数据,分析数据。协议分析仪一般具有网络监测、故障查找、协议解码和流量产生等功能。
|
|
|
|
现在有很多新型网络设备尤其是网络边缘路由器增加了防护功能,阻止了人为、故意的网络攻击。然而,提供的防护会不会对正常数据转发造成影响?有什么样的影响?这些很难从理论上估计,需要进行必要的网络设备安全性测试。
|
|
|
本节提到的测试项,主要是验证网络设备所提供的基本安全功能,并检测这些安全功能项对网络设备运行造成的影响。这些测试项分为访问列表测试和DOS攻击测试两大类。
|
|
|
|
访问列表测试用于检测边缘路由器的访问列表能否起到防火墙的作用,访问列表测试控制网络传输过滤数据报文,访问列表测试阻止或允许数据报文通过网络接口。过滤依据可以是源地址、目的地址和上层协议号。边缘路由器通过将进入或离开的数据报文与访问列表中的过滤项进行比较,决定允许或阻止数据报文通过。对于边缘路由器能提供的访问列表容量,以及不断变化的访问列表对数据转发的影响都要进行测试。
|
|
|
|
DOS攻击测试用于检测边缘路由设备抵抗"拒绝服务(DOS)攻击"的能力。当设备由于伪造的服务请求和虚假的传输而变得非常繁忙时,就无法响应正常的服务请求,从而造成损失。DOS攻击测试考验网络设备检测并阻止某种特定攻击的能力,并在检测受到某种攻击、设备超负荷运行的情况下,正常传输转发性能所受的影响。
|
|
|
|
|
|
|
|
|
|
|
|
|
性能测试包括可靠性测试、功能/特性测试、吞吐量测试、衰减测试、容量规划测试、响应时间测试、可接受性测试和网络瓶颈测试等。
|
|
|
|
可靠性测试是使被测网络在较长时间内(通常是24~72小时)经受较大负载,通过监视网络中发生的错误和出现的故障,验证在高强度环境中网络系统的存活能力,也就是它的可靠性。可靠性测试可作为接受性测试的一部分,在产品评估测试中可作为比较测试或作为产品升级进行的衰减测试的一部分。采用的负载模式很重要,越贴近真实负载模式越好。可靠性测试中使用网络分析仪监控网络运行,捕获网络错误。
|
|
|
通常在较长时间段内和持续负载下,不同网络具有不同级别的存活度。如果测试时间足够长、负载足够大,所有可靠性测试最终都会失败。
|
|
|
|
◆计划:作为产品评估测试的一部分,比较不同产品或建立要求规范。
|
|
|
|
◆组建:作为可接受性测试的一部分,在网络运行前进行,核实系统是否达到要求。
|
|
|
|
特性测试核实的是单个命令和应用程序功能,通常用较小的负载完成,关注的是用户界面、应用程序的操作以及用户与计算机之间的互操作。特性测试通常由开发人员在他们的工作台上完成,或是在一个小型网络环境下由测试人员完成。
|
|
|
功能测试是面向网络的,核实的是应用程序的多用户特征和在重负载下后台功能是否能正确地执行,关注的是当多个用户正在运行应用程序时,网络和文件系统或数据库服务器之间的交互。功能测试要求网络的配置和负载非常接近于运行环境下的模式。该测试可以在运行网络或独立网络实验室里完成。它只应用于网络生命周期中的以下3个阶段。
|
|
|
◆开发:用于核实在期望的运行模式下,在多用户环境里,应用程序的运行性能是否达到要求。
|
|
|
◆组建:在应用程序安装前完成,可独立进行,也可作为接受性测试的一部分,用于核实在期望的运行模式下,应用程序的运行性能是否达到要求。
|
|
|
◆运行:该阶段测试是在应用程序运行后进行的,如果在运行系统中遇到了问题,该阶段测试用于核实应用程序是否如最初应用时那样工作。
|
|
|
|
吞吐量测试和应用程序的响应时间测试相似,但检测的是每秒钟传输数据的字节数和数据报文数,而不是响应时间。它用于检测服务器、磁盘子系统、适配卡/驱动连接、网桥、路由器、集线器、交换器和通信连接。吞吐量测试用于测量网络性能、找到网络瓶颈,以及比较不同产品的性能。
|
|
|
吞吐量测试不使用程序脚本,它借助某些软件对网络服务器执行文件输入/输出操作来产生流量,或通过某些软件在网络上发送专门的数据报文或帧。该测试应用于网络生命周期的以下几个阶段。
|
|
|
◆计划:用于比较网络产品,为模拟网络节点提供运行特征和要求规范。
|
|
|
◆开发:用于核实网络组件以及整个网络是否达到规范要求的水平。
|
|
|
◆组建:可独立进行或作为可接受性测试的一部分,在网络组件或整个网络正式运行之前核实它们是否满足规范的要求。
|
|
|
|
衰减测试是将硬件或软件的新版本与当前版本在性能、可靠性和功能等方面进行比较,同时验证产品升级对网络的性能不会有不良影响。衰减测试混杂了很多为完成其他测试任务要进行的测试。衰减测试的关键是要保证被测组件应是运行网络中最关键或最脆弱的组件。
|
|
|
衰减测试不强调升级版的新特性。新特性测试在衰减测试之前作为功能/特征测试的一部分就已完成。尽管新产品应该解决了当前版本中的错误,但它们也经常存在一些以前没有出现过的错误,如果这些错误发生在产品的关键部分,将会引起严重问题。衰减测试不需要测试产品的所有特性,但网络用户正常运行所依靠的关键功能必须在测试之列。
|
|
|
|
◆开发:用于核实产品升级版是否能满足性能、互操作性和可靠性的要求。
|
|
|
◆升级:在采用升级版本之前用该项测试来比较升级版和当前版,看升级版是否和当前版一样满足性能、互操作性和可靠性的要求。
|
|
|
|
容量规划测试用于检测当前网络中是否存在多余的容量空间。当网络承受的总负载超过网络总容量时,网络的性能或吞吐量就有可能下降,所以在网络负载接近这一临界点(网络的最大容量)前,就要根据负载增长的幅度扩充网络资源。
|
|
|
进行该项测试要逐渐增加网络负载,直到网络的运行性能、可接受的水平或吞吐量不断下降,达不到设计所要求的水平为止。网络运行负载和网络最大吞吐量之间的差额就是现有系统的冗余量。
|
|
|
|
◆计划:用于估计实施该系统所需要的资源,也可用于成本分析和制定预算。
|
|
|
◆开发:检测系统要求的资源是否满足特定的响应时间和吞吐量的要求。
|
|
|
◆升级:当系统响应时间或吞吐量下降时,重新选取网络组件。
|
|
|
|
响应时间测试用于检测系统完成一系列任务所需的时间,本项测试是用户最关心的。对于表示层,如微软的Windows,该测试是指在不同桌面之间切换或装载新负载所需的时间。在不同负载即不同实际或模拟用户的数目下运行这一实验,可对每个被测试的应用程序生成一个负载—响应时间曲线。
|
|
|
在应用程序测试中,可执行一系列典型网络动作的命令,如打开、读、写、查找和关闭文件,这些命令提供了最好的负载模拟。例如,对每个进行测试的工作站,检测它在几秒内能完成这些命令。
|
|
|
|
◆计划:使用模拟应用程序进行,检测规范要求的各项网络服务。
|
|
|
|
◆组建:在接受和组建之前,核实规范要求下的网络服务是否已经被实现。
|
|
|
◆运行:检测网络服务的基准和变化,这可能是针对系统质量的最好测试。
|
|
|
响应时间测试应该包括对系统可靠性的检测。常见的可靠性问题,如在路由器或服务器中大量丢失数据报文或由于网络组件故障引发大量坏数据报文,将严重影响网络的响应时间,因此在整个测试期间都应用网络分析仪监视系统错误。
|
|
|
|
可接受性测试是在系统正式实施前的"试运行"。它是一个非常有效的方法,可确保新系统能提供良好而稳定的性能。和衰减测试一样,可接受性测试中也包含多项测试,如响应时间测试、稳定性测试和功能/特性测试。
|
|
|
可接受性测试应用于许多领域,但在安装或升级网络前应进行的网络可接受性测试则经常被忽略,而事实上,可接受性测试能为网络购买者在经济和技术上提供有力的保证和参考。
|
|
|
可接受性测试可以仅在新增加的部件上完成,将已存在的负载加上新增程序或新增组件可能产生的负载作为测试使用的负载。
|
|
|
|
◆开发:在开发阶段前定期执行,用来核实要求的标准是否可行。
|
|
|
◆组建:在网络投入运行之前应用,用来核实系统是否满足所有要求。
|
|
|
|
通过网络瓶颈测试可以找到导致系统性能下降的瓶颈。测试中需要测试和计算系统的最大吞吐量,然后再在单个网络组件上进行该项测试,明确各组件的最大吞吐量。通过计算单个组件的最大吞吐量和系统最大吞吐量之间的差额,就能发现系统瓶颈的位置以及哪些组件有多余的容量。
|
|
|
系统瓶颈在不同的测试案例中出现的位置可能有所变化。例如,一个客户业务应用程序测试可能表明服务器是系统的瓶颈,而对一个电子邮件系统的测试则可能表明广域网连接才是网络的限制因素。如果可以在测试的环境中重现引起问题的负载,那么这样的测试结果对解决问题将有很大帮助。
|
|
|
|
◆组建:可以作为容量计划的一部分,用于帮助相关人员明确影响网络性能和响应时间的瓶颈位置。
|
|
|
◆运行:作为故障检测的一部分,帮助相关人员找出影响网络性能或引起系统问题的网络瓶颈。
|
|
|
|
测试报告是整个项目的第一份供大家交流和供领导查阅的报告,人们对工程的满意程度和对工程质量的认可很大程度上来源于这份报告。通常在独立网络测试后,要总结测试数据,并基于此对测试过的同类产品进行排序;而系统内部的测试仅是得出一个简单的结论。
|
|
|
测试报告呈现的内容和采取的表现形式非常重要,测试报告通常包含以下信息。
|
|
|
|
|
|
◆测试内容和方法:简单地描述测试是怎样进行的,应该包括负载模式、测试脚本和数据收集方法,并且要解释采取的测试方法怎样保证测试结果和测试目的的相关性,以及测试结果是否可重现。
|
|
|
|
测试报告的形式可以是一个简短的总结(2~4页),也可以是一个很长的书面文档(5~20页)。测试总结可以使用图形表示测试结果,如应用程序的响应时间、吞吐量和产品评估。而系统衰减性测试、配置规模测试和应用程序的功能/特性测试的测试报告还要包括更多的信息。
|
|
|
在非常特殊的情况下,测试报告需要长达50页。它通常包括从项目开始到结束按时间编排的所有活动,以及非常详细的问题信息和解决问题的信息。
|
|
|
|
|
|
|
|
网络管理和监控工具(如HP公司的OpenView)能够在网络测试运行过程中提示某些问题的网络事件的出现。这些工具可以是驻留在网络设备中的应用软件。
|
|
|
协议分析仪也能被用于监测新设计的网络,帮助分析通信的行为、差错、利用率、效率以及广播和多播分组。
|
|
|
建模工具和仿真工具是更为先进的用来测试验证网络设计的工具。仿真就是在不建立实际网络的情况下,使用软件和数学模型来分析网络行为的过程。利用仿真工具,可以根据所需要测试的目标开发一个网络模型,从而估计网络性能,并对各种网络实现方法之间的差异进行比较。仿真工具使得选择比较的空间变得更大,特别适合于实现和检查一个扩展的原型系统。一个好的仿真工具往往非常昂贵,实现的技术也比较复杂,它要求开发人员不但要精通统计分析和建模技术,而且还要对计算机网络有所了解。
|
|
|
服务级别管理工具是一种比较新型的工具,主要用来分析网络应用的端到端性能。有些工具能够管理服务质量和服务级别,有些工具能够监控实时应用的性能,有些工具能够预测新的应用性能,有些工具可以将上述功能结合起来实现更强大的功能。
|
|
|