治病行当顾客谈关键业务根底设备,系统可相信
分类:pc28.am

在信息技术日新月异的今天,医疗机构越来越依赖信息系统来开展业务,对于门诊、临床等关键业务应用而言,提供7×24×365连续运营至关重要。目前大多数医院所采用双机热备、集群服务器在可靠性方面存在着不小的安全隐患,加之不少医院专业人员有限,在这种情况下,具有更高安全级别的容错服务器解决方案更加备受关注。

在功能定位上,x86被定位于通用服务器,安腾被定位在关键业务应用服务器。如果进一步细分,x86又可分为单路、双路和多路服务器,对应英特尔的处理器是3000、5000和7000系列,此外,还有一个特殊的6000系列,它是7000系列在双路应用的延伸。其中,采用5000系列处理器的双路服务器是市场的主流,应用在大多数的应用场合,其价格也比较便宜,在万元左右。与之相比,采用7000系列处理器的多路服务器,价格要高出很多,被定位在高端应用,对可靠性有很高的要求的应用场合。目前,除了金融行业用户核心业务之外,越来越多用户开始选择x86服务器承担各种关键应用,其中高端的多路服务器成为了用户的选择。

最近系统学习了一个系统可靠性及其相关知识,今天在这总结一下。

“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。

容错是指服务器对于错误的容纳能力,是应用过程中对于服务器稳定性追求的一个目标。为了这样一个目标,服务器集群技术、双机冗余服务器方案和单机容错技术这三种实现方法都在被使用。但集群技术、双机冗余服务器方案由于依赖于软件的特性,其设计更为复杂,并且维护成本较高,而容错服务器的思路就是把所有运算器CA)、控制器CC)、存储器M和输入/输出装置这些部件全部采用冗余硬件设计。两个部件共运行同一个任务,以此来提高系统的运行可靠性。这种冗余硬件的设计并不难,但是最为困难的是如何保证计算和数据在硬件中的同步Lockstep),这是美国容错技术有限公司Stratus)的核心专利技术,也是其驰骋容错技术领域30年不败的关键。 

为了进一步提升可靠性,采用两台相同型号、配置的多路服务器构建集群方案成为了普遍的一种选择。双机集群是一种由集群软件控制的软件冗余方案,但其中的一台设备出现故障的时候,由另外一台设备接替故障硬件工作,以期达到提高可靠性的目的。但在实际工作中,双机集群对管理要求比较高,即使切换成功,也还是需要一定的故障恢复时间,期间会导致业务中断,如果切换失败,所需要的故障恢复时间将更长,因此对于一些关键业务需求而言,双机集群方案不能够满足高可靠性的要求。

首先,什么是系统的可靠性呢?系统的可靠性是指在规定的时间内及规定的环境下完成规定功能的能力,也就是系统的无故障运行概率。

 

7×24小时不间断,stratus可以保证

与之相比,容错方案是一个理想的方案。它是一种硬件冗余的技术,借助独特的锁步技术,从体系结构上对系统进行保护。容错不仅能够做到服务器级别的容错,还可以实现对内存、I/O数据的容错。在双机集群方案中,如果一台服务器突发故障宕机,那么这台服务器设备中内存的数据,以及I/O中等待读写的数据,是没有办法进行同步保护的,只能够借助数据库数据回滚等软件技术进行重建,虽然不会给交易带来损失,但业务恢复、重建是需要时间的,这也是双机集群不能够保持业务连续的原因。

我会从以下几个方面来归纳主要内容:

基本资料

美国stratus容错公司生产的容错服务器在一些关键性领域里应用非常广泛,例如:电信、机场、银行、冶金行业、安全、医院HIS系统、公安、电力行业、大的零售业等一切要求高可用性的行业。 

与之相比,容错技术可以确保处理器、内存、I/O数据,做到每个处理器时钟周期保持严格同步,因此,当单一功能部件突发故障时,业务不会因此而中断。这种情况下,虽然失去了容错,但系统不会中断,业务不会受影响。当更换故障部件时,系统恢复容错工作状态。但用户不采用容错服务器方案,其中性能瓶颈是一个普遍关注的话题。当前容错服务器产品主要是基于双路服务器,较之多路似乎存在性能瓶颈。

  1. 故障模型

  2. 可靠性模型

  3. 可靠性指标

  4. 可靠性设计

