文档介绍:优质资料
目录
第 1 章绪论
课题背景
国内外研究动
软件可靠性研究的发展及现状
软件可靠性领域面临的主要问题
论文主要研究内容及意义
第 2 章软件可靠性测评相关理论研究
2 .1 软件可靠性的基本概念
软件可靠性的定义
软件可靠性的度量
软件可靠性工程
软件测试与可靠性
软件测试
软件测试方法
软件测试技术
软件测试模型
软件可靠性评价技术
软件可靠性模型
软件可靠性模型的概念
建模原理
建模的一般过程
软件测试与可靠性评价的关系
小结
第 3 章传统的软件可靠性测试方法
软件可靠性测试方法的概念
软件可靠性测试的提出
软件可靠性测试的定义
软件可靠性测试的过程
两种主要的软件可靠性测试方法
基于使用模型的统计测试方法
统计测试原理
使用模型的构造
测试用例的生成
测试的充分性以及可靠性度量
基于运行剖面的可靠性测试方法
1 绪论
课题背景
二十世纪七十年代以来,计算机系统被越来越广泛地用来监视和控制与人类生活相关的一些物理过程。这些计算机系统监视其外部物理过程的变化,并根据变化产生控制指令,引导物理过程按照正确的方式运转。典型的应用包括飞行器和航天器的控制系统、汽车电子系统、工业过程控制系统、电站控制系统、危重病人的生命维持系统、通信系统以及目前正在大规模兴起的消费类电子产品。在这种情况下,对计算机系统的质量和可靠性的要求也越来越高,这是因为这些系统的功能一旦失效,将引起生命、财产的重大损失以及环境可能遭到严重破坏[1],从而使社会生产和经济活动陷入不可收拾的混乱状态。
计算机系统的可靠性包含硬件可靠性与软件可靠性两方面的内容。由于硬件可靠性技术已有五十余年的发展历史,冗余技术、差错控制、故障自动检测、容错技术和避错技术等可靠性设计技术已经成熟,以及大规模超大规模集成电路的被采用,可使整机的可靠性大体上每经六年就提高十倍。相比之下,软件可靠性的研究只有二十年左右的发展历史,加上软件生产基本上仍处于作坊式的手工制作,其提高软件可靠性的技术与管理措施还处于十分不完善的状况。
而且随着计算机技术迅猛发展,软件的销售量和使用量呈几何级数增长,软件的规模也越来越大,复杂性急剧提高。例如,航天飞机的飞行软件达 50 万行源代码,F-22 战斗机更达 150 多万行源代码,软件失效已成为系统瘫痪的主要原因。根据美国国防部和 NASA 的统计,当今武器系统和航天项目中的软件可靠性比硬件系统大约低一个数量级。而且工程应用中由软件引发的、震惊科技界的故障持续不断,在某些类型的设备中软件故障甚至远远超过了硬件,成为系统的主要故障源。
国内外研究动态
软件可靠性研究的发展及现状
第一篇关于软件可靠性的论文是 1967 年 Hudon提出的生灭过程模型,该模型导出了故障间隔的威布尔分布。继 Hudon之后,1972 年 Jelinski等人进一步研究了软件的故障率,他们都假定有一个故障的分段常数,故障率同残留差错数成正比。以上模型中的参数估计大多采用经典统计的方法。但大量的事实表明,当观察值的分布偏离原来的假设模式时,由经典统计所得的参数估计值往往很不可靠。因此,1977 年 (EDA),该方法区别于经典统计方法的主要之处是:对数据作极少假定或根本不假设模型,非常不重视问题的数学结构,而强调直接研究数据本身,了解数据的特征、结构,以此出发,分析如何得到更多的信息,然后采用适合这种数据的估计。70 年代末至 80 年代
初,软件可靠性的研究开始集中于对软件可靠性模型进行比较和选择。早期工作的不足之处是缺乏较好的故障数据和所需的比较准则。90 年代以来,软件可靠性研究工作进展较快,主要有:
(1) 软件可靠性设计。在软件设计过程中,为了提高软件可靠性,经常采用一些专门的技术将可靠性“设计”到软件中去。提高软件可靠性的技术主要有 2类:一类是避免故障,即在开发过程中,不让缺陷和差错潜入软件的技术;另一类是容错技术,其中最常用的设计技术就是恢复块技术和N-版本程序设计技术。 等人从可靠度优化、费用优化等方面考虑了软件的容错技术。在此基础上,将上述诸技术结合起来,Belle 等人提出了一致性恢复块、接受表决、N