1质量及软件质量管理项目管理中心-秦倩2014-2-10质量及软件质量管理2项目管理中心-秦倩2014-2-10内容提要一.通用质量基本概念(ISO)二.通用的质量管理理论、方法和工具三.软件质量概念(ISO、CMMI)四.软件质量管理理论、方法和工具质量的定义什么是质量?克劳士比:质量即符合要求。ISO9000:2005《质量管理体系基础和术语》:一组固有特性满足要求的程度。我国国家标准GB/T1900-2000:一组固有特性满足要求的程度质量还包括以下含义:1)质量的主体是产品、体系、项目或过程,质量的客体是顾客和其他相关方2)质量的关注点是一组固有的特性,而不是赋予的特性3)质量是满足要求的程度4)质量的动态性5)质量的相对性质量管理的定义什么是质量管理?ISO9000:2005《质量管理体系基础和术语》:在质量方面指挥和控制组织的协调的活动。注:在质量方面的指挥和控制活动,通常包括制定质量方针和质量目标,以及质量策划、质量控制、质量保证和质量改进。质量管理活动包括:质量策划质量控制质量保证质量改进PDACPDAC质量管理方法:戴明环6质量管理活动质量策划—质量管理的一部分,致力于制定质量目标、确定必要的运行过程和资源以实现质量目标;质量控制—质量管理的一部分,致力于满足质量要求;质量保证—质量管理的一部分,致力于提供质量要求会得到满足的信任”。质量改进—质量管理的一部分,致力于增强满足质量要求的能力。ISO9000:2005《质量管理体系基础和术语》7质量管理思想-基本原则ISO9001:2008《质量管理体系要求》以顾客为关注焦点供方互利过程方法管理的系统方法持续改进基于事实的决策方法全员参与领导作用质量管理的方法质量管理方法1、PDCA循环是一种科学的管理程序,称为“管理循环,戴明环”。2、6σ管理法是一种统计评估法,核心是追求零缺陷生产,防范产品责任风险,降低成本,提高生产率和市场占有率,提高顾客满意度和忠诚度。PDACPDAC•PPlan计划•DDo执行•CCheck检查•AAction改进Control(管理)散布平均质量管理工具方法材料机床环境操作者老七种工具:层别法、因果图、直方图、散点图、排列图、控制图、检查表。新七种工具:矩阵图、系统图、关联图、亲和图、过程决策图、关键路线图、矩阵数学解析法。051015202530鱼骨图直方图控制图软件质量的定义什么是软件质量?ISO9000:2005《质量管理体系基础和术语》:无此定义。CMMI:无此定义。其他标准:ANSI/IEEEStd729-1983定义软件质量为“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。软件质量管理的定义软件质量管理确定一个软件产品的质量目标、建立实现这些目标的计划以及监督和调整软件计划、软件工作产品、活动和质量目标以满足顾客和最终用户需要和期望的过程。SW-CMM[CMU/SEI-93-TR-025]定义过程质量OK否是开发产品评估产品质量改进过程将过程制度化基于过程的质量Page软件质量管理的主要环节质量保证(QualityAssurance)质量控制(QualityControl)质量工程的实践(QualityEngineeringPractices)Page软件质量保证什么是软件质量保证?由(相对)独立的质量管理人员在项目的整个开发周期中对项目所执行的过程和产生的工作产品进行监督和检查,确保其符合预定的要求。条件:组织已经制定了较为完备的开发和管理过程体系质量保证的目的确保过程得到有效地执行,并推进过程改进就项目过程的执行情况和所构造的产品向管理者提供适当的可视性工具和技术审计培训和引导Page理解QA的角色QA关注的是:正确的贯彻和使用过程客观地审视项目过程的符合性与SEPG组共同分析执行过程所产生的结果,以支持过程改进合作协调地开展工作提供执行过程的反馈意见为项目人员掌握过程提供指导QA不承担:对模型(CMM/CMMI)符合性的监督验证项目工作产品的好坏“goodness”产品质量的责任强迫对过程的遵循Page质量控制为评价和验证已开发的产品而执行的活动和技术产品是否满足质量要素(qualityfactors)的要求?产品(包括生命周期的工作产品)是否具有可接受的质量?工具和技术同行评审/技术评审测试质量控制的目的发现在工作产品中隐藏的缺陷和问题为产品的质量分析提供数据Page评审评审(Review):软件技术人员(包括管理人员、用户代表)以会议的形式对软件产品进行评论,识别存在的问题,并判断其是否满足预期的要求。同行评审(Peerreview)在工作产品的开发进程中由同行们对该工作产品进行的评审,目的是识别要消除的缺陷。[CMMIV1.2]方式:审查(Inspection)、走查(walkthrough),……评审过程评审的检查单评审记录和报告Page测试测试-对产品的动态检测和评价不同层次,单元测试、集成测试,..….不同的类型,黑箱、白箱……目的:验证产品符合技术文档预期的特性、功能和性能等要求;识别产品的缺陷。正式测试过程测试规程、方法和工具缺陷的记录和跟踪机制Page评审和测试关注的重点过程发现缺陷的能力对过程活动和产品质量状况的了解Weeks12345678910255075100125150OpenClosedTotalTroubleReportsWeeks12345678910255075100125150OpenClosedTotalWeeks12345678910255075100125150OpenClosedTotalTroubleReportsPage质量工程确保将质量构建到软件产品而对需求、设计、代码和验证过程和结果所进行的各种分析、研究和调控,以确保产品的可靠性、可维护性和其它质量要素得到满足的活动。早期的错误发现缺陷消除有效性分析质量成本的优化缺陷预防Page软件项目质量工程的实践质量分析模型质量分析的技术、方法和工具鱼骨图、Pareto图、趋势分析、统计过程控制等质量分析产生的共识尽可能早地发现并消除缺陷在软件开发周期的各阶段实施质量控制活动;收集质量管理的数据缺陷数据返工的工作量数据缺陷消除有效性分析;质量成本分析Page质量分析模型-缺陷消除错误修改引入缺陷发现进入本阶段前存在的缺陷未发现的缺陷结束本阶段时遗留的缺陷消除的缺陷逃逸的缺陷本阶段开发中注入的缺陷进入的缺陷进入的缺陷本阶段开发中注入的缺陷消除的缺陷+()/DRE=缺陷消除的有效性(DRE)缺陷修改修改引入的缺陷+当前的开发阶段阶段性缺陷消除的有效性Page尽早消除缺陷的价值0102030405060…100RequirementsDesignCodeSystemTestMaintenancePhaseErrorFound&FixedCosttoFix$1$5$20$50$100+缺陷修改的成本1:10:100Page多阶段消除缺陷比较阶段需求设计编码UTITST进入的缺陷1003407362951184760%的缺陷被消除401362951184719进入的缺陷100330699210631970%的缺陷被消除30992106319610030060095%100060%60%60%60%60%60%1950DREDRE10%缺陷×3Page缺陷数据是质量活动的基础策划将来的项目和项目的后续阶段积累的缺陷历史数据在项目策划中可以用来确立项目的质量目标估计缺陷密度缺陷消除率在开发进程中利用项目前期采集的缺陷数据来预测产品潜在的缺陷采取适当的措施来改进质量规划产品的维护工作利用缺陷数据评估过程项目缺陷预防错误发生的类别原因分析Page缺陷消除的模式DefectProfile010203040Req.DesignCodingUTITSTFieldProjectphaseDefectDensityDefectProfile010203040Req.DesignCodingUTITSTFieldProjectphaseDefectDensityPage分析缺陷数据对每次评审和测试活动收集的数据进行汇总和分析缺陷分布的趋势及其对产品质量的影响识别缺陷引入阶段缺陷密度-缺陷是否被充分地发现……Page缺陷消除有效性矩阵(DREMatrix)项目的DRE=148/166=89.2%高中警示DRE90%75-90%75%Page改进质量的途径-尽早消除缺陷在总体注入缺陷相同的情况下,尽早地消除缺陷可以使交付产品的质量大大提高。需求设计编码单元测试系统测试部件测试交付使用缺陷数Page缺陷预测WithRayleighModel开发阶段缺陷数需求设计编码单元测试系统测试部件测试交付使用Page小结软件质量管理是一项艰巨的任务了解质量管理的基础知识、方法和工具逐步实施质量管理的实践