计算机的高可用性

计 算机系统的可靠性用平均无故障时间(MTTF)来度量,即计算机系统平均能够正常运行多长时间,才发生一次故障。系统的可靠性越高,平均无故障时间越长。 可维护性用平均维修时间(MTTR)来度量,即系统发生故障后维修和重新恢复正常运行平均花费的时间。系统的可维护性越好,平均维修时间越短。计算机系统 的可用性定义为:MTTF/(MTTF MTTR) * 100%。由此可见,计算机系统的可用性定义为系统保持正常运行时间的百分比。

而现实是,双机应用仍然是现在的主流,凡涉及关键业务应用的领域,双机冗余都是一个重要的解决方案。但是双机冗余服务器方案不能够解决软件的故障。在实际运行过程中,有些时候数据库莫名其妙打不开了,在这种情况下,只有重新安装数据库,没有其他好的办法,而这不仅可能造成数据的丢失,也会在时间上无法满足医院的要求,这对医院是致命而不可接受的。

容错服务器厂商可以提供多路服务器解决方案吗?答案是肯定的。美国容错技术有限技术顾问高峰表示,多路服务器容错并不存在技术上的障碍。历史上,美国容错就曾经提供了多路RISC处理器的方案;目前之所以没有考虑x86多路服务器容错方案,主要是价格的考虑,用户往往很难承受。高峰表示,目前双路8核处理器,其性能相对于原来16路处理器的性能,可以满足用户的绝大部分需求。从用户实践看,容错方案并不存在所谓性能的瓶颈。这也是美国容错没有提供多路服务器容错的原因。他表示,不提供多路不是技术的原因,而是基于市场策略的选择,换句话说,没有提供多路容错的必要。

故障模型

负载均衡服务器的高可用性

为 了屏蔽负载均衡服务器的失效,需要建立一个备份机。主服务器和备份机上都运行High Availability监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供服务;当备份管理器又 从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主管理器就开始再次进行集群管理的工作了。为在主服务器失效的情况下系统能正常工作,我们在主、备份机之间实现负载集群系统配置信息的同步与备份,保持二者系统的基本一致。

图片 1
上海中医药大学附属曙光医院信息中心刘珉

高峰表示,用户对性能的担心,有时不是真的来自性能,而是来自对可靠性的考虑。从产品角度,多路服务器较之双路的确具有更高可靠性,这也是用户青睐多路服务器的原因。然而容错方案的可靠性不是依靠产品本身的可靠性,而是从系统的角度,依靠体系架构来解决问题。从目前技术水平看,两台双路服务器,相同功能部件同时发生故障的概率是非常低的,因此,容错服务器完全可以满足用户对可靠性的要求。

系统故障是指硬件或者软件的错误状态,一般引进故障的原因是这些:部件的失效、环境的物理干扰、操作错误或不正确的设计。

HA的容错备援运作过程

自动侦测(Auto-Detect)阶段由主机上的软件通过冗余侦测线,经由复杂的监听程序。逻辑判断,来相互侦测对方运行的情况,所检查的项目有:主机硬件(CPU和周边)、主机网络、主机操作系统、数据库引擎及其它应用程序、主机与磁盘阵列连线。为确保侦测的正确性,而防止错误的判断,可设定安全侦测时间,包括侦测时间间隔,侦测次数以调整安全系数,并且由主机的冗余通信连线,将所汇集的讯息记录下来,以供维护参考。

自动切换(Auto-Switch)阶段 某一主机如果确认对方故障,则正常主机除继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序及服务。

自动恢复(Auto-Recovery)阶段在正常主机代替故障主机工作后,故障主机可离线进行修复工作。在故障主机修复后,透过冗余通讯线与原正常主机连线,自动切换回修复完成的主机上。整个恢复过程完成由EDI-HA自动完成,亦可依据预先配置,选择回复动作为半自动或不恢复。

在医院,7×24小时的不间断运行是对硬件与系统的考验,尤其是在关键业务上。上海中医药大学附属曙光医院曾使用stratus容错服务器很多年,信息中心刘珉主任说:对医院而言,信息主管最关心的是系统的安全稳定以及数据的准确性,在容错服务器中,由于采用冗余部件同时运行同一应用任务,这样当两个系统产生不一样计算结果时,系统就会察觉,并通过技术手段对于计算错误进行校验,从而提高应用的准确性。stratus容错服务器在我院使用的8年中,从未出现过停顿15分钟以上的故障,确实能够满足我们在关键业务上的需求。

