好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

毕业设计论文针对网络教学平台软件的可靠性测试研究与实践.doc

32页
  • 卖家[上传人]:pu****.1
  • 文档编号:491753869
  • 上传时间:2023-01-27
  • 文档格式:DOC
  • 文档大小:450.50KB
  • / 32 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 目录第 1 章 绪论1.1 课题背景1.2 国内外研究动1.2.1 软件可靠性研究的发展及现状1.2.2 软件可靠性领域面临的主要问题1.3 论文主要研究内容及意义第 2 章 软件可靠性测评相关理论研究2 .1 软件可靠性的基本概念2.1.1 软件可靠性的定义2.1.2 软件可靠性的度量2.1.3 软件可靠性工程2.2 软件测试与可靠性2.2.1 软件测试2.2.1.1 软件测试方法2.2.1.2 软件测试技术2.2.1.3 软件测试模型2.2.2 软件可靠性评价技术2.2.3 软件可靠性模型2.2.3.1 软件可靠性模型的概念2.2.3.2 建模原理2.2.3.3 建模的一般过程2.3 软件测试与可靠性评价的关系2.4 小结第 3 章 传统的软件可靠性测试方法3.1 软件可靠性测试方法的概念3.1.1 软件可靠性测试的提出3.1.2 软件可靠性测试的定义3.1.3 软件可靠性测试的过程3.2 两种主要的软件可靠性测试方法3.2.1 基于使用模型的统计测试方法3.2.1.1 统计测试原理3.2.1.2 使用模型的构造3.2.1.3 测试用例的生成3.2.1.4 测试的充分性以及可靠性度量3.2.2 基于运行剖面的可靠性测试方法1 绪论1.1 课题背景二十世纪七十年代以来,计算机系统被越来越广泛地用来监视和控制与人类生活相关的一些物理过程。

      这些计算机系统监视其外部物理过程的变化,并根据变化产生控制指令,引导物理过程按照正确的方式运转典型的应用包括飞行器和航天器的控制系统、汽车电子系统、工业过程控制系统、电站控制系统、危重病人的生命维持系统、通信系统以及目前正在大规模兴起的消费类电子产品在这种情况下,对计算机系统的质量和可靠性的要求也越来越高,这是因为这些系统的功能一旦失效,将引起生命、财产的重大损失以及环境可能遭到严重破坏[1],从而使社会生产和经济活动陷入不可收拾的混乱状态计算机系统的可靠性包含硬件可靠性与软件可靠性两方面的内容由于硬件可靠性技术已有五十余年的发展历史,冗余技术、差错控制、故障自动检测、容错技术和避错技术等可靠性设计技术已经成熟,以及大规模超大规模集成电路的被采用,可使整机的可靠性大体上每经六年就提高十倍相比之下,软件可靠性的研究只有二十年左右的发展历史,加上软件生产基本上仍处于作坊式的手工制作,其提高软件可靠性的技术与管理措施还处于十分不完善的状况而且随着计算机技术迅猛发展,软件的销售量和使用量呈几何级数增长,软件的规模也越来越大,复杂性急剧提高例如,航天飞机的飞行软件达 50 万行源代码,F-22 战斗机更达 150 多万行源代码,软件失效已成为系统瘫痪的主要原因。

      根据美国国防部和 NASA 的统计,当今武器系统和航天项目中的软件可靠性比硬件系统大约低一个数量级而且工程应用中由软件引发的、震惊科技界的故障持续不断,在某些类型的设备中软件故障甚至远远超过了硬件,成为系统的主要故障源1.2 国内外研究动态1.2.1 软件可靠性研究的发展及现状第一篇关于软件可靠性的论文是 1967 年 Hudon提出的生灭过程模型,该模型导出了故障间隔的威布尔分布继 Hudon之后,1972 年 Jelinski等人进一步研究了软件的故障率,他们都假定有一个故障的分段常数,故障率同残留差错数成正比以上模型中的参数估计大多采用经典统计的方法但大量的事实表明,当观察值的分布偏离原来的假设模式时,由经典统计所得的参数估计值往往很不可靠因此,1977 年 J.W.Tukey提出了探索数据分析方法(EDA),该方法区别于经典统计方法的主要之处是:对数据作极少假定或根本不假设模型,非常不重视问题的数学结构,而强调直接研究数据本身,了解数据的特征、结构,以此出发,分析如何得到更多的信息,然后采用适合这种数据的估计70 年代末至 80 年代初,软件可靠性的研究开始集中于对软件可靠性模型进行比较和选择。

      早期工作的不足之处是缺乏较好的故障数据和所需的比较准则90 年代以来,软件可靠性研究工作进展较快,主要有:(1) 软件可靠性设计在软件设计过程中,为了提高软件可靠性,经常采用一些专门的技术将可靠性“设计”到软件中去提高软件可靠性的技术主要有 2类:一类是避免故障,即在开发过程中,不让缺陷和差错潜入软件的技术;另一类是容错技术,其中最常用的设计技术就是恢复块技术和N-版本程序设计技术F.Belle 等人从可靠度优化、费用优化等方面考虑了软件的容错技术在此基础上,将上述诸技术结合起来,Belle 等人提出了一致性恢复块、接受表决、N自检程序设计以及考虑版本间失效相关的容错技术,但目前这些技术仍处于理论上的研电子科技大学硕士论文:软件可靠性测试与评价技术的研究与实现究,其工程上的实践尚有待于进一步探讨2) 软件可靠性测试通过对软件可靠性的测试发现软件中的故障,从而不断排除故障以提高软件可靠性传统的软件测试方法主要有面向程序的静态测试和动态测试 2 大类1991 年,T.Downs 针对现有大多数软件可靠性模型在测试阶段将软件处理成黑盒子的作法,提出对测试过程直接建模1993 年,Whittaker 等人采用马尔可夫过程对软件的测试过程和测试用例作了研究。

      在 1997 年的第 19届国际软件工程会议上,美国的 P.Frank 在一个发现程序失效并修改软件而消除失效的模型中,比较了几种测试方法,所考虑的问题是,使用测试用例来发现失效或通过模拟使用并在使用过程中发现失效是不是最好的最好”是用在所有测试到的失效都消除以后获得的可靠性来度量的另外,美国的 A.Podgurski等人在这次会议上《维护之后的软件可靠性重新评价》一文中指出:回归测试中测试用例复用与修改后软件可靠性的评价是不相容的作者提出了一种在某些普通环境下评价修改后软件可靠性的比较经济的方法随着面向对象编程(OOP)技术的兴起,相应地发展了面向对象的软件测试技术,该技术首先由 M.J.Harrold 等人提出,其基本思想是找出服务内部和服务间的定义-引用对,围绕定义-引用对的覆盖确定测试用例针对目前大多数 OOP 测试主要集中在类的测试上,Liu. C等人通过建立一个状态模型来获得软件的动态运行时行为,提出了一个系统级的OOP 软件测试方法3) 软件可靠性数据的收集软件可靠性数据的收集是估测软件可靠性的基础,所收集的数据是否有效,是否满足模型的要求,直接影响到软件可靠性评价的准确性和可靠性。

      通常收集的软件可靠性数据有 2 类:失效计数数据和失效间隔数据但由于软件中一个相同的错误可能会导致许多失效,并且若干个错误之间有时存在相关性,从而会降低所收集到数据的精确度,因此收集软件可靠性数据时,首先要制订出详细的计划和标准,如人力资源、时间的分配,所收集数据的形式、记录方式、存储方式等问题其次,应对数据作具体的分析处理后方可应用,如数据的提取、合并、相关性分析等,采用的主要技术有EM算法、分段拟合技术等另外,当应用某一具体的软件可靠性模型时,可能会出现需要的是其中的一类失效数据,而收集到的却是另一类,这时需进行失效数据间的转换目前虽已开发出了一些自动收集软件可靠性数据的支持工具,但局限性很大,因此,如何准确而高效地自动收集各种软件可靠性数据,还是一项有待于进一步研究和实践的课题4) 软件可靠性预测传统的软件可靠性预测模型大多通过拟合已收集到的软件失效数据来预测软件在未来时间的失效数考虑到不同时期软件失效数据对软件可靠性预测的影响会有所不同,M.Xie 提出了一个双指数平滑软件可靠性预测模型,即对近期所观察到的软件失效数据赋予一个较大的权值,与传统的预测模型相比,该模型简单易行且准确程度高。

      对于软件可靠性预测中的不一致问题,Karunanithi等人在 1991 和 1992 年这两届的 IEEE 关于软件可靠性工程的国际会议上,提出了利用神经网络来解决该问题在训练人工神经网络阶段,使用执行时间作为输入,而将观察到的累积错误数作为目标输出,在训练结束时,输入一个附加的、未来的、执行时间的区间段,并考察人工神经网络对累积错误数的估计精度HanS.Son 等人利用熵论针对软件开发阶段由于开发方法的差异而引起的软件可靠性预测问题作了定量分析5) 硬-软件混合系统可靠性问题计算机系统是由硬件、软件组成的一个有机整体,硬件与软件之间相互依赖、相互作用,因此为了评价计算机系统的可靠性,必须从硬-软件综合系统的角度来认识问题国外从 70 年代中期开始研究综合系统的可靠性问题1983 年 ARMS 会议上开始将“综合硬/软件可靠性”作为会议专题之一同年,还专门召开了“全系统可靠性研讨会”,国外这方面的研究成果已经在航空等领域得到应用从 80 年代中期开始,我国科学工作者也投入了这项研究及应用几种常见的硬- 软件混合系统可靠性模型有:Costes-Landrauit-Lapie 马氏模型,Thompson模型,Sumita-Masuda 模型,Shooman模型,IBM 模型,Iyer-Tang 模型等。

      上述模型大多假定系统包含一个硬件子系统和一个软件子系统,所以,当任意一个子系统失效,都会导致系统失效WelkeSR讨论了具有冗余硬件元件和多个软件版本的混合系统可靠性,建立了一个硬-软件统一模型,该模型将软件中的 G-O/NHP 模型与硬件马氏过程模型综合起来考虑通过确定软件失效的转移概率,将软件失效在硬件可靠性模型中体现出来国内软件可靠性研究始于 80 年代初,黄锡滋等在软件可靠性建模、软件可靠性分配及软件可靠性管理等方面作了有益的探索;陈望梅等开展软件避错技术研究;姚一平等在软件可靠性建模、软件可靠性评价工具和混合硬件-软件系统可靠性等方面作了努力;刘纯生在软件容错方面作了重要工作;蔡开元在软件可靠性建模(提出模糊软件可靠性模型)、软件可靠性模型应用选择、软件可靠性测试、软件可靠性度量体系作了有益的探讨徐仁佐、李德银、张宇虹等在软件可靠性理论方面作了研究在工程实践方面,姚一平等曾利用自己的软件可靠性评价工具对 ACT 验证机软件可靠性给予评价蔡开元也将自己的模糊软件可靠性模型应用于 ACT验证机徐仁佐等人利用 CLIPS 开发了软件可靠性专家系统,从而为软件可靠性模型的选择和比较提供了有力的支持。

      1.2.2 软件可靠性领域面临的主要问题软件可靠性的研究虽然已取得了很大的成就,但存在的问题仍很多,主要有:(1) 软件可靠性测试软件可靠性测试是适用于软件可靠性工程中的一种测试方法,旨在有效地发现程序中影响软件可靠性的缺陷,有别于传统的测试方法软件可靠性测试在软件可靠性工程中很重要,甚至必不可少,是正确估计软件产品的可靠性的基础但目前在这方面的研究工作很薄弱,急需开展2) 软件可靠性模型问题虽然目前已建立了数百种软件可靠性模型,但均具有一定的局限性,因此,从软件可靠性模型的假设是否合理、实际应用是否简单方便、适用范围是否广泛等问题出发,如何进一步建立合理、实用的软件可靠性模型还有待于进一步研究3) 软件测试用例的自动生成问题现有的软件测试用例生成方法缺乏形式化方式,因此各种软件测试工具中测试用例的自动生成工具还有待于进一步开发和完善4) 实时软件的可靠性评价目前在软件可靠性评价技术的研究中,大多针对通用软件而忽视了实时软件虽然两者在评价方法上有一部分是相同的,但实时软件的可靠性评价还有自身的特殊性,如对时间资源的管理与通用软件存在差异5) 高可靠性软件的可靠性评价对某些可靠性要求极高的软件,如核电站、航天飞机软件,单纯依赖软件可靠性模型进行软件可靠性评价似乎不现实,因为所需的测试时间远远超出了有实际。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.