故障注入测试方法_第1页
故障注入测试方法_第2页
故障注入测试方法_第3页
故障注入测试方法_第4页
故障注入测试方法_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

故障注入测试故障注入测试 放射研发测试部放射研发测试部 2 故障注入的概念 故障注入是指按照选定的故障模型, 用人工的方法有意识地产 生故障并施加于特定的目标系统中, 以加速该系统的错误和失 效的发生, 同时采集系统对所注入故障的反应信息,并对回收 信息进行分析,从而提供有关结果的过程。 故障注入的概念故障注入的概念: 故障注入提出于70 年代初期, 之后一直被工业界用来对容错系 统的设计进行验证。80年代中期, 故障注入技术逐渐开始被高校 和研究部门所采用。进入90 年代后, 该技术越来越引起研究人 员和工程设计者的重视, 对故障注入的研究与应用也随之深入和 广泛。 3 故障注入的分类 按所注入的故障类型分:软件故障注入、硬件故障注入 按系统故障的抽象级别:可分为晶体管开关级、逻辑门级、芯片管脚级、微指令和 宏指令级、系统级、应用级的故障注入等; 4 底层驱动及相关硬件故障插入测试底层驱动及相关硬件故障插入测试 寄存器故障插入测试寄存器故障插入测试: 概念概念 此处寄存器故障是指寄存器值与期望值不符的状态。 测试目的测试目的 模拟寄存器值被异常修改后系统的运行规律是否符合用户需求。 故障产生原因故障产生原因 (1)软件发生错误,例如越界 (2)电源低压波动 (3)芯片内部故障 故障可能产生的后果故障可能产生的后果 (1)业务局部中断 (2)业务没有中断但不正确 (3)扩散为系统级故障 测试时的故障产生方法测试时的故障产生方法 修改寄存器值。 测试步骤测试步骤 (1)增加修改寄存器值的命令 (2)运行程序,在程序正常运行时通过命令修改寄存器值 (3)观察系统运行情况 (4)重复步骤2和3,对主要寄存器进行故障插入测试 测试的期望结果测试的期望结果 系统能够检测到芯片寄存器或相关业务异常,并能正确倒换到备用单板或对芯片进行重新初始化,重新初始化后 业务正常。 5 底层驱动及相关硬件故障插入测试底层驱动及相关硬件故障插入测试 误码测试误码测试 概念概念 所谓误码就是当发送端发送“1”码元 时,在接收端收到的却是“0”码元,反之亦然。这种收发信码的不一致 就称为误码。 测试目的测试目的 测试芯片及其驱动程序在发生误码情况下是否具有容错能力。 故障产生原因故障产生原因 (1)收发芯片异常 (2)线路干扰 (3)时钟不稳定 故障可能产生的后果故障可能产生的后果 (1)误码率太高,使业务局部中断 (2)业务没有中断但误码过多 (3)扩散为系统级故障 测试时的故障产生方法测试时的故障产生方法 需要专门的测试仪器(比如传输用的SDH测试仪) 测试步骤测试步骤 (1)将测试仪器连接到单板 (2)利用仪表进行各种误码的插入测试(分为短时误码插入与长时间误码插入:长时间最好能达到24小时), 观察此过程中产生的现象是否和设计目的有冲突,例如如果设计为线路有误码时进行断链、倒换,则检查是否能 倒换,如果设计为有误码时链路要保持连接,则检查此时链路是否能保持连接。 (3)停止误码插入,检查是否能恢复到误码前的状态。 测试的期望结果测试的期望结果 线路出现误码,单板能够正确上报,告警抑制关系正确,停止误码插入后,单板能够恢复正常,停止上报误码。 6 底层驱动及相关硬件故障插入测试底层驱动及相关硬件故障插入测试 晶振失效测试晶振失效测试 概念概念 晶振失效包括晶振短路、开路、频率漂移,晶振失效测试是指通过模拟晶振失效来观察系统在晶振发生失效情况 下的软件运行情况是否符合需求的测试。 测试目的测试目的 测试晶振失效后系统的运行规律是否符合用户需求。 故障产生原因故障产生原因 晶振老化失效。 故障可能产生的后果故障可能产生的后果 (1)业务中断 (2)误码 (3)扩散为系统级故障 测试时的故障产生方法测试时的故障产生方法 用镊子轻触晶振的两个引脚,使晶振输出短路到地或短路到电源,当然,这种方法产生的信号质量差,如果要得 到好的信号质量,则要开发专门的测试用具了。 测试步骤测试步骤 (1)启动程序,使软件正常运行,加入业务数据流, (2)用镊子轻触晶振的两个引脚,使晶振输出短路到地,检查系统的运行状态,在晶振短路的条件下运行一段 时间后,再检查系统的运行状态, (3)用镊子轻触晶振的两个引脚,使晶振输出短路到电源,检查系统的运行状态,在晶振短路的条件下运行一 段时间后,再检查系统的运行状态, (4)如果条件允许,进行晶振开路测试,检查系统的运行状态。 (5)对其它晶振重复步骤14。 测试的期望结果测试的期望结果 对于重要业务,能立刻倒换到备用设备上去。对于所有业务,在晶振失效状态下,故障不应扩散到其它单板或模 块。 7底层驱动及相关硬件故障插入测试底层驱动及相关硬件故障插入测试 时钟频率及相位偏移测试时钟频率及相位偏移测试 测试目的测试目的 测试时钟发生漂移时系统的运行状态。 故障产生原因故障产生原因 (1)时钟源误差超过范围 (2)锁相电路或相关模块故障。 故障可能产生的后果故障可能产生的后果 (1)误码 (2)指针调整 (3)业务中断 测试时的故障产生方法测试时的故障产生方法 (1)可使用时钟拉偏板或相关仪器测试。 (2)修改数字锁相环中的DA值(数字环)。 (3)断开反馈环。 (4)调节压控电压。 (5)切换到另外一种频率的时钟。 测试步骤测试步骤 (1)搭好测试工具,运行程序,并加入一定的业务量。 (2)在程序正常运行时,提高时钟频率,观察系统的运行状态,缓慢增加提高量,观察系统的运行状态。 (3)时钟频率恢复到初始值,检查系统是否恢复正常。 (4)在程序正常运行时,降低时钟频率,观察系统的运行状态,缓慢增加降低量,观察系统的运行状态。 (5)时钟频率恢复到初始值,检查系统是否恢复正常。 (6)在程序正常运行时,使输入时钟的相位提前,观察系统的运行状态,缓慢增加提前量,观察系统的运行状态。 (7)时钟相位恢复到初始值,检查系统是否恢复正常。 (8)在程序正常运行时,使输入时钟的相位滞后,观察系统的运行状态,缓慢增加滞后量,观察系统的运行状态。 (9)时钟相位恢复到初始值,检查系统是否恢复正常。 测试的期望结果测试的期望结果 当时钟拉偏到某一门限后,系统能上报时钟异常并对时钟模块进行复位(对于数字锁相环),同时对于重要业务,能及时倒换到备 用设备上去。当时钟恢复正常后,系统也能恢复到正常状态。 8 常用故障注入方法 时钟中断测试时钟中断测试: 概念概念 时钟源中断测试是指通过模拟时钟信号中断来测试时钟源中断对系统的影响的测试过程。 测试目的测试目的 测试时钟源中断对系统的影响,检查系统对时钟源中断的处理过程是否符合要求。 故障产生原因故障产生原因 (1)、外部时钟源中断 (2)、锁相电路或相关模块故障 故障可能产生的后果故障可能产生的后果 (1)、误码 (2)、业务中断 测试时的故障产生方法测试时的故障产生方法 (1)、切断时钟信号线 (2)、模拟本地晶振失效(这一点和前面的晶振失效测试一样) 测试步骤测试步骤 (1)、启动系统,加入一定的业务量。 (2)、在系统正常运行时,切断时钟信号线或模拟本地晶振失效使时钟信号中断。 (3)、观察系统的状态 测试的期望结果测试的期望结果 系统能检测到时钟源中断所影响的范围并上报故障,同时对于重要业务,能及时倒换到备用设备 上去。当时钟源恢复正常后,系统也能恢复到故障前的正常状态。 9 针对资源的故障 内存过载测试内存过载测试 概念概念 当一个计算机系统的内存占用率为80%100%时,视为内存过载。 测试目的测试目的 内存过载测试主要是测试系统在内存即将用完的时候,系统运行的可靠性。 故障产生原因故障产生原因 (1)、大流量冲击 (2)、内存丢失 (3)、算法缺陷,需要占用大量内存 故障可能产生的后果故障可能产生的后果 (1)、复位 (2)、空转 (3)、系统内部数据状态不一致,即发送消息的模块和接收消息的模块状态不一致。 测试时的故障产生方法测试时的故障产生方法 采用内存丢失的办法实现内存过载。 测试步骤测试步骤 (1)、丢失空闲内存,使内存占用率达到80%,运行一段时间,观察系统的运行状态。 (2)、在前面的基础上再丢失10%的内存,运行一段时间,观察系统的运行状态。 (3)、把剩余的所有内存全部申请出来丢掉,观察系统的运行情况。 测试的期望结果测试的期望结果 对于一般系统,内存过载时能自动降低业务处理量,如果持续时间过长,复位单板。对于HA系统, 要求能区分是大流量冲击还是内存丢失造成的内存过载,如果是大流量冲击造成的过载,应能自 动降低业务处理量,如果是内存丢失造成的过载,应能复位单板,但对业务不造成影响。 10 针对资源的故障 CPU过载测试过载测试 概念概念 当一个计算机系统的CPU占用率达到80%100%时,称为CPU过载。 测试目的测试目的 CPU过载测试主要是测试系统在高CPU占用率状态下系统的可靠性情况。 故障产生原因故障产生原因 (1)、大流量冲击 (2)、算法效率低下,例如在等待某些事件时没有交出CPU权限 故障可能产生的后果故障可能产生的后果 (1)、对实时事件响应不及时 (2)、影响提供业务的能力 测试时的故障产生方法测试时的故障产生方法 创建一个任务,用循环的方式强制消耗掉一部分CPU资源,循环次数可以动态调整,通过调整循 环次数可以调整CPU占用率。 测试步骤测试步骤 (1)、创建一个最高优先级的CPU过载测试任务,调整循环次数,使CPU过载,观察系统的运 行情况。 (2)、降低过载测试任务的优先级,使原来优先级较高的任务可以正常运行,优先级较低的任 务受到影响,运行一段时间,观察系统的运行情况。 (3)、重复步骤2,使各优先级的任务均受到过过载干扰。 测试的期望结果测试的期望结果 CPU过载时应能自动启动流控,降低业务流量,同时,系统运行的各种业务不应出错,输入输出 的各类消息顺序保持不变。 11 针对资源的故障 资源丢失测试资源丢失测试 概念概念 资源丢失是指资源没有正在被使用,也不在对应的资源管理程序中,即该资源已经不受控了。 测试目的测试目的 资源丢失测试的目的是验证在发生资源丢失故障时软件是否能从故障中恢复过来,在故障恢复过程中是否还引入了其它的故障。 故障产生原因故障产生原因 (1)、重入 (2)、申请出来的资源使用后没有释放 (3)、在某些路径下资源没有释放 故障可能产生的后果故障可能产生的后果 (1)、复位 (2)、输出错误 (3)、软件内部状态错误 (4)、业务无法完成或业务性能降低 测试时的故障产生方法测试时的故障产生方法 把资源申请出来后不释放。 测试步骤测试步骤 (1)、申请一个资源 (2)、经过一段时间后,检查软件是否能发现出现资源丢失,观察软件是否采取了什么恢复措施,该措施是否有效。 (3)、重复申请一批资源出来,不释放,过一段时间后,检查软件是否能发现出现资源丢失故障,故障软件是否采取了相应的措 施,以及该措施是否有效。 测试的期望结果测试的期望结果 对于一般系统,要求在资源耗尽以后能复位,这时要注意耗尽型资源和非耗尽型资源的差异,复位条件的检测要特殊设计。对于 HA系统,要求能恢复资源丢失造成的影响,并且不影响业务的正常运作。 12 针对资源的故障 释放错误资源测试释放错误资源测试 概念概念 释放错误资源就是把伪造的非法资源通过资源释放函数试图加入到空闲资源池的测试过程。 测试目的测试目的 释放错误资源的目的是为了验证资源管理程序是否对非法资源有合理的保护措施。 故障产生原因故障产生原因 资源在使用过程中修改了资源的标记属性,如地址指针、ID号等。 故障可能产生的后果故障可能产生的后果 (1)、资源管理程序遭到破坏 (2)、资源丢失 (3)、业务中断 测试时的故障产生方法测试时的故障产生方法 伪造一个非法的资源并用资源释放函数释放该非法资源。例如对于内存,可以先申请出一块内存,然后把地址加1,再释放。 测试步骤测试步骤 (1)、伪造非法资源 (2)、用资源释放函数释放这些非法资源 (3)、观察资源管理程序是否返回出错,检查资源管理程序的内部数据看是否把非法的资源加进去了。 测试的期望结果测试的期望结果 返回出错信息,资源管理程序内部没有真正增加这些非法的资源。 13 针对资源的故障 资源申请失败测试资源申请失败测试 概念概念 略 测试目的测试目的 验证程序对资源申请失败的处理是否正确。 故障产生原因故障产生原因 (1)、资源已经用完了 (2)、资源管理程序出现了故障 (3)、编程错误,在某些路径下申请资源总是不成功。 故障可能产生的后果故障可能产生的后果 (1)、业务没有完成 (2)、访问了非法资源 测试时的故障产生方法测试时的故障产生方法 修改代码,使资源申请函数在需要的时候可以产生一个异常返回值。 测试步骤测试步骤 (1)、修改代码,在代码中增加一个路径控制开关,当开关关时,资源可以正常申请,当开关打开时,申请的资源都不成功。 (2)、在系统正常运行后,把上述的控制开关带开,加入故障。 (3)、观察故障对系统的影响。 测试的期望结果测试的期望结果 检查是否非法使用了资源,软件提供的业务是否出现错误。 14 针对任务的故障注入 任务强制挂起任务强制挂起 概念概念 略 测试目的测试目的 任务强制挂起测试的目的是为了验证软件是否具有任务被异常挂起的检测功能,以及测试任务被异常挂起后软件的整个恢复过程 是否正确,是否会引入其它的故障。 故障产生原因故障产生原因 程序设计问题。 故障可能产生的后果故障可能产生的后果 由被挂起的任务完成的功能无法完成,还可能引起进一步的其它故障。 测试时的故障产生方法测试时的故障产生方法 (1)、通过控制台调用挂起函数把被测任务强制挂起。 (2)、修改代码,嵌入挂起任务的代码,重新编译软件。嵌入代码时,应注意嵌入的代码应在整个软件正常运行一段时间后才能 执行。 测试步骤测试步骤 (1)、通过控制台或嵌入代码使被测任务强制挂起 (2)、观察系统的运行情况。 测试的期望结果测试的期望结果 被挂起的任务能在一个合理的时间内解挂,解挂后各个任务之间的内部状态应保持一致,对业务造成的影响尽量小。 15 针对任务的故障注入 任务强制删除任务强制删除 概念概念 略 测试目的测试目的 任务强制删除测试的目的是为了验证软件是否具有任务被异常删除的检测功能,以及测试任务被异常删除后软件的整个恢复过程 是否正确,是否会引入其它的故障。 故障产生原因故障产生原因 程序设计问题。 故障可能产生的后果故障可能产生的后果 由被删除的任务完成的功能无法完成,还可能引起进一步的其它故障。 测试时的故障产生方法测试时的故障产生方法 (1)、通过控制台调用任务删除函数把被测任务强制删除。 (2)、修改代码,嵌入删除任务的代码,重新编译软件。嵌入代码时,应注意嵌入的代码应在整个软件正常运行一段时间后才能 执行。 测试步骤测试步骤 (1)、通过控制台或嵌入代码使被测任务强制删除 (2)、观察系统的运行情况。 测试的期望结果测试的期望结果 对于一般系统,要求能检测到任务被删除,并复位系统。对于HA系统,要求被删除的任务能在一个比较短的时间内恢复,并对业 务造成的影响尽量小,任务恢复后,各个任务之间的内部状态应保持协调一致。 16 针对任务的故障注入 任务强制删除任务强制删除 概念概念 略 测试目的测试目的 任务强制删除测试的目的是为了验证软件是否具有任务被异常删除的检测功能,以及测试任务被异常删除后软件的整个恢复过程 是否正确,是否会引入其它的故障。 故障产生原因故障产生原因 程序设计问题。 故障可能产生的后果故障可能产生的后果 由被删除的任务完成的功能无法完成,还可能引起进一步的其它故障。 测试时的故障产生方法测试时的故障产生方法 (1)、通过控制台调用任务删除函数把被测任务强制删除。 (2)、修改代码,嵌入删除任务的代码,重新编译软件。嵌入代码时,应注意嵌入的代码应在整个软件正常运行一段时间后才能 执行。 测试步骤测试步骤 (1)、通过控制台或嵌入代码使被测任务强制删除 (2)、观察系统的运行情况。 测试的期望结果测试的期望结果 对于一般系统,要求能检测到任务被删除,并复位系统。对于HA系统,要求被删除的任务能在一个比较短的时间内恢复,并对业 务造成的影响尽量小,任务恢复后,各个任务之间的内部状态应保持协调一致。 17 针对任务的故障注入 插入死循环插入死循环 概念概念 插入死循环是指在任务或中断服务程序中加入死循环代码。 测试目的测试目的 插入死循环测试的目的是为了验证任务或中断进入死循环后软件的处理是否符合要求。 故障产生原因故障产生原因 (1)、进入了死循环 (2)、发生了不能终结的函数递归调用 (3)、发生了函数的循环调用 故障可能产生的后果故障可能产生的后果 由任务或中断完成的功能无法完成。 测试时的故障产生方法测试时的故障产生方法 加入死循环代码。 测试步骤测试步骤 (1)、在被测任务或中断中加入死循环代码,重新编译程序; (2)、构造测试输入数据,使程序能执行到插入的代码; (3)、观察软件进入死循环后的处理情况。 测试的期望结果测试的期望结果 对于一般系统,要求能检测到发生死循环故障,并能复位,复位后系统能正常运行。对于HA系统,要求能检测到发生死循环故障, 并要求能重新启动或重新初始化该任务,重起后各个任务的内部状态能保持一致。 18 针对任务的故障注入 死锁测试死锁测试 概念概念 若一个进程集合中的每一个进程都在等待只能由本集合中的另一个进程才能引发的事件,则这种情况被视为死锁。 测试目的测试目的 死锁测试的目的是为了验证程序是否具有处理死锁的能力。 故障产生原因故障产生原因 死锁的4个条件: (1)、互斥条件,每一资源或者被分配给一个进程,或者空闲。 (2)、保持和等待条件,已分配到了一些资源的进程可以申请新的资源。 (3)、非剥夺条件,已分配给一进程的资源不可剥夺,只能被占有它的进程显式地释放。 (4)、循环等待条件,系统必然有一条由两个或两个以上的进程组成的循环链,链中的每一个进程都在等待相邻进程占用的资源。 故障可能产生的后果故障可能产生的后果 所有涉及的任务均被吊死,由这些任务完成的功能全部中断。 测试时的故障产生方法测试时的故障产生方法 按照上述4个条件,任务A申请资源1和资源2,任务B申请资源2和资源1,为了能进入死锁,在申请完第1个资源后增加一个同步操 作,使两个任务进入死锁。 测试步骤测试步骤 (1)、选择2个任务,按照下列步骤增加相应的代码 (2)、任务A:申请信号量1申请信号量3释放信号量1等待信号量2申请信号量4 (3)、任务B:申请信号量2申请信号量4释放信号量2等待信号量1申请信号量3 (4)、重新编译程序并运行,观察程序是否能检测到死锁并作出相应的措施。 测试的期望结果测试的期望结果 对于一般系统,程序能检测到软件发生了故障并能复位系统,对于HA系统,要求能检测到软件发生了故障而且在短时间内能正确 恢复,并对业务不造成重大影响。 19 针对中断的测试 频繁中断测试频繁中断测试 概念概念 当两个中断的间隔时间小于中断服务程序的处理时间时,称为发生了频繁中断。 测试目的测试目的 验证软件在发生频繁中断情况下的运行是否稳定可靠,验证中断等待、中断嵌套功能是否达到设计要求。 故障产生原因故障产生原因 (1)、中断服务程序执行时间过长。 (2)、同时发生了多个中断。 (3)、中断发生得太快。 故障可能产生的后果故障可能产生的后果 (1)、中断丢失 (2)、中断吊死 (3)、中断跑飞 由此带来与该中断相关的业务可能受到影响。 测试时的故障产生方法测试时的故障产生方法 把中断信号发生器连接到中断引脚,产生频繁中断信号。 测试步骤测试步骤 (1)、测试出被测中断的一次正常中断的执行时间(t1)。 (2)、找到中断源对应的引脚,在引脚上插入中断信号发生器的输出信号,调节中断间隔时间(t2),使其小于中断服务程序的 执行时间(t1 t2 0.5t1),观察系统运行情况。 (4)、继续降低中断信号的时间间隔,使0.5t1 t2 0.25t1,即在处理中断服务程序时发生2个中断请求,观察系统运行情况。 (5)、在中断服务程序中增加中断计数变量,重新编译运行,正常运行后,利用中断信号发生器在很短的时间内快速发送1000 个中断,观察系统运行情况。 测试的期望结果测试的期望结果 当中断队列不满时,不应发生中断丢失,同时不应发生中断吊死或跑飞。当取消频繁中断后,程序应能恢复正常运行时的状态。 20 针对中断的测试 重复中断重复中断 概念概念 重复中断是指对同一次中断作了多次响应,即执行了多次的中断服务程序。 测试目的测试目的 重复中断测试的目的是为了测试重复执行中断服务程序对系统造成的影响是否存在问题。 故障产生原因故障产生原因 中断控制器发生了故障 故障可能产生的后果故障可能产生的后果 (1)、重复执行由该中断触发的操作 (2)、对于数据收发,可能出现重包 测试时的故障产生方法测试时的故障产生方法 在响应中断时,调用多次中断服务程序 测试步骤测试步骤 (1)、修改代码,在响应中断时,调用多次中断服务程序,重新编译程序。 (2)、按照实际条件触发该中断,观察程序的运行情况。 测试的期望结果测试的期望结果 重复执行中断的服务程序不应对系统的业务造成影响。 21 针对中断的测试 中断丢失中断丢失 概念概念 中断的响应次数比中断的触发次数少的情况称为中断丢失。 测试目的测试目的 测试中断丢失对系统造成的影响,验证在发生中断丢失时,系统是否发生重大的功能缺陷。 故障产生原因故障产生原因 中断控制器故障。 故障可能产生的后果故障可能产生的后果 (1)、对外部事件的响应不完整,可能造成系统的严重功能失效。 (2)、对于数据收发,可能造成丢包。 测试时的故障产生方法测试时的故障产生方法 在中断服务程序中有选择性或随机地直接返回。 测试步骤测试步骤 (1)、修改中断服务程序,在入口处有选择性或随机地直接返回,重新编译程序。 (2)、按照实际条件触发该中断,观察系统的运行情况。 测试的期望结果测试的期望结果 不发生重大的功能失效,对后续的中断仍能正常处理。 22 针对中断的测试 中断吊死中断吊死 概念概念 中断吊死是指中断控制器由于某些原因造成不能响应新中断的问题。 测试目的测试目的 中断吊死测试的目的是为了测试系统不能响应部分或全部中断后系统的运行情况。 故障产生原因故障产生原因 中断控制器发生故障 故障可能产生的后果故障可能产生的后果 无法响应新产生的中断,因此由这些中断完成的功能均无法完成。 测试时的故障产生方法测试时的故障产生方法 修改中断使能位或中断屏蔽位,关闭被测中断。 测试步骤测试步骤 (1)、运行程序,使被测程序正常运行,然后清除被测中断的使能位,关闭中断。 (2)、按照实际条件触发该中断,观察系统的运行情况 测试的期望结果测试的期望结果 程序能检测到中断出了故障,作出相应的措施,并能在一个较短的时间内恢复正常。 23 针对中断的测试 中断吊死中断吊死 概念概念 中断吊死是指中断控制器由于某些原因造成不能响应新中断的问题。 测试目的测试目的 中断吊死测试的目的是为了测试系统不能响应部分或全部中断后系统的运行情况。 故障产生原因故障产生原因 中断控制器发生故障 故障可能产生的后果故障可能产生的后果 无法响应新产生的中断,因此由这些中断完成的功能均无法完成。 测试时的故障产生方法测试时的故障产生方法 修改中断使能位或中断屏蔽位,关闭被测中断。 测试步骤测试步骤 (1)、运行程序,使被测程序正常运行,然后清除被测中断的使能位,关闭中断。 (2)、按照实际条件触发该中断,观察系统的运行情况 测试的期望结果测试的期望结果 程序能检测到中断出了故障,作出相应的措施,并能在一个较短的时间内恢复正常。 24 接口数据插入测试 接口数据长度错误接口数据长度错误 概念概念 长度错误是指消息中各个长度域中的值发生错误 测试目的测试目的 测试程序对错误长度的消息的处理情况。 故障产生原因故障产生原因 (1)、发送的消息长度有错 (2)、消息在传输过程中发生了错误 故障可能产生的后果故障可能产生的后果 (1)、内存越界 (2)、使用了错误的数据 (3)、死机 测试时的故障产生方法测试时的故障产生方法 发送错误长度的消息。 测试步骤测试步骤 (1)、修改代码,可以从后台直接发送十六进制格式的消息,重新编译程序并运行。 (2)、发送0长度消息,即长度域的值是0,观察程序的处理情况。 (3)、发送超长消息,即长度值超过允许的最大值,观察程序的运行情况。 (4)、发送消息内容中的长度域,使其值在允许范围之外,观察程序的运行情况。 测试的期望结果测试的期望结果 程序能忽略消息内容并释放这些非法消息,而且程序的状态不应吊死在某个状态,当长时间收不到期望接收的消息时,应能恢复 到初始状态。 25 接口数据插入测试 接口数据类型错误接口数据类型错误 概念概念 略 测试目的测试目的 测试程序对错误类型的消息的处理情况。 故障产生原因故障产生原因 (1)、发送的消息类型有错 (2)、消息在传输过程中发生了错误 故障可能产生的后果故障可能产生的后果 (1)、使用了错误的数据 (2)、状态机故障 测试时的故障产生方法测试时的故障产生方法 发送错误类型的消息。 测试步骤测试步骤 (1)、修改代码,可以从后台直接发送十六进制格式的消息,重新编译程序并运行。 (2)、发送消息类型为允许范围外的消息,观察程序的处理情况。 测试的期望结果测试的期望结果 程序能忽略消息内容并释放这些非法消息,而且程序的状态不应吊死在某个状态,当长时间收不到期望接收的消息时,应能恢复 到初始状态。 26 接口数据插入测试 数据错误数据错误 概念概念 略。 测试目的测试目的 测试程序对带有错误数据的消息的处理情况 故障产生原因故障产生原因 (1)、发送的消息类型有错 (2)、消息在传输过程中发生了错误 故障可能产生的后果故障可能产生的后果 (1)、使用了错误的数据 (2)、状态机故障 测试时的故障产生方法测试时的故障产生方法 发送错误数据的消息 测试步骤测试步骤 (1)、修改代码,可以从后台直接发送十六进制格式的消息,重新编译程序并运行。 (2)、发送消息数据为允许范围外的消息,观察程序的处理情况。 测试的期望结果测试的期望结果 程序能忽略消息内容并释放这些非法消息,而且程序的状态不应吊死在某个状态,当长时间收不到期望接收的消息时,应能恢复 到初始状态。 27 消息流量故障插入测试 突发大流量突发大流量 概念概念 突发大流量是指在短时间内发送大量的消息或数据。 测试目的测试目的 测试系统受到突发大流量冲击时系统的稳定性与可靠性。 故障产生原因故障产生原因 实际环境下可能发生突发大流量这种情况。 故障可能产生的后果故障可能产生的后果 (1)、系统复位 (2)、系统吊死,不能响应外部事件 测试时的故障产生方法测试时的故障产生方法 模拟实际情况在短时间内发送大量的消息或数据。 测试步骤测试步骤 (1)、搭好工具或增加适当的测试代码,使得可以向被测系统随意发送任意流量的消息或数据。 (2)、运行程序,配置被测链路,为了达到最大的处理量,尽量把所有可以输入系统的端口都打开并给于相应的输入。 (3)、调整流量,使流量达到最大,运行一段时间,再把流量调整到较低的水平,运行一段时间,然后又把流量调整到最大,如 此反复多次,观察系统的运行情况。 测试的期望结果测试的期望结果 系统不复位,业务能正常处理,在流量降低后,系统没有任何异常情况。 28 消息流量故障插入测试 长时间大流量长时间大流量 概念概念 长时间测试是指持续时间远远大于正常测试时间的测试,分为4档,12小时、24小时、48小时、72小时,根据实际情况决定选取 哪一个档次的测试。 测试目的测试目的 验证在长时间大流量条件下系统的稳定性。 故障产生原因故障产生原因 实际环境下可能发生长时间大流量这种情况。 故障可能产生的后果故障可能产生的后果 (1)、系统崩溃 (2)、业务性能严重下降 测试时的故障产生方法测试时的故障产生方法 模拟实际情况在长时间内发送大量的消息或数据 测试步骤测试步骤 (1)、搭好工具或增加适当的测试代码,使得可以向被测系统随意发送任意流量的消息或数据。 (2)、运行程序,配置被测链路,为了达到最大的处理量,尽量把所有可以输入系统的端口都打开并给于相应的输入。 (3)、调整流量,使流量达到最大,长时间运行,观察系统的运行情况。当运行时间达到规定的时间后,降低流量到0,观察系 统的运行情况。 测试的期望结果测试的期望结果 系统不复位,业务能正常处理,在流量降低后,系统没有任何异常情况。 29 数据状态故障插入测试数据状态故障插入测试 状态机故障插入测试状态机故障插入测试 概念概念 状态机故障是指状态机的状态和当前的实际状态不一致的现象。 测试目的测试目的 状态机故障测试的目的是为了验证当状态机发生故障时是否具有自动恢复故障的能力。 故障产生原因故障产生原因 (1)、协议设计缺陷,乱序消息可能导致状态机状态混乱 (2)、状态机被误修改 故障可能产生的后果故障可能产生的后果 进入死状态,状态机停止工作,进而影响到业务不能完成。 测试时的故障产生方法测试时的故障产生方法 强制修改状态机的状态 测试步骤测试步骤 (1)、增加测试命令,使能够通过命令强制修改状态机的当前状态。或者,通过调试器直接修改状态机。 (2)、运行程序,当程序正常运行时,用步骤1提供的方法修改状态机的当前状态为状态机状态集合中的另外一个状态,观察程 序的运行情况。 (3)、重复步骤2,直到状态集合中所有的状态均被测试 (4)、运行程序,当程序正常运行时,用步骤1提供的方法修改状态机的当前状态为状态集合中不存在的状态,观察程序的运行 情况。 测试的期望结果测试的期望结果 状态机被修改后,程序应能检测到当前状态存在矛盾,并在短时间内恢复到初始状态。 30 数据状态故障插入测试数据状态故障插入测试 非法值测试非法值测试 概念概念 非法值是指模块内部的数据值处于允许值的范围之外。 测试目的测试目的 验证程序是否具有内部数据的自检功能,以及当内部数据出错时系统是否能恢复。 故障产生原因故障产生原因 (1)、内存越界 (2)、算法错误 故障可能产生的后果故障可能产生的后果 (1)、给出错误的输出 (2)、死机/复位等 测试时的故障产生方法测试时的故障产生方法 强制修改模块内部的数据状态。 测试步骤测试步骤 (1)、修改代码,增加测试代码,使得可以从后台修改被测系统的内存,重新编译运行 (2)、构造输入数据,使系统正常运行 (3)、修改被测模块的内部数据,使其值在允许范围之外。 (4)、继续输入与被测模块相关的系统正常输入数据或命令,观察系统的运行情况。 测试的期望结果测试的期望结果 对于一般系统,要求能检测到内部存在非法数据,如果是重要的数据遭到破坏,能通过复位恢复故障,对于HA系统,要求能检测 到内部存在非法数据,能通过适当的方法使故障恢复,但不影响业务的正常提供。 31 数据状态故障插入测试数据状态故障插入测试 数据状态一致性测试数据状态一致性测试 概念概念 模块数据状态一致性错误是指多个模块之间或者单个模块内部的多个数据状态存在矛盾。 测试目的测试目的 验证模块内部或模块间发生一致性错误时程序是否能检测并正确恢复。 故障产生原因故障产生原因 (1)、内存越界 (2)、算法错误 (3)、协议缺陷 故障可能产生的后果故障可能产生的后果 (1)、模块间配合出现错误 (2)、模块失效 测试时的故障产生方法测试时的故障产生方法 强制修改模块内部的数据状态。 测试步骤测试步骤 (1)、修改代码,增加测试代码,使得可以从后台修改被测系统的内存,重新编译运行 (2)、构造输入数据,使系统正常运行 (3)、修改被测模块的内部数据,使它与其它数据状态之间的关系不一致 (4)、继续输入与被测模块相关的系统正常输入数据或命令,观察系统的运行情况。 测试的期望结果测试的期望结果 对于一般系统,系统能发现模块内部或模块之间的数据产生了错误,并能通过复位使系统恢复。对于HA系统,要求系统不但能发 现模块内部或模块之间的数据产生了错误,而且能通过适当的方法恢复故障,并对系统的业务不造成影响。 32 数据状态故障插入测试数据状态故障插入测试 数据状态一致性测试数据状态一致性测试 概念概念 模块数据状态一致性错误是指多个模块之间或者单个模块内部的多个数据状态存在矛盾。 测试目的测试目的 验证模块内部或模块间发生一致性错误时程序是否能检测并正确恢复。 故障产生原因故障产生原因 (1)、内存越界 (2)、算法错误 (3)、协议缺陷 故障可能产生的后果故障可能产生的后果 (1)、模块间配合出现错误 (2)、模块失效 测试时的故障产生方法测试时的故障产生方法 强制修改模块内部的数据状态。 测试步骤测试步骤 (1)、修改代码,增加测试代码,使得可以从后台修改被测系统的内存,重新编译运行 (2)、构造输入数据,使系统正常运行 (3)、修改被测模块的内部数据,使它与其它数据状态之间的关系不一致 (4)、继续输入与被测模块相关的系统正常输入数据或命令,观察系统的运行情况。 测试的期望结果测试的期望结果 对于一般系统,系统能发现模块内部或模块之间的数据产生了错误,并能通过复位使系统恢复。对于HA系统,要求系统不但能发 现模块内部或模块之间的数据产生了错误,而且能通过适当的方法恢复故障,并对系统的业务不造成影响。 33 异常操作故障注入异常操作故障注入 单板异常复位测试单板异常复位测试 概念概念 复位是指单板的软件、硬件从初始状态重新开始运行的动作。根据复位的不同方式可以分为硬复位、软复位等等。 测试目的测试目的 测试系统运行时单板复位对业务的影响及恢复情况。 故障产生原因故障产生原因 (1)、器件损坏 (2)、软件运行异常 (3)、人为误操作 (4)、环境影响(单板温度、电源电压过高、过低) 故障可能产生的后果故障可能产生的后果 (1)、业务中断 (2)、配置数据丢失 (3)、主备倒换失败 测试时的故障产生方法测试时的故障产生方法 根据不同的故障产生原因采取不同的模拟方法。对于器件损坏引起的复位,可以模拟单板上某一器件的失效来触发复位。对于软 件运行异常引起的复位,可以在软件代码中插入故障来触发复位。对于人为误操作引起的复位,可以在单板的操作控制台或者系 统的网管上进行有意的复位操作来触发复位。对于环境影响引发的复位,可以使用一些特殊测试工具模拟出特殊环境来触发复位。 测试步骤测试步骤 以人为误操作为例,测试步骤如下: (1)、在单板初始化、运行、加载、备份过程中执行单板的硬复位、软复位操作。 (2)、观察单板业务是否正常、倒换是否成功。 (3)、观察复位后的单板正常工作后业务是否恢复正常,配置是否有丢失。 (4)、重复执行以上步骤。 测试的期望结果测试的期望结果 对于一般系统,单板复位会影响业务,但不会造成配置数据的丢失。复位后的单板重新运行后业务可以恢复正常。对于HA系统, 单板复位不会影响业务,业务可以成功倒换到备用板上,配置数据也不会丢失。 34 异常操作故障注入异常操作故障注入 操作紧急中止测试操作紧急中止测试 概念概念 在一项操作或者一组操作序列进行中将操作中止。如加载软件过程中强行中止加载过程。 测试目的测试目的 测试系统在操作被打断时处理是否正确,接下来的其他操作能否正常执行。 故障产生原因故障产生原因 (1)、人为操作 (2)、程序运行过程中异常中止 故障可能产生的后果故障可能产生的后果 (1)、业务中断 (2)、配置数据损坏 (3)、后续操作不能正确执行 测试时的故障产生方法测试时的故障产生方法 以手工操作的方式,在某项操作执行过程中强行中止操作。 测试步骤测试步骤 (1)、进行满流量、满负荷的业务测试; (2)、进行与该操作相关的功能测试; (3)、发起操作,在操作完成前,中断操作; (4)、关注引发的故障现象,分析故障是否与期望相符,分析故障是否错误、是否被扩散、被严重化。 测试的期望结果测试的期望结果 一项操作或者一组操作序列被紧急中止后不会引发严重后果,系统能够将操作中止引发的故障限制在一定范围内。后续的操作可 以正常完成不受影响。 35 异常操作故障注入异常操作故障注入 操作互斥测试操作互斥测试 概念概念 互斥是操作系统为了防止临界资源访问冲突而做的一种保护措施。互斥操作是两个不能同时执行的操作,如单板加载软件和删除 软件这两个操作。互斥测试就是模拟两个在逻辑关系上不能同时进行的操作同时进行。 测试目的测试目的 测试系统能否正确处理两个互斥操作的同时进行。 故障产生原因故障产生原因 (1)、软件设计时没有考虑到各种互斥操作,没有对互斥操作做限制 (2)、人为误操作 故障可能产生的后果故障可能产生的后果 (1)、单板复位 (2)、业务中断 测试时的故障产生方法测试时的故障产生方法 同时执行两项互斥操作。 测试步骤测试步骤 以单板加载软件时擦除软件为例: (1)、加载单板软件。 (2)、加载过程中擦除软件。 (3)、观察两个互斥操作是否可以同时进行,如果可以同时进行,看有没有故障发生。 测试的期望结果测试的期望结果 以单板加载软件时擦除软件为例:由于加载、擦除都是对FLASH中的文件进行操作,且是互斥的操作,因此两个操作不能同时进 行。 一般来讲,互斥操作的同时进行不会导致严重后果,系统设计中应该考虑到各种互斥操作的出现可能性并加以防范。 36 异常操作故障注入异常操作故障注入 操作干扰测试操作干扰测试 概念概念 当前的操作会影响到正在执行的功能,对其产生干扰。 测试目的测试目的 测试系统在执行一项功能时的抗干扰能力。 故障产生原因故障产生原因 人为误操作 故障可能产生的后果故障可能产生的后果 (1)、当前执行的功能不能正常完成 (2)、影响到其他功能 测试时的故障产生方法测试时的故障产生方法 手工模拟,以命令行操作为例: 在命令行操作时,操作与当前正在执行的功能是不相符的,即该操作将影响当前所执行的功能,使其不能正确执行,如在业务通 道上承载业务时,删除该业务通道; 测试步骤测试步骤 (1)、进行满流量、满负荷的业务测试。 (2)、进行与该操作相关的功能测试。 (3)、发起会干扰该功能执行的操作。 (4)、关注引发的故障现象,分析故障是否与期望相符,分析故障是否错误、是否被扩散、被严重化。 测试的期望结果测试的期望结果 对于与当前执行功能有冲突的操作,如在业务通道上承载业务时,删除该业务通道,这个操作不应该引起混乱,不会影响到当前 功能的正常完成,也不会影响到其他功能的正常执行。 37 异常操作故障注入异常操作故障注入 乱序操作测试乱序操作测试 概念概念 对于完成一个特定功能的一组操作序列,如果打乱这组序列的执行顺序去执行就是乱序操作。还有一种情况是随机执行当前状态 下提供的所有操作(命令),也可以称作乱序操作。 测试目的测试目的 测试打乱的操作序列执行后会对系统有什么样的影响,系统是否有足够的容错能力应对乱序操作。 故障产生原因故障产生原因 (1)、人为误操作 故障可能产生的后果故障可能产生的后果 (1)、当前功能不能正常执行 (2)、配置数据紊乱 测试时的故障产生方法测试时的故障产生方法 手工操作执行一组乱序操作或者执行TCL脚本命令随机执行操作(命令)。 测试步骤测试步骤 (1)、选择一组完成特定功能的操作序列。 (2)、打乱操作序列的执行顺序,执行这组操作。 (3)、观察特定功能是否完成,是否引发严重错误,其他功能能否正常完成。 测试的期望结果测试的期望结果 操作序列被打乱后特定功能应该不会完成,也不会影响其他功能的正常执行。 38 异常操作故障注入异常操作故障注入 乱序操作测试乱序操作测试 概念概念 对于完成一个特定功能的一组操作序列,如果打乱这组序列的执行顺序去执行就是乱序操作。还有一种情况是随机执行当前状态 下提供的所有操作(命令),也可以称作乱序操作。 测试目的测试目的 测试打乱的操作序列执行后会对系统有什么样的影响,系统是否有足够的容错能力应对乱序操作。 故障产生原因故障产生原因 (1)、人为误操作 故障可能产生的后果故障可能产生的后果 (1)、当前功能不能正常执行 (2)、配置数据紊乱 测试时的故障产生方法测试时的故障产生方法 手工操作执行一组乱序操作或者执行TCL脚本命令随机执行操作(命令)。 测试步骤测试步骤 (1)、选择一组完成特定功能的操作序列。 (2)、打乱操作序列的执行顺序,执行这组操作。 (3)、观察特定功能是否完成,是否引发严重错误,其他功能能否正常完成。 测试的期望结果测试的期望结果 操作序列被打乱后特定功能应该不会完成,也不会影响其他功能的正常执行。 39 异常操作故障注入异常操作故障注入 多个控制台同时操作测试多个控制台同时操作测试 概念概念 一般系统会提供不只一个控制台,如串口控制台、网管控制台、TLENET控制台等等。多个控制台同时操作的概念就是在多个控 制台上同时执行操作。 测试目的测试目的 测试多个控制台上同时执行的操作是否会造成冲突。 故障产生原因故障产生原因 (1)、现场人为操作 (2)、远程自动维护 故障可能产生的后果故障可能产生的后果 (1)、两个或者多个控制台上同时执行的操作产生冲突,操作没有达到效果 (2)、配置数据紊乱 测试时的故障产生方法测试时的故障产生方法 (1)、手工操作模拟多个控制台上的同时操作 (2)、使用TCL执行自动测试脚本模拟多个控制台上的同时操作 测试步骤测试步骤 (1)、在两个(多个)控制台上执行完成(取消)某项功能的操作,要求操作基本上同时执行。 (2)、观察操作要完成的功能是否正常完成,是否引发错误,其他功能是否受到影响。 (3)、在两个(多个)控制台上执行一项功能的互斥操作,如建立链路和拆除链路操作,要求操作基本上同时进行。 (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论