除了容错之外,实际上,容错方案更是提供了可信计算。高峰表示,通常情况下,处理器计算不会出现问题。但作为电子器件,难免会受到各种因素的干扰,难免会产生高低电平的判断错误,计算机是依靠高低电平来判断“0”或者“1”,一旦出现错误,这种错误是不易察觉的。也就是说,计算机也会犯错误。对于容错而言,它是借助“锁步技术”,对两台设备计算结果进行比对,只有一致才被认可,因此可以有效避免意外错误的发生,这是容错方案特有的性能。对于容错系统的用户而言,可信计算可算是一种增值服务,是对用户高可靠性的一种额外奖赏。

按照时间的长短,故障可以分为:永久性、间歇性、瞬时性。

简介

图片 2
哥伦比亚大学基金会•上海德济医院信息主管张志翔

...

故障的级别有:逻辑级故障、数据结构级故障、软件故障和差错故障、系统级故障。

HA三种工作方式

(1)主从方式 (非对称方式)

工作原理:主机工作,备机处于监控准备状况;当主机宕机时,备机接管主机的一切工作,待主机恢复正常后,按使用者的设定以自动或手动方式将服务切换到主机上运行,数据的一致性通过共享存储系统解决。

(2)双机双工方式(互备互援)

工作原理:两台主机同时运行各自的服务工作且相互监测情况,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证工作实时,应用服务系统的关键数据存放在共享存储系统中。

(3)集群工作方式(多服务器互备方式)

工作原理:多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。

什么是高可用性(HA)

哥伦比亚大学基金会•上海德济医院信息主管张志翔主任介绍说:由于私立医院在人力等方面的投入较之大型三甲医院不足,因此在硬件上更希望能够尽量降低人力和维护成本,并能够稳定安全的运行。stratus容错服务器正好能够满足我们在硬件安全高效的要求。

 

高可用性的衡量指标

可用性的计算公式:

%availability=(Total Elapsed Time-Sum of Inoperative Times)/ Total Elapsed Time

elapsed time为operating time downtime。

可用性和系统组件的失败率相关。衡量系统设备失败率的一个指标是“失败间隔平均时间”MTBF(mean time between failures)。通常这个指标衡量系统的组件,如磁盘。

MTBF=Total Operating Time / Total No. of Failures

Operating time为系统在使用的时间(不包含停机情况)。

对于容错服务器而言,虽然在理论上存在着两个相同部件同时损坏的情况,但是随着硬件水平的提高,这种概率是比较低的。容错硬件的设计一方面可以防止硬件的单点故障,同时也可以防止硬件所造成的计算错误,并对此做出校正。

可靠性模型

高可用性系统的设计

设计系统的可用性,最重要的是满足用户的需求。系统的失败只有当其导致服务的失效性足以影响到系统用户的需求时才会影响其可用性的指标。用户的敏感性决定于系统提供的应用。例如,在一个能在1秒钟之内被修复的失败在一些联机事务处理系统中并不会被感知到,但如果是对于一个实时的科学计算应用系统,则是不可被接受的。

系统的高可用性设计决定于您的应用。例如,如果几个小时的计划停机时间是可接受的,也许存储系统就不用设计为磁盘可热插拔的。反之,你可能就应该采用可热插拔、热交换和镜像的磁盘系统。

所以涉及高可用系统需要考虑:

决定业务中断的持续时间。根据公式计算出的衡量HA的指标,可以得到一段时间内可以中断的时间。但可能很大量的短时间中断是可以忍受的,而少量长时间的中断却是不可忍受的。

在统计中表明,造成非计划的宕机因素并非都是硬件问题。硬件问题只占40%,软件问题占30%,人为因素占20%,环境因素占10%。您的高可用性系统应该能尽可能地考虑到上述所有因素。

当出现业务中断时,尽快恢复的手段。

图片 3
上海市卫生局信息中心高级工程师沈惠德

与故障模型想对应的,就是系统的可靠性模型。常用的有以下三种:时间模型、故障植入模型和数据模型。

导致计划内的停机因素有:

