新闻中心

EEPW首页 > 测试测量 > 设计应用 > 设备软件可靠性测试

设备软件可靠性测试

作者:时间:2012-05-31来源:网络收藏

现有的手段中,最直接的方式是通过改动硬件线路或干预数字信号制造故障。此外,可以通过软件加入调试命令,对一些关键器件的状态进行修改,设置为非法的状态来模拟故障。

3、压力

任何或系统都是在一定的工作负荷下完成其功能。如果外部加入的工作负担超过其最大能力,系统效能会下降甚至是停止工作。这是一种与可用性相背离的特性,却是任何系统的必然属性。很多重要系统是通过增加硬件成本,人为降低承诺指标来缓解这一问题,然而事实上都存在一个能力极限,除非输入子系统进行了硬性限制。

为了提高的性价比,一般软件系统不会设定承载能力的硬性约束,因此,都会面对超负荷工作的场景。软件设计力争减少超负荷运行的负面效应,使系统在合理压力下能够正常运作是可靠性的一个重要考量。虽然用户不会要求设备能在超负荷的工作环境下连续稳定运行,但在真实网络中,负荷波动是无法避免的,短时间的超载运行不应该导致灾难性的后果。

事实上,压力除了令系统的计算能力经受考验,也会使系统内的很多资源被软件进程占用;如果压力消除以后,这些资源不能被充分释放和回收,经受过压力的系统将无法完全恢复正常的工作能力。

压力就是通过制造设备的超载负荷,模拟设备在真实环境下可能遇到的场景。一台网络设备会有很多负载指标,验证各个指标的超载工作能力是一项繁杂的测试工作。除了观测压力下设备的反应,在负荷恢复到承诺指标范围内之后,系统完全达到正常工作状态的能力和恢复时间也是用户关心的指标。这些高负载的测试一般都要依赖专用的测试仪器来模拟。

一般在设备规格会写明产品支持的IP路由表容量、最大转发数据流量、ARP或MAC地址容量等指标。测试的工作就是把被测试设备与测试仪器连接,通过仪器构造与规格指标相同或略低的一项负载,再制造一个10%左右的异常波动冲击被测设备,并观察被测设备在加载超载负荷前、负荷中和恢复到初始设定负荷之后的实际表现。

不受压力影响和能快速恢复的设备是可能被制造出来的,但是代价是必然提高硬件和软件成本。因此一个合理的可接受的压力反应和恢复时间,往往需要根据用户的使用场景和可承受成本综合考虑。

4、内存耗尽测试

与硬件发生故障类似,软件所要面对的另一种是情况是资源枯竭。因为软件要流畅地运行需要依赖很多外部资源,其中包括:内存、定时器、队列、文件句柄、Socket等等。这些资源中最关键的就是内存,因为很多资源不足可以等待,内存短缺会导致立即的操作失败。一个复杂的软件系统内存资源都是动态申请和释放的, 在各个处理进程之间动态流转。在突发任务占用大量内存的情况下,其他任务就可能面临资源枯竭。一个良好设计的软件系统需要设定内存门限,一旦内存消耗达到门限会强制一些不重要的任务退出运行而释放资源。而且所有申请内存的任务需要自身设计保护代码,避免没有申请成功时误入歧途。

资源耗尽的情况下软件系统必然会产生一些功能受限的反应,只要这种情况能在资源充足后得到恢复就不构成严重问题。确认系统在资源不足时没有异常反映,合理屏蔽了次要功能,同时确保高优先级进程得到应得的资源就是软件测试所要做的工作。

测试手段通常是启动一些重要的功能和构造动态的运行负荷,然后用调试命令占用内存或启动一些消耗型任务占用内存,以构造资源耗尽的条件,观察被测系统在内存枯竭后的反应,并继续进行操作。最后再通过释放占用的内存来恢复正常条件,观察系统受影响的功能是否自动恢复。

内存耗尽测试的原理非常简单,但是因为动态分配内存的指令无处不在,测试覆盖各种流程分支就要设定各种组合条件,存在很大执行的难度。内存耗尽测试可能发现长期隐藏于软件中的严重问题,彻底解决这些问题,对软件的可靠性有很重要的意义。

5、拷机测试

由于软件固有的逻辑复杂性和系统测试手段的限制,有些问题只有在实际环境下经过足够长时间运行才会出现。拷机测试就是在实验室模拟设备运行的真实工作场景,通过规定负荷及偶发性过载条件下连续运行,观测被测设备连续无故障运行时间,俘获异常错误的测试。

测试所构造的工作场景能否还原真实应用,是能否提早发现问题的关键。由于用户的应用场景千差万别,需要用很多设备搭建组网来还原,而且必须等候足够长的时间,这是一种高成本的测试方式,却又不可替代。测试人员一般会采用频繁触发设备状态变化的手段加速问题出现,这对某些问题有效,却可能隐蔽另外一些问题。

H3C的每个产品都要经过严格测试,其中必须进行的一项就是长时间的拷机环境测试。设备被接入一个运行各种拓扑管理协议和有大量背景流量的模拟环境,以验证设备在典型应用环境下7*24小时的稳定运行。即使产品已经在市场正式投入使用,这套拷机环境还会持续运行,并且经常调整流量和业务规划,以期覆盖更多的用户应用环境。

6、收敛指标测试

对网络设备而言,保证网络通畅是其最重要的功能之一。因此,网络设备除保障自身连续运行外,还专门设计了很多从环境故障中恢复网络连通性的协议。有些则是针对自身发生异常时实现冗余硬件切换,流量路径切换或快速故障恢复的协议。针对这些情况,有一个通用的度量指标,即网络收敛指标,是通过网络中断服务(或故障恢复)时间来考察设备或网络提供的可靠性。

任何一种网络路由协议或拓扑管理协议都是为了在动态变化的网络中提供一个可行的流量路径而设计的,所以收敛是一个基本属性。从注入拓扑变化或故障发生的时间开始,网络服务和数据流量受到影响,在拓扑收敛后路径切换到备份网络上,恢复网络服务和流量所经历的时间就是收敛时间。为加速收敛而提出的一些附加技术可以使收敛时间缩短到毫秒级甚至在设备主控发生重启等情况下提供不中断的转发服务。

44.jpg

图4 IGP路由收敛测试组网图

IGP收敛的测试实例。

如图4所示,被测试设备首先从B和C端口学习到大量的IGP路由信息,其中B端口的度量值优于C端口。测试仪器用稳定的流量由A端口发送,被测设备转发到B端口。测试仪器通过在B端口模拟拓扑变化,撤销一部分路由信息,受影响的流量开始丢失。被测试设备在完成路由计算后将这些流量重新路由到C端口上。测试仪器通过计算这个过程丢失的数据流量和发送速率折算收敛过程经历的时间。



评论


相关推荐

技术专区

关闭