ch软件可靠性度量课件_第1页
ch软件可靠性度量课件_第2页
ch软件可靠性度量课件_第3页
ch软件可靠性度量课件_第4页
ch软件可靠性度量课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022/9/2715.1 引言5.1.1 软件可靠性工程及软件可靠性软件可靠性工程应用统计技术,处理在软件开发过程中或(和)运行期间所采集的失效数据,以便详细说明并预计、估计和评价软件的可靠性研究内容包括软件可靠性的基本概念和定义、软件可靠性指标体系、可靠性建模、可靠性设计技术、测试技术和管理技术等2022/9/26www.china-onlineclass2022/9/272软件可靠性工程处理以下问题:确定某过程能否提供满足可靠性要求的代码为过程改进提供度量预测软件维护阶段的失效率,确定软件维护工作量帮助进行安全性认证确定交付软件产品的时间或停止测试的时机估计下次故障的可能时间为软件更新或

2、升级,标识需要重新设计的主要部件测定软件的可靠性2022/9/26www.china-onlineclass2022/9/273软件可靠性可靠性是软件的13个质量因素中最关键、最重要的软件可靠性是指在规定时间和条件下软件无故障运行的概率,是系统功能或软件产品中存在的缺陷的函数软件故障产生的原因是软件缺陷,但缺陷并不一定导致故障的产生,高缺陷率的软件的可靠性不一定就差软件失效意味着软件运行中断或者无法完成所规定的任务2022/9/26www.china-onlineclass2022/9/274几个值得关注的问题:软件的运行环境:软件可靠性与运行环境密切相关软件运行的时间间隔:商业软件需要较高的

3、运行时间间隔(较长的运行寿命),而任务关键软件则需要在短时间内高效运行软件失效的时机是随机的,与硬件失效类似不同于软件的正确性,对于持续运行的软件其可靠性最终将归于零(以失效结束);但正确性是软件的特定的某次运行结果,要么为1,要么为02022/9/26www.china-onlineclass2022/9/2755.1.2 软件的缺陷、故障和失效缺陷(Error,错误):设计和构造进产品总数是不可预知的,只能估计缺陷分为已知和未知(新发现)的缺陷分为已发现的和未发现的已发现的缺陷包括已纠正的和未纠正的故障(Fault):运行结果错误故障是缺陷的表现形式,是由存在的缺陷产生的但缺陷并不一定导致

4、故障,或者条件不具备,或者不会产生故障失效(Failure):系统不能完成所需要的功能而失败失效是故障在软件运行时所产生的后果失效缺陷故障已纠正的缺陷2022/9/26www.china-onlineclass2022/9/276软件质量度量与软件过程有什么关系?2022/9/26www.china-onlineclass2022/9/277失 效故 障面向用户面向开发者软件运行偏离用户需求程序执行输出错误结果可根据对用户应用的严重性等级分类可根据定位和排除故障的难度分类如,3次失效/1000 CPU小时如,6个故障/1KLOC失效与故障的区别2022/9/26www.china-online

5、class2022/9/2785.1.3 软件失效软件失效是随机发生的描述失效的方法有三个:累计失效函数:即与某时间点相关的平均累计失效数失效率函数:用累计失效函数的变化率表示平均失效时间MTTF函数:对于一个时间段,表示若干相邻失效时间间隔的平均值;对某个时间点,表示到下次失效的期望时间2022/9/26www.china-onlineclass2022/9/279软件失效率如果没有缺陷,软件失效率为0如果发现的缺陷能被及时、完全修复,失效率会趋向0实际上,发现的缺陷数会递增,而纠正一个缺陷会引入更多的缺陷,因而失效率会增加时间失效率硬件软件(实际)软件(理想)2022/9/26www.ch

6、ina-onlineclass2022/9/27105.2 软件可靠性度量和建模5.2.1 基本概念软件可靠性建模过程是根据软件过去的故障行为建立软件可靠性数学模型的过程建模的目的是为了预计软件将来的故障行为建模过程包括以下步骤:通过度量获得历史数据对故障数据进行分析,拟合成概率分布函数对拟合函数进行参数分析确定所期望的可靠性度量值并预测可能的故障行为2022/9/26www.china-onlineclass2022/9/27115.2.2 软件可靠性度量参数软件可靠性R(t)可定义为:在给定条件下,在时间0,t内,软件无故障运行的概率若用T表示软件无故障运行的时间间隔,F(t)为T的累积分