周期性的备份

软件升级

硬件扩充或维修

系统配置更改

数据更改

上海市卫生局信息中心高级工程师沈惠德很形象地将双机与容错进行了比喻。他说:如果将服务器比作人的器官,那么双机冗余像是器官移植,会出现“排异”的可能性,而容错服务器更像是自身的一套器官,不会出现排异,因此其安全可靠性更高。在他看来,医院信息化的不断推进对安全的要求更高,随着对医院等级评测要求的提高,也将推动容错服务器的发展。

这三种模型暂时还没有看懂(晕)。

导致计划外停机的因素有:

硬件失败

文件系统满错误

内存溢出

备份失败

磁盘满

供电失败

网络失败

应用失败

自然灾害

操作或管理失误

通过有针对性的设计,可以避免上述全部或部分因素带来的损失。当然,100%的高可用系统是不存在的。

1 1>2,stratus可以做到

 

创建高可用性的计算机系统

在UNIX系统上创建高可用性计算机系统,业界的通行做法,也是非常有效的做法,就是采用群集系统(Cluster),将各个主机系统通过网络或其他手段有机地组成一个群体,共同对外提供服务。创建群集系统,通过实现高可用性的软件将冗余的高可用性的硬件组件和软件组件组合起来,消除单点故障:

消除供电的单点故障

消除磁盘的单点故障

消除SPU(System Process Unit)单点故障

[1]消除网络单点故障

消除软件单点故障

尽量消除单系统运行时的单点故障

买一台stratus容错服务器,得到的不仅仅是一个硬件设备,还有伴随的高可靠性、更精确运算以及更优性价比。

可靠性指标

美国stratus容错服务器代理商之一上海复高计算机科技有限公司副总经理马俊华表示:stratus容错服务器部署更简单,可以大大减少软件成本;安全更有保障,能有效地保护动态数据不丢失。上海复高计算机科技有限公司系统集成部总经理汪国亮说:如果采用双机冗余方案,需要购买两套操作系统、两套数据库产品,那么其总体的投资与容错服务器方案相当,而系统的可用性方面,容错服务器显然更具有优势。

可靠性指标,主要有以下几个:

同为美国stratus容错服务器代理商的上海显亮数码科技发展有限公司总经理周彬彬说,应用容错服务器后,相比其他方式的“救火”行为,容错服务器将医院信息化底层无法预测的硬件故障预防,管理人员可以将更多的精力用于其他软件的运作与维护,可大大减少运维成本。

平均无故障时间(MTTF-Mean Time To Failure)

根据国际著名咨询机构IDC所公发布的数据:容错服务器可用性是99.9998%,消除单点故障的集群,可靠性仅为99.99%,而IBM的大型机为99.995%。就技术而言,双机只能保证写入硬盘的数据,不能够对缓存数据进行有效保护,双机系统当硬件出现故障进行切换时,是要产生停顿的,与此同时,双机切换有可能不成功,如此以来,对于医院的窗口单位而言,就会对正常的医疗秩序产生影响,甚至引发群体性事件,影响医院整体形象。有与之相比,容错产品支持任意硬件热插拔,包括主板、CPU等关键性硬件,外界并感觉不到切换,系统可靠性大大提高,同时因为系统具备纠错能力,系统更加稳定。如果说集群技术可以减少停机,那么容错系统的目标是避免停机,在相同的条件下,容错系统显然更加稳定和安全。需要稍加说明的是,小型机虽然也是一种选择,但这会增加成本,同时也对企业的技术人员提出了比较高的要求。

它表示一个系统平均情况下,正常运行的时间。

目前,容错服务器推广应用还需要政府推动以及人们认知水平的提高。一个好消息是,越来越多的医院在选购stratus容错服务器,说明在医院的关键业务中,容错服务器更加适用。

与它相关的指标是“失效率”U,关系: U = 1 / MTTF。

...

平均故障修复时间(MTTR-Mean Time To Fix/Repire)

平均每次修复所需要的时间

平均故障间隔时间(MTBF-Mean Time Between Failure)

一看就知道,MTBF = MTTF MTTR。

在实际情况下,一般MTTR都会比较小,所以我们近似地认为MTBF = MTTF。

MTTF是用来说明一个软件系统能够正常运行的时间的指标。它越大,说明该系统越可靠。计算方法很简单,

 

