精华内容
下载资源
问答
  • 软件可靠性验证报告 模板 软件测试工程师
  • 软件可靠性测试

    2021-03-23 11:51:56
    该概率是系统输入和系统使用的函数,也是软件中存在故  一、对软件可靠性测试的认识  1.有关术语  (1)软件可靠性在规定条件下,在规定时间内,软件不引起系统失效的概率。该概率是系统输入和系统使用的函数,也是软件...
  • 软件可靠性测试[1]

    2021-03-23 16:15:52
    软件可靠性测试[1]软件测试一、对软件可靠性测试的认识1.有关术语(1)软件可靠性在规定条件下,在规定时间内,软件不引起系统失效的概率。该概率是系统输入和系统使用的函数,也是软件中存在故障的函数,系统输入将确定...
  • 软件性能测试和可靠性测试

    千次阅读 2020-12-18 19:42:23
    1.软件性能测试包括三个目标:①发现缺陷;②性能调优;③能力检验与规划 2.软件性能的主要指标有:响应时间、系统响应时间和应用延迟时间、吞吐量、并发用户数、资源利用率 3.系统的响应时间通常是指该系统所有...

    1.软件性能测试包括三个目标:①发现缺陷;②性能调优;③能力检验与规划


    2.软件性能的主要指标有:响应时间、系统响应时间和应用延迟时间、吞吐量、并发用户数、资源利用率


    3.系统的响应时间通常是指该系统所有功能的平均响应时间或者所有功能的最大响应时间


    4.对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系


    5.吞吐量不能无限的增大,关键原因在于资源利用率不能无限的提高


    6.资源利用率可以为性能调优提供很大帮助


    7.在压力测试时,软件通常会处于性能下降曲线的哪个区间:性能轻微下降区


    8.担任软件性能测试中最核心的技术力量的角色是设计人员


    9.通常分析性能下降曲线时,会首先将其分为几个区间:性能平坦区、性能轻微下降区、性能急剧下降区。其中性能平坦区是软件运行的正常状态,因此人们往往希望该区间越长越好;性能轻微下降区是软件承受高负载的缓冲区,该区间也是越长越好;性能急剧下降区不是软件的正常运行区间,这一阶段响应时间会急剧增加至用户不能忍受,吞吐量会急剧下降甚至低于单用户时的吞吐量,但该区间对于分析性能瓶颈却有很大作用,通常说来,性能急剧下降区的起始点(也称性能拐点)就是性能瓶颈出现的地方,此时进一步分析资源利用率就可以找到性能瓶颈的原因。


    10.失效恢复测试是指验证系统从故障中恢复能力的测试,很多系统应对具有一些容错的能力,在出现某些故障时,仍然能够让用户继续使用下去。


    11.对物理破坏的防护措施有三点:(1)所有设备都应远离灾害(如水灾、火灾、雷电、战火等)的侵扰。(2)主要设备需要远离人为破坏,如计算机和打印机等要放在有安全门锁的机房等。(3)主要设备要屏蔽电磁干扰。

    可靠性测试:


    1.目前主要的软件可靠性分析方法有失效模式影响分析法、严酷度分析法、故障树分析法、事件树分析法、潜在线路分析法。


    2.可靠性测试:在比较大的业务压力情况下进行的软件可靠性测试


    3.软件可靠性测试过程包括五个步骤:确定可靠性目标,定义软件运行剖面,设计测试用例,实施可靠性测试,分析测试结果。


    4.软件可靠性预测的目的是根据软件在可靠性与测试揭示的故障情况来预测软件在正在运行时的故障和实效情况.


    5.软件可靠性测试的目的通过受控的软件测试过程来预测软件在实际运行中的可靠性


    6.可靠性测试的测试用例集要完全符合运行剖面的定义


    7.软件可靠性测试使用的测试用例必须满足语句覆盖


    8.软件可靠性测试通常用于有可靠性要求的软件


    9.软件可靠性的指标是平均无失效时间


    10.在软件可靠性测试时,人们关注的核心是软件失效


    11.软件可靠性分析方法主要有:失效模式影响分析、严酷性分析、故障树分析、事件树分析和潜在线路分析。


    12.软件可靠性有两方面的含义:①在规定条件下,规定时间内,软件不引起系统失效的概率。②在规定时间周期内,在所述条件下执行所要求的功能的能力。而与软件的操作人员无关。

     

     

    了解更多测试知识访问如下链接:

    https://edu.csdn.net/course/detail/22948

    https://edu.csdn.net/lecturer/3215

    https://edu.csdn.net/course/detail/30898

    https://edu.csdn.net/course/detail/25768

     

    展开全文
  • 设备软件可靠性测试

    千次阅读 2017-08-03 10:41:09
    为全面评估软件容错和故障恢复能力,测试需要制造或模拟一系列条件,包括内部硬件故障条件、外部恶意攻击条件、偶发过载条件、软件资源耗尽条件、周边环境故障条件以及长时间正常负荷持续运行模拟。为了在产品开发...

    设备为达到连续可运行目标,除了在硬件设计中考虑器件可连续无故障运行外,很重要的方面是软件在各种条件下可经受考验,持续工作。这需要在实现基本功能前提下,在软件中设计一系列容错性逻辑去保证。

    为全面评估软件容错性和故障恢复能力,测试需要制造或模拟一系列条件,包括内部硬件故障条件、外部恶意攻击条件、偶发过载条件、软件资源耗尽条件、周边环境故障条件以及长时间正常负荷持续运行模拟。为了在产品开发的不同阶段组织针对性测试,这些测试行为又被明确定义并归类。

    测试分类

    1、协议健壮性测试

    协议健壮性测试是为了找出特定协议的具体实现代码的弱点。是一种以破坏性手段去尝试运行软件的行为,通过用户接口的异常输入,使用异常协议消息交互引导软件进入未定义或未保护的状态。

    对软件系统而言,合法输入组合以外的输入往往超出正常输入的组合,软件运行中总会遇到一些预期之外的输入。因此,软件需要有严格的合法性检查才能避免进入未知状态。协议健壮行测试的目标就是尽可能找出软件保护不周的问题。

    在软件测试的早期阶段进行的参数边界值测试就属于健壮性测试的一部分。比如一个用户接口接受1-100的整数输入,那么1和100就是合法边界,大于100和小于1的输入都是非法输入。其他非整数型的输入也属于非法值,包括故意破坏检查输入条件的代码的一些组合(如超长输入值,空输入,格式化字符等)。软件面对的接口除了最终用户可见的部分之外,还有大量的软件组件之间的不可见部分,以及设备之间的通信协议接口。

    除了单一输入的简单合法性判断,软件在组合输入和特定状态下可接受输入的定义更为复杂。为确认软件在各种条件下的运行正常,测试需要尝试尽可能多的组合。复杂的通信协议除了定义有逻辑化结构的报文格式,还有一系列的内部状态,要测试人员完全手工方式遍历这些状态,并且构造所有可能的异常组合输入条件是无法想象的,因此需要专用的测试工具和仪器专门检测软件对各种协议变异报文的处理。目前,商用化的测试工具已经很多,比如IxDefend协议健壮性测试套件和Mu Dynamics的fuzzing测试套件是比较强大的。为了达成在特定状态下注入错误,测试套件需要先完成一些合法的交互过程,使被测目标达到预设状态,然后再注入异常。复杂的协议需要事先配置很多参数去达成这种交互,而变异输入的变化和组合数量非常庞大,一个复杂协议经常达到几十万甚至上百万的测试用例,尽管有自动化测试工具,这种测试运行也要耗费大量的时间。因此,对参数的调整是测试需要关注的一个重要方面。

    从系统测试的角度,观测协议健壮性的测试结果是比较困难的,一般是从系统外部观察整机是否存在异常,正在被测试的协议功能有没有停止响应,正常用户请求是否得到及时处理,设备的性能有没有下降。最容易被观测到现象是系统死锁或重启,系统性能变化或主要功能异常也能被及时发现。而一些细微的功能异常或资源耗费,很容易被测试人员忽视,在这里,测试工具也无能为力。

    以IxDefend测试TLS-Server举例。

    •  完成测试仪器与被测试设备的物理连接,并且将端口配置IP地址,开启TLS-Server服务。
    •  通过测试仪器的GUI控制界面装入TLS Server测试套件,如图1所示。
    •  配置TLS Server测试所需要的参数,包括被测试设备IP、TLS服务端口、超时时间等,如图2所示。
    •  点击开始按钮启动测试运行。

    测试运行期间,仪器会发送事先定义好的各种异常组合,并检查设备对这些报文的响应。一旦被测试设备失去任何响应,就记录为一次失败,并持续尝试下面的测试用例。如图3所示的是一个真实的运行记录,设备在某项测试运行后发生异常,该项目被标记为红色。测试人员可以根据该记录重现问题,并将设备异常信息一并提交给开发定位具体原因。

    设备软件可靠性测试图1 IxDefend选择测试套件

    设备软件可靠性测试图2 IxDefend配置TLS-Server套件运行参数

    设备软件可靠性测试图3 IxDefend运行结果统计

    2、硬件故障模拟测试

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

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

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

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

    3、压力测试

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

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

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

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

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

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

    4、内存耗尽测试

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

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

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

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

    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等慢收敛协议的依赖。所有这些技术的目标都是减少设备故障造成的网络影响,提高组网的可靠性,而评价这些技术的指标都是网络收敛时间。测试执行的步骤几乎是相同的,首先构建正常的网络拓扑,模拟故障发生,监测流量切换的过程和流量丢失的情况,计算切换需要的时间。

    结束语

    以上的几种测试类型基本覆盖了软件可靠性相关的测试。在具体的产品开发过程中,协议健壮性测试、硬件故障模拟测试、内存耗尽测试等适合在软件功能组件的开发过程中进行测试,而压力测试、收敛指标测试、拷机测试需要在系统整合并且功能稳定后才能实施,所以一般放在产品开发后期。经过全方位的可靠性测试并解决所有问题之后,软件系统可以应对各种内部外部的复杂情况,为用户提供更高可用性的健壮网络。

    展开全文
  • 系统可靠性设计

    千次阅读 2019-10-26 14:14:47
    目录一:系统可靠性的定义及包含的4个子特性,并简要指出提高系统可靠性技术一般采用什么技术软件可靠性技术容错设计技术检错设计检错设计和容错技术的差异降低复杂度设计软件可靠性分析故障树分析方法失效模式与效应...

    一:系统可靠性的定义及包含的4个子特性,并简要指出提高系统可靠性技术一般采用什么技术

    系统可靠性定义:系统在规定的时间内及规定的环境条件下,完成规定功能的能力,就是系统无故障运行的概率。
    根据国家标准《软件工程 产品质量 第一部分:质量模型》(GB/T 16260.1-2006)的规定,系统可靠性的4个主要子特性

    1. 成熟性:指系统避免因错误的发生而导致失效的能力
    2. 容错性:在系统发生故障或违反指定接口的情况下,系统维持规定的性能级别的能力
    3. 易恢复性:系统发生失效的情况下,重建规定的性能级别并恢复受直接影响的数据的能力
    4. 依从性:系统依附于可靠性相关的标准、约定和规约的能力。

    通常,提高系统的可靠性采用冗余技术、软件容错技术、双机容错技术和集群技术4类技术

    软件可靠性技术

    容错设计技术

    对于软件失效后果特别严重的场合,如飞机的飞行控制系统可采用容错设计方法。常见的软件容错技术主要有恢复块设计N版本程序设计冗余设计

    1. 恢复块设计:选择一组操作作为容错设计单元,从而把普通的程序块变成恢复块。一个恢复块包含若干个功能相同、设计差异的程序块文本,每一时刻有一个文本处于运行状态。一旦该文本出现故障,则用备份文本加以替换,从而构成“动态冗余”。
    2. N版本程序设计:N版本的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果,实行多数表决,防止其中某一模块/版本的故障提供错误的服务,以实现软件容错。
    3. 冗余设计:冗余设计技术实现原理是在一套完整的软件系统之外,设计一种不同路径,不同算法或不同实现方法的模板或系统作为备份,在出现故障时可以使用冗余的部分进行替换,从而维持软件系统的正常运行。

    检错设计

     在软件系统中,对无需在线容错的地方或不能采用冗余设计技术的部分,如果可靠性要求较高,故障可能导致严重的后果。这时一般采用检错技术,在软件出现故障后能及时发现并报警,提醒维护人员进行处理。
     采用检测设计技术需要着重考虑几个要素:检测对象检测延时实现方式处理方式

    • 检测对象:即检测点和检测内容。在设计时应该考虑把检测点放在容易出错的地方和出错对软件系统影响较大的地方,检测内容选取那些有代表性的、易于判断的指标。
    • 检测延时:在软件检测设计时要充分考虑到检测延时,如果延时长到影响故障的及时报警,则需要更换检测对象或检测方式。
    • 实现方式:最直接的一种方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理。计算运行时间也是一种常用的技术,如果某个模块或函数运行超过预期的时间,可以判断出现故障。另外还有置状态标志位等多种方法,自检的实现方式要根据实际情况来选用。
    • 处理方式:大多数检测采用“查出故障-停止软件系统运行-报警“的处理方式”,但也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。

    检错设计和容错技术的差异

     检测技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。

    降低复杂度设计

     在保证实现软件功能的基础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度从而提高软件可靠性。

    软件可靠性分析

    在软件可靠性设计之前和软件可靠性设计过程中,都需要采用软件可靠性分析和预测方法,来确定当前系统中的主要可靠性因素和目标。常见的软件可靠性分析方法包括故障树分析(FTA)、==失效模式与效应分析(FMEA)==等

    故障树分析方法

     一种自顶向下的软件可靠性分析方法,即从软件系统不希望发生的事件(顶事件),特别是对人员和设备的安全及可靠性产生重大影响的事件开始,向下逐步追查导致顶事件发生的原因,直至基本事件(底事件)。从而确定软件故障原因的各种可能组合方式或发生概率。基本的步骤是软件故障树的建立、定性分析和定量分析

    失效模式与效应分析方法

     在软件的开发阶段的早期,通过识别软件失效模式,分析造成的后果。研究分析各种失效模式产生的原因,寻找消除和减少其有害后果的方法,以便尽早发现潜在的问题,采取相应的措施,从而提高软件的可靠性和安全性。SFMEA的分析对象,可以是开发早期阶段的高层次的子系统、部件,也可以是详细设计阶段的单元模块。对于不同的分析对象,其软件失效模式是不同的。采用的SFMEA分析方法也不同,前者采用系统分析方法(system FMEA),后者为详细分析方法(detailed FMEA)。其步骤是系统定义软件失效模式分析、软件失效原因分析、软件失效影响分析、改进措施分析

    展开全文
  • 文章目录系统测试概述功能测试性能测试负载测试压力测试性能测试、压力测试、负载测试的关系兼容性测试安全测试健壮性测试配置测试可用性测试文档测试 系统测试概述 系统测试的定义 将已经集成好的软件系统,作为...

    系统测试概述

    • 系统测试的定义
      • 将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行(使用)环境下, - 对计算机系统进行一系列测试活动。
    • 根本任务
      • 证明被测系统的功能和结构的稳定性;还要有一些非功能测试:性能测试、压力测试、可靠性测试等等。
    • 目的
      • 确保软件产品能够被用户或操作者接受。
    • 系统测试属于黑盒测试范畴,不再对软件的源代码进行分析和测试。
    • 系统测试的组织
      • 系统测试主要是由质量部门的测试工程师来主导工作。
        • 测试组组长:组织测试;
        • 测试分析员:负责设计和实现测试脚本和测试用例;
        • 测试者:负责执行测试脚本中记录的测试用例。
      • 系统测试员和用户
        • 相似的地方
          • 都是使用软件,一般不接触软件的代码
          • 都是假设软件应该正确实现说明书的功能
        • 不同的地方
          • 使用软件的目的
          • 对待错误
    • 系统测试的内容
      • 功能特性的测试:功能测试、用户界面测试、安装/卸载测试、可使用性测试。
      • 非功能特性的测试:性能测试、负载测试、压力测试、疲劳测试、安全测试、恢复测试、兼容性测试、可靠性测试、强度测试、容量测试、配置测试。

    功能测试

    功能测试(Functional Test)是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误。

    • 目标
      • 检验产品功能是否正确实现
    • 内容
      • 正常功能、异常功能、边界测试、界面测试、接口测试、安全测试、错误处理测试等。
    • 依据
      • 需求规格说明书
    • 方法
      • 黑盒测试
        在这里插入图片描述

    性能测试

    性能测试(Performance Testing)通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

    • 目标
      • 对产品的性能进行测试,检验是否达标、是否能够保持。
    • 工具
      • 在需要大访问量时候尤其需要使用工具。
      • 并发性能测试工具 (load—负载)
        • LoadRunner、 QALoad、 SilkPerformer、 WebLoad
    • 用户视角的软件性能
      • 从用户角度来说,软件性能就是软件对用户操作的响应时间。
    • 系统管理员视角的软件性能
      • 系统的响应时间;
      • 系统运行时服务器的状态,如CPU利用情况、内存使用情况等;
      • 系统是否能够实现扩展;
      • 系统支持多少用户访问;
      • 系统性能可能的瓶颈在哪里;
      • 系统是否支持7*24小时的业务访问。
    • 软件性能指标
      • 并发用户
        • 一给定时间内,某个时刻与服务器同时进行会话操作的用户数。
      • 响应时间
        • 客户端发出请求到得到服务器返回结果的整个过程所经历的时间。
      • 吞吐量
        • 单位时间内系统处理的客户请求的数量
        • 一般来说,吞吐量用请求数/秒或页面数/秒来衡量。
        • 从业务的角度,吞吐量也可以用访问人数/天或处理的业务数/小时等单位来衡量。
        • 从网络的角度来说,也可以用字节数/天等单位来考察网络流量。
      • 资源利用率
        • 指系统资源的使用程度,比如服务器的CPU利用率、内存利用率、磁盘利用率、网络带宽利用率等。
    • 软件性能要素
      • 环境要素
        • 软件、硬件、网络
      • 业务要素
        • 用户数、执行功能、数据量
      • 在使用性能指标描述软件的性能特征时,应该给出明确的软件性能要素,否则,所给出的性能指标无法参考。
    • 性能测试用例的设计:主要是通过改变模拟的业务因素来测试软件的性能。
      • 并发用户数
        • 精算法
          在这里插入图片描述
        • 估算法
          在这里插入图片描述
        • 经验值
          • 对于一些系统,可以通过同类软件系统的用户数据来估算,这种估算可以通过类似系统的日志分析和问卷调查来进行。
      • 吞吐量
      • 基于业务的设计

    负载测试

    • 定义
      • 数据在超负荷环境下运行,测试软件系统是否能够承担。这种超负荷主要指多并发用户。
    • 方法
      • 人为生成大数据量,并利用工具模拟频繁并发访问
    • 工具
      • 一般需要使用自动化工具
    • 考察指标
      • 响应时间、交易容量、资源使用率等

    压力测试

    • 定义
      • 指系统不断施加越来越大的负载(并发,循环操作,多用户,网络流量)的测试。
    • 目标
      • 通过确定一个系统的瓶颈或者不能接收的性能点,来确定系统能提供的最大服务级别的测试。

    性能测试、压力测试、负载测试的关系

    • 性能测试是正常情况下的性能指标;
    • 压力测试是测试系统的瓶颈所在;
    • 负载测试是指系统重负荷性能指标;
    • 性能测试、压力测试、负载测试在广义上讲都是性能测试的内容,建议将三种测试结合起来并行进行。

    兼容性测试

    • 定义
      • 测试软件在一个特定的硬件、软件、操作系统、网络等环境下系统能否正常运行。
    • 目的
      • 检验被测软件对其他应用软件或者其他系统的兼容性。

    安全测试

    • 定义
      • 安全测试检测系统对非法入侵的防范能力。
    • 应用程序级别的安全性测试
    • 数据库安全性测试
    • 系统级别的安全性测试

    健壮性测试

    • 定义
      • 又称为容错测试。主要检查系统容错能力。当系统出错时,能否在指定的时间间隔内修正错误并重启系统。
    • 方法
      • 容错测试首先要通过各种手段让软件系统强制发生故障,然后验证系统能否快速恢复。

    配置测试

    • 定义
      • 配置测试将验证软件与其所依赖硬件环境的依赖程度。
    • 测试中的硬件环境指进行测试所必需的服务器、客户端、网络连接设备,以及打印机、扫描仪等辅助硬件设备所构成的环境。
    • 所有软件都需向用户说明其运行的硬件环境,对于多层结构的软件系统来说,需要分别说明其服务器、客户端以及网络所需的环境。

    可用性测试

    可用性测试是面向用户的系统测试。让一群有代表性的用户尝试对产品进行典型操作,- - 同时观察员和开发人员在一旁观察,聆听,做记录。

    • 系统中是否存在繁琐的功能以及指令;
    • 安装过程是否复杂;
    • 错误信息提示内容是否详细;
    • GUI接口是否标准;
    • 登录是否方便;
    • 需要用户记住内容的多少;
    • 帮助文本是否详细;

    文档测试

    • 定义
      • 文档测试是对系统提交给文档进行验证,它要求检查系统的文档是否齐全。
    • 文档的种类
      • 包括联机帮助文档或用户手册,指南和向导,
      • 安装、设置指南,示例及模板,错误提示信息,
      • 用于演示的图像和声音,
      • 授权/注册登记表及用户许可协议,
      • 软件的包装、广告宣传材料等。
    展开全文
  • 可靠性测试竟如此容易

    千次阅读 2019-09-06 14:06:52
    分布式系统具有廉价高效的特点,利用性能相对一般的PC横向扩展,提升服务器性能,通过软件来保障系统的高可靠性。 由于分布式系统存在API接口通信、微服务架构、节点规模大等特点,增加了系统的复杂性和出错的概率...
  • 软件系统可靠性的指标计算

    万次阅读 2021-03-20 15:24:31
    在软件界针对可靠性有以下指标: 3 个 9:(1-99.9%)*365*24=8.76 小时,表示该软件系统在连续运行 1 年时间里最多可能的业务中断时间是 8.76 小时。 4 个 9:(1-99.99%)*365*24=0.876 小时=52.6 分钟,表示该软件...
  • 网络系统方案的可靠性测试

    千次阅读 2017-08-03 10:42:01
    相应的,组网方案的可靠性测试,可归纳为以下几大类: 1、网络系统持续长时间、大压力高负荷、高频率震荡条件下的持续运行能力,即Duration测试。 2、网络系统告警管理功能、系统故障定位手段能力评估。 3...
  • 软件系统可靠性的几个9解释

    万次阅读 2018-03-17 16:12:21
    转自 http://blog.csdn.net/yqq__00/article/details/51441228--------------------------------------------在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个...
  • 可靠性测试到底在测什么?

    千次阅读 2020-07-21 10:16:35
    平时我们对功能、安全、性能都有深入的认识和了解,但对可靠性测试这样的多特性的特质,应该怎么做呢? 先让我们来认识一下什么是:可靠性测试可靠性测试 可靠性特性:在指定条件下使用时,软件产品维持规定的...
  • 100个测试用例中发现5个错误,计算该软件可靠性 (我是自学软件工程课程,考试,现在知道用MTTF算可靠性测试用例这个怎么算呢)
  • 文章目录一、可靠性的定义:二、可靠性测试点:1、异常值输入:2、故障植入法:3、稳定性测试:4、压力测试:5、恢复测试:6、性能测试:7、易用性测试:三、测试用例设计方法SP1:SP2:SP3:SP4: 一、可靠性的定义:...
  • 软件测试工程师经典面试题

    万次阅读 多人点赞 2018-10-27 23:55:52
    涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件测试框架的问题,测试环境搭建问题、当然还有一些自动化测试和性能测试的问题。测试工程师的面试题,基本上都是大同小异的,面试的核心主要在于框架...
  • 软件的性能是软件的一种非功能特性,它关注的不是软件是否
  • 软件可靠性测试及其实践

    千次阅读 2010-12-31 13:08:30
     软件可靠性测试是在软件生存周期的系统测试阶段提高软件可靠性水平的有效途径。各种测试方法、测试技术都能发现导致软件失效的软件中残存的缺陷,排除这些缺陷后,一般来讲一定会实现软件可靠性的增长,但是排除...
  • 在软件测试当中,做性能测试的时候,有一项是性能测试工程师务必要关注的,那就是系统的故障相关的时间问题。而系统故障相关的时间...软件系统在某种意义上也是一种产品,所以用这三项指标来衡量软件系统可靠性同...
  • 软件测试面试题(面试前准备篇)

    万次阅读 多人点赞 2019-09-27 10:42:37
    是否了解软件测试需要掌握哪些知识(问到类似问题) 之前面试过,觉得自己需要补充哪些?做了哪些行动? 为什么做测试,觉得自己做测试有哪些优势?(有问到) 知道哪些Bug系统 9.测试用例的基本要素是? 二、...
  • 软件工程—软件可靠性测试

    千次阅读 热门讨论 2014-01-22 11:38:21
    应用本身对系统运行的可靠性要求越来越高,在一些关键的应用领域,如航空、航天等,其可靠性要求尤为重要,在银行等服务性行业,其软件系统可靠性也直接关系到自身的声誉和生存发展竞争能力。 特别是软件可靠性比...
  • 产品可靠性测试标准完整大集合(JEDEC/IEC/SAE…) 产品可靠性测试是产品质量保证中的重要一环, 包含有Pre-con, aging(寿命)和ESD(静电)等, 下面就收集了权威标准JEDEC全系列, 请参照如下(有几份被IPC代替, ...
  • 提高系统可靠性的措施

    千次阅读 2019-04-24 16:56:18
    防止故障造成系统失效的两种技术是故障掩蔽技术和系统重组技术,故障掩蔽技术是指防止故障造成差错的各种技术,系统重组技术是防止差错导致系统失效的各种技术。 硬件冗余最常用的是三模冗余(Triple Modular ...
  • 软件测试_笔记(完整版)

    万次阅读 多人点赞 2018-07-02 08:51:28
    狭义的软件测试定义:为发现软件缺陷而执行程序或系统的过程 广义的软件测试定义:人工或自动地运行或测定某系统的过程,目的在于检验它是否满足规定的需求或弄清预期结果和实际结果间的差别 为什么要做软件测试 ...
  • 软件测试面试题汇总

    万次阅读 多人点赞 2018-09-27 12:31:09
    转载自: ... 软件测试面试题汇总 测试技术面试题 ...........................................................................................................
  • 首先来说说性能测试:性能是软件的一种非功能特性,他关注的不是软件是否完成了特定的功能,而是软件在完成特定功能是展示出来的及时。 及时从不同的视角代表不同的指标: 用户:响应时间系统管理员:资源利用...
  • 容错性测试是检查软件在异常条件下自身是否具有防护性的措施或某种灾难性恢复的手段。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。容错性测试包括两个方面: 输入异常数据或进行异常操作,以检验...
  • 软件测试入门知识了解

    万次阅读 多人点赞 2018-09-05 14:59:58
    需求评审和设计评审是验证软件产品的需求定义和设计实现,验证所定义的产品特性是否符合客户的期望、系统的设计是否合理、是否具有可测试性以及满足非功能质量特性的要求。这个阶段主要通过对需求文档、设计文档等...
  • 软件测试&软件测试工程师

    千次阅读 多人点赞 2016-07-08 15:58:01
    起源: 最近在面试软件测试工程师方面的工作,今天在整理整理一下关于软件测试这方面的知识点。 一、 测试工程师: 1、 国内定位和发展前景: 测试工程师,软件质量的把关者,工作起点高,发展空间大。我国的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 160,028
精华内容 64,011
热门标签
关键字:

软件系统可靠性测试