软件质量的基本知识和标准-Read课件_第1页
软件质量的基本知识和标准-Read课件_第2页
软件质量的基本知识和标准-Read课件_第3页
软件质量的基本知识和标准-Read课件_第4页
软件质量的基本知识和标准-Read课件_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

第一部分软件质量与质量保障本章内容:§1对软件测试和软件质量的思考一、当今社会对软件质量的高要求二、软件质量问题提出的严重挑战三、解决软件质量为题的途径§2软件质量与可靠性概念一、软件质量二、软件可靠性三、软件可靠性模型介绍§3软件质量度量一、软件质量度量框架二、IEEE软件度量方法学步骤简介§4软件质量保障体系介绍§1对软件测试和软件质量的思考一、当今社会对软件质量的高要求

1、计算机已无处不在,从生产到生活,从工厂到家庭,从工作到娱乐……

制造业、农业交通、通信、金融、保险、消防商业、服务业、供电、供水、医疗卫生行政管理、政务、公检法航天、航空、科学研究、军事教育、文化

2、在一些领域,软件逐步替代了硬件典型例子:通信领域(20世纪90年代以来)通信企业都是软件企业

IC制造;

数字模拟代替了物理实验;替代优势:准确、快速、高效、成本低替代趋势:极为迅猛用户使用低质量的软件,在运行过程中会产生各种各样的问题,可能带来不同程度的严重后果,轻者影响系统的正常工作,重者造成事故,损失生命财产。

软件:软件(software)是计算机中与硬件相结合的一部分,包括程序(program)和文档(document)§1对软件测试和软件质量的思考

3、对软件质量提出了全方位的要求功能:愈来愈多、范围广性能:愈来愈高,速度、响应、适应性可靠性:稳定可靠安全性:安全运行

4、关键软件(Criticalsoftware):

关键软件:人员和公众的生命和安全环境质量数据和信息安全关于设备、设施、系统的正常运行 社会的正常秩序关键软件的特点:规模庞大大部分为实时、嵌入式高可靠性涉及国家政务、军事国防

§1对软件测试和软件质量的思考

二、严重的挑战——软件质量问题

1、软件工程技术的发展长期落后于硬件

2、软件常常不能满足应用系统提出的需求

3、由于软件质量造成的事故屡见不鲜

用于F-16的导航软件中的错误使其在飞越赤道时引起飞机翻转;

1981年,对航天飞机定时软件的极小改变引起发射失败;

§1对软件测试和软件质量的思考

4、用户对购买的软件质量不满用户对软件质量满意度统计§1对软件测试和软件质量的思考

5、解决软件质量问题的实际困难

开发过程和产品不可见复杂多变易变难以量化控制需求不明人为因素测试技术不理想

软件:是当前最复杂的脑力劳动,以个人劳动为基础的产品,合文化、心理、集体性有极大关系。§1对软件测试和软件质量的思考

三、解决软件产品质量问题的途径——从软件测试的角度

1、增强软件产品开发的质量意识,重视测试工作的组织

2、加强测试人员队伍的建设软件质量和测试人员资格制度加强培训:技术、管理

3、软件开发组织中建立独立的测试机构,体现独立测试原则

4、对整个软件开发过程实施规范化管理产品质量取决于生产产品所采用过程的过程控制

ISO9000,CMM(软件过程成熟度)等

5、CMM对软件测试提出的要求

(1)选取适用的测试支持工具(2)对软件工程技术人员进行软件测试及其它验证技术的培训(3)对完成的代码实时同行评审和单元测试

(4)按项目定义的软件过程进行软件测试(5)按软件过程计划和执行集成测试、系统测试、验收测试(6)收集和分析测试中发现的缺陷数据改正

6、CMM中软件质量保证、验证评审和审核提出了更多的要求制定和评审测试标准选用有效的测试方法做到测试的充分性建立和使用测试准备就绪准则实施回归测试对测试计划、测试规程、测试用例进行评审对测试计划、测试规程、测试用例进行管理对测试计划、测试规程、测试用例进行控制软件测试是保证软件质量的最重要的手段

§2软件质量、软件可靠性概念内容:1、软件质量2、软件可靠性概念3、软件可靠性模型介绍§2软件质量与可靠性概念一、软件质量:是贯穿软件生存期的一个极为重要的问题,使软件开发过程中所使用的各种开发技术和验证方法的最终体现。软件质量的定义:

ANSI/IEEEstd729-1983定义软件质量为:与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体

可从三方面来理解:软件需求是衡量软件质量的基础,不符合需求的软件就不具备质量。规定了的标准是软件开发必须遵循的准则。如果已开发的软件已经满足了那些明文规定的需求,却没有满足那些隐含的需求,那么软件产品的质量仍然是有问题的。§2软件质量与可靠性概念

二、软件可靠性

——软件质量的一项重要指标

是指“在规定的条件下和规定的时间内,计算机程序完成规定功能(无故障运行)的概率”。什么是Bug:在英语中是“小虫子”的意思,现在泛指计算机中软件或硬件错误。

Bug和Debug的由来:

Bug之多:微软Windows98操作系统改正了windows95里面5000多个Bug计算机中含有这么多Bug有一个技术原因:

软件愈来愈庞大复杂在任何复杂的大系统中,错误是难免的,大型软件尤其难以按期完成国外统计:17万个项目(总投资2500亿美元)6%按期按预算完成;31%中途取消;61%最终完成,但都超出了预算和进度(一大半项目的实际花费超出预算达189%)

Bug的确切定义:软件的Bug指的是软件中(程序和文档)不符合用户需求的问题常见的软件Bug分成3中类型:(1)完全没有实现的功能(2)基本实现了用户需要的功能,但在运行时会出现一些功能和性能上的问题;(3)实现了用户不需要的功能,即多余功能。§2软件质量与可靠性概念衡量软件可靠性的简单指标:平均失败间隔时间MTBF

指两次此相邻失效时间间隔的平均。