可靠性计算

一个系统的可靠性计算往往不能直接得出。这是因为计算机系统是一个复杂的系统,影响其可靠性的因素也非常复杂。所以我们需要为其建立适当的数据模型,把大系统划分为若干子系统,然后再根据一定原则进行组合计算。

这种计算方法,可以简化分析的过程。

对于系统的划分,我们可以把它分为:串联系统、并联系统、模冗余系统、混联系统。(其中模冗余系统是M个并联的子系统中,需要有N个以上的子系统能正常工作,整个系统才能正常工作。这种系统,常在并联后加上一个表决器。)

计算这些系统可靠性时,我们需要计算出每个子系统的失效率,然后根据概率的加法原则(串联系统)和乘法原则(并联系统)进行综合运算,最后得出整个系统的可靠性。

 

可靠性设计

本小节是整单的重点。

提高系统可靠性的方法,主要是两种:避错和容错。避错主要是指提前做一些措施,避免系统在运行中出现错误。而容错则是指系统在运行中部分组件出现错误,仍然不失效,可以继续运行;或者当数据、文件损坏或丢失后,系统可以自动将这些数据恢复到以前的状态,使系统能够继续正常运行。

测试就是最常用的一种避错技术。而容错则一般使用冗余来实现。

 

冗余技术

冗余技术是容错的主要手段。主是通过对资源的冗余,包括硬件、软件、信息、时间等,可以使系统的容错性得到较大的提高。

结构冗余

这里又分静态冗余和动态冗余。

静态冗余一般是指增加同样功能的部件,同时运行,最后由表决器对结果进行表决,以多数结果作为系统的最终结果。

动态冗余则是做一些多重的设备储备,当系统检测到某一部件失效时,启用相应的新部件代替它进行工作。这里有检测、切换和恢复的过程,所以称之为动态冗余。这些多余的设备储备,可与主模块一起工作,也可以不工作,分别称为热备份和冷备份。冷备份缺点是当主模块失效时,备份系统可能无法及时衔接上,因为备份机无法获取到原来机器上所有的数据。

其实,我们还可以结合以上两种冗余的优缺点,使用混合冗余的方式,对系统进行结构性冗余设计。

信息冗余

添加一些额外的信息用于保证其正确性。例如:纠错码。

时间冗余

类似结构冗余,不过这里是在同一设备上执行重复计算。

故障恢复策略

如果故障已经发生,则需要一定的方法来恢复故障。一般有两种恢复策略:向前和向后。

向前恢复是指不停止当前的计算,而把系统从不连贯的状态恢复为连贯的正确状态,需要有错误的详细说明。例如我们可以在系统发生故障时,把异常信息都捕获到并存储起来备案,然后尽量让系统继续执行。这也是平常最常用的策略。

后向恢复是把系统恢复到之前的一个状态,然后继续执行。这种方法比较简单,但是却造成程序运行的不连贯性,不适应一些高要求系统,如实时系统。

 

软件容错

主要有以下几种方式:

恢复块方法

这种方法是一种动态的故障屏蔽技术,采用的是后向恢复策略。它提供相同功能的主模块和多个备用模块,当主功能计算完成后需要进行验证测试,如果测试没有通过,则会使用备用模块进行计算,如果还是没有通过,则继续使用下一个备用模块。

设计时应该保证实现主块和备用块之间的独立性,使其不会相互影响。

N版本程序设计

此法是一种静态故障屏蔽技术,采用前向恢复策略。

采用多个相同功能的N份程序同时运行,使用表决器进行最后结果的表决。

重点在于:

N版本的程序设计应该使用不同的方法,如不同的设计语言、不同的开发环境和工具。

同时,由于N个程序同时运行,最后同时表决,所以需要解决多个程序间的并发性。

防卫式程序设计

此法的基本思想是在程序中包含错误检测代码。一旦错误发生,程序能撤销错误状态,恢复到一个已知和正确状态中去。包括错误检测、破坏估计和错误恢复三个方面。

这种方式主要是以软件的形式来容错,也就是说软件自身有较强的容错性,较为常用。

集群

