电脑技术汇总_电脑技术网_电脑技术官网

电脑知识网 > 电脑故障 > 硬件故障 > 正文

设备软件可靠性测试

网络整理 2020-07-19 05:05

  2、硬件故障模拟测试

  通常,判断软件行为是否正常的先决条件之一是其是否运行在正确的硬件环境之下,因为硬件故障对软件产生的影响往往是致命的和不可预测的。在实际情况中,越是造价昂贵且承担重要任务的硬件系统,其硬件的复杂度越高,故障率也更高。为了提高系统的可靠性,硬件在设计上会使用冗余器件的方式(比如多个电源、多个风扇、多个交换网板、多个主控板),但在很多情况下,硬件替换做不到对软件透明,需要依赖软件检测并采取一系列措施。此外,软件还需要设计足够的容错性去隔离硬件错误的影响范围。在非关键器件停止工作之前,软件需要尽可能保证系统其它功能不受影响。

  对测试人员而言,了解软件对硬件的依赖,通过制造或模拟硬件器件故障检验软件行为的合理性,是可靠性测试的一个重要环节。硬件故障测试的目标就是观测和评估软件在硬件失效时的反映,找出预期与实际结果之间的差距。在测试有备份硬件系统的产品时,测试人员往往使用硬件拔出槽位,命令重启等方式验证备份机制的有效性。然而,这还远远不够。设备在实际运行条件下器件被拔出只是一种维护行为,很多情况下是在连续运行过程中,器件突然失效。测试人员需要验证这些情况,以确认软件设计的故障检测机制和容错机制的真实有效性。

  由于硬件系统的具体情况不同,每个器件的故障形式和直接影响不同,是否有规避方案需要具体分析。软件对硬件可用性的依存度往往很高,因此硬件故障测试的结果经常具有很大的争议性。对测试结果的分析和判断比测试设计和执行更为重要。

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

  3、压力测试

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

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

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

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

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

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

  4、内存耗尽测试

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

Tags:设备(7)可靠性测试(2)

转载请标注:电脑技术网——设备软件可靠性测试

搜索
网站分类
标签列表