- UID
- 1023230
|
内存耗尽测试的原理非常简单,但是因为动态分配内存的指令无处不在,测试覆盖各种流程分支就要设定各种组合条件,存在很大执行的难度。内存耗尽测试可能发现长期隐藏于软件中的严重问题,彻底解决这些问题,对软件的可靠性有很重要的意义。
5、拷机测试
由于软件固有的逻辑复杂性和系统测试手段的限制,有些问题只有在实际环境下经过足够长时间运行才会出现。拷机测试就是在实验室模拟设备运行的真实工作场景,通过规定负荷及偶发性过载条件下连续运行,观测被测设备连续无故障运行时间,俘获异常错误的测试。
测试所构造的工作场景能否还原真实应用,是能否提早发现问题的关键。由于用户的应用场景千差万别,需要用很多设备搭建组网来还原,而且必须等候足够长的时间,这是一种高成本的测试方式,却又不可替代。测试人员一般会采用频繁触发设备状态变化的手段加速问题出现,这对某些问题有效,却可能隐蔽另外一些问题。
H3C的每个产品都要经过严格测试,其中必须进行的一项就是长时间的拷机环境测试。设备被接入一个运行各种拓扑管理协议和有大量背景流量的模拟环境,以验证设备在典型应用环境下7*24小时的稳定运行。即使产品已经在市场正式投入使用,这套拷机环境还会持续运行,并且经常调整流量和业务规划,以期覆盖更多的用户应用环境。
6、收敛指标测试
对网络设备而言,保证网络通畅是其最重要的功能之一。因此,网络设备除保障自身连续运行外,还专门设计了很多从环境故障中恢复网络连通性的协议。有些则是针对自身发生异常时实现冗余硬件切换,流量路径切换或快速故障恢复的协议。针对这些情况,有一个通用的度量指标,即网络收敛指标,是通过网络中断服务(或故障恢复)时间来考察设备或网络提供的可靠性。
任何一种网络路由协议或拓扑管理协议都是为了在动态变化的网络中提供一个可行的流量路径而设计的,所以收敛是一个基本属性。从注入拓扑变化或故障发生的时间开始,网络服务和数据流量受到影响,在拓扑收敛后路径切换到备份网络上,恢复网络服务和流量所经历的时间就是收敛时间。为加速收敛而提出的一些附加技术可以使收敛时间缩短到毫秒级甚至在设备主控发生重启等情况下提供不中断的转发服务。
图4 IGP路由收敛测试组网图
IGP收敛的测试实例。
如图4所示,被测试设备首先从B和C端口学习到大量的IGP路由信息,其中B端口的度量值优于C端口。测试仪器用稳定的流量由A端口发送,被测设备转发到B端口。测试仪器通过在B端口模拟拓扑变化,撤销一部分路由信息,受影响的流量开始丢失。被测试设备在完成路由计算后将这些流量重新路由到C端口上。测试仪器通过计算这个过程丢失的数据流量和发送速率折算收敛过程经历的时间。
在收敛网络之外来评估收敛时间时,可以使用相同的原则,根据发送流量的速率和被丢失报文数量计算出收敛经历的时间。收敛测试的另一个方向是故障恢复主路径时,对于流量的保护。理想的情况可以做到网络无中断地回切到主路径。然而不同的拓扑管理协议和具体实现技术有一定差别,很多情况下回切过程的流量丢失不能完全避免。
常见的收敛指标测试有二层网络STP收敛测试,RPR和RRPP环网收敛,三层路由协议RIP、OSPF、BGP收敛,以及双主控设备的主备倒换测试,VRRP设备倒换测试。为了减少拓扑管理协议在设备重启期间对周边网络的冲击,很多协议开发了Graceful Restart的功能,并通过控制与数据转发分离的Non-Stop Forwarding技术使流量转发近乎不中断。H3C的IRF2技术也可以将多个物理设备组成一个逻辑设备,以降低对STP、VRRP等慢收敛协议的依赖。所有这些技术的目标都是减少设备故障造成的网络影响,提高组网的可靠性,而评价这些技术的指标都是网络收敛时间。测试执行的步骤几乎是相同的,首先构建正常的网络拓扑,模拟故障发生,监测流量切换的过程和流量丢失的情况,计算切换需要的时间。
结束语
以上的几种测试类型基本覆盖了软件可靠性相关的测试。在具体的产品开发过程中,协议健壮性测试、硬件故障模拟测试、内存耗尽测试等适合在软件功能组件的开发过程中进行测试,而压力测试、收敛指标测试、拷机测试需要在系统整合并且功能稳定后才能实施,所以一般放在产品开发后期。经过全方位的可靠性测试并解决所有问题之后,软件系统可以应对各种内部外部的复杂情况,为用户提供更高可用性的健壮网络。 |
|