软件可靠性课件.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件可靠性;软件可靠性的发展;美国空军的范登堡中心在60年代后期发生过多次导弹试射失败的事故,事后发现几乎都是由软件错误造成的; F一18战斗机在海湾战争中,飞行控制软件共发生了500多次故障; 我国某型号飞机首飞前航空电子系统在地面测试中测出的故障共800多个,其中软件故障就达600多个,约占75%。 ;1990年1月15日,美国一通信中转系统新投入使用的软件发生了错误,导致主干线远程网大规模崩溃; 美国的Therac-25放射性治疗仪由于软件存在缺陷导致几个癌症病人受到非常严重的过量放射性治疗,其中4个人因此死亡; 2002年11月28日,欧洲的亚里安娜5型火箭因发动机控制系统软件的错误而导致飞行试验失败。 ;调用路径太多;(1)故障机理 硬件产生故障的原因有四个方面:即设计问题、生产过程中的问题、超载及耗损。硬件故障主要是由于耗损(物理退化)所致的,而软件不存在物理退化现象。这就决定了软件正确性与软件可靠性密切相关,一个正确的软件任何时刻均可靠;然而一个正确的硬件元器件或系统则可能在某个时刻故障。软件没有耗损问题并不等于没有可靠性问题,因在开发过程中常有一些随机因素,不可避免地会在软件中留下缺陷,因而软件也有可靠性问题。所以硬件的故障机理是耗损,而软件的故障机理就是残留缺陷在一定环境下造成的软件错误。;(2)复杂性; 软件可靠性的核心是“思考”问题,软件中不可能象硬件那样分解成元部件,它只有语句。语言本身造成的软件故障较少,且通过静态测试(目测或编译)可加修正。软件错误来源主要是软件设计者的思维错误及软件的复杂性,这是难以控制的。故软件可靠性的提高需从人的思维正确性和减少软件的复杂性两方面着手。这正如我们用汉语写文章,观点有错误不能归咎于语言本身不好,而应归咎于人的思想。 ; 由于软件内部逻辑复杂,运行环境动态变化,且不同的软件差异可能很大,因而软件故障机理可能有不同的表现形式。譬如有的故障过程比较简单,易于追踪分析,而有的故障过程可能非常复杂,难于甚至不可能加以详尽描述和分析,尤其是运行于高度复杂实时环??中的大型软件。但总的说来,软件故障机理可描述为:软件缺陷→软件错误→软件故障。;(1)软件缺陷;(2)软件错误;(3)软件故障;软件故障的特点;影响软件可靠性的因素;软件可靠性设计技术。关于软件可靠性设计技术的外延并不明确,但一般是指软件设计阶段中采用的用以保证和提高软件可靠性为主要目标的软件技术。 软件可靠性测试。研究表明,软件测试方法与资源投入对软件可靠性有不可忽视的影响。 软件可靠性管理。软件可靠性管理旨在系统管理软件生存期各阶段的可靠性活动,使之系统化、规范化、一体化,这样就可以避免许多人为错误,以提高软件可靠性。 软件开发人员能力和经验。显然,软件开发人员(包括测试人员)的能力愈强,经验愈丰富,所犯错误便可能愈少,所得软件产品质量愈高,相应的可靠性也愈高。 软件开发方法。软件工程表明,开发方法对软件可靠性有显著影响。与非结构化方法比较,结构化方法可以明显减少软件缺陷数。 软件开发环境。研究表明,程序语言对软件可靠性有影响。譬如,结构化语言Ada优于Fortran语言,而软件测试工具优劣则影响测试效果。;软件可靠性定义;软件可靠性技术;软件避错技术;软件实现技术;软件避错技术的应用;软件容错技术;N文本特点;比较向量;表决程序;恢复块技术;软件容错技术的应用;软件测试技术;软件测试方法;测试策略;测试用例设计;测试方法;(4)猜测错误。凭直觉和经验列出可能有的错误和易错情况表,并写出测试用例。 (5)语句覆盖。选择足够的测试用例使程序中的每条语句至少被执行一次。这是一个必要但不充分的准则。 (6)判定覆盖。要求程序中的每一个分支语句至少都通过一次,即每一条判定语句的真值执行一次,假值也执行一次。它较语句覆键的逻辑覆盖好些,但同样是不充分的。 (7)条件覆盖。执行所设计的测试用例,使得判定中的每个条件都获得各种可能的结果。它较判定覆盖准则要好,但不能替代它。 (8)判定条件覆盖。要求设计足够的测试用例,使得每个判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能也至少出现一次,同时程序的每个入口点至少要进入一次。 (9)多重条件覆盖。执行所设计的调试情况,使得每个判定中条件结果的所有可能组合至少出现一次,程序所有入口都至少进入一次,显然这是一种最强的逻辑覆盖准则。 ;面向对象的软件测试;面向对象软件语言特征对测试影响;2.软件建模;传统软件开发所采用的是从过程的角度即结构化方法来建立模型,它采用了模块分解和功能抽象的手段,开发人员把精力集中在控制流程和算法上。 ; 目前,UML(Unified Modeling Language)已成为面向对象分析与

文档评论(0)

sxjctywd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档