7、布函数,则软件可靠性可表示为:R(t)=1-F(t) t0故障率函数(t)为:其中,f(t)为F(t)的函数密度,即:2022/9/26www.china-onlineclass2022/9/2712(t)t是在时间0,t内软件正常运行,在t,t+t内发生故障的条件概率,可得:密度函数f(t)、累积分布函数F(t)、可靠性函数R(t)和故障率函数(t)紧密相关,一般可由任一个惟一地确定另外三个,例如若(t)给定,则:根据f(t)或R(t)可计算平均失效时间函数MTTF,从而预测故障时间2022/9/26www.china-onlineclass2022/9/27135.2.3 软件可靠性度量模

8、型指数分布密度函数为分布函数为故障率函数为(常数)具有指数寿命分布的软件产品(故障率为常数)没有老化现象,符合不需要维护的软件的运行情况2022/9/26www.china-onlineclass2022/9/2714Weibull分布Weibull是更常用的分布,在许多工程领域的可靠性分析中都广泛应用,如轴承磨损、河流泛滥等Weibull分布有两个参数、(为1时变为指数函数)函数密度为:分布函数为:故障率函数为:2022/9/26www.china-onlineclass2022/9/271511=1tWeibull分布=1时变为指数分布=2时为Rayleigh分布研究表明,软件项目的生命周

9、期模式、项目的缺陷移除模式等都很好地符合Rayleigh模型2022/9/26www.china-onlineclass2022/9/2716数据收集和分析是度量软件可靠性的最重要的先决条件,任何可靠性度量的有效性都与数据收集的有效性直接相关,数据收集过程必须有计划、有组织地进行与软件可靠性相关的数据包括:缺陷数据过程数据产品数据:如规模、功能、性能等5.3 软件可靠性数据收集过程2022/9/26www.china-onlineclass2022/9/27175.3.1 缺陷数据的收集缺陷数据的收集常采用问答、报告形式,即发放问题报告表格要求有关人员填写,收集并分析问题报告表格形成统计数据检

10、测到的缺陷已记录的缺陷已评审的缺陷确认?结束缺陷报告采取措施?通过验证?记录不采取措施的原因记录纠正验证问题报告NoNoNoYesYesYes2022/9/26www.china-onlineclass2022/9/27185.3.2 过程数据的收集缺陷数据必须与过程融合才有价值,因而过程数据也需要收集。通常会将项目的持续时间作为主要关心的过程数据,但实际需要更细分与软件可靠性测试过程相关的数据包括:CPU时间:具有与人无关性,但易忽略人的工作(如评审等)日历时间:优点是易于收集,但没有考虑阶段特征,如某些技术在某阶段更有效运行时间:是为测试而运行软件的总时间,也未考虑阶段特征其他数据:包括平

11、均修复时间、完成每个过程活动的人数、软件生命期各阶段所用时间百分比、各阶段所消耗的资源数量、各阶段的开始、截止日期、各阶段修复一个缺陷所需的工作量、各功能模块的缺陷数,等等2022/9/26www.china-onlineclass2022/9/27195.4 软件的运行剖面软件可靠性建模需要具备三个条件:软件运行时间基准(日历时间、运行时间、CPU时间)软件运行过程收集的数据,是建模基础软件功能和运行环境软件运行剖面用于定量描述软件的用户运行环境,即软件的功能和各功能的使用概率2022/9/26www.china-onlineclass2022/9/27205.4.1 软件新系统的运行剖面不

12、同的运行模式下各功能的使用概率不同不同运行模式的出现模式也不同运行模式1运行模式2功能功能使用概率2022/9/26www.china-onlineclass2022/9/2721运行剖面对软件可靠性工程极具价值:可为开发过程的资源分配提供参考,有利于提高生产率、可靠性和加快开发速度有利于测试,可确保常用功能获得更多测试有利于设计测试用例,以发现影响可靠性最大的故障根据功能的使用频度可确定开发的优先级使功能描述更清晰,便于交流有助于用户培训2022/9/26www.china-onlineclass2022/9/2722 5.4.2 软件运行剖面与可靠性的关系软件可靠性度量、评估和预测与软件的