MTBF=MTTF(平均无故障时间)+MTTR(平均修复时间)MTTF(平均无故障时间):指当前时间(有效)到下一次失败的时间平均MTTR(平均修复时间):指从一次故障产生到故障恢复的时间平均MTTF(平均故障时间)MTTR(平均修复时间平均失败间隔时间MTBF§2软件质量与可靠性概念

R可靠度:在规定时间内无失效发生的概率。设规定时间为t0

,软件发生失效的时间是ξ,R(t0)=P(ξ>t0).

MTTF即为在时间0-无穷内对R(t0)的积分。§2软件质量与可靠性概念由来: 通过拥有一个软件可靠性如何随着时间的变化而变化的健壮的模型,使得管理部门能够通过收集软件确认测试中的数据,制订一个可靠性目标,并跟踪目标实现的过程。目的:能够用平均故障时间(MTTF)测量和预测软件可靠性确定最佳停止测试和发布软件的时间为权衡测试时间、可靠性、费用和性能指标提供数据定义符合实际的软件可靠性指标三、软件可靠性模型介绍§2软件质量与可靠性概念软件可靠性模型——目前有40多种(常用10多种)可靠性建模是可靠性估计过程的基础,它确定产品是否达到了可靠性指标,是否可以发行。目前比较流行的有:

Jelinski-Moranda的故障分离模型

Goel-Okumoto的NHPP模型——非齐次泊松过程模型黑盒测试:Musa的基本执行时间模型增强的NHPP模型(广义泊松模型)

Littlewood-Verrall的贝叶斯判定模型

Krishna-murthy和Mathur的基于路径的模型白盒测试

Gokhalaetal.的基于状态的模型§3

软件质量度量有许多因素影响软件质量可直接度量的因素把影响软件质量的因素分为两类只能间接度量的因素

不管哪一类,必须能够度量,构成了软件质量度量体系。

IEEE有关软件质量度量方法学的标准1061-1998一、软件质量度量框架软件质量度量框架:一组用来组织、选择、沟通、评价软件系统要求的质量属性的辅助决策法,他逐层分解为特性、子特性和度量。质量特性:一个与质量有关的面向管理的软件属性;质量子特性:质量特性分解出来的技术组件直接度量:一种不依赖于其他属性测量的度量;预计度量:一种适用于开发阶段的度量,它用来预计软件质量特性的值;软件质量度量:一个函数,它的输入是软件数据,输出是一个单一数值,它可解释为给定的软件属性对其质量的影响程度;过程度量:一种用来测量在软件系统开发、实现和维护过程中使用的方法、技术和工具特性的度量产品度量:一种用来测量软件开发过程中任何中间或最终产品特性的度量。软件质量度量框架与质量需求相关联的质量特性与质量特性相关联的质量子特性直接度量例子二、IEEE软件度量方法学步骤确定软件质量需求确定软件质量度量实施软件质量度量分析软件质量度量确认软件质量度量直接度量文档分析软件质量度量结果在数据收集过程中,要根据工程总的软件质量需求对度量结果进行分析。要识别出哪些与目标值不一致的度量以便做进一步的分析。根据分析结果,有些可能需要重新设计或者记录,有些可能需要对文档进行补充,有些可能需要做一些补充测试。在某些情况下,若度量值只稍微超出目标值,并且认为是非关键度量,也可不做改动。Grady和Caswell在HP公司实施软件度量程序的10个步骤定义软件度量程序的目标明确责任开展调查定义要收集的初始度量推荐这些度量的初始样本获取用于自动数据收集和分析的工具进行软件度量培训宣传成功事例建立度量数据库以有序方式建立一个改进此过程的方法三、验证度量复杂度度量缺陷度量产品度量过程度量度量-复杂度复杂度是与质量子特性-正确性和质量特性-可维护性相关联的一个直接项测量通过对本组织编制的源程序代码做大范围的复杂度抽样测试,就可以建立一个复杂度基线,可以用来确定:代码审查的候选模块对哪一部分进行重新设计可能是恰当的?需要附加文档的部分可能附加测试的部分度量-复杂度-方法McCabe圈(环)复杂度度量

使用程序控制流程结构作为其复杂度相对的测量圈复杂度=E-N+2P

E=边的个数(或控制转移次数)

P=转入程序中的控制路径个数

N=节点个数(顺序语句组只包含一个控制转移)度量-复杂度-方法Halstead的软件科学

基于程序大小测量程序复杂度的算法

1=程序中不同操作符的个数2=程序中不同操作数的个数3=程序中操作符出现的总数4=程序中操作数出现的总数

程序词汇量:=1+2度量-缺陷度量缺陷度量是通过收集审查总结报告而得到。根据缺陷类型(即逻辑、接口、数据定义、文档)、缺陷改进起因和缺陷严重性对这些度量进行分类,将能够确定软件开发过程中需要改进的地方。通过对模块进行缺陷跟踪,缺陷度量有助于软件验证和确认活动,它能够发现需要重新设计或者做附加测试的候选模块,也能够潜在识别哪些需要在软件工程实践方面需要进一步培训的软件工程师。度量-产品度量产品度量是测量,这些测量代表了组织已开发出的产品的情况。例子:在需求、设计、编码和测试审查阶段发现的缺陷的类型和数量;交付的文档页数新增代码的行数修改的代码行数交付的代码总行数交付的所有模块的平均复杂度模块的平均大小模块的总数单元测试发现的缺陷总数集成测试发现的缺陷总数确认测试发现的缺陷总数度量-过程度量过程度量反映过程的效率。例子:平均查找-修改时间每一次审查花费的人/小时数每KLOC花费的人/小时数每一次审查发现的平均缺陷数在审查期间发现的每一类缺陷的个数平均修改次数被审查模块的平均数制定度量计划测量应是健全的;测量应建议一个基准测量应涉及特定的产品和过程属性;测量应建议一个改进策略测量应是软件开发过程固有的结果测量应简单测量应可预测和可跟踪测量不应该用来作为评价个人实绩的一部分。四、确认度量时间测量测试覆盖测量质量度量时间测量查错-修改周期测量累积测试时间测试覆盖度量代码覆盖段覆盖调用对需求覆盖质量度量缺陷改正百分比每一个基线报告的缺陷缺陷检测效率五、小结度量软件质量度量测量符合基本的软件质量改进原则,测量能够作为一个杠杆推动软件过程的改进,然而,除非以建立了积极的质量改进计划和目标,否则不会发生任何改进,重要的是,这些改变必须量化;区分“变化”和“改进”是非常重要的。改进是基于测量而言的,而变化是基于感觉而言的,只有通过测量,你才能知道一个“变化”变成了一个“改进”。测试确认的测量是改进这些活动有效性的基础,这些测量应该用来帮助确定过程改进,进而提高确认测试投资的回报。§4软件质量保障体系1、SQA计划2、ISO9000质量保证体系3、CMM模型简介4、小结一、SQA计划(1)

由SQA小组和项目组共同制定的“SQA计划”为建立软件质量保证提供了“行动指南”,规定了每个软件项目中的SQA活动的模式。一、SQA计划(2)Ⅰ.计划的目的Ⅴ.标准、实践和约定Ⅶ.测试Ⅱ.参考文献1.目的Ⅷ.问题报告和改正行动Ⅲ.管理2.约定Ⅸ.工具、技术和方法学1.组织Ⅵ.复审和审计Ⅹ.代码控制2.任务1.目的ⅩⅠ.媒体控制3.责任2.需求复审ⅩⅡ.供应商控制Ⅳ.文档b.设计复审ⅩⅢ.记录收集、维护和保留1.目的c.软件验证和确认复审ⅩⅣ.培训2.所需的软件工程文档d.功能复审ⅩⅤ.风险管理3.其它文档e.物理审计

f.过程内部审计

g.管理复审

二、ISO9000质量保证体系(1)

ISO9000以一般术语描述了一个质量保证系统的要素 这些要素包括用于实现质量计划、质量控制、质量保证和质量改进所需的组织结构、规程、过程和资源。

二、ISO9000质量保证体系

1、概述

ISO9000质量标准是一种广泛采用的国际标准,它是由国际标准化组织(InternationalStandardsOrganization,ISO制定);

ISO9000质量标准受英国质量标准(BS5770)的影响,最早发布在1987年,在1994年修订;

ISO9000质量标准可以应用于各类行业,包括制造业、软件业和服务业;

ISO9000质量标准被认为是一个重视质量的组织应该满足的一种最低限度的标准,很多组织要求其转包商(subcontractor)通过ISO9000认证。

ISO9000质量标准的最新修订版是ISO9000:2000,是对1994版的一次重大的提高,它把重点放在客户满意度和持续改进上,并包括一个过程模型。

ISO9000质量标准的1994版强调定义工作规程,而新标准则强调过程。二、ISO9000质量保证体系2、ISO9000的动机提高公司信誉

ISO9000认证带来的销售利益表明客户满意度和质量是公司的核心价值表明公司致力于持续改进表明公司在产品开发中的质量计划生产出更高质量的软件标明“防火”文化是适当的,而不是“救火”文化重点是从问题中吸取教训一个更有能力和更有效的组织更为忠实的客户保护公司免遭起诉。

ISO9000提供了一个改进架构或改进模型。减少有缺陷产品的返工机会诗作之内的士气提高记录在案的ISO9000要求提供了证明公司已经采取了所有合理的措施的证据二、ISO9000质量保证体系3、ISO9000和质量组

ISO9000标准把责任放在管理人员和员工身上,质量组在标准的实施中通常起着关键的作用。

软件质量保证组(SoftwareQualityAssurance,SQA)的职责二、ISO9000质量保证体系4、ISO9000:1994版

ISO9000:1994版标准由一组标准和如何应用这些标准的方针组成,应用于制造业、服务业和软件业。

ISO9000标准的集合

ISO8402质量管理/保证词汇表ISO9000-1选择和使用ISO9000的指导方针ISO9000-2应用ISO9001/9002/9003的指导方针ISO9000-3在软件中应用ISO9001的指导方针ISO9000-4对资源进行规划、组织和控制,以生产可靠产品的指导方针ISO9001用于产品/服务的设计、开发、测试、安装和维修的ISO标准ISO9002用于生产、安装和维修的ISO标准(9001的一个子集)ISO9003用于最终审查和测试的标准(ISO9001的一个子集)ISO9004-1实施质量体系的指导方针ISO9004-4持续改进的指导方针二、ISO9000质量保证体系ISO9001:1994版的条款——20项条款管理责任;质量系统;合同复审;设计控制;文档和数据控制;采购;对客户提供的产品的控制;产品标识和可跟踪性;二、ISO9000质量保证体系过程控制;审查和测试;审查、度量和测试设备的控制;审查和测试状态;对不符合标准产品的控制;改正和预防行动;处理、存储、包装、保存和交付;

二、ISO9

温馨提示

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

评论

0/150

提交评论