收藏 分销(赏)

第五章软件质量保证.ppt

上传人:xrp****65 文档编号:13336622 上传时间:2026-03-03 格式:PPT 页数:88 大小:783.50KB 下载积分:10 金币
下载 相关 举报
第五章软件质量保证.ppt_第1页
第1页 / 共88页
第五章软件质量保证.ppt_第2页
第2页 / 共88页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第五章软件质量保证,课程目的,能够了解基本的质量知识;,能够理解一些质量名词,如:质量控制、质量保证等;,能够理解质量保证的意义和重要性;,能够了解软件质量保证的基本活动;,能够编写质量保证计划书,什么是质量,质量的多种定义,零缺陷,对目标的适应性,能持续一致且可靠地以低成本适应于市场的程度,产品或服务的特性集使其能够满足特定和隐含需求的总和,ISO,软件特性集能够行使其最终使用目的的程度,软件的特殊性,软件不是一个物质实体,存在依赖于环境,软件需求很难明确,客户需求随着开发的进展而不断变化,组成软件环境的硬件和软件发展极其迅速(摩尔定律),客户对软件需求过高,如希望软件适应业务的变化,软件开发与硬件制造体系的比较,Project,Production,1,2,3,5,6,4,从未做过的项目,新开发的流程,有成熟的流程模板,以客户化为主的重复生产,少量客户化的重复生产,非客户化的重复生产,效率不断提高,风险不断增长,软件质量的两个方面,设计质量,得到匹配客户需求的软件规约,主观性较强,难于管理和控制,制造质量,生产符合规约的软件产品,结构化方法、质量保障、测试,传统软件工程的用武之地,质量开发示意图,需求分析,系统和软件设计,编码和实现,测试,操作和维护,设计质量,制造质量,主观性强,难于控制,质量保障、测试,结构化方法、构件,质量的多种视角客户方,项目发起人,软件产品在预算内及时交货,软件产品的投入产出值得肯定,一线经理,(Line Manager),软件产品符合工作人员的需求,软件产品功能满足要求,最终用户,(,工作人员,),决定软件产品的长期使用和接受程度,较少的技术要求、较少的工作改动、较轻的负担,质量的多种视角生产方,业务顾问,根据市场状况描述客户需求,决定产品生产的充分性,项目经理,对项目全权负责,在工期、预算和功能、质量间取得平衡,程序员,对自己的模块负责,忽视他人的模块,质量监督,(QA),员,保证质量计划在项目中的实施,在机构内维持质量原则,质量的,5,个视角,(1),传统视角,质量,=,卓越性,追求最佳,用户视角,质量,=,对使用目标的适应性,确定正确的需求并予以满足,产品视角,质量,=,成本的优化使用,追求最好的性能价格比,质量的,5,个视角,(2),制造视角,质量,=,同规约一致的产品,,0,缺陷,生产出,准确,的产品,价值视角,质量,=,售价前提下对客户需求的满足,一分价钱一分货,质量模型,GE,模型,软件质量的,3,个领域,软件操作,产品易于使用、有效工作、功能满足要求,产品修正,产品易于修改和维护,产品安装,产品易于在新环境中运行,GE,模型,产品,修正,产品,安装,软件操作,可移植性,复用性,互操作性,正确性可靠性,有效性完整性,易用性,可维护性,灵活性,可测试性,质量模型,Boehm,模型,设备独立性,自包含性,准确性,完备性,健壮,/,完整性,一致性,可审计性,设备有效性,可访问性,可交流性,自描述性,结构化性,简洁性,易读性,扩展性,可移植性,可靠性,有效性,人机工程,可测试性,易理解性,可修改性,常规应用,可维护性,一般应用,质量管理发展方向,质量管理发展五个阶段,质量管理发展方向,质量管理发展五个阶段,1900,手工操作者,专职检验员,1920,过程统计技术,1931,全面质量管理,1960,2000,以,顾客为中心,阶,段,时间,质量管理发展趋势,一个核心和,两个基本改变,核心:由对结果的检验转向对,过程精细,的控制,改变:,管理范围的改变,由针对以产品生产制造服务质量管理,扩大,到,行政部门工作质量。,关注焦点的转移,由面向以产品生存周期的,服务质量管理转向,顾客满意为中心,质量管理。,软件质量有何特点?,软硬件行业的分工不同,软件产品难以横向比较,标准化程度低,软件的故障曲线与硬件不同,软件的维护方式与硬件不同,软件是设计开发出来的,而不是制造出来的,软件的技术与管理的客体合一,度量困难,软约束为主,QC,手段落后于软件的发展,软件质量有何特点?,什么是软件质量保证,?,与硬件系统不同,软件不会磨损;因此在软件交付之后,其可用性不会随时间的推移而改变。软件质量保证就是一个系统性的工作以提高软件交付时的水平。,-James Dobbins,什么是软件质量保证,?,软件质量保证是一种应用于整个软件开发过程的保护性活动,SQA,包括:,有效的软件工程技术,(,方法和工具,),,,在整个软件过程中采用的正式技术复审,,一种多层次的测试策略,,对软件文档及其修改的控制,,保证软件遵从软件开发标准的规程,,度量和报告机制。,什么是软件质量保证,?,为软件开发过程,及其产品和所使用的资源提供一个独立的视角。,依据标准检查产品及其文档的符合性,软件开发所使用的流程的符合性。,通过对需求、设计和编码进行评审,减少在测试和集成阶段修改缺陷的成本。,什么是软件质量保证,?,是过程保证还是产品保证?,是否贯穿于软件开发的全过程?,是与开发活动同时实施还是事后的检验?,是否仅仅是一些填写检查单的活动?,什么是软件质量保证,?,软件质量保证是一系列系统性的活动,它提供开发出满足使用要求产品的软件过程的能力证据。,为什么会有质量问题?,?,为什么会有质量问题?,Man,Machine,Material,Method,Environment,Measurement,为什么会有质量问题?,PEOPLE,PROCESS,TECHNOLOGY,怎样提高软件质量?,ISO9000,CMM,6 sigma,PDCA,SPC,Quality tools,什么是软件质量体系,?,什么是质量体系,?,现在常称为“质量管理体系”,管理体系:建立方针和目标并实现这些目标的体系。,质量管理体系:在质量方面指挥和控制组织的管理体系。,软件质量管理体系:应对于软件领域的质量管理体系。,什么是软件质量体系,?,软件行业实践,质量管理学的发展,软件工程的提出,基本活动的引入,形成了完整的软件质量体系,传统的质量管理体系也覆盖了软件研发活动,什么是软件质量体系,?,质量管理的发展,1910,1920,1930,1940,1950,1960,1970,1980,1990,泰勒制,独立检验,SPC,统计抽样,战时标准,质量改进,TQM,质量工程,Quality is free,ISO 9000,6,Shewart,Deming,Juran,Fergenbaum,田口,Crosby,DOD,什么是软件质量体系,?,软件工程实践,质量焦点,过程,方法,工具,什么是软件质量体系,?,组织,项目,A,项目,B,项目,C,其它活动,其它活动,项目,X,系统,硬件,软件,TQM,CMM,CMM,是全面质量管理中的过程管理概念在软件方面的应用。,什么是软件质量体系,?,关于“过程”,过程,有技能、受过训练的,,以及有积极性的人员,工具和设备,A,B,C,D,定义任务之间关,系的规程和方法,常见的软件质量体系模型简介,ISO 9000 87,版,SEI,软件能力成熟度技术报告,Baldrige,1987,1993,1994,CMM V1.1,ISO 9000 94,版,1999,2000,ISO 9000 2000,版,CMM V2.0,CMMI,1987,ISO9001,在软件企业的实施案例,角色分工,ISO9001,在软件企业的实施案例,产品开发规程,ISO9001,在软件企业的实施案例,定制项目开发规程,ISO9001,在软件企业的实施案例,体系支持规程,管理评审规程,质量体系文件控制规程,内部质量体系审核规程,纠正措施规程,预防措施规程,配置管理规程,更改控制规程,产品开发文档控制规程,质量记录控制规程,产品度量规程,过程度量规程,规则、惯例和约定控制规程,工具和技术控制规程,采购规程,配套软件产品控制规程,病毒防治规程,产品加密规程,培训规程,ISO9001,在软件企业的实施案例,ISO9001,是品质保证标准,对过程管理提出最低要求,质量保证体系根据软件工程原理自行设计和维持,满足,ISO9001,要求,质量策划根据项目自身特点,对质量体系进行剪裁和补充,CMM,什么是,CMM,1980s,,,CMU-SEI,的过程成熟度模型,针对软件企业,目前是,CMMI,CMM,与,ISO9000,采用与,ISO9000,一致的管理思想,针对知识密集型,/,系统复杂型过程,尤其是软件开发过程,SW-CMM,CMM,初 始 级,可 重 复 级,已 管 理 级,已 定 义 级,优 化 级,成,熟,度,风,险,作用:,CPA,与,SPI,CMM,在软件企业的实施案例,实施重点,1,、风险分析和管理,预防胜于补救,SQA,的目标是规避风险,测试的策略也是消除风险,2,、质量计划,项目环境多变,不要试图千篇一律,针对每一个项目做出一个质量计划,CMM,在软件企业的实施案例,实施重点,3,、需求管理,需求管理是软件开发中的第一大风险,需求是软件开发的内在的核心驱动和最活跃因素,需求的表达和传递-,UML,管理需求-与用户一同工作,需求管理-好的配置管理支持,CMM,在软件企业的实施案例,实施重点,4,、配置管理,配置管理是项目中最易见效的要素,要有好的工具支持(,Clearcase,/SourceSafe),要有配置管理员的角色,CMM,在软件企业的实施案例,实施重点,5,、项目组内部工具和编码规范统一,一致比效率和个性更重要,68%,的编码错误是因为没有遵从编码规范,避免误解和返工,避免工具间接口和版本不同带来的麻烦,CMM,在软件企业的实施案例,实施重点,6,、独立的,QA,和测试,人性使然,自己发现不了自己的错误,自己不愿意发现自己的错误,不愿意报告利益相关人的错误,找错是手段、度量和降低风险才是目的,本身也是管理的手段,CMM,在软件企业的实施案例,实施重点,7,、重视评审和落实,事先找出关键点和特殊点,注重评审的计划性和强制性,使用,Checklist,规程和计划要不折不扣地执行,CMM,在软件企业的实施案例,实施重点,8,、强制与培训并重,强制与培训是互补的,行为,-,习惯,-,性格,-,结果,/,命运,工具的作用,提高执行效率和管理效率,提供强制执行手段,例子,:6,质量管理方案,6,的概念,6,的管理方案,6,的机构组织,6,的质量改进,6,质量管理,6,西格马,由,Motorola,公司于,1987,年提出并迅速普及,波音、,LG,、诺基亚等相继采用,源于全面质量管理理念,借鉴,Crosby,的零缺陷理论,基本原则,持续改进,七步骤方法,客户完全满意,6,的概念,是衡量产品缺陷率的一种计量,,即方差,DPMO(Defect per Million Opportunities),百万件错误率。对软件,可认为百万行代码错误率,6=3.4 DPMO,,相当于,99.9997%,的正确率,每,KLOC 0.8,个缺陷其正确率为,99.92%,,约合,4,6,对应的,DPMO,新的质量问题,传统质量成本,附加缺陷成本,审查、评审、测试,调试、担保、返工,多次安装、派驻人员,延迟交付、信誉丢失,客户减少、开发周期过长,零乱的代码、无效的文档,6,的成本曲线思想,6,的七步骤方法,(1),找出问题并予以描述,选定问题,指定责任人,确立时间表,研究当前系统,收集当前系统的问题数据并整理,鉴别各类原因,利用各种技术找出产生问题的各类原因并排序,规划并实现解决方案,制定解决方案,计划并予以实施,6,的七步骤方法,(2),评估实施效果,收集并分析度量数据,检查解决方案的实施效果,将有效方案制度化,制定工作手则,使方案得以维系,检讨成效并制定新一轮规划,6,的,PDCA,质量,计划,确定问题,现状研究,识别原因,实施,计划并实施,检查,评估效果,动作,制度化,检讨并下一步规划,6,的实施角色,倡导者,高层经理,负责发起,6,质量管理过程,黑带,6,专家,负责制定规程、计划并监督实施,大黑带:负责培训工作的教师,绿带,6,实施者,负责完成,6,质量过程的各类活动,包括度量、分析、制定方案等,领域专家,协助实施,6,,清除障碍,降低实施风险,白带,广大员工,了解,6,知识,配合,6,质量工作,各角色的一般比例,20,000,员工:,400,个绿带、,20,个黑带、,1,个大黑带,6,机构组成,6,的项目组织,工作组,绿带,6,过程流,管理者,专家,黑带,1.,度量,2.,分析,3.,改进,4.,控制,定义,实施,财政,员工,SQA,目标,SQA,总目标,减少并纠正实际的软件开发过程和软件开发结果与预期的软件开发过程和软件开发结果的不符合情况,SQA,方法,通过在软件开发周期中尽可能早地预期或检测到不符合情况,(,错,),误,来防止错误的发生,并减少错误纠正的成本,错误发现得越早,造成的损失越小,修改的代价也越小,SQA,目标,软件开发不同阶段:,需求分析:,Requirements Analysis,规格定义:,Software Specifications,设计:,Design,编码:,Coding,测试:,Testing,维护:,Maintenance,SQA,目标,需求分析:,Requirements Analysis,确保客户提出的要求是可行的,确保客户了解自己提出的需求的含义,并且这个需求能够真正达到他们的目标,确保开发人员和客户对于需求没有误解或者误会,确保按照需求实现的软件系统能够满足客户提出的要求,SQA,目标,规格定义:,Software Specifications:,确保规格定义能够完全符合、支持和覆盖前面描述的系统需求,可以采用建立需求跟踪文档和需求实现矩阵的方式,确保规格定义满足系统需求的性能、可维护性、灵活性的要求,确保规格定义是可以测试的,并且建立了测试策略,确保建立了可行的、包含评审活动的开发进度表,确保建立了正式的变更控制流程,SQA,目标,设计:,Design:,确保建立了设计的描述标准,并且按照该标准进行设计,确保设计变更被正确的跟踪、控制、文档化,确保按照计划进行设计评审,确保设计按照评审准则评审通过并被正式批准之前,没有开始正式编码,SQA,目标,编码:,Coding:,确保建立了编码规范、文档格式标准,并且按照该标准进行编码,确保代码被正确地测试和集成,代码的修改符合变更控制和版本控制流程,确保按照计划的进度编写代码,确保按照进化的进度进行代码评审,SQA,目标,测试:,Testing:,确保建立了测试计划,并按照测试计划进行测试,确保测试计划覆盖了所有的系统规格定义和系统需求,确保经过测试和调试,软件仍旧符合系统规格和需求定义,SQA,目标,维护:,Maintenance:,确保代码和文档同步更新,保持一致,确保建立了变更控制流程和版本控制流程,并按照这些流程管理维护过程中的产品变化,确保代码的更改仍旧符合编码规范、通过代码评审,并且不会造成垃圾代码或冗余代码,对,SQA,工作的误解,误解:,SQA,工作就是做测试;,软件测试是一种有效的提高软件质量的手段,但测试毕竟是一种事后的、检验性的,,如何在软件生产过程中保证软件过程的质量和效率其实比单纯的产品检验具有更重要的意义。不断地改进我们的软件过程是,SQA,的一项最重要的任务。,SQA,活动一览,SQA,主要活动,识别质量需求;,参与项目计划的制定;,制定,SQA,计划;,按照,SQA,计划评审工作产品;,按照,SQA,计划实施审核工作;,编写,SQA,报告,通知相关人。,处理不合格项。,监控软件产品的质量,采集软件质量保证活动的数据,度量软件质量保证活动,SQA,活动识别质量需求,识别质量需求,SQA,小组应参与项目组的需求开发工作,站在客户的角度,协助项目组识别质量指标和可能的质量风险,反应在系统需求中。,注:,在项目开始时,,SQA,小组就应为项目组配备,SQA,人员。,SQA,活动参与项目计划制定,参与项目计划制定,SQA,小组进行有关项目计划、标准和规程的咨询。,SQA,小组验证项目计划、标准、规程是否到位,且可用于评审和审核项目。,SQA,小组参与项目计划的评审。,SQA,活动制定,SQA,计划,制定,SQA,计划,在项目计划制定的同时,,SQA,小组负责制定,SQA,计划。,项目经理、项目组、,SCM,小组评审,SQA,计划。,SQA,计划经,SQA,经理审核、,CCB,批准后纳入配置管理。,SQA,活动评审工作产品,SQA,小组评审工作产品,依据,SQA,计划,,SQA,小组可以以下列方式评审工作产品:,SQA,小组参与项目组评审,SQA,小组独立对工作产品评审,SQA,小组邀请别的专家评审工作产品,依据适用的标准、规程和合同需求,,SQA,小组客观的评价工作产品,SQA,小组识别和记录工作产品中的不合格项,验证纠正结果,跟踪到问题关闭,SQA,活动审核,SQA,小组实施审核工作,根据,SQA,计划,,SQA,小组审核项目组和相关组的活动,评价其与计划、适用的标准和规程的一致性。,SQA,小组记录和识别项目活动中的不合格项,验证纠正结果,跟踪到问题关闭。,SQA,活动报告,SQA,小组报告,SQA,小组应及时提交审核报告或不合格项报告给项目经理及项目组相关人员。,SQA,人员定期(一般是每周)提交,SQA,报告给项目经理和,SQA,经理。,SQA,经理定期(一般是每月)提交,SQA,报告给高层管理和,SEPG,。,SQA,活动处理不合格项,处理不合格项,SQA,小组提交不合格报告给项目组相关人;,项目经理负责在规定的期限内进行处理;,SQA,小组将项目组未能及时处理的不合格项报告高层管理者(事业部、研究所高层管理或产品办公室);,高层管理者负责这些不合格项的裁决;,SQA,人员跟踪不合格项到关闭。,监控软件产品质量,对软件产品的验收,把握采购软件的质量,监控分承包商的软件质量保证工作,收集项目各个阶段数据,记录不协调事项,跟踪不协调事项直至解决,收集,各阶段的评审和审计情况,度量和改善,SQA,活动,测量的目的是为了判断,SQA,活动的成本和进度状态。,与其计划相比,,SQA,活动完成的里程碑数;,在,SQA,活动中完成的工作,花费的工作量及支出的费用;,与其计划相比,产品审计和活动评审的次数,SQA,活动的验证,SQA,活动应接受以下的验证:,事业部、研究所管理层、产品办公室定期或事件驱动的评审,SQA,活动。,项目经理定期或事件驱动的评审,SQA,活动。,SEPG,或其它研究所的,SQA,小组定期或事件驱动的评审,SQA,活动。,合适时,客户的,SQA,人员定期评审,SQA,活动。,SQA,过程文档,SQA,过程文档,软件质量保证规程,软件质量保证审核指导书,软件质量保证指导书,SQA,审核单,过程控制实例,(1),软件项目,:,1000k LOC,新增,&,变更代码,前提条件,每千行代码,100,个缺陷,共计,100k,个缺陷,缺陷移除:,审查、编译、测试,修正,1,个缺陷的平均成本,审查,:1 PH(,人时,),编译,:1 PH,测试,:10 PH,编译和各级测试的缺陷移除几率,:,50%,过程控制实例,(2),案例,1:,75%,审查效率,审查阶段发现缺陷数,100k,0.75=75k,移除成本,:75k 1=75k PH,编译阶段发现缺陷数,(100k 75k)0.5=12500,移除成本,:12.5k 1=12.5k PH,测试阶段测试发现缺陷数,12500 (1 0.5,4,)=11719,移除成本,:11719 10 117.2k PH,移除成本总计,75k+12.5k+117.2k=204.7k PH,遗留到使用阶段的缺陷数,12500 11719=781,即:每千行约,0.8,个,过程控制实例,(3),案例,2:,50%,审查效率,审查阶段发现缺陷数,100k,0.5=50k,移除成本,:50k 1=50k PH,编译阶段发现缺陷数,(100k 50k)0.5=25000,移除成本,:25k 1=25k PH,测试阶段测试发现缺陷数,25000 (1 0.5,4,)=23438,移除成本,:23438 10 234.4 k PH,移除成本总计,50k+25k+234.4k=309.4k PH,遗留到使用阶段的缺陷数,25000 23438=1562,即:每千行约,1.6,个,过程控制实例,(4),差异:,审查效率:,75%,50%,,下降,33%,遗留到使用阶段的缺陷数:,0.8,1.6/KLOC,,,上升,100%,增加成本,309.4k,204.7k=,104.7k PH,约合,50,人年,即,50,个程序员,多付出,1,年,的时间,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服