13、某个特定的运行剖面密切相关软件测试期间,为节省时间和成本,通常每个运行剖面只测试一次,因而不能反映每个剖面的出现概率,由此获得的可靠性数据也不能反映实际情况要将测试期间获得的可靠性值变换为实际值,可用以下公式:其中,u是实际的用户环境下的故障密度,T是测试值,C为测试压缩系数2022/9/26www.china-onlineclass2022/9/2723C的含义是:在覆盖全部输入空间条件下,使用期间所要求的执行时间与测试阶段所要求的执行时间之比C的计算公式为:其中,k为输入状态k运行时的执行时间Pk为输入状态k在运行期间的发生概率QI为输入状态总数Pmin为最少发生的输入状态的概率2022/

14、9/26www.china-onlineclass2022/9/2724 5.4.3 软件运行剖面的建立运行剖面是关于系统如何运行的定量描述,建立步骤为:建立客户剖面:分类描述要获取该系统的客户的使用模式建立用户剖面:分类描述要使用该系统的用户的使用模式定义系统模式剖面:根据执行过程描述系统运行模式确定功能剖面:划分功能并确定各功能的发生概率确定运行剖面:确定系统各运行模式的发生概率2022/9/26www.china-onlineclass2022/9/27255.5 软件可靠性模型及应用软件可靠性建模是软件可靠性工程的研究重点5.5.1 与软件可靠性模型有关的问题历史背景20世纪70年代,

15、Telinski、Moranda、Shooman等人提出了软件可靠性建模的问题,并使用建立的模型估计软件现在和未来的可靠性经近40年的发展,软件可靠性模型已有很多种2022/9/26www.china-onlineclass2022/9/2726软件可靠性模型的分类Musa、Okumoto根据模型的5个特征进行分类:时间域(time domain):日历时间、执行时间或CPU时间类别(Category):软件在无限的时间内可能经历的故障数是有限的还是无限的型(Type):软件在运行时间t时的失效数分布分类种类(Class):故障密度对时间的函数分布(仅对有限故障类)族(Family):故障密度

16、对它的期望故障数的函数分布(仅对无限故障类)2022/9/26www.china-onlineclass有限故障数模型种类型泊松分布二项式分布其他指数分布Mussa(1975)MorandaSchneidewindGoel-OkumotoJelinski-MorandaShoomanGoel-OkumotoMussaKeiller-LittlewoodWeibull分布Schick-wolvertonWagonerC1分布Schick-wolverton帕雷多分布LittlewoodGamma分布Y-O-O无限故障数模型族型T1T2T3泊松分布几何分布MorandaMussa-Okumoto线

17、性倒数Littlewood-Verrall二次多项式倒数Littlewood-Verrall幂Crow有限故障数模型种类型泊松分布二项式分布其他指数分布Mussa2022/9/27285.5.2 软件可靠性模型参数与软件可靠性模型相关的参数有:ETF:软件中固有缺陷数,是固定的ETV:同上,是变化的,在开发、维护过程中随时添加EC(t):某时刻已纠正的缺陷数ED(t):某时刻已发现的缺陷数P:在修正缺陷过程中测试的循环次数,常假定 P=ED(t)=EC(t)EC(p):直到第p次测试才修正的缺陷数0:起始故障率p:当前故障率:故障率的变化:累计执行时间:增长率N:测试用例运行总数S:成功的测试

18、用例运行总数2022/9/26www.china-onlineclass2022/9/27296.5.3 软件可靠性模型Musa模型基本模型假设:每个缺陷对故障率的贡献是相同的;每修正一个缺陷故障率均匀地减少,即故障率对时间的导数是常数;软件固有的故障总数是有限的,但不固定,即修正缺陷时可能产生新缺陷Musa模型:2022/9/26www.china-onlineclass2022/9/2730利用基本模型可估计要达到某可靠性目标还必须要发现(检测出)的缺陷数和需要的时间,有助于计划人力和时间设要达到的可靠性目标为f,则需发现的故障数Nf为:为达到这一目标所需时间Tf为:当前已检测出的累积缺陷

