软件质量概念软件质量保证软件可靠性软件配置管理.ppt

上传人:wuy****n92 文档编号:86903080 上传时间:2023-04-15 格式:PPT 页数:142 大小:355KB
返回 下载 相关 举报
软件质量概念软件质量保证软件可靠性软件配置管理.ppt_第1页
第1页 / 共142页
软件质量概念软件质量保证软件可靠性软件配置管理.ppt_第2页
第2页 / 共142页
点击查看更多>>
资源描述

《软件质量概念软件质量保证软件可靠性软件配置管理.ppt》由会员分享,可在线阅读,更多相关《软件质量概念软件质量保证软件可靠性软件配置管理.ppt(142页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、n n软件质量概念软件质量概念n n软件质量保证软件质量保证n n软件可靠性软件可靠性n n软件配置管理软件配置管理软件质量概念软件质量概念n n软件质量的定义软件质量的定义n n软件质量特性软件质量特性n n软件质量模型软件质量模型n n软件质量的度量和评价软件质量的度量和评价软件质量的定义软件质量的定义n nANSI/IEEE Std 729-1983定义软件定义软件质量为质量为“与软件产品满足规定的和与软件产品满足规定的和隐含的需求的能力有关的特征或特隐含的需求的能力有关的特征或特性的全体性的全体”。n nM.J.Fisher 定义软件质量为定义软件质量为“所有所有描述计算机软件优秀程度

2、的特性的描述计算机软件优秀程度的特性的组合组合”。质质量量特特性性及及其其组组合合,是是软软件件开开发发与维护中的重要考虑因素与维护中的重要考虑因素n n为满足软件的各项精确定义的功能、为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特需要相应地给出或设计一些质量特性及其组合。性及其组合。n n如果这些质量特性及其组合都能在如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品产品中得到满足,则这个软件产品质量就是高的。质量就是高的。n n软件需求是度量软件质量的基础软件需求是度量软件质量的基础。不符合需求的软件

3、就不具备质量。不符合需求的软件就不具备质量。n n标准定义了一组开发准则,用来指标准定义了一组开发准则,用来指导软件人员用工程化的方法来开发导软件人员用工程化的方法来开发软件软件。如果不遵守这些开发准则,。如果不遵守这些开发准则,软件质量就得不到保证。软件质量就得不到保证。n n软件质量是各种特性的复杂组合。软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用它随着应用的不同而不同,随着用户提出的质量要求不同而不同。户提出的质量要求不同而不同。软件质量特性软件质量特性n n软件质量特性,反映了软件的本质软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要讨论一个软件的质量,问

4、题最终要归结到定义软件的质量特性。归结到定义软件的质量特性。n n定义一个软件的质量,就等价于为定义一个软件的质量,就等价于为该软件定义一系列质量特性。该软件定义一系列质量特性。n n人们通常把影响软件质量的特性用人们通常把影响软件质量的特性用软件质量模型来描述软件质量模型来描述。软件质量模型软件质量模型n n软件质量特性定义成软件质量特性定义成分层模型分层模型n n最基本的叫做最基本的叫做基本质量特性基本质量特性,它可,它可以由一些子质量特性定义和度量。以由一些子质量特性定义和度量。n n二次特性二次特性在必要时又可由它的一些在必要时又可由它的一些子质量特性定义和度量。子质量特性定义和度量。

5、n n1976年年 Boehm质量模型质量模型n n1979年年 McCall质量模型质量模型n n1985年年 ISO质量模型质量模型ISO的软件质量评价模型的软件质量评价模型n n按照按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三,软件质量度量模型由三层组成层组成n n软件质量需求评价准则软件质量需求评价准则(SQRC)n n软件质量设计评价准则软件质量设计评价准则(SQDC)n n软件质量度量评价准则软件质量度量评价准则(SQMC)n n高层和中层建立国际标准,低层可高层和中层建立国际标准,低层可由各使用单位视实际情况制定由各使用单位视实际情况制

6、定Boehm质量模型质量模型1991年年 ISO质质量量特特性性国国际际标标准准(ISO/IEC9126)n n质量特性:质量特性:功能性功能性、可靠性可靠性、可维可维护性护性、效率效率、可使用性可使用性、可移植性可移植性n n推荐推荐21个子特性:适合性个子特性:适合性 准确性准确性 互用性互用性 依从性依从性 安全性安全性 成熟性成熟性 容容错性错性 可恢复性可恢复性 可理解性可理解性 易学易学习性习性 操作性操作性 时间特性时间特性 资源特资源特性性 可分析性可分析性 稳定性稳定性 可变更性可变更性 可测试性可测试性 可安装性可安装性 可替换性可替换性 适适应性应性 一致性一致性 软件质

7、量的度量和评价软件质量的度量和评价n n软件质量特性度量有两类:软件质量特性度量有两类:预测型预测型和和验收型验收型。n n预测度量预测度量是利用定量或定性的方法,是利用定量或定性的方法,估算软件质量的评价值,以得到软估算软件质量的评价值,以得到软件质量的比较精确的估算值。件质量的比较精确的估算值。n n验收度量验收度量是在软件开发各阶段的检是在软件开发各阶段的检查点,对软件的要求质量进行确认查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发性检查的具体评价值,它是对开发过程中的预测进行评价。过程中的预测进行评价。n n预测度量预测度量有两种。有两种。n n第一种叫做第一种叫做尺度度

8、量尺度度量,这是一种,这是一种定定量度量量度量。它适用于一些能够直接度。它适用于一些能够直接度量的特性,量的特性,例如,出错率定义为:例如,出错率定义为:错误数错误数KLOC单位时间单位时间。n n第二种叫做第二种叫做二元度量二元度量,这是一种,这是一种定定性度量性度量。它适用于一些只能间接度。它适用于一些只能间接度量的特性,量的特性,例如,可使用性、灵活例如,可使用性、灵活性等等性等等。尺度度量检查表尺度度量检查表二元度量检查表二元度量检查表n n通过对照检查项目,确定一种质量通过对照检查项目,确定一种质量特性的有无。特性的有无。n n例如,在设计和编码阶段的复杂性例如,在设计和编码阶段的复

9、杂性度量,利用度量,利用尺度度量方法尺度度量方法来做。对来做。对模块复杂性的度量采用模块复杂性的度量采用McCabe 环环路度量。路度量。n n对于对于二元度量二元度量,可针对检查表中每,可针对检查表中每一项都应给以记分,指定信息存在一项都应给以记分,指定信息存在时记时记“1”,否则记,否则记“0”。表中所。表中所有各项的分数相加,即得度量结果。有各项的分数相加,即得度量结果。软件的质量保证软件的质量保证n n质量保证的概念质量保证的概念n n软件质量保证的主要任务软件质量保证的主要任务n n质量保证与检验质量保证与检验n n软件质量保证体系软件质量保证体系n n质量保证的实施质量保证的实施n

10、 n软件的质量设计软件的质量设计质量保证的概念质量保证的概念n n什么是质量保证,它是什么是质量保证,它是为保证产品为保证产品和服务充分满足消费者要求的质量和服务充分满足消费者要求的质量而进行的有计划、有组织的活动而进行的有计划、有组织的活动。n n质量保证是质量保证是面向消费者的活动面向消费者的活动,是,是为了使产品实现用户要求的功能,为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。站在用户立场上来掌握产品质量的。n n软件的质量保证就是向用户及社会软件的质量保证就是向用户及社会提供满意的高质量的产品。提供满意的高质量的产品。n n软件的质量保证活动也和一般的质软件的质量保证活

11、动也和一般的质量保证活动一样,是量保证活动一样,是确保软件产品确保软件产品从诞生到消亡为止的所有阶段的质从诞生到消亡为止的所有阶段的质量的活动量的活动。即。即为了确定、达到和维为了确定、达到和维护需要的软件质量而进行的所有有护需要的软件质量而进行的所有有计划、有系统的管理活动计划、有系统的管理活动。软件质量保证的主要任务软件质量保证的主要任务n n为了提高软件的质量和软件的生为了提高软件的质量和软件的生产率,软件质量保证的主要任务产率,软件质量保证的主要任务大致可归结为大致可归结为8点。点。1.用户要求定义用户要求定义n n熟练掌握熟练掌握正确定义用户要求的技正确定义用户要求的技术术n n熟练

12、使用和指导他人使用熟练使用和指导他人使用定义软定义软件需求的支持工具件需求的支持工具n n重视重视领导全体开发人员收集和积领导全体开发人员收集和积累有关用户业务领域的各种业务累有关用户业务领域的各种业务的资料和技术的资料和技术技能技能。2.力争不重复劳动力争不重复劳动n n考虑哪些考虑哪些既有软件可以复用既有软件可以复用n n在开发过程中,随时在开发过程中,随时考虑所生产考虑所生产软件的复用性软件的复用性。3.掌握开发新软件的方法掌握开发新软件的方法n n在开发新软件的过程中大力使用和在开发新软件的过程中大力使用和推行软件工程学中所介绍的开发方推行软件工程学中所介绍的开发方法和工具。法和工具。

13、uu 使用先进的开发技术:如使用先进的开发技术:如结构化结构化技术技术、面向对象技术面向对象技术uu 使用数据库技术或网络化技术使用数据库技术或网络化技术uu 应用开发工具或环境应用开发工具或环境uu 改进开发过程改进开发过程4.组织外部力量协作的方法组织外部力量协作的方法n n一个软件自始至终由同一个软件开一个软件自始至终由同一个软件开发单位来开发,也许是最理想的。发单位来开发,也许是最理想的。但在现实中常常难以做到。但在现实中常常难以做到。n n改善对外部协作部门的开发管理。改善对外部协作部门的开发管理。必须必须明确规定明确规定进度管理进度管理、质量管理质量管理、交接检查交接检查、维护体制

14、维护体制等各方面的要等各方面的要求求,建立建立跟踪检查跟踪检查的体制的体制。5.排除无效劳动排除无效劳动n n最大的无效劳动就是最大的无效劳动就是因需求规格说因需求规格说明有误明有误、设计有误设计有误而造成的而造成的返工返工。定量记录返工工作量定量记录返工工作量,收集和分析收集和分析返工劳动花费数据返工劳动花费数据n n较大的无效劳动是较大的无效劳动是重复劳动重复劳动,即相,即相似的软件在几个地方同时开发似的软件在几个地方同时开发n n建立互相交流、信息往来通畅、具建立互相交流、信息往来通畅、具横向交流特征的信息流通网横向交流特征的信息流通网6.发挥每个开发者的能力发挥每个开发者的能力n n软

15、件生产是人的智能生产活动,它软件生产是人的智能生产活动,它依赖于人的能力依赖于人的能力和和开发组织团队的开发组织团队的能力能力。n n开发者开发者必须有必须有学习各专业业务知识学习各专业业务知识、生产技术生产技术和和管理技术管理技术的能动性。的能动性。n n管理者管理者或或产品服务者产品服务者要要制定技术培制定技术培训计划训计划、技术水平标准技术水平标准,以及,以及适用适用于将来需要的中长期技术培训计划于将来需要的中长期技术培训计划。7.提高软件开发的工程能力提高软件开发的工程能力n n要想生产出高质量的软件产品必要想生产出高质量的软件产品必须有高水平的须有高水平的软件工程能力软件工程能力。n

16、 n在软件开发环境或软件工具箱的在软件开发环境或软件工具箱的支持下支持下,运用先进的开发技术运用先进的开发技术、工具和管理方法开发软件的能力工具和管理方法开发软件的能力。8.提高计划和管理质量能力提高计划和管理质量能力n n项目开发初期项目开发初期计划阶段的项目计划计划阶段的项目计划评价评价n n计划执行过程中及计划完成报告的计划执行过程中及计划完成报告的评价评价n n将评价、评审工作在工程实施之前将评价、评审工作在工程实施之前就列入整个开发工程的工程计划中就列入整个开发工程的工程计划中n n提高软件开发项目管理的精确度提高软件开发项目管理的精确度质量保证与检验质量保证与检验n n其一是其一是

17、切实搞好开发阶段的管理切实搞好开发阶段的管理,检查各开发阶段的质量保证活动开检查各开发阶段的质量保证活动开展得如何;展得如何;n n其二是其二是预先防止软件差错给用户造预先防止软件差错给用户造成损失成损失。n n为了为了确保每个开发过程的质量确保每个开发过程的质量,防,防止把软件差错传递到下一个过程,止把软件差错传递到下一个过程,必须进行质量检验。必须进行质量检验。质量检验的原则质量检验的原则n n用户要求的是产品所具有的功能,用户要求的是产品所具有的功能,这是这是“真质量真质量”。靠质量检验,一靠质量检验,一般检查的是般检查的是“真质量真质量”的质量特性的质量特性。n n能靠质量检验的质量特

18、性,能靠质量检验的质量特性,即使全即使全数检验,也只是代表产品的部分质数检验,也只是代表产品的部分质量特性量特性。n n必须必须在各开发阶段对影响产品质量在各开发阶段对影响产品质量的因素进行切实的管理的因素进行切实的管理,认真检查,认真检查实施落实情况。实施落实情况。n n当开发阶段出现异常时,当开发阶段出现异常时,要从质量要从质量特性方面进行检验,看是否会给后特性方面进行检验,看是否会给后续阶段带来影响续阶段带来影响。n n虽然各开发阶段进展稳定,但由于虽然各开发阶段进展稳定,但由于工程能力不足,软件产品不能满足工程能力不足,软件产品不能满足用户要求的质量。这时用户要求的质量。这时可通过检验

19、可通过检验对该产品做出评价,判断是否能向对该产品做出评价,判断是否能向用户提供该产品用户提供该产品。n n要以一定的标准检验产品,根据产要以一定的标准检验产品,根据产品的质量特性,检查各个过程的管品的质量特性,检查各个过程的管理状态。理状态。软件质量保证体系软件质量保证体系n n软件的质量保证活动,是涉及各个软件的质量保证活动,是涉及各个部门的部门间的活动。部门的部门间的活动。n n例如,如果在用户处发现了软件故例如,如果在用户处发现了软件故障,障,产品服务部门产品服务部门就应听取用户的就应听取用户的意见,再由意见,再由检查部门检查部门调查该产品的调查该产品的检验结果,进而还要调查软件实现检验

20、结果,进而还要调查软件实现过程的状况,并根据情况检查设计过程的状况,并根据情况检查设计是否有误,不当之处加以改进,防是否有误,不当之处加以改进,防止再次发生问题。止再次发生问题。n n为了顺利开展以上活动,为了顺利开展以上活动,事先明确事先明确部门间的质量保证业务部门间的质量保证业务,确立部门确立部门间的联合与协作的机构间的联合与协作的机构十分重要,十分重要,这个机构就是质量保证体系这个机构就是质量保证体系。uu 必须必须明确反馈途径明确反馈途径。uu 必须必须明确各部门的职责明确各部门的职责。uu 必须必须确定保证系统运行的方法确定保证系统运行的方法、工具工具、有关文档资料有关文档资料,以及

21、,以及系统系统管理的规程和标准管理的规程和标准。uu 必须必须明确决定是否可向下一阶段明确决定是否可向下一阶段进展的评价项目和评价准则进展的评价项目和评价准则。uu 必须必须不断地总结系统管理的经验不断地总结系统管理的经验教训教训,能够修改系统能够修改系统。uu 制定质量保证计划制定质量保证计划,在计划中,在计划中FF 确定确定质量目标质量目标FF 确定确定在每个阶段为达到总目标在每个阶段为达到总目标所应达到的要求所应达到的要求FF 确定确定进度安排进度安排FF 确定确定所需人力、资源和成本等所需人力、资源和成本等。软件质量保证规程和技术准则软件质量保证规程和技术准则n n规定规定在项目的哪个

22、阶段进行评审及在项目的哪个阶段进行评审及如何评审如何评审;n n规定规定在项目的哪个阶段应当产生哪在项目的哪个阶段应当产生哪些报告和计划些报告和计划;n n规定规定产品各方面测试应达到的水平产品各方面测试应达到的水平。n n在在每次评审和测试中发现的错误如每次评审和测试中发现的错误如何修正何修正;n n描述描述希望得到的质量度量希望得到的质量度量;n n说明说明各种软件人员的职责各种软件人员的职责,规定为,规定为了达到质量目标他们必须进行哪些了达到质量目标他们必须进行哪些活动。活动。n n建立建立uu 在各阶段中执行质量评价的在各阶段中执行质量评价的质质量评价和质量检查系统量评价和质量检查系统

23、uu 有效运用质量信息的有效运用质量信息的质量信息质量信息系统系统,并使其运行。,并使其运行。质量保证的实施质量保证的实施n n软件质量保证的实施需要从纵向软件质量保证的实施需要从纵向和横向两个方面展开。和横向两个方面展开。uu 要求所有与软件生存期有关的要求所有与软件生存期有关的人员都要参加人员都要参加uu 要求对产品形成的全过程进行要求对产品形成的全过程进行质量管理质量管理n n这要求整个软件部门齐心协力,这要求整个软件部门齐心协力,不断完善软件的开发环境。此外不断完善软件的开发环境。此外还需要与用户共同合作。还需要与用户共同合作。质量目标与度量质量目标与度量n n为了开发高质量的软件,需

24、要为了开发高质量的软件,需要明确明确软件的功能软件的功能,明确软件应达到什么明确软件应达到什么样的质量标准样的质量标准,即,即质量目标质量目标。n n为了达到这个目标,为了达到这个目标,在开发过程中在开发过程中的各个阶段进行检查和评价的各个阶段进行检查和评价。n n在做质量评价时,在做质量评价时,需要有对质量进需要有对质量进行度量的准则和方法行度量的准则和方法。n n需要有在软件生存期中如何使用这需要有在软件生存期中如何使用这些准则和方法的些准则和方法的质量保证步骤质量保证步骤,以,以及提高该项作业效率的及提高该项作业效率的工具工具软件质量度量和保证的条件软件质量度量和保证的条件n n适应性:

25、适应性:适应各种用户、软件类型适应各种用户、软件类型n n易学性:易学性:不需要特殊技术,易掌握不需要特殊技术,易掌握n n可靠性:可靠性:同个软件的评价结果一致同个软件的评价结果一致n n针对性:针对性:设计阶段就确立质量目标,设计阶段就确立质量目标,在各个阶段实施落实。在各个阶段实施落实。n n客观性:客观性:n n经济性:经济性:质量保证活动的实施步骤:质量保证活动的实施步骤:n nTarget:以用户要求和开发方针为:以用户要求和开发方针为依据,对质量需求准则、质量设计依据,对质量需求准则、质量设计准则的各质量特性设定质量目标。准则的各质量特性设定质量目标。n nPlan:设定适合于被

26、开发软件的评:设定适合于被开发软件的评测检查项目测检查项目(质量评价准则质量评价准则)。研讨。研讨实现质量目标的方法或手段。实现质量目标的方法或手段。n nDo:制作高质量的规格说明和程序。:制作高质量的规格说明和程序。在接受质量检查前先做自我检查在接受质量检查前先做自我检查。n nCheck:以以Plan阶段设定的质量评阶段设定的质量评价准则进行评价。价准则进行评价。计算结果用质量计算结果用质量图的形式表示图的形式表示出来。比较评价结果出来。比较评价结果的质量得分和质量目标,看其是否的质量得分和质量目标,看其是否合格。合格。n nAction:对对评价发现的问题进行改评价发现的问题进行改进活

27、动进活动,如果实现并达到了质量目,如果实现并达到了质量目标就转入下一个工程阶段。标就转入下一个工程阶段。这样重这样重复复“Plan”到到“Action”的过程的过程,直到整个开发项目完成。直到整个开发项目完成。软件的质量设计软件的质量设计n n质量特性转换为软件的内部结构质量特性转换为软件的内部结构n n在在软件定义阶段软件定义阶段,必须定义对软件必须定义对软件的质量需求的质量需求。即确定软件的质量特。即确定软件的质量特性及必需的评价准则,并定量地设性及必需的评价准则,并定量地设定其必须达到的质量水平定其必须达到的质量水平n n在以后软件开发的每一阶段结束时,在以后软件开发的每一阶段结束时,要

28、算出评价的分数要算出评价的分数,然后与,然后与目标值目标值加以对照加以对照,以评估在这一阶段开发,以评估在这一阶段开发的软件质量是否达到要求。的软件质量是否达到要求。n n为了实现规定的质量特性,就需要为了实现规定的质量特性,就需要把这些把这些质量特性转换为软件的内部质量特性转换为软件的内部结构的特性结构的特性。n n例如,软件质量需求中的例如,软件质量需求中的“性能性能”,可以转换成软件内部结构中的构,可以转换成软件内部结构中的构成元素,即成元素,即每一个程序模块和物理每一个程序模块和物理数据各自应具有的性能特性数据各自应具有的性能特性。这些这些性能特性的累积就形成外部规格中性能特性的累积就

29、形成外部规格中的性能特性的性能特性。软件的结构特性与评价标准软件的结构特性与评价标准n n结构特性结构特性 逻辑数据层次逻辑数据层次n n评价标准评价标准 uu 全部数据元素定义完毕全部数据元素定义完毕uu 所有层次的操作符定义完毕所有层次的操作符定义完毕n n结构特性结构特性 功能层次功能层次n n评价标准评价标准uu 全部功能元素定义完毕全部功能元素定义完毕uu 所有层次的操作符定义完毕所有层次的操作符定义完毕n n结构特性结构特性 逻辑数据与功能的对应关逻辑数据与功能的对应关系系n n评价准则评价准则uu 所有数据都与功能对应所有数据都与功能对应uu 所有功能元素都与数据对应所有功能元素

30、都与数据对应uu 逻辑数据与功能的相互关系个数逻辑数据与功能的相互关系个数(局部)(局部)n n结构特性结构特性 物理数据层次物理数据层次n n评价准则评价准则uu 全部数据元素定义完毕全部数据元素定义完毕uu 物理数据之间的所有指针定义完物理数据之间的所有指针定义完毕毕uu 上述指针都具有层次性上述指针都具有层次性n n结构特性结构特性 模块层次模块层次n n评价准则评价准则uu 所有模块定义完毕所有模块定义完毕uu 模块之间所有控制关系定义完毕模块之间所有控制关系定义完毕uu 上述关系都是标准过程调用形式上述关系都是标准过程调用形式uu 各层次上的模块大小适当各层次上的模块大小适当n n结

31、构特性结构特性 物理数据与模块的对应关系物理数据与模块的对应关系n n评价准则评价准则 uu 所有物理数据都与模块对应所有物理数据都与模块对应uu 所有模块都与物理数据对应所有模块都与物理数据对应uu 对应于一个物理数据的模块数对应于一个物理数据的模块数(以一对一为好)(以一对一为好)n n结构特性结构特性 逻辑数据与物理数据的对应关系逻辑数据与物理数据的对应关系n n评价准则评价准则uu 所有逻辑数据都与物理数据对应所有逻辑数据都与物理数据对应uu 对应于一个物理数据的逻辑数据对应于一个物理数据的逻辑数据数(以一对一为好)数(以一对一为好)n n结构特性结构特性 功能与模块的对应关系功能与模

32、块的对应关系n n评价准则评价准则uu 所有功能都与模块对应所有功能都与模块对应uu 对应模块的功能个数(以一对对应模块的功能个数(以一对一为好)一为好)软件可靠性软件可靠性n n软件生存期与软件寿命的关系软件生存期与软件寿命的关系n n在软件工程中常用的定义在软件工程中常用的定义n n软件可靠性定义软件可靠性定义n n测试中的可靠性分析测试中的可靠性分析n n测试精确度和测试覆盖度的评价测试精确度和测试覆盖度的评价软件生存期与软件寿命的关系软件生存期与软件寿命的关系n n一切有生命的东西都有一个一切有生命的东西都有一个“寿命寿命”n n这个概念也可以延伸到对非生命产这个概念也可以延伸到对非生

33、命产品的质量评价上来。例如一个电子品的质量评价上来。例如一个电子产品的寿命就是指该产品从出厂直产品的寿命就是指该产品从出厂直到丧失使用价值的持续时间。到丧失使用价值的持续时间。n n从软件工程的角度来说,从软件工程的角度来说,软件产品软件产品的寿命是指软件的整个生存期的寿命是指软件的整个生存期。n n从软件用户的角度来看,更关心的从软件用户的角度来看,更关心的是是软件在交付使用后的情况如何软件在交付使用后的情况如何。n n希望用一个指标希望用一个指标平均失效间隔时间平均失效间隔时间 MTBF(MeanTime Between Failure)来表明,在规定的要求和条件下,来表明,在规定的要求和

34、条件下,能在多大的程度上依赖这个软件来能在多大的程度上依赖这个软件来完成任务。完成任务。n n我们把我们把在使用期间软件能够正常工在使用期间软件能够正常工作的持续时间叫做软件的使用寿命作的持续时间叫做软件的使用寿命。n n软件的软件的使用寿命与输入环境有关使用寿命与输入环境有关。n n例如,有一个存在缺陷的编译程序,例如,有一个存在缺陷的编译程序,当用于学生做简单练习时,当用于学生做简单练习时,MTBF可能很长。而做一个大的课题时,可能很长。而做一个大的课题时,由于程序连续出错,由于程序连续出错,MTBF就会变就会变得很短。得很短。n nMTBF可以看做是对软件可靠性做可以看做是对软件可靠性做

35、估计的样本数据,但不能看做是依估计的样本数据,但不能看做是依据。据。n n“错误错误”这一术语。在没有特别加这一术语。在没有特别加以说明的情况下,这是一个泛用的、以说明的情况下,这是一个泛用的、模糊的概念。模糊的概念。n n它指的可能是它指的可能是bug(设计中的差错设计中的差错)、fault(故障故障)、error(错误错误)、failure(失效失效)、crash(重大事故重大事故)、problem(疑问疑问)等。等。n n在汉译中,这些术语的使用更加混在汉译中,这些术语的使用更加混乱。乱。在软件工程中常用的定义在软件工程中常用的定义n n故障故障(fault):软件的内在缺陷软件的内在缺

36、陷。这。这些缺陷可在生存期各个阶段被引入。些缺陷可在生存期各个阶段被引入。n n错误错误(error):故障在一定的环境条故障在一定的环境条件下的暴露件下的暴露,导致系统在运行中出,导致系统在运行中出现了不正常、不正确、不按规范执现了不正常、不正确、不按规范执行的状态,称为软件出错。行的状态,称为软件出错。n n失效失效(failure):对错误不做任何修对错误不做任何修正和恢复,正和恢复,导致系统的输出不满足导致系统的输出不满足用户要求用户要求,称为软件的一次失效。,称为软件的一次失效。n n以上定义的故障、错误和失效,分以上定义的故障、错误和失效,分别代表了别代表了广义的广义的“错误错误”

37、在不同的在不同的条件下条件下所对应的术语。所对应的术语。n n它们可以理解为:设计者的失误它们可以理解为:设计者的失误导致系统中留有错误的设计导致系统中留有错误的设计缺缺陷或陷或“故障故障”(fault),这些,这些故障故障导致系统的错误执行导致系统的错误执行错误错误(error),由于,由于错误错误导致系统的错导致系统的错误输出误输出失效失效(failure)。n n故障是物理地或静态地存在的故障是物理地或静态地存在的n n失误、错误和失效都是系统的一种失误、错误和失效都是系统的一种动态的转瞬即逝的现象动态的转瞬即逝的现象n n软件发生失效标志着软件一次使用软件发生失效标志着软件一次使用寿命

38、的结束寿命的结束n n发生过失效的软件通常仍然是可用发生过失效的软件通常仍然是可用的。只有当软件频繁失效,或者公的。只有当软件频繁失效,或者公认已经认已经“过时过时”了的时侯,软件才了的时侯,软件才被废弃,被废弃,意味着当前这一版本软件意味着当前这一版本软件使用寿命的终结。使用寿命的终结。软件故障产生原因软件故障产生原因n n支持软件工作的基本条件支持软件工作的基本条件(除硬件除硬件外的操作系统、数据库管理系统、外的操作系统、数据库管理系统、编译程序、微代码等编译程序、微代码等)的缺陷的缺陷n n软件设计不当软件设计不当n n加入了允许范围之外的输入加入了允许范围之外的输入软件可靠性的定义软件

39、可靠性的定义n n软件可靠性是软件在软件可靠性是软件在给定的时间间给定的时间间隔隔及及给定的环境条件给定的环境条件下,下,按设计要按设计要求求,成功地运行程序成功地运行程序的概率。的概率。n n环境条件环境条件指的是指的是软件的使用环境软件的使用环境。无论是什么软件,如果不对它的使无论是什么软件,如果不对它的使用环境加以限制,都是会失效的。用环境加以限制,都是会失效的。这种失效的数据,不能用来度量软这种失效的数据,不能用来度量软件的可靠性。件的可靠性。n n规定的时间规定的时间在定义中,一般采用在定义中,一般采用“运行时间运行时间”t 作为时间的尺度。作为时间的尺度。因因 n n具体要处理的问

40、题是多种多样的具体要处理的问题是多种多样的 n n其对应的输入环境是随机其对应的输入环境是随机 n n程序中相应程序路径的选取也是随程序中相应程序路径的选取也是随机的机的 n n软件的失效也是随机的软件的失效也是随机的n n应当把运行时间应当把运行时间t当作随机变量来考当作随机变量来考虑。虑。n n规定的功能规定的功能在考虑软件可靠性时,在考虑软件可靠性时,首先应当明确首先应当明确软件的功能是什么软件的功能是什么,哪些功能是主要的哪些功能是主要的,哪些功能是次哪些功能是次要的要的。一般从软件需求分析说明书。一般从软件需求分析说明书和设计说明书中可以了解这些情况。和设计说明书中可以了解这些情况。

41、uu 由于功能不同,失效带来的损失由于功能不同,失效带来的损失就不一样。因此,还要明确就不一样。因此,还要明确哪些失哪些失效是致命的效是致命的,哪些失效是非致命的哪些失效是非致命的,哪些又是容易修复的哪些又是容易修复的。此外,还要。此外,还要明确,明确,怎样才算是完成了一个规定怎样才算是完成了一个规定的功能的功能。n n成功地运行程序成功地运行程序是指不仅程序能是指不仅程序能正确地运行,满足用户对它的功能正确地运行,满足用户对它的功能要求,要求,而且当程序一旦受到意外的而且当程序一旦受到意外的伤害,或系统故障时,能尽快恢复,伤害,或系统故障时,能尽快恢复,仍能正常地运行。仍能正常地运行。测试中

42、的可靠性分析测试中的可靠性分析n n在软件开发的过程中,在软件开发的过程中,利用测试的利用测试的统计数据,估算软件的可靠性统计数据,估算软件的可靠性,以,以控制软件的质量是至关重要的。控制软件的质量是至关重要的。n n推测错误的产生频度,即推测错误推测错误的产生频度,即推测错误产生的时间间隔产生的时间间隔n n推测残留在程序中的错误数推测残留在程序中的错误数n n评价测试的精确度和覆盖率评价测试的精确度和覆盖率推测错误的产生频度推测错误的产生频度n n估算错误产生频度的一种方法是估算错误产生频度的一种方法是估算平均失效等待时间估算平均失效等待时间MTTF(Mean Time To Failur

43、e)n nMTTF估算公式估算公式(Shooman模型模型)故障累积指数曲线模型故障累积指数曲线模型估算软件中故障总数估算软件中故障总数ET 的方法的方法利用利用Shooman模型模型估算程序中原估算程序中原来错误总量来错误总量ET 瞬间估算瞬间估算解此方程组解此方程组利用最小二乘法进行程序原有错利用最小二乘法进行程序原有错误数误数ET及及K的估算的估算n n由失效率由失效率 n n整理得整理得 n n若对程序进行若干次不同的功能测试,若对程序进行若干次不同的功能测试,可得到一系列实验数据可得到一系列实验数据 Ec(ti),(ti),i=1,2,nn n令令 n n有有n n用最小二乘法解此方

44、程组,可解出用最小二乘法解此方程组,可解出a、b的估计值的估计值n n最后得到最后得到 K,ET 的估计值的估计值利利用用植植入入故故障障法法估估算算程程序序中中原原有有故故障总数障总数ET 捕获再捕获抽样法捕获再捕获抽样法n n设设Ns 是是在测试前人为地向程序中植在测试前人为地向程序中植入的故障数入的故障数,ns 是是经过一段时间测经过一段时间测试后发现的播种故障数目试后发现的播种故障数目,n 是是在测在测试中又发现的程序原有故障数试中又发现的程序原有故障数。设。设测试用例发现植入故障和原有故障测试用例发现植入故障和原有故障的能力相同的能力相同,则,则程序中原有故障总程序中原有故障总数数

45、N(=ET)估算值为估算值为Hyman分别测试法分别测试法n n由两个测试员同时互相独立地测试由两个测试员同时互相独立地测试同一程序的两个副本,用同一程序的两个副本,用 t 表示表示测测试时间试时间,记,记 t0时,时,程序中原有故程序中原有故障总数是障总数是 B0;tt1 时,时,测试员甲发测试员甲发现的故障总数是现的故障总数是 B1;测试员乙发现测试员乙发现的故障总数是的故障总数是 B2;其中两人发现的;其中两人发现的相同故障数目是相同故障数目是 bc;两人发现的;两人发现的不不同故障数目是同故障数目是 bi。n n在大程序测试时,头几个月两个测在大程序测试时,头几个月两个测试员测试的结果

46、应当比较接近,试员测试的结果应当比较接近,bi 不是很大不是很大。这时有。这时有n n如果如果bi比较显著比较显著,应当每隔一段时应当每隔一段时间间,由两个测试员再进行分别测试由两个测试员再进行分别测试,分析测试结果,估算分析测试结果,估算B0。如果。如果bi减减小,或几次估算值的结果相差不多,小,或几次估算值的结果相差不多,则则B0作为原有错误总数的估算值。作为原有错误总数的估算值。测试精确度和测试覆盖度的评价测试精确度和测试覆盖度的评价n n在软件测试过程中累积发现的故障在软件测试过程中累积发现的故障数,数,可用带有平均值函数可用带有平均值函数 m(t)的非的非齐次泊松过程齐次泊松过程(N

47、HPP)来描述:来描述:n n其中,其中,N是在测试中可能发现的故是在测试中可能发现的故障总数,障总数,b是故障发现率。是故障发现率。n n当当N一定时,一定时,b越大,在短期内发现越大,在短期内发现的故障越多。的故障越多。n nN 可以认为是可以认为是当测试时间无限延长当测试时间无限延长时时估计可能发现的故障总数估计可能发现的故障总数。由于。由于uu 测试的不完全,在某些很难发现测试的不完全,在某些很难发现的故障未发现前就可能结束测试的故障未发现前就可能结束测试uu 若程序中潜在的故障较少,则参若程序中潜在的故障较少,则参数数N的估计误差较大的估计误差较大n n因此,只用测试中累积发现的故障

48、因此,只用测试中累积发现的故障数来评价测试是不够的。需要从测数来评价测试是不够的。需要从测试的试的量的方面量的方面和和质的方面质的方面,全面地,全面地评价测试。评价测试。n nSPQL(Software Product Quality Level)用如下公式度量:用如下公式度量:SPQL AcCvn n其中,其中,Ac(Test Accuracy)是是测试测试的精确度的精确度,它反映了测试的质量;,它反映了测试的质量;Cv(Test Coveragy)是是测试的覆盖测试的覆盖度度,它反映了测试的数量。,它反映了测试的数量。测试结束时软件产品质量水准测试结束时软件产品质量水准n n测试质量的度量

49、可以靠测试质量的度量可以靠测试的故障测试的故障捕捉率和遗漏率捕捉率和遗漏率来衡量。来衡量。n n测试数量的度量指标是测试数量的度量指标是执行的测试执行的测试用例数用例数、确认的程序路径数确认的程序路径数等等;等等;测试精确度测试精确度Acn n表明在测试的过程中以多大的把握表明在测试的过程中以多大的把握捕捉了软件中潜在的故障。捕捉了软件中潜在的故障。n n测定测定Ac,需要预先植入播种故障,需要预先植入播种故障,然后通过测试,根据播种故障的捕然后通过测试,根据播种故障的捕捉率来推测原有故障的捕获率。捉率来推测原有故障的捕获率。n n用用ns 表示表示经过相当长时间测试可能经过相当长时间测试可能

50、发现的播种故障数发现的播种故障数,用,用Ns 表示测试表示测试对象软件内对象软件内预先埋设的播种故障总预先埋设的播种故障总数数,用平均值为用平均值为m(t)的的NHPP模型模型描描述测试时发现播种故障的过程述测试时发现播种故障的过程n nm(t)的收敛值的收敛值 m()Nn n测试精确度测试精确度Ac的推测值:的推测值:n n若设测试过程中到时刻若设测试过程中到时刻 ti 能发现的能发现的累积播种故障总数为累积播种故障总数为 yi,则在测试,则在测试期间可得到一连串数据期间可得到一连串数据 (t0,0),(t1,y1),(tm,ym)n n可得到一组方程:可得到一组方程:n n应用最小二乘法可

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com