集群是由两个以上的节点机(一般是服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图,同时提供接近容错机的故障恢复能力。

一说到集群,一般会想到使用它来为应用程序提供一种可扩展的高性能设计。但是集群同时还可以为应用程序提供较高的容错能力。以下是集群的分类:

高性能计算科学集群、负载均衡集群、高可用性集群

在实际应用中,这三种基本类型经常会混合使用。

硬件配置

(1)镜像服务器双机

使用两台单独的服务器做镜像服务器,之间使用镜像软件通过网络同步数据。镜像服务器的性能比单一服务器的性能要低,适用对集群系统要求不高的用户,

特点:简单、价格最低廉、可靠性较低、占用网络资源、性能较低。

(2)双机和磁盘阵列柜

此方式同样使用双服务器,同时后端的数据存储使用磁盘阵列柜。阵列柜为双机提供逻辑盘阵访问,并不随意扩展新的物理磁盘。

此方式不需要进行数据的同步,所以性能较镜像服务器要高出很多。但是可能会导致“单点错”,即系统中某一部件或某个应用程序发生故障时,导致所有系统全部宕机。如磁盘阵列如果出错,可能会导致存储的数据全部丢失。

特点:性能较高、可能导致单点错误。

(3)光纤通道双机双控集群系统

使用光纤来组建通道进行连接。允许镜像配置。

特点:扩展性强、费用较高。

随着硬件和网络操作系统的发展。集群技术将会在系统可用性、高可靠性和系统冗余方面逐步提高。

(如以后的集群可以依靠集群文件系统实现对系统中所有文件、设备和网络资源的全局访问,并且生成一个完整的系统映像。)


论文阅读总结

可靠性工程

原文链接:

该文从工程学的角度来说明了可靠性工程如何开展,并举例说明如何在软件开发过程中应用可靠性工程。

 

概念及发展

简单的定义:基于软件产品的可靠性进行预测、建模、估计、度量及管理。

其目标是提高软件系统的可靠性。为达到这个目的,我们需要明白失效产生的原因。

核心问题:如何开发出高可靠性的软件;另一问题:如何评估已有系统的可靠性。

在软件开发中的应用

可靠性工程贯穿于软件开发生命周期的各个阶段。

 

项目开发计划及需求分析阶段

本阶段中,主要是要明确可靠性需求,建立系统的可靠指标。一般情况下,可靠性工作可如下安排:

1)确定功能概图

功能概图主要描述系统中各功能及其使用环境和被使用的概率。

2)对失效进行定义和分类

3)确实用户的可靠性需求

4)平衡性研究

5)建立可靠性指标

 

软件设计和功能实现阶段

该阶段主要工作:

1)在模块间分配可靠性指标

分解系统为多模块,各模块间分配指标,使得最后计算出的总指标满足需求。

2)按可靠性指标进行设计

有关可靠性设计的内容,参见在上文中内容。

3)根据功能概图集中资源配置

4)控制错误的引入和传播

软件审查(代码审核)、软件测试(单元测试和集成测试)。

5)测试现成软件的可靠性

 

系统测试和现场试运行阶段

该阶段是保证可靠性的最后阶段。主要工作:

1)确实操作概图

操作概图主要描述系统最后可以使用的各操作(命令)及其使用环境和被使用的概率。

2)可靠性增强测试

系统测试、交付测试。

按照操作概图中的概率执行测试用例,模仿用户的应用方式测试。

3)根据测试来证明是否已经达到可靠性指标

收集失效数据,规划室额外的测试。

4)现场可靠性评估

分析数据,分析差异原因。

 

维护阶段

主要工作:

1)规划交付使用后的人员需求。

2)监视现场可靠性,并做出适当的调整。

3)监视并维护新功能引起的失效。

4)分析软件交付后失效的产生原因,指导工程改进,降低引入类似错误的可能性。

 

成功案例

文中以一交换机的研发做为例子,说明可靠性工程的应用,给产品带来了惊人的好处:

问题数下降、维护费用下降、测试件间隔缩短、引入新产品的间隔缩短、客户满意度提升。

原因如下:

⑴把可靠性作为确定是否发行的标准,可避免用户在使用中反映过多问题和进行相应的维护工作。

⑵采用“操作概图驱动”的测试方法,提高了测试效率;20%的操作覆盖了95%的应用,20%的错误导致了95%的实效;先测试20%的使用最频繁的操作可以加速可靠性的提高。

 

结束语