19、数为达到故障率目标或MTTF目标必须要检出的累计缺陷数为达到目标还需检测出的缺陷数为达到目标需要的时间测试时间已检出的累计缺陷数2022/9/26www.china-onlineclass2022/9/2731对数模型假设: 每个缺陷对故障率的贡献不同;常用的功能的缺陷可及早被检出,故障率的变化随时间减少;软件固有的故障总数是无限的Musa模型:Nf和Tf为:2022/9/26www.china-onlineclass2022/9/2732Goel-Okumoto模型假设:缺陷对时间的分布是非时对齐的,即发现的缺陷不一定会立即消除(适用于开发早期)基本模型:其中,ab为常数,与单位时间内发生的

20、缺陷有关可得:修正模型:故障密度函数为Weibull分布2022/9/26www.china-onlineclass2022/9/27335.5.4 软件可靠性模型的适用条件模型假设适用阶段难易度Mussa基本模型优先固有缺陷数常数故障率指数分布集成测试后EMussa对数模型无限固有缺陷数对数分布故障率随时间变化单元测试到系统测试EGoel-Ukumoto非时齐缺陷分布缺陷可能因修复而产生指数、Weibull分布集成测试后M2022/9/26www.china-onlineclass2022/9/27345.6 软件可靠性测试5.6.1 软件测试的类型与软件可靠性相关的测试主要是动态测试单元测

21、试:对汇编单元进行测试集成测试:对汇编单元接口的测试验收测试:验收并确认实现了所有需求回归测试:对与修正的缺陷的软件部件的再测试2022/9/26www.china-onlineclass2022/9/27355.6.2 软件可靠性测试方法利用在其他测试中的数据收集来检验软件可靠性的测试基本步骤是:仔细研究开发过程和软件问题报告确定使用那些或那个模型来度量软件可靠性执行一种有效的方法来收集问题报告缺陷数据、过程数据和产品数据,收集集成测试期间及以后的数据按照模型规定的原理和方法,将数据输入选定的模型,直接估计软件可靠性或间接地估计与其有关的参数根据估计结果进行决策:软件能否被释放(发布)?是否

22、需要增加测试时间以达到可靠性目标?如果需要,还需要多少时间?2022/9/26www.china-onlineclass2022/9/2736Beta测试可以直接反映可靠性水平系统软件证明测试在要求时间内、在实际的使用环境中运行系统,不对系统进行维护,收集发现的故障数,以决定整个系统能否通过可靠性测试基于测试时间的软件证明测试在相对较长时间内对软件的运行进行软件证明测试基于测试输入的软件证明测试只针对特定的测试用力进行软件证明测试2022/9/26www.china-onlineclass2022/9/2737 软件证明测试方法测试前,先由测试者和用户共同确定以下三个参数:用户风险因子:是由用

23、户承担的软件可靠性未达目标而通过测试的风险生产者风险因子:是由开发者承担的可靠性已达目标而未被接受的风险鉴别因子:是最大可接受的失效密度和失效密度目标的比值2022/9/26www.china-onlineclass2022/9/2738确定可靠性测试判定标准根据已确定的三个参数绘制软件可靠性证明测试判定图确定拒绝线和接受线规格化是指将测试时间或测试用例数乘以故障率目标值规格化的测试时间或测试输入在测试期间发现的累计缺陷数测试通过测试未完测试失败接受线拒绝线2022/9/26www.china-onlineclass2022/9/2739测试开始后,失效发生时,将对应的累计故障数和测试时间或测

24、试用例数在图中标出判定测试结果:通过或失败都表示测试结束,若测试未完成,则继续测试注:基于测试用例的证明测试具有随机性,不同测试可能得到不同结果,为此可采用模块化方法选择测试用例,以保证测试的客观性2022/9/26www.china-onlineclass2022/9/27405.6.3 软件可靠性测试的实施过程1、概述软件可靠性测试有两类:开发测试:包括性能测试、加载测试、回归测试,目的是发现和修正单元及其集成的缺陷确认测试:一般只进行加载测试,目的是为了确定软件部件或系统是否被接受对于软件可靠性建模,开发测试收集的是分组数据,是不完整的,而确认测试获得的是完全数据2022/9/26www

