您好、欢迎来到现金彩票网!
当前位置:PC蛋蛋 > 运行剖面 >

软件可靠性测试研究Research on software reliability testpdf

发布时间:2019-06-27 06:52 来源:未知 编辑:admin

  软件可靠性测试研究Research on software reliability test.pdf

  1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

  电子科技大学 硕士学位论文 软件可靠性测试研究 姓名:张猛 申请学位级别:硕士 专业:运筹学与控制论 指导教师:唐应辉 20060116 摘要 本文首先介绍了问题的由来和研究意义,阐述了有关软件可靠性和软件可靠 性模型的一些基本概念,概述了国内外对软件可靠性研究的现状与发展;然后对 软件可靠性研究中所用到的数学知识进行了列举并简要说明其在可靠性研究中的 应用情况;接着本文介绍了软件测试的基本内容和过程。本文对软件测试和软件 可靠性模型的应用进行了创新性和探索性研究。主要内容为: 1.在现有研究的基础上提出了一种比较随机测试和划分测试的方法。传统的 方法没有考虑测试后剩余的错误对程序运行的影响。从这个角度出发,该方法通 过近似比较测试后程序的可靠性来比较随机测试和划分测试。 2.提出了一个改进的软件可靠性模型:考虑错误排除率、错误引入率的G—O 非齐次泊松过程模型。在现有的NHPP类软件可靠性增长模型中,假设条件过于苛 刻,把错误的排除过程看得过于简单,并且模型假设排错是完全的,这与实际情 况不符。在软件错误的排除过程中引入新错误的情况是经常发生的,并且有些软 件错误是不能排出的。改进后的模型与实际情况更加吻合。 3.在上述研究的基础上,从实际出发,对NHPP类软件可靠性增长模型做进一 步的改进,提出了一个新的模型,该模型将排除的软件错误数和引入的软件错误数 都看成随机变量,并利用该模型对软件的可靠性指标进行评估,最后通过实例对 该模型进行了验证。最后本文应用文献[33]中介绍的EM算法于NHPP类模型的参 数估计,以提高估计的精度,从而提高软件可靠性分析的精确程度。 关键词:软件可靠性,软件测试,软件可靠性模型,软件可靠性测试 电子科技大学硕士学位论文 ABSTRACT T0 art ofthestateaIldthe bcgin谢th,tllispaperinl∞ducesthe researchfieldofso丘w盯ereli baSic t0 conceptsrelatedsoRwarerelidbility a_bili何The aIldsoft、vare arediscuSsed.T梳theⅡla_mematicalllsediIl reliabil时models knowIedge t11erese砌fieldofsoRwarc isen吼erated.Newmethod are reliabilit)r and卸_alysis and fors0氟唰De andsofhvare main eXploredinVestiga:ced test.mg rcliabm时models.The resultsareasfonows: 1.Anewmethodto the of andrandom e伍cacypartition compare tes廿ng testing is forward..hlnlis n啪berof舢uresdetected put p印er,we血vestiga把meexpected by r姐dom withouttest parfitiontestil培a11d cases and tlle te蚶_ng r印lacementc伽叩are of raIldom me emcacy p枷tiontest吨and testings雠tegiesusillgpr0掣锄reliabili够 afler testing. 2.Amodelis mis isco璐ideredin恤e proposed.Inmodel,ir玎perfectdebuggiIlg sense也atIlcwf训tscanbein打oduced砒oⅡ1e andthe softw£∽州ngdebuggillg de幻奠edf如k notberemoved modclis t0 fhult may completely.A proposediIlte蓼ate r锄oval fauhin订oductionratei11toso胁are assessmem. rate,舡ld reliability MostSR(洲s嬲sume协atdetectedtcsts谢ll faults beremoved. du血g evelltl】ally offault Considemtionremoval inme modelsisIimited. e伍ciencye虹stiⅡg 3.Anewmodelis modelisme propOsed,this eXtellsiOnofNHPPso脚are nunlber reliabili毋models.In廿1ismodel,me ofin打oducedfaultand faultis debugged consideredtober锄domvariable,and也enewmOddisusedtoes胁atesORware t11is EM the to valuesof reliabil耐measures.IIlanicle,、Ⅳeapplyalgo枷m estimating me ofNHPPmodeIs.ne be pammeters estima血gaccuracymayincreasedby恤way. so也eresultsoft’啪_re be mis too’ reliabilitya工l龇ysismayiInpmvedby way K叼唧ords:Soflware Reliabil咄So胁勰Tes血g,So风愠reReliabil时Model, So‰雠ReliabiI蚵Testing Ⅱ 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 (保密的学位论文在解密后应遵守此规定) 签名:丞猛 导师签名 日期:铷彭年/月(}日 第一章绪论 第一章绪论 1.1软件可靠性研究的意义 近二、三十年来,随着计算机在军用与民用产品上的应用日益增多,软件缺陷所 As 引发的产品故障,甚至灾难性事故也越来越严重。据美国国家宇航局N A的统 计:在80年代初,软件引起的故障与硬件引起的故障,其比率约为1.1:1.O,到了80年 代末,这一比率已达到2.5:1.O。在我国,这一比率至少己达到3:1。随着21世纪 的来临,信息技术的迅猛发展,计算机己深入到军用、民用的各个领域,甚至居民的日 常生活之中,因此,软件故障将日益成为高新技术产品发展的瓶颈。 计算机本身就全球来讲,现已是年产值高达5000亿美元的巨大产业。在这 种情况下,对计算机系统的质量和可靠性的要求也越来越高。这是因为一旦计算 机系统发生故障,则其效益就会大幅度的消减,甚至完全丧失,从而使社会生产 和经济活动陷入不可收拾的混乱状态。因此可以说,计算机系统的高可靠性是实 现信息化社会的关键。 计算机系统硬件可靠性,由于可靠性技术已有六十余年的发展历史,冗余技 术、差错控制、故障自动检测、容错技术和避错技术等可靠性设计技术已经成熟, 以及大规模超大规模集成电路的被采用,可使整机的可靠性大体上每经六年就提 高十倍。相比之下,软件可靠性的研究只有三十几年的发展历史,加上软件生产 基本上仍处于作坊式的手工制作,其提高软件可靠性的技术与管理措施还处于十 分不完善的状况。 1.2国内外研究状况 第一篇关于软件可靠性的论文是1967年Hudon提出的生灭过程模型翻,该模 了软件的故障率,他们都假定有一个故障的分段常数,故障率同残留差错数成正比。 以上模型中的参数估计大多采用经典统计的方法。但大量的事实表明,当观察值的 分布偏离原来的假设模式时,由经典统计所得的参数估计值往往很不可靠。因 此,1977年Jwtukey提出了探索数据分析方法∞EA),该方法区别于经典统计方法 电子科技大学硕士学位论文 的主要之处是:对数据作极少假定或根本不假设模型,非常不重视问题的数学结构, 而强调直接研究数据本身,了解数据的特征、结构,以此出发,分析如何得到更多的信 息,然后采用适合这种数据的估计IlJ。70年代末至80年代初散件可靠性的研究开 始集中于对软件可靠性模型进行比较和选择。早期工作的不足之处是缺乏较好的 故障数据和所需的比较准则。90年代以来,软件可靠性研究工作进展较快,主要有: (1)软件可靠性设计。在软件设计过程中,为了提软件可靠性,经常采用一些专 门的技术将可靠性“设计”到软件中去。提高软件可靠性的技术主要有两类:一类 是避免故障,即在开发过程中,不让缺陷和差错潜入软件的技术:另一类是容错技术, 其中晟常用的设计技术就是恢复块技术和N版本程序设计技术。F.Belle等人从可 靠度优化、费用优化等方面考虑了软件的容错技术【3】。在此础上,将上述诸技术结 合起来,Belle等人提出了一致性恢复块、接受表决、N自检程序设计以及考虑版本 间失效相关的容错技术H,但目前这些技术仍处于理论上的研究其工程上的实践尚 有待于进一步探讨。 (2)软件可靠性测试与管理。通过对软件可靠性的测试发现软件中的故障,从而 不断排除故障以提高软件可靠性。传统的软件测试方法主要有面向程序的静态测 试和动态测试两大类。1991年,tDowlls,提出对测试过程直接建模例。1993年, Wimlker等人采用马尔可夫过程对软件的测试过程和测试用例作了研究[6]。 随着面向对象编程(OOP)技术的兴起,相应地发展了面向对象的软件测试技术, 该技术首先由M.J.Harmld等人提出,其基本思想是找出服务内部和服务间的定义. 引用对,围绕定义一引用对的覆盖确定测试用例。针对目前大多数ooP测试主要集 中在类的测试上,文献同通过建立一个状态模型来获得软件的动态运行行为,提出 了~个系统级的ooP软件测试方法。软件可靠性管理包括软件测试管理和发行管 理。在软件测试管理中,首先考察测试工程中进度状况管理问题萁次考察测试人力 对软件模块测试的最佳分配问题。目前主要集中在一定可靠度要求下(或使可靠度 达到最大)的人力、资源分配问题。为有效利用测试过程中投入的测试资源,文献[8】 考虑将测试过程分为多个阶段,并为多个阶段动态分配测试资源的方法.提出了2种 动态分配资源的方法,即当测试资源总数一定时,测试结束时各软件模块中剩余错 误平均数最小模型以及当给定测试结束时各软件模块中剩余错误平均数要达到预 定指标时,所用的测试资源最少的模型。对于软件发行管理问题,主要考虑软件可靠 性、相关软件费用以及合同交付期等因素,确定软件的最优发行时间。另一方面考 虑到软件的最优发行时间与软件可靠性模型中的参数有关,而这些参数的估计由于 受收集到的软件失效数据影响往往准确度不高闺此,文献【9]以G.o模型为例,分析 第一章绪论 了软件可靠性模型中参数对最优发行时间的影响,并提出了相应的改进方法。 (3)软件可靠性数据的收集。软件可靠性数据的收集是估测软件可靠性的基础, 所收集的数据是否有效,是否满足模型的要求,直接影响到软件可靠性评估的准确 性和可靠性。通常收集的软件可靠性数据有两类:失效计数数据和失效间隔数据。 但由于软件中一个相同的错误可能会导致许多失效,并且若干个错误之间有时存在 相关性,从而会降低所收集到数据的精确度,因此收集软件可靠性数据时,首先要制 订出详细的计划和标准,如人力资源、时间的分配、所收集数据的形式、记录方式、 存储方式等问题。其次,应对数据作具体的分析处理后方可应用,如数据的提取、合 并、相关性分析等,采用的主要技术有EM算法、分段拟合技术等。另外,当应用某 一具体的软件可靠性模型时,可能会出现需要的是其中的一类失效数据,而收集到 的却是另一类,这时需进行失效数据间的转换【10】。目前虽已开发出了一些自动收集 软件可靠性数据的支持工具,但局限性很大,因此,如何准确而高效地自动收集各种 软件可靠性数据,还是一项有待于进一步研究和实践的课题。 国内软件可靠性研究始于80年代初,黄锡滋等在软件可靠性建模、软件可靠 性分配及软件可靠性管理等方面作了有益的探索;陈望梅等开展软件避错技术研究; 姚一平等在软件可靠性建模、软件可靠性评估工具和混合硬件.软件系统可靠性等 方面作了努力:刘纯生在软件容错方面作了重要工作;蔡开元在软件可靠性建模(提 出模糊软件可靠性模型)、软件可靠性模型应用选择、软件可靠性测试、软件可靠 性度量体系作了有益的探讨。蔡开元也将自己的模糊软件可靠性模型应用于AcT 验证机【111。徐仁佐等人利用CuPS开发了软件可靠性专家系统,从而为软件可靠性 模型的选择和比较提供了有力的支持u…。 本文分为五个部分。第一部分主要介绍了问题的由来和研究意义;第二部分 介绍了软件可靠性一些基本概念,例如软件工程、软件可靠性、软件可靠性测试 等;第三部分主要介绍了软件可靠性模型研究中所用到的数学知识;第四部分介 绍了软件测试的基本内容和过程,并在现有研究的基础上提出了一种比较随机测 试和划分测试的方法;第五部分对现有的NHPP类软件可靠性模型进行了扩展,提 出了两个新的模型。 电子科技大学硕士学位论文 第二章软件可靠性测试 2.1软件可靠性的定义及其要素 关于软件可靠性的确切含义,学术界有过长期的争论。曾经有人否认软件具 有可靠性属性,把软件可靠性说成是科学家寻求的一种“神圣梦想”,也有人认为 软件的正确性就是可靠性。现在仍然保持这种偏颇观点的认识己十分罕见。还有 一些软件工程专家,认为软件具有与硬件不同的性质,不宜将硬件可靠性的定义 引申到软件领域。经过长期的争论和研究,1983年美国IⅡm计算机学会对“软 件可靠性”一次正式做出如下的定义: (1)在规定的条件下,在规定的时问内,软件不引起系统失效的概率,该概 率是系统输入和系统使用的函数,也是软件中存在的错误的函数;系统输入将确 定是否会遇到己存在的错误(如果错误存在的线)在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。 这个定义随后经美国标准化研究所批准作为美国的国家标准。1989年我国国 标GB佴11457采用了这个定义。这个定义表明,软件可靠性具有定性的和定量 的两层含义。在强调其定量的含义时,工程上常用软件可靠度来代替软件可靠性。 失效、时间和操作环境为软件可靠性定义中的三个要素。 andFault) I.失效与错误(Failllre 失效(脚lure):用户发现程序未产生所期望的服务,是一种面向用户的概念。 错误(fhlt):程序中的有缺陷指令,在一定条件下执行导致软件系统失效, 是一种面向开发的概念。 II.时间(1缸le) 软件可靠性的量化通常用相关时间来定义,常用的时间标准有三种: 执行时问(exec矾ontiIlle):处理器执行程序所用的时间; 日历时间(calend“t妇e):普通的时间变量; 时钟时间(c】ocktime):包括程序的执行时间及等待其他程序运行的时间。 vjr0口ment) III.操作环境(En profde)加以描述。运 即软件程序的运行环境,通常用运行剖面(operational 第二章软件可靠性测试 行剖面是由软件可执行的操作及其发生的概率组成的集合。 2.2软件可靠性测试的定义 “测试”一般是指“为了发现程序中的错误而执行程序的过程”。但是在不同的 开发阶段、对于不同的人员,测试的任务是不同的。 软件可靠性测试是指为了保证和验证软件的可靠性要求而对软件进行的测 试。其采用的是按照软件运行剖面(对软件实际使用情况的统计规律的描述)对软件 进行随机测试的测试方法。通过软件可靠性测试可以达到以下目的: (1)有效地发现程序中影响软件可靠性的缺陷,从而实现可靠性增长:软件可靠 性是指“在规定的时间内,规定的条件下,软件不引起系统失效的能力,其概率度量 称为软件可靠度。”软件的“规定的条件”主要包括相对不变的条件和相对变化的 条件,相对不变的条件如计算机及其操作系统;相对变化的条件是指输入的分布,用 软件的运行剖面来描述。按照软件的运行剖面对软件进行测试一般先暴露在使用 中发生概率高的缺陷,然后是发生概率低的缺陷。而高发生概率的缺陷是影响产品 可靠性的主要缺陷,通过排除这些缺陷可以有效地实现软件可靠性的增长。 (21验证软件可靠性满足一定的要求:通过对软件可靠性测试中观测到的失效 情况进行分析,可以验证软件可靠性的定量要求是否得到满足。 (3)估计、预计软件可靠性水平:通过对软件可靠性测试中观测到的失效数据 进行分析,可以评估当前软件可靠性的水平,预测未来可能达到的水平,从而为开发 管理提供决策依据。软件可靠性测试中暴露的缺陷既可以是影响功能需求的缺陷 也可以是影响性能需求的缺陷。软件可靠性测试方法从概念上讲是一种黑盒测试 方法,因为它是面向需求、面向使用的测试,它不需要了解程序的结构以及如何实现 等问题。 2.3软件可靠性测试过程 软件可靠性测试活动包括:测试数据、测试环境的准备、测试运行、可靠性数 据收集、可靠性数据分析和失效纠正。 (1)构造运行剖面:软件的运行剖面“是指对系统使用条件的定义。即系统的输 入值用其按时间的分布或按它们在可能输入范围内的出现概率的分布来定义”。粗 略地说,运行剖面是用来描述软件的实际使用情况的。运行剖面是否能代表、刻画 5 电子科技大学硕士学位论文 软件的实际使用取决于可靠性工程人员对软件的系统模式、功能、任务需求及相 应的输入激励的分析,取决于他们对用户使用这些系统模式、功能、任务的概率的 了解。运行剖面构造的质量将对测试、分析的结果是否可信产生最直接的影响。 (2)选取测试用例:软件可靠性测试采用的是按照运行剖面对软件进行可靠性 测试的方法。因此。可靠性测试所用的测试用例是根据运行剖面随机选取得到的。 (3)测试环境的准备:为了得到尽可能真实的可靠性测试结果,可靠性测试应尽 量在真实的环境下进行,但是在许多情况下,在真实的环境下进行软件的可靠性测 试很不实际,因此需要开发软件可靠性仿真测试环境。比如,对于多数嵌入式软件, 由于与之交联的环境的开发常常与软件的开发是同步甚至是滞后的,因此无法及时 进行软件可靠性测试;有些系统中,由于交联的环境非常昂贵而无法用于需要进行 大量运行的可靠性测试。 (4)可靠性测试运行:即在真实的测试环境中或可靠性仿真测试环境中,用按照 运行剖面生成的测试用例对软件进行测试。 (5)数据收集:收集的数据包括软件的输入数据、输出结果,以便进行失效分析和 进行回归测试;软件运行时间数据,可叹是cPu执行时间、日历时间、时钟时间等; 可靠性失效数据包括每次失效发生的时间或一段时间内发生的失效数,失效数据可 以实时分析得到,也可以事后分析得到。数据收集的质量对于最终的可靠性分析结 果有着很大的影响,应尽可能采用自动化手段进行数据的收集,以提高效率、准确性 和完整性。 (6)数据分析:主要包括失效分析和可靠性分析。失效分析是根据运行结果判断 软件是否失效,以及失效的后果、原因等;而可靠性分析主要是指根据失效数据,估计 软件的可靠性水平,预计可能达到的水平,评价产品是否已经达到要求的可靠性水 平。为管理决策提供依据。 (7)失效纠正:如果软件的运行结果与需求不一致,则称软件发生失效。通过失效 分析,找到并纠正引起失效的程序中的缺陷,从而实现软件可靠性的增长。 软件可靠性增长测试是为了满足用户对软件的可靠性要求、提高软件可靠性 水平而对软件进行的测试。是为了满足软件的可靠性指标要求,对软件进行测试一 可靠性分析—修改一再测试一再分析—再修改的循环过程。 第三章软件可靠性模型研究的数学基础 第三章软件可靠性模型研究的数学基础 3.1随机过程 3.1.1泊松过程 如果非负整数值的计数过程{Ⅳ(f),f≥0}满足: (1)Ⅳ(r)=O: (2)具有独立增量; (3)对任意o≤sf,Ⅳ(f)一Ⅳ(5)服从参数为^0一s)的泊松分布, P{ⅣO)一Ⅳ0);t);£!堡三堕兰8一婶一s),々:o,1,2,... ^: 则称随机过程fⅣ0),r≥0)为参数为五的(齐次)泊松过程p”。 泊松过程为最简单的计数过程,计数过程在可靠性理论中的应用极广。如果 Ⅳ(r)表示在区间[o,咀中的累积故障数,m(f)表示Ⅳ(f)的数学期望,那么如何描述 计数过程(Ⅳ(f),f2O),以及如何估计Ⅲ(r),是常被讨论的问题。 3.1.2非齐次泊松过程 若计数过程{Ⅳ(f),r≥0}满足以下条件; (1)Ⅳ(f)=O; (2){Ⅳ(r),f≥0}具有独立增量; (3).P{Ⅳ(f)一Ⅳ(s)=1}=丑(≠)A,+D(△f); (4),{ⅣO)一Ⅳ(s)≥2)=o(△0; 泊松过程o”。 3.1.3生灭过程 定义1假定有一系统,设系统具有状态集E={0,1,2,…,≈).令ⅣQ)表示在时刻f系 统所处的状态,且有 电子科技大学硕士学位论文 只川(△r)=P{Ⅳ“+△f)=i—lIⅣ(0=0二“甜+。(血),j_0,1,2,…,七 岛(Af)=P{ⅣO+Af)=歹IⅣ(r)=0=D(△0,If一,陋2 状态,∈E={0,l,2,…,H,…}时,则称为无限状态的生灭过程【32】。 32参数估计方法 参数估计是统计推断的基本问题之一,它的内容很丰富。在讨论参数估计问 题时,分布F(z,口),其中所古未知参数目的可能的取值范围@称为参数空间,这 里允许目为向量。用来估计某个未知参数口的统计量,称为估计量。这样的估计, 也称为点估计。 3.2.1最大似然估计法 最常用的经典统计方法为最大似然估计方法口”。此种方法有很多优良性质, 当总体分布类型已知时,最好采用最大似然估计法来估计总体的未知参数。 1.似然函数 设母体j是连续型随机变量,其分布密度函数,O,目),占E@是未知参数, 且x=(五,岛,…,咒)是总体.j『的一个样本,则样本(正,噩,…,%)的联合密度甬 数为兀,@,日),当取定拍,..,%后,它只是参数口=(日,.,吼y的函数,记为£(目), f=l 即 上(目)=兀l厂(置,目), l—l 这个函数三称为似然函数,即似然函数就是样本的联合分布函数。 2.最大似然估计法 设总体爿的分布密度函数为,O,印,其中目=(6l….,岛r为未知参数。又设 ∞,.,而)r是Ⅳ的一个样本值,如果似然函数 硼即=丌,(五,目) 在画=画(蜀….,正)(f=l,2,…m)达到最大值,则称a,受,…,赢分别为晶,岛…,&的 最大似然估计值。 需要注意的是,最大似然估计值画(扛l,2,..Ⅷ)依赖于样本值,即若在上式中 第三章软件可靠性模型研究的数学基础 将样本值∞,...,翰y换成(m,而,…,墨y,所得到的岔=酋(蜀,.,而)0=1,2,…柳) 分别称为岛(扭1,2,…埘)的最大似然估计量。 f;d 最大似然估计的必要条件为 尝竽护o,(f:12,._.m); c,∞ 称它为最大似然函数方程,其中口=(岛,...,岛y。 求最大似然估计量的一般步骤: 1.写出似然函数111上(臼); 2.求出ln三(∞及似然方程 粤竽协o,(渊小.m); o∞ 3.解似然方程得到最大似然估计画=岛∞,..,粕)(f_1,2,…矾); 4.最后得到最大似然估计量画C蜀,.,凰)(f_1,2,…肌)。 3.2.2最小二乘法 设经过某一变换,寿命分布可以写成与未知参数的线性关系,即: g(R(f))=功^0)+…+‰■(f) 其中皿,…I口m为未知参数,矗,…』m为己知函数的线性不相关集合,于是参数矾,….口。 可通过求下列的最小值的方法进行估计: } g=∑[,;一(口l^n)+…+口mko·))】z 目 3.2.3贝叶斯估计法 设母体的密度函数为.厂(xI目),假如将未知数日看作是定义在参数空间@上的 一个随机变量,并设其分布函数为日(口),则称日(目)为参数目在@上的先验分布。 当臼是。上的连续型随机变量时,口的密度函数^(口)称为先验密度。若按先验密度 ^汐)在。上产生一个随机观察值口,再从母体,(zI口)中随机抽取一个子样 (蜀,…,而),于是子样(茧,…,咒)和参数目的联合密度是: ,(柏,…,而,D=/(而J口),(耽I口)·-·厂(翰目)^(曰) 子样(蜀,…,五)的边际密度(或称无条件密度)为: 厂(柏,…,*,)=L,(柏,-一,葛,,臼)d臼 9 电子科技大学硕士学位论文 则在给定子样(蜀,…,品)的条件下,参数口的条件密度是: 即阶,㈧=糕 这就是著名的贝叶斯定理,这个条件密度称为目的后验密度。 第四章软件测试技术 第四章软件测试技术 4.1软件测试概述 1.软件测试的概念 软件测试指为了发现错误而执行程序的过程。它是根据软件开发各阶段的规 格说明和程序的内部结构精心设计一批测试用例,用这些测试用例去执行程序, 以发现程序错误的过程。软件测试追求的是通过系统的测试方法,发现软件中的 错误。软件测试是软件开发过程中一个非常重要的阶段。其目标是在精心控制的 环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。 2.软件测试的特征 (1)软件测试的挑剔性 测试不是为了证明程序是正确的,而是设想在程序有错误的前提下进行的, 其目的就是设法暴露程序中的这些错误和缺陷。 1.测试是程序执行的过程,目的在于发现错误; 2.一个好的测试用例在于能发现至今未能发现的错误; 3.一个成功的测试是发现了至今未能发现的错误; (2)测试的系统性 软件工程要求在测试之前,先制定测试计划。测试计划包括目的、标准、步 骤、进度、岗位职责、测试用例标准、工具、机时、有关规程等。这些内容事先 应先严格规定,测试时要严格执行,以排除测试的随意性。 (3)完全测试的不可能性 测试就是用精心设计的数据,运行软件,从而发现软件中的错误。一般地说 程序测试的基本方法有两种:黑箱法和白箱法。 box 黑箱测试(Blacktcsting)也称为功能测试。它只着眼于程序的外部特性, 即程序能满足哪些功能。测试在程序的接口上进行,检查输入能否正确的接收, 并能否输出正确的结果,外部信息(如数据文件)的完整性能否保持。这种测试不 考虑程序的内部逻辑结构。衡量测试数据设计的好坏,是看它们能测试程序逻辑 的哪些功能。 电子科技大学硕士学位论文 白箱测试(whiteboX testing)也称为结构测试。它着眼于程序的内部结构。测 试时要设计一些数据,对程序的各个逻辑路径进行测试,在不同点上检查程序的 状态,看它的实际状态与预期的状态是否一致。测试数据设计的好坏,在于它能 够覆盖程序逻辑路径的程度。 (4)钡4试的经济性 测试是保证软件质量的关键。但是,完全测试是不可能的。因此,应在程序 逻辑的用途及其重要与测试所花的代价两者之间进行权衡。 在实际工作中,采用黑箱测试与白箱测试相结合的方式对程序进行测试,并 按如下层次进行: ①没有语法错误: ②运行有结果: ③对典型数据能得到正确的结果: ④对典型的有效数据能得到正确的结果,无效数据有防范措施: ⑤对一切能得出的数据不出错。 这五个层次一层比一层工作量大,测试更细致。 3.软件测试的种类 ①接受测试:想要通过测试确定所在机构是否应该接受某个产品。 ②符合性测试:想要通过测试确定某个产品是否满足实现标准。 ③可用性测试:想要通过测试确定某个产品是否易于使用。 ④性能测试:想要通过测试确定某个产品是否满足性能要求。 ⑤可靠性测试:想要通过测试确定某个产品是否满足可靠性要求。 ⑥健壮性测试:想要通过测试确定某个产品是否具有很强的生命力。 4.软件测试的过程 软件测试过程,可分为五个步骤:单元测试、子系统测试、系统测试、验收测 试和平行运行。 (1)单元测试 在设计好的软件系统中,每个模块完成一个清晰定义的子功能,而且每个模 块又是相对独立的。因此,每个模块可以作为~个单独的测试单元,而且也比较 容易设计测试用例。单元测试的目的,是保证每个模块作为一个单元能正确运行。 在这个测试中所发现的错误,往往是编码和详细设计的错误。 (2)子系统测试 子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。因此模 第四章软件测试技术 块间的相互协调和通信是本测试中的主要任务,而测试模块间接口的正确性是目 的。 (3)系统测试 系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个测试 中发现的错误不仅有设计和编码的错误,还可能有需求说明中的错误。因此,它 是检验系统是否确实能提供需求说明书中指定的功能,以及系统的动态特性是否 也符合预定要求的测试。通常把子系统测试和系统测试也称为集中测试,因为它 们都有组装模块并测试的特性。 (4)验收测试 验收测试是把软件系统作为单一的实体进行测试,测试内容与系统测试基本 相同,但是这次测试是在用户的参与下进行的。本测试的目的是,使软件系统能 够满足用户的需要,若测试中发现有错误,则属于需求说明书中的错误。 (5)平行运行 平行运行,也称为试运行阶段。它往往是新旧两个系统同时运行,以便进行 新旧两个系统处理结果的比较。平行运行对于关系重大的软件产品是非常必要的。 这样可以使新系统不冒风险,用户有一段熟悉系统的时间,并且用户对使用手册 可以加以验证,也可以对测试结果进行系统性能上的验证。 测试作为软件工程的一个阶段,它的根本任务是保证软件的质量。划分测试 是一种重要的损4试技术,方法是将程序的输入域分成若干个子域,然后在每个子域 内选取元素进行测试。语句覆盖、分支测试、路径测试、结构测试等都可以看成 是划分测试.要注意的是,每个子域并不一定是相互独立的,有可能产生重叠。划分 测试的目的是让子域内的元素具有代表意义,或者让引起错误输出的那些输入元 素更多地集中在某些子域内,然后集中测试这些子域,以发现更多错误,提高程序 的可靠性。由于测试者事先并没有错误分布的信息,不一定能分出这样的子域,所 以,划分策略对于划分测试的效果至关重要。 5.软件测试中遇到的错误类型 测试中发现的错误可能是各式各样的。这里,仅按错误发生的影响和后果以 及错误发生的性质和范围分别加以说明。 (1)按错误发生的影响和后果,可分为以下几种类型: ①较小错误。这类错误只是对系统的输出结果有一些非实质性影响。例如, 输出的数据格式不符合要求等。 ②中等错误。对系统的运行有局部的影响。例如,输出的某一部分数据有错 电子科技大学硕士学位论文 误或出现冗余。 ⑧较严重错误。系统的行为由于错误的干扰而出现明显不合情理的现象。例 如,系统的输出结果完全不可信赖。 ④严重错误。系统运行不可跟踪,一时不能掌握其规律,时好时坏。 ⑤非常严重的错误。系统运行中突然停机,其原因不明,且无法软启动。 @最严重的错误。运行被测软件时导致环境遭到破坏,或是造成事故,引起 生命、财产的损失。 (2)按错误性质和范围,可分为以下几种类型: ①功能错误。由于功能规格说明书不够完整,或是叙述得不够确切,致使系 统在实现时对功能有误解。例如,给出了错误的功能、缺少了某些功能却多出了 冗余功能。 ②系统错误。它包括以下各种情况:与外部接口打交道的协议错误、参数调用 错误、子程序调用错误、输入输出地址错误、中断处理错误等等。此外还可能有 与操作系统接口错误、控制顺序错误以及资源管理的问题等。 ③数据错误。例如,数据内容、结构与属性错误、动态数据与静态数据混淆 或是参数与控制数据混淆等。 ④编码错误。例如,语法错误、变量名错误、局部变量与全局变量混淆或程 序逻辑错误等。 42随机测试与划分测试的比较 1.随机铆f试与划分测试的定义 随机测试可以看成是划分测试的特例,因为它仅有~个子域——整个输入域, 因此它不必花费精力去研究如何分割输入域以及记录那些子域是否测试过。它往 往简单方便,只需要较少的测试用例选择费用,而且其结果易于统计分析。 随机测试和划分测试的有效性问题一直是人们关注的焦点。参考文献[13]以 至少发现一次错误的概率为标准,参考文献[14]以发现的期望错误数为标准,分 析和比较了随机测试和划分测试。但是这些方法都是根据已经发现的错误进行研 究,来比较随机测试和划分测试的有效性,而没有考虑测试后剩余的错误对程序 运行的影响。软件测试的最终目的是提高软件的可靠性,评价一次测试的成功与 否,重要的是要看测试后程序的运行情况,也就是测试后程序的可靠性的大小。 文献[1胡中讨论了测试用例不放回时,随机测试和划分测试发现错误的能力, 第四章软件测试技术 而本节则研究了在测试用倒不放回时,经过一次随机测试或划分测试发现程序错 误数的概率分布及其期望值,并在此基础上提出了从测试后程序的可靠性这个角 度来比较随机测试与划分测试的有效性问题。 2.基本概念及假设 对于一个程序,用D来表示它的输入域,用d来表示D的大小,输入域中引 起故障输出的元素称为故障输入(筋lure-callsinginpms),其总数用m表示,则故障 率(脚lurerate)曰=罢。假设从D中选取的测试用例总数为印m),则盯=罢表示 盯 盯 在D中的抽样率。 当进行划分测试时,假设D被划分成I(々≥2)个子域,用日表示第j个子域; 每个子域包含吐个元素,其中有%故障输入,故障率只=阜,o=l,2,..Jj})。珥(吩啊) “i 表示从口中选取的测试用例的大小,则q=阜表示在子域日中的抽样率,并且满 口1 足:∑肼,=m,∑每=d,疗=∑怫。 I=l 扛l f=I 在下面的结论中还假设 1.每一个故障输入唯一的对应一个软件错误而且只能由该输入引起; 2.测试后每个被发现的错误都被很好的纠正; 3.在纠错的过程中不引进新的错误。 3.当测试用例不放回时发现程序错误数的概率分布及其期望 (1)进行随机测试时发现程序错误数的概率分布及其期望 令随机变量互表示进行一次随机测试发现的错误个数;则有 P仁=n=玉舞1,其中J=1,2,..册;P仁:n:掣,其中J:1,2,..川 od 可以看出变量x服从超几何分布,进而可以得出盖的期望值,即 E(Z)=Ⅲ口 (4-1) (2)进行划分测试时发现程序错误数的期望 划分测试实际上是在Dl,D2,…,皿上分别进行随机测试,令随机变量Z表 示在口上进行一次随机测试发现的错误个数,则由(4—1)式可得 E(Z)=%q j=1,2,…,々; 电子科技大学硕士学位论文 令随机变量J,表示进行一次划分测试发现的错误个数,则有 r=y1+‘+…+耳 由此可得 以】,)=E(y,)+E(E)+·-·+E(耳) (4-2) 由(4.2)式可得 I E(J,)=∑珥口 1Il 4.通过测试后程序的可靠性来比较随机测试和划分测试 当纠错完毕后,再从最初(测试前)的输入域中选取一个测试用例来验证软 件测试的有效性。 令P表示从D任取一个输入并且输出正确的概率;只表示从某一个子域中任 取一个输入并且输出正确的概率。 作者认为可以把P近似的看作是经过一次随机测试后该程序的可靠性;把只 近似的看作是经过一次划分测试后程序的可靠性。通过比较只和只的大小来比较 随机测试和划分测试的有效性。如果测试后有只≤只,我们就说划分测试比随机测 试有效,反之则称随机测试比划分测试更有效。 特别的当D是整个软件的输入域时,作者认为可以通过此方法来近似的评估 测试后软件的可靠性。 下面就来计算只和P的大小 令事件一={从D任取一个输入并且输出正确) 令事件B={从某一个子域中任取一个输入并且输出正确) 我们可以得到 P=P㈣=∑P心=一P{一Ⅸ=西 由于 刚陋加l一掣删:肛譬 d o: 所以有 只=喜等·一争卸一蔼等+吉喜,警 第四章软件测试技术 卸一争竽即一争詈 =1一目+8仃 (4—3) 只=尸{毋2∑只P∞I从口选取一个输入) 其中只表示从D,选取测试用例的概率,并且满足∑B=1 由(4.3)式可得 删粕选取一个输入)小号+等 所以有 只=喜易c·一等+挚=,一喜A等+喜只等 =1一∑n6}+∑马eq (4-4’ 通过比较P和t的大小,观察遗留在软件中的错误对软件的影响,来比较随 机测试和划分测试的有效性。 比较只和只的大小的关键是如何来确定B的取值,比较好的做法是根据测试 剖面来确定A,当测试剖面和运行剖面相一致的时候测试的效果最好。 下面只讨论A2…2A2妻的情形 结论如果对任意的f均有q2盯,%。…2%,A 2…2鼽2妻,则只≥只· 证明:当%=…=%时,对任意的艰=詈,由(4-4)式可得 只=,一古喜等+吾窑号=·一半喜等 其中∑每=d: 。一只=c·一詈,+詈一c,一与笋喜号,=肌c,一a,c吉喜寺一争 下面我们用数学归纳法来证明 古妻专一扣 件5, 电子科技大学硕士学位论文 当t=2时 占手上一三:上手土一三:三(—L+土卜三:l型=翌≥o ^2鲁吐d4鲁吐d4、d一一。面’d4面(d一面)一。 所以当女=2时,(4-5)式成立 假设当k一1时(4.5)式成立即 击莩#卸 %e, 则有 上÷上一上:上学上+上土一三 d #惫d.d辞鲁dj酵dk 七2 =譬c南莩去一壶+壶,砖去一吉、(七一1)2j手一d一以。d一吐川七2以d 汪,,、‘~ 七2 七2 =譬击辫去,+譬奇垮;、(七一1)2鲁吐d以7’ d一以。七2以d 由(4—6)式可得 譬击豁一壶Ⅲ^2、(t—1)2鲁4d一以’一 又因为 七2 d 譬去砖去一÷=黼z。d一矾。七2或 七2妣(d一以)。。 显然(4.7)式非负,所以当取女时,(4.5)式也成立 所以假设成立,所以有0≥只. 从这个结论可以看出,当错误平均的分布在每个子域中时,随机测试比划分 测试更有效。我们认为这与实践相吻合。它说明了划分测试的本质不足平均分配 测试,而是为了找出错误集中的区域,然后集中精力测试这样的子域。 分测试进行了较为深入的研究.尽管他们认为重复取同一例子的可能性较小,但是, 我们认为下面几种情况使得这种可能性较大:(1)随机测试次数n很大。我们对一 个商业软件进行测试的时间长达几个月,测试次数达几千次。(2)划分测试分得较 小子域,并且该子域的测试次数较大。(3)还有一个人为因素。人的思维容易局限 于某些方面。这使得在不受鉴别的情况下,重复取同一仍【子的可能性较大.在测试 第四章软件测试技术 初期,为了排除错误、提高软件可靠性,如果放回测试用例,那将是愚蠢的行为。 本节在测试用例不放回的情况下,探索了从测试后程序的运行情况这个角度 出发,通过近似的比较测试后程序的可靠性来比较随机测试与划分测试的有效性。 这种方法比较适合软件测试的早期阶段,可以用来估计测试后单个模块的可靠性, 看模块的可靠性是否达到了设计者的要求。这种方法的关键是开发测试剖面,划 分输入域,而如何开发测试剖面,如何划分输入域,则是需要进一步探讨的问题。 19 电子科技大学硕士学位论文 第五章软件可靠性模型的应用及扩展 5.1模型的选择标准 自60年代末,已有许多文献研究sRGM的问题。陆续已提出了几十种模型。 Li们ewood,Ⅶrral等模型,但尚无哪…个模型能够以较好的精度适合广泛的应用。下 面是评价一个模型是否适合于某一特定应用的准则删: 1.预测的有效性 预计的有效性是指模型根据现在和过去的故障行为预计未来故障行为的能 力。 预计的有效性至少可以通过两种方式表示出来,它们是以两种等价的,描述 故障随机过程特性的方式为基础的。它们是: (1)故障数方式; (2)故障时间方式。 故障数方式比故障时间方式更能产生出一种可实际应用的方法。前一种方式 使用[M∞,r≥o]以描述故障随机过程,它表示到时间f为止,发生的故障数。这种 计数过程是由规定M(f)的分布来描述的,也包括均值函数m“)。 设在测试时间‘的末尾我们己观察到g个故障,使用到时间“为止的故障数据 m≤岛)以估计m(0的参数。将参数估计值代入m(f),以估测到时问岛为止的故障 数扁(岛),并将它与实际观察的值g进行比较。对于‘的各种不同值,重复这一过 程。 将[廊(‘)一日】佃与≈/岛作为两个轴,以它们的不同值作出图来,就可以直观地 检验该模型预测的有效性。当“接近‘时,数值【南(岛)一卅/g接近于0。如果点为 正,则表示估值偏高;点为负,则估值偏低。数值越接近零,则表示估计越精确, 因此,模型也就更好。 时间故障方式利用故障时间以描述故障随机过程,故障时间一般有执行时间 和日历时间两种。设在测试时间,我们观察到m个故障时间,记为五,乃,…,晶。累 积分布函数为随机过程提供了最一般(舍最多信息量)地描述,所有其他的量, 第五章软件可靠性模型的应用及扩展 如:MTl下(如果存在),故障密度,可靠性等,都可以由它获得。每一个软件可 靠性模型都含有从故障时间数据^,龟,...‰推断累积分布函数参数的过程。与模型 以及推断过程相关的对于第f个故障间隔时间Z’的预测分布,可以写成 月(rl’I五,f2,…,“)a 用聊个故障间隔时间预测第f个故障间隔。设七=l一州,则七表示预测长度, 或我们往下将要预测七个故障间隔时间。因此我们需要许多数据点以检验E的预测 有效性,我们可以固定棚,让后变化,或固定七,让巩变化。 2.模型的能力 模型的能力涉及到模型能在软件工程师、软件管理人员制定软件项目开发计 划、管理软件项目开发过程中,对他们多要求的量,以令人满意的精度进行估计 的能力,也涉及到用户在操作运行软件系统时,对他们所要求的量作出精确估计 的能力。我们必须依据这些量的数量及重要性规定模型能力的等级。 这些量,按照一种大致的重要性程度可以定为: (1)当前的可靠性,平均无故障时间(Mm),或故障密度; (2)期望达到一规定可靠性目标的日期,M丌F,或故障密度目标的日期; (3)与达到规定目标有关的人力和计算机资源以及成本要求。 3.模型假设的质量 关于模型应用的假设的质量问题,下面的一系列考虑应逐个地应用于模型地 每一个假设。 (1)如果对一个假设进行测试是可能的,则由数据所支持的假设的重要性的 优先级别应高于其它的假设。 (2)如果对假设的测试不可能进行,就应从逻辑上的一致性观点和软件工程 经验的观点出发,以判断假设的线)应该对一个假设的明确性和明显成立的程度进行判断。 4.可应用性 对于模型可应用性的优先等级,我们应该用各种不同大小、不同结构、不同 功能的软件产品,对它进行判断。另外还应该将模型应用于不同的开发环境,不 同的操作运行环境,以及不同的软件寿命周期阶段,以判断其可用性。 5.简单性 首先是收集模型所需要的数据要简单;其次是模型的概念要简单,易于理解;最 后,应易于用一个实用程序来实现。在实际应用中,理想的情况是根据先验知识判断 选择哪一个模型、但是往往缺少这种先验知识,因此,比较实际的做法是尝试使用若 21 电子科技大学硕士学位论文 干种模型。然后选用拟合最好的一个模型。选用多种模型进行分析的另一点意义又 在于,不同的sRGM不仅对不同的应用其预计精度存在着很大的不一致性,而且单 个sRGM在同一应用中的不同的分析点有不同的预测效果。 5.2比较技术 在选择软件可靠性模型时,首先考虑的就是模型的预测精度。在这一节中, 我们介绍一些行之有效的模型的比较技术。 5.2.1序列似然度比率(PLR) 这是一种非常通用的比较预测序列精度的方法:它将表明在一般意义下对预 测中哪个一个更准确。 序列似然度m(PE足)总体思路是认为软件失效发生在软件失效时间的分布函 数密度大的地方的可能性较大。也就是说:认为预测软件失效时间的分布函数密 度大的预测相比较而言更接近于真实。如果比较预测A与预测B的准确性的话, 那么儿R的定义为: 扎础=乒锱 预测A与预测B相比,如果女_÷∞,肌丑盘斗。,可以认为根据预测系统A, 预测系统B是不可信的,预测系统A优于预测系统B。反之,可以认为预测系统 B优于预测系统A。如果比率既不趋于无穷又不趋于0,而是趋近于某一个常数c, 这说明预测系统A和预测系统B提供不相上下的预测。很明显皿R只能提供两个 预测的相对预测性。 5.2.2 u结构图 u结构翻14J的目的是用来判断预测分布局∽是否平均地接近于实际分布 EO)。如果^,&,…,f『-】是连续的故障间隔时间,戽(0确实是乃的真实的累积分布 函数,那么u,=髟0,)是一个满足均匀分布u(o,1)的随机变量的一个实现。也就是 说如果预测分布与实际分布相同,那么随机变量”,=髟m)将均匀地分布于(o,1) 之问。如果观察丁的实现4,并计算出Ⅳ,=司(f,),那么数值即将是一个一致随机 变量的实现。测量所得到的序列{蜥}看起来象是从一个均匀分布中获得的随机抽 第五章软件可靠性模型的应用及扩展 样。任何与“一致”的偏离将表明预测序列(雳(,)}和真实值{乃(f)}之间的偏差。 于是产生出的n+1个甜值就是独立恒同分布u(O,1)的”+1个随机变量的实现。因 此,如果锄)是靠近独立恒同分布u(o,1)的,那么{戽(f)}也就靠近{巧O))。 u结构图就是序列锄)的抽样分布函数图,是用来表示恤,}的样本累积分布 函数接近u(0,1)的累积分布函数的接近程度的。u(O,1)的累积分布函数即为过原点 的斜率为1的直线(单位斜率曲线),Ⅳ值的样本累积分布函数是定义在区间fO。11上 的阶梯函数。U结构图示意图如下: 1 f一占+2 图5—1u结构图 u结构图得具体做法可以参考文献14],这里不再详细介绍。 由上面的分析可以知道,如果预测分布接近实际分布,那么预测序列的u结 构图应该接近单元斜率曲线。任何相对于单元斜率曲线的的严重偏离都表明存在 非一致性和某种类型的不准确性。判断偏离是否严重的一种通用方法是 最大垂直距离。一般无法直接得到该距离的数学表达式,不过为了叙述方便仍用 Ks(R(f))来表示Ks距离。 有了u结构图,就有了判断预测序列是否接近实际分布的判断方法,就可以 用Ks(雳(f))来判断预测序列是否接近实际序列,也就有了判断sRGM的预测精度 的方法。u结构图比以往的统计分析方法更具有一般性。它与预测分布的整个形 状有关,而不是仅仅局限于分析某一点的值。u结构图可以用来核查预测和真实 电子科技大学硕士学位论文 之间的系统差别。因为问题具有继承的非静态性,我们可以通过不同的预测序列 来核查预测偏差。 如果预测偏差完全是静态的,即无论选择哪个预测窗口(预测窗口就是指进入 u_plot的那一组连续的U值,可以通过预测窗臼判断预测的局部准确性。),预测 偏差的性质一样,那么也就是说预测分布局(f)和实际分布E(f)之间存在一种固定 的函数关系,而且U结构图就是对这种函数关系的一个估计。如果能够找到这种 函数,我们就可以把预测分布进行函数变换,得到实际分布,这就是预测模型校 正的思想a 从后面的分析,我们还可以看到,u结构图的对预测分布与实际分布的检测 性质可以用来进行模型预测准确性判断,从而对模型的选择、校正和模型的组合 提供判断依据。 5,2.3 Y结构图 如果对于某一特定的预测系统,一组软件可靠性失效数据在预测前期呈现乐 观特性,而后期呈现悲观特性,这个预测显然不是实际系统的分布,但是由于其 前后特性互补,所以观察到的Ks距离还是比较小。为了能够把这种情况与实际分 布分离开来,必须检测序列嘶的变化趋势。 但是如果预测序列毋(r)比较接近实际分布序列E(r),那么序列如,)就比较接 近于区间(o,1)上的均匀分布。这样它们是区间(o,1)上等同分布的均匀随机变量, 看起来是就象一个相互之间无关的序列。很难直接判断序列f“,)的变化趋势,必须 借助其它方法来判断序列恤,l的变化趋势。 Y图嗍能够检测出u图是否掩盖了一致偏差,“好”的Y图的作用是确信u图 对一致偏差的检测是可信的.评价Y图“好”与“不好”的标准仍然是Ks距离,K s距离越小,Y图越好. 而=一ln(1一Ⅳ』) J=s,…,目 = y 厶,一厶, 由序列{,r=J,…,g)按照构造u图的方法绘制Y图。 第五章软件可靠性模型的应用及扩展 5.2.4PLR,u—Plot,Y—Plot的比较 PLR是比较不同预测的准确性的一种通用方法,但它不能说明某种预测是否 是客观准确的。U.P10t是在概括PLR简单的平均时间检验的基础上形成的,它能 够处理一种预测和现实的偏离,并提供了判断预测准确性的客观依据。但是它无 法检测“,的变化趋势。Y_Plot将“,经函数变化成弘,利用泊松过程中的关于趋向 的测试弥补了U_Plot的不足。 这就意味着,如果判断在基于某一特殊数据集合进行分析的一系列可供选择 的模型中应该选择哪一个时,就应该使用PLR方法。在可供选择的预测模型的PLR 图中,PLR图形里明显上升趋势的预测的准确性肯定要比其它模型的预测准确性 高。我们可以相信这种模型与其它模型相比会得到更准确的预测结果。但是我们 无法肯定这个预测结果的精确性。我们还要经过u.Plot和Y.Plot分析的进一步论 证。一个“好”的u结构图将告诉我们预测中某一特定类型的一致“偏差”是不 存在的。一个“好”的Y结构图可以确定预测中的偏差至少是近似固定的,以致 于U结构图的结果是可信的。U结构图给出的是预测的一些平均行为,但它能屏 蔽大量的不准确性。 5.2.5模型校正 重校正技术是在研究模型预测存在的偏差基础上,采取措施进行重校正、减小 偏差,最终达到提高预测准确性的目的。前面分析表明,u—plot,Y-plot是判断预测 准确性的常用方法之一,因而在研究u-pl咄Y.p10t中的预测偏差的基础上进行校 正也是常用的校正方法之一。 从U结构图中的Ks距离,可以判断预测的准确度。自然就会联想到能否找 到一种方法,通过某种处理使模型的u.plot中的Ks距离变小,从而提高模型对该 组软件失效数据的预测准确性,这就是重新校正的基本思想。 分别表示实际时间分布和预测时间分布)在实践中很难找到这个函数。但是如果某 一预测仅仅是在其预测上存在偏差(U.plot中预测呈现倾向一致性),并且偏差相对 固定fY_plot中呈现倾向一致性),那么常常可以找到的一个近似函数。确定这个近 似函数的方法有多种,其中最常见的一种是单步估计,逐步修改【l”。 电子科技大学硕士学位论文 该方法的步骤如下: a)在u结构圉中,假定Gk是在预测序列只以),丘“(‘+,),¨.,壶一-m一)与单元 斜率线偏差的基础上得到的函数G一个估计函数。 b)获得昂(n。 c)计算重新校正预测R’m)=@.[Em)】。 d)重复上述步骤,就可以得到重新校正的预测序列。 我们可以通过各种方法来分析新得到的校正模型的预测准确性。例如可以采 用PLR,查看是否已经产生了比原模型更好的结果。 许多文献证明即使在Y结构图给出的偏差明显不同定的情形下,重新校正也 能得到比原始模型显著提高准确性的预测。重校正技术是在研究模型预测存在的 偏差的基础上。采取措施进行重校正、减小偏差,最终达到提高预测准确性的目 的。但是因为预测的多样性,模型在预测中,如果不存在较为“固定”的偏差, 往往很难找到校正函数G,因而这种方法在实践过程中应用不太广泛。 5.3软件可靠性模型的扩展 A.L.Goe】和K.Oh_Inot01979年提出关于连续时间的非齐次泊松过程模型【…, 是最早的软件可靠性模型之~,该模型对软件可靠性定量分析技术的建立和发展 做出了重要的贡献。 模型基本假设如下: (1)软件是在与预期的操作环境相似的条件下运行。 (2)在任何时间序列%c‘c…f,构成的时间区间(‘,f,),(‘,‘),…,‰。,0)中检 测到的错误数是相互独立的。 (3)每个错误的严重性和被检测到的可能性大致相同。 (4)在f时亥4检测出的积累错误数【Ⅳ魄f≥01是一个独立增量过程,Ⅳ(f)服从期望函 数为m(f)的P0isson分布,在犯f+△,)时阅区间中发现的错误数的期望值正比于 r时刻剩余错误数的期望值。 (5)积累错误数的期望函数m(f)是一个有界的单调增函数,并满足 m(o)=o姆m(f)2口 (6)测试中检测到的错误都被排除,每次排错只能排除排错一个错误,时间忽略不 计,在排错过程中不引入新的错误。 基本公式 第五章软件可靠性模型的应用及扩展 失效强度函数为 五(r):蔓掣:幽m 讲 5。3。1考虑错误排除率的G—O非齐次泊松过程模型 本节对非齐次泊校过程类模型进行了扩展。G一0非齐次泊松过程模型的假设 条件过于苛刻,把错误的排除过程看得过于简单。文献[16]介绍的G一0模型是 最早和最简单的非齐次泊松过程模型,该模型假设排错是完全的,这与实际情况 不符。在软件错误的排除过程中引入新错误的情况是经常发生的,并且有些软件 错误是不能排出的。基于这一点,本节对G—O非齐次泊松过程模型进行了扩展。 在该扩展模型中引入了两个新的参数,软件错误被排出的概率和引入一个软 件错误的概率,并且利用生灭过程对该模型进行了深入的分析。 l_模型假设 本模型的假设包括G—O模型的假设1)~5),对假设6)进行如下修改。 (6)每次排错时错误被排除的的概率是p;每次排错时引入一个新的错误的概 率是口,(我们假设每次排错时最多引入一个错误),时间忽略不计。 a(f)表示f时刻引入到程序的错误数的期望,舅(f)表示(O,明时间内,在排错过 程中引入到程序中的错误数。 2.模型分析 (1)在(O,嵋时间内,在排错过程中引入到程序中的错误数的期望值为占(z(f)), 并且有E(x(,))=卢珊(0 证明; E@0”=∑P{Ⅳ(f)=_i})E(x(f)iⅣ(O=后) 令五,五,…,鼍分别表假设显然有 令随机变量五=托甏鬻滁篇所以有姒M E(.r(0lⅣO)=t)=E(置+五+…+.瓦) =E(五)+点(互)+·,·+点(.k)=£卢 以J(f))2艺,{Ⅳ(f)2辨七∥=励,(,). (2)在(O,明时间内软件发生失效的次数 电子科技大学硕士学位论文 由假设我们可咀得到 珊O+△r)一mp)=西(Ⅱ(f)一pm0))△} 由此可以得到 鲁邮)_6(砸)一删∞) (5—1) d(r)=d+伽l(r)一PⅢ(f) (5_2) 其中 册(0)=0 Ⅱ(0)=口 由(5.1)式可得 m∞。南(卜e。。…’) 由于Ⅳ(0是均值为m(f)的非齐次Poisson过程,那么 硝Ⅳ(r):):旦华一∞ :!盘竺!竺。青…。 所以有 删。咖啦笠2。焉 (3)失效率 r ^(r);皇竺墼:如“,m (4)r时刻软件剩余失效数 r时刻软件剩余的失效(即尚未发生的失效)次数为 霄(r)=Ⅳ(。。)一Ⅳ∞ 聃(咖南一∽舻 Ⅳ(f)表示0,c。)时间内软件失效次数。由假设可以得 尸{霄(r)=

  “原创力文档”前称为“文档投稿赚钱网”,本网站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】

http://ammanphoto.com/yunxingpoumian/114.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有