国内外还未能有系统化的可靠性工程学理论。我们需要不断结合实践进行研究和总结,为使可靠性工作成为有计划、有组织和有目标的研究工作而努力。


高可靠性测试

原文链接:

该文以作者参与的CraftGS系统为例,讲述了如何在系统中应用测试技术保证软件的高可靠性,这些技术包括:软件验证、软件确认、软件测试管理。

综述

高可靠性软件泛指一类软件:该类软件运行过程中若出现故障会引发重大灾难性事故或经济损失。通常航天型号软件、银行系统软件、医疗行业软件、通讯行业软件等均属此范畴。

作者的CraftGS系统就是可靠性要求较高的一个软件系统,其中各子系统的可靠性指标都在0.95以上。

方案:软件验证技术 软件确认技术 软件测试管理。

图片 4

验证技术主要是人工完成,方法有:面对面质询、文档抽查、非正式会议、同行评审等等。

软件确认技术则主要着眼于排除程序代码中的错误。目前支持很好的自动化。

工程质量的把控,主要依靠测试管理,分为:“软件测试团队组织管理、软件测试计划管理、软件缺陷(错误)跟踪管理以及软件测试件管理”四大部分。

 

软件验证技术

主要包含以下方面:

需求规格说明验证

保证用户的所有需求(功能、业务、非功能、约束)都已经被分配到软件需求规格说明的各需求项中。

设计规格说明验证

主要是逐步检查概要设计和详细是否全部分配了之前的分析成果。其中,还要进行数据库设计的验证。

代码验证

包括:代码规范审查、代码审查和代码静态分析。

交付验证

在测试完成后,系统交付客户前,需要进行交付验证和测试。交付验证包括安装验证和使用验证两部分,以确保软件和用户手册匹配。

 

软件确认技术

其实这里是测试技术。有:

单元测试(白盒)

建构桩模块和驱动模块以驱动被测单元(函数、类、模块)运行,使用设计好的测试用例对各单元进行测试。

集成测试(灰盒)

验证各模块组装后的软件是否能达到概要设计规格说明中模块的设计目标;各模块内部是否存在冲突,保模块能否正常工作。一般采用自底向上按集成度由小到大进行集成测试。

系统测试(黑盒)

检测系统是否满足软件需求规格说明中的各需求项,包括:业务需求、功能需求、非功能需求(质量属性)及约束。虽然不涉及代码,但是由于需求项涉及的领域较广,所以测试方法多而杂,如:

功能测试、执行路径测试、可靠性测试、压力测试、可恢复性测试、可移植性测试……等。

这些测试的特点:在一定环境条件下(如:模拟现场或极端条件),设计并运行各种测试用例,根据测试结果数据,评估软件系统是否符合软件需求项的各类要求。

交付测试

交付测试的主要参与者是目标客户,客户参与越多越好。主要进行:安装测试、可用性测试、alpha测试、beta测试等。

 

软件测试管理

软件测试团队组织管理

是否能组建一个合适的测试团队,直接影响到测试工作的进展和质量。作者的CraftGS系统中的测试团队,有资深测试专家、测试人员、兼职人员(同行评审)、测试新手。

软件测试计划管理

其实就是安排好测试的流程。

主要有:软件测试策划、软件测试技术剪裁、测试进度管理、成本管理。

软件缺陷(错误)跟踪管理

跟踪一个错误的全生命周期,确保每一个错误都能及时纠正及不引入新的错误。当测试人员提交错误后,需要督促开发团队及时修正,并在修正完成后进行回归测试。一般使用BUG管理系统即可。

软件测试件管理

努力建设好测试团队的财富库并对测试团队成员进行技能培训以帮助他们能使用好这个财富库。

测试件(Testware)是指测试工作形成的产品,包括:实践中积累的经验教训、测试技巧、测试工具、规格文档及一些通用脚本。

测试件管理工作主要是:建设与培训。

 

结语

目前对高可靠性软件如何实话软件测试技术仍是一个颇不成熟的领域,缺少一种体系化的方法。

本文由pc28.am发布于pc28.am,转载请注明出处:治病行当顾客谈关键业务根底设备,系统可相信

上一篇:服务器安全设置图像和文字化教育程,怎样加强 下一篇:没有了
猜你喜欢
热门排行
精彩图文