25、.china-onlineclass2022/9/2741软件可靠性测试过程模型开发业务剖面是软件可靠性测试的重要环节,因为可靠性目标与业务剖面关系密切软件可靠性目标开发系统业务剖面准备测试软件可靠性定量评估软件可靠性模型执行测试收集、整理故障数据对比需求与构造设计和实现集成测试和确认测试接受或拒绝2022/9/26www.china-onlineclass2022/9/27423、测试的目的通过在规定的业务剖面下运行软件系统,确认是否能够完成于业务剖面相关的任务:正确地完成规定的功能满足性能要求不完成没有规定的功能提供运行中的故障数据4、用户责任用户要参与软件测试:规定测试要求,如测试条件和

26、环境评审和批准测试程序评审和批准每一需求的认证方法和技术提供测试环境和人员要球组织独立的测试组织2022/9/26www.china-onlineclass2022/9/27435、测试的准备和执行测试准备:准备测试用例、测试程序并决定要使用的自动化测试工具测试用例设计须考虑可靠性定量要求和成本及效率,测试用例的数量和类型选择要与业务剖面及发生概率一致,且考虑到随机性测试程序与特定的业务剖面相关,要考虑发生概率测试执行:从性能测试开始进行加载测试,要考虑业务剖面和运行模式已分配执行时间和测试用例测试执行过程需进行故障识别,记录故障发生时间和严重性对于发现的故障,需要填写故障报告:引发故障的缺陷

27、什么时候、在那里出现?原因是什么?如何定位?什么时候该定位被确认?要进行的修改有哪些?2022/9/26www.china-onlineclass2022/9/27446、测试结果的应用用户根据测试结果评估可靠性并进行决策开发者由此产生软件更新需求,或者改进过程和设计7、需要注意的问题测试人员独立于开发者的程度将影响测试结果测试时间计划不周会导致在开发过程后期发现缺陷的风险增加测试等级及相应的测试时间分配选择不得将不能保证在不牺牲质量的前提下降低成本测试工具的选择将影响测试效率和完整性2022/9/26www.china-onlineclass2022/9/27455.7 软件故障数据的趋向性

28、分析5.7.1 趋向性分析的含义及作用软件可靠性建模的基础是测试数据,但由于不同的可靠性模型基于的假设不同,导致可靠性分析方法的离散性,原因主要是: 软件的自然特征及相应的失效数据是离散的 所采用的开发方法和确认方法不同 数据收集的组织有差别 分析的目的、要求各种各样软件可靠性模型的有限假设和故障数据的离散性是矛盾的,K. Kanoun于1997年提出的趋向性分析方法用于揭示软件可靠性随时间的演化趋势,实践证明具有很高的实用性2022/9/26www.china-onlineclass2022/9/27465.7.2 软件故障数据工程模型软件故障数据数据收集数据过滤数据分割寿命期分类数据按部件

29、分类数据故障严重性分类数据描述性统计可靠性评估可靠性度量描述性分析趋向性分析模型应用2022/9/26www.china-onlineclass2022/9/2747数据收集收集的故障数据包括:表征产品本身、开发过程及使用环境的数据,如软件规模、语言、功能、确认和验证方法、使用工具、加载等与故障及其修正相关的数据,如故障发生时间、故障特征、故障影响结果、缺陷类型、缺陷位置等数据过滤对收集的数据进行分析和过滤,需滤出的数据有:与软件无关的外在数据错误的或虚假的问题报告重复数据2022/9/26www.china-onlineclass2022/9/2748数据分割根据需求将收集到的数据进行分割,可使分析更具体分割方法包括:根据故障的严重性等级分割根据生命期阶段分割根据缺陷所在的软件部件分割数据工程分析根据工程应用不同,对分割的数据进行不同的分析:描述性分析:基于统计原理,用图、表进行综合,以识别最有用的现象,如故障的发生条件与严重性的关系等,与可靠性评估没有直接关系,有利于设计和开发趋向性分析:分析可靠性随时间的变化趋势,有助于评估可靠

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论