1、软件项目管理软件项目管理软件项目管理软件项目管理第第6章项目质量管理章项目质量管理B如何看待的项目的质量?如何看待的项目的质量?2024/5/11 周六2.实例实例 曾经对一个国际性的软件公司作了一个调查,选择了由质量问题引起的10项额外工作,即“开发人员修正缺陷、测试人员验证缺陷、返工、设计或代码完成后的需求变化、不清楚或无效的缺陷报告、代码完成后补充的测试用例、由于缺陷修复后所做的回归测试、测试环境设置错误、产品发布后遗漏的缺陷验证、为产品发布后遗漏的缺陷出补丁包等”,统计结果表明,由于质量问题造成的成本(劣质成本)竟高达45.86%45.86%,差不多占开发总成本的一半。所以,软件项目质
2、量管理,不仅有助于提高软件产品质量,而且有助于缩短开发周期,降低成本2024/5/11 周六3.冰山一角冰山一角2024/5/11 周六4.真理真理v产品质量是生产出来的,不是检验出来的。威廉戴明v现实:现实:很多软件公司投入大量时间和精力来发现和修发现和修正正错误(需求、设计、实现),导致进度延期。少了些质量管理理解专业程序员中,扔进垃圾代码,因为错误无法交工而不断修改,最终开发出较好代码的故事2024/5/11 周六5.v软件的质量管理贯穿了整个软件开发周期。v质量管理不仅确保项目最终交付的产品满足质量要求,而且要保证项目实施过程中阶段性成果的质量。也就是保证软件需求分析、设计和代码的质量
3、,包括各种文档的质量v正如ISO8402所规定和倡导的:“质量管理是指确定质量方针、目标和职责,并通过质量体系中的质量策划、质量控制、质量保证和质量改进来使其实现的所有管理职能的全部活动。”质量管理质量管理2024/5/11 周六6.项目质量管理项目质量管理项目质量管理项目质量管理项目质量管理质量规划(始)质量规划(始).1 输入输入 .1 事业环境因素事业环境因素 .2 组织过程资产组织过程资产 .3 项目范围说明书项目范围说明书 .4 项目管理计划项目管理计划.2 工具和技术工具和技术 .1 成本效益分析成本效益分析 .2 基准对照基准对照 .3 实验设计实验设计 .4 质量成本质量成本
4、.5 其他质量计划工具其他质量计划工具.3 输出输出 .1 质量管理计划质量管理计划 .2 质量衡量指标质量衡量指标 .3 质量检查表质量检查表 .4 过程改进计划过程改进计划 .5 质量基准质量基准 .6 项目管理计划项目管理计划(更新更新)执行质量保证执行质量保证(中)(中).1 输入输入 .1 质量管理计划质量管理计划 .2 质量测量指标质量测量指标 .3 过程改进计划过程改进计划 .4 工作绩效信息工作绩效信息 .5 批准的变更请求批准的变更请求 .6 质量控制度量质量控制度量 .7 实现的变更请求实现的变更请求 .8 实现的纠正措施实现的纠正措施 .9 实现的缺陷修复实现的缺陷修复
5、.10 实现的预防措施实现的预防措施.2 工具和技术工具和技术 .1 质量计划工具和技术质量计划工具和技术 .2 质量审计质量审计 .3 过程分析过程分析 .4 质量控制工具和技术质量控制工具和技术.3 输出输出 .1 请求的变更请求的变更 .2 推荐的纠正措施推荐的纠正措施 .3 组织过程资产组织过程资产(更新更新).4 项目管理计划项目管理计划(更新更新)执行质量控制执行质量控制(尾)(尾).1 输入输入 .1 质量管理计划质量管理计划 .2 质量测量指标质量测量指标 .3 质量检查表质量检查表 .4 组织过程资产组织过程资产 .5 工作绩效信息工作绩效信息 .6 批准批准的变更请求的变更
6、请求 .7 可交付成果可交付成果.2 工具和技术工具和技术 .1 因果图因果图 .2 控制图控制图 .3 流程图流程图 .4 直方图直方图 .5 帕雷托帕雷托图图 .6 趋势图趋势图 .7 散点图散点图 .8 统计抽样统计抽样 .9 检查检查 .10 缺陷修复审查缺陷修复审查.3 输出输出.1 质量控制度量质量控制度量.2 确认的缺陷修复确认的缺陷修复.3 质量基准质量基准(更新更新).4 推荐的纠正措施推荐的纠正措施.5 推荐的预防措施推荐的预防措施.6 请求的变更请求的变更.7 推荐的缺陷修复推荐的缺陷修复.8 组织过程资产组织过程资产(更新更新).9 确认的可交付成果确认的可交付成果.1
7、0 项目管理计划项目管理计划(更新更新)2024/5/11 周六7.第第6章项目质量管理章项目质量管理6.1 质量管理概述质量管理概述6.2 项目质量的组织保证6.3 质量计划6.4 软件评审方法和过程6.5 缺陷预防和跟踪分析6.6 质量度量6.7 过程质量管理2024/5/11 周六8.质量管理概论质量管理概论v不同的质量管理方式:病入膏肓病入膏肓及早治疗及早治疗提前预防提前预防2024/5/11 周六9.6.1 质量管理概述质量管理概述v软件质量控制软件质量控制(SQC,Software Quality Control)是科学地测量过程状态的基本的方法。就象汽车表盘上的仪器,可以了解行驶
8、中的转速、速度、油量等。v软件质量保证软件质量保证(SQA,Software Quality Assurance)则是过程和程序的参考与指南的集合。就像汽车中的用户手册。v软件质量管理软件质量管理(SQM,Software Quality Management)才是操作的誓学,教你如何驾车,建立质量文化和管理思想。2024/5/11 周六10.四种不同的质量管理水平四种不同的质量管理水平v检查检查,通过检验保证产品的质量,符合规格的软件产品为合格品,不符合规格的产品为次品。只能判断产品质量,不检验工艺流程、设计、服务等,不能提高软件质量。相当于“软件测试/质量控制”;v保证保证,质量目标通过软
9、件开发部门来实现,制定质量目标和质量计划,保证软件开发流程软件开发流程合理性、流畅性和稳定性。相当于初期初期的“质量保证”;v预防预防,软件质量以预防为主,以过程管理为重,把质量的保证工作重点放在过程管理上。从需求、设计开始就引入预防思想,相当于成熟成熟的“质量保证”;v完美完美,以客户为中心,贯穿于软件开发生存期过程,全员参与,追求卓越,相当于“全面软件质量管理”。2024/5/11 周六11.质量管理质量管理的支持的支持质量管理质量管理技术(开发技术成熟技术(开发技术成熟度、开发工具、自动度、开发工具、自动化测试水平)化测试水平)方法(开发模型、方法(开发模型、开发流程)开发流程)基础设施
10、(质量文化、开发环境、基础设施(质量文化、开发环境、标准体系标准体系2024/5/11 周六12.技术层次的质量管理支持技术层次的质量管理支持v制定编程规范,有利于整体风格的统一、提高代码可读性、可维护性、可扩展性v组织应通过制定统一的模板来规范文档,统一文档内容和风格v实施覆盖生命周期的软件测试,包括单元、集成、系统测试,不仅要动态测试,也要静态测试(需求分析、系统设计需要评审和验证)v采用统计方法(一般是量化的数理统计分析)揭示产品特征和软件开发过程特征,发现各种不一致性问题2024/5/11 周六13.基础设施基础设施2024/5/11 周六14.第第6章项目质量管理章项目质量管理6.1
11、 质量管理概述6.2 项目质量的组织保证项目质量的组织保证6.3 质量计划6.4 软件评审方法和过程6.5 缺陷预防和跟踪分析6.6 质量度量6.7 过程质量管理2024/5/11 周六15.组织保证组织保证管理层测试组SQA组SEPG组项目组2024/5/11 周六16.组织保证(续)组织保证(续)v管理组管理组:很强的“质量第一”的意识,能制定有利于保证和提高质量的正确策略和方针,在整个组织中营造良好的质量文化。vSQASQA组组:从流程上对软件质量进行跟踪、控制和改进。即监督监督项目按已经定义的流程进行,并符合已定义的相关标准。如要求建立相关文档、需求变更控制v测试组测试组:负责对软件产
12、品进行全面的测试,包括需求评审、设计评审、功能和性能测试等,从中找出所存在的缺陷。测试组面向产品,进行事后检查。vSEPGSEPG组组:软件工程过程组,通常有软件专家组成,领导和协调过程改进的小组。其主要任务是推动企业所应用的过程的定义、维护和改进。类似于一个“立法”机构2024/5/11 周六17.第第6章项目质量管理章项目质量管理6.1 质量管理概述6.2 项目质量的组织保证6.3 质量计划质量计划6.4 软件评审方法和过程6.5 缺陷预防和跟踪分析6.6 质量度量6.7 过程质量管理2024/5/11 周六18.质量计划概述质量计划概述v质量计划:质量计划:进行项目质量管理,实施项目质量
13、方针和目标的具体规划。v质量计划通常在组织的质量方针指导下定义项目的质量目标,描述项目质量管理中所需的资源、职责分配,说明如何采用正确的流程和操作程序、质量控制方法和评审技术来保证质量。v软件质量计划需要覆盖软件开发和维护的整个生命周期,即需要对需求分析、设计、编码、测试、部署提出质量目标和要求,并就质量控制内容、方法和手段给出建议和指导。2024/5/11 周六19.6.3 质量计划质量计划6.3.1 质量计划的内容6.3.2 质量计划制定的步骤6.3.3 如何制定有效的质量计划6.3.4 质量计划的实施和控制2024/5/11 周六20.6.3.1 质量计划的内容质量计划的内容v目的和范围
14、v参考的文件列表v质量目标,总体目标,分阶段目标,分项目标v质量的任务,包括组织流程说明会,关键成果评审v参与质量管理的相关人员及其责任v对一些关键文档提出要求。如测试计划,配置管理计划v重申适合项目的相关标准。如文档模板标准,代码编写标准v评审的流程和标准。如明确区分代码评审和技术评审的不同点v配置管理要求,如代码版本控制、需求变更控制v问题报告和处理系统v采用的质量控制工具、技术和方法等2024/5/11 周六21.质量计划模板参照质量计划模板参照v 项目概述v 实施策略v 项目组织v 质量保证对象分析及选择v 质量保证任务划分v 实施计划v 资源计划v 记录的收集、维护与保存样例详见样例
15、详见P1412024/5/11 周六22.质量评审的内容和手段质量评审的内容和手段v内容内容1.需求说明评审2.设计文档评审3.测试计划评审4.功能性审核(内审)5.物理性审核(内审)6.管理评审v手段手段内审内审:部门内部审查自己的工作,或者由一个独立部门审查其他各部门的工作,以检查组织内部是否遵守已有的模板、规则和流程等复审复审:在软件开发生命周期每个阶段结束之前,都正式用结束标准对该阶段的阶段性成果进行严格的技术审查。2024/5/11 周六23.质量计划制定的步骤(质量计划制定的步骤(1)1.了解项目的基本概况,收集项目有关资料了解项目的基本概况,收集项目有关资料v重点了解项目的目标、
16、用户需求和项目的实施范围2.确定项目的质量目标确定项目的质量目标 v先根据项目总体目标和用户需求确定项目的质量总目标v再根据项目组成和划分来分解项目质量目标v然后建立各个具体的质量目标3.确定围绕质量目标的工作任务确定围绕质量目标的工作任务 v评审、跟踪、统计分析等4.明确项目质量管理组织机构明确项目质量管理组织机构 v配备各级质量管理人员、设备资源v确定质量管理人员的角色和责任,建立质量管理机构2024/5/11 周六24.质量计划制定的步骤(质量计划制定的步骤(2)-项目质量责项目质量责任表任表角色质量责任项目经理协助质量保证人员、测试组长的工作。进行全程的质量跟踪,报告质量问题,负责质量
17、改进措施的实施质量保证人员对开发和测试过程进行质量控制,制定质量计划并负责实施、监控,组织所要求的各类评审会议等系统分析员 负责需求评审的组织和实施,保证需求定义符合相关的规范架构师开发组负责人,负责设计的评审编程人员负责详细设计、编程、单元测试测试组组长 参与需求、设计评审等会议。制定测试计划和测试用例的评审,执行测试的质量跟踪测试人员编写测试用例,并参与评审文档编写人员审查相关文档是否采用了最新的模板,是否符合文档规范的要求2024/5/11 周六25.质量计划制定的步骤(质量计划制定的步骤(3)5.制定项目质量控制程序制定项目质量控制程序 v项目质量控制工作程序v初始的检查试验和标识程序
18、v项目实施过程中的质量检查程序v不合格项目产品的控制程序v各类项目实施质量记录的控制程序和交验程序6.项目质量计划的评审项目质量计划的评审 v如果项目规模较大,可以按照子项目,或根据项目进度分阶段编制和评审项目计划2024/5/11 周六26.6.3.3 如何制定有效的质量计划如何制定有效的质量计划质量计划有效性体现在:质量计划有效性体现在:1.项目质量计划要保证项目按计划期限完成2.要处理好项目质量计划与其他计划之间的关系保证项目质量计划有效性的几种方法:1.利益利益/成本分析成本分析。效益与成本之比尽可能的大。利益:减少重复性工作(避免返工),增加投资者的满意度成本:项目质量管理活动的付出
19、2.基准基准:以其他同类历史项目的质量计划进行比较,为改进项目实施过程提供思路和可参考的标准。3.流程图:流程图:因果图:主要用来寻找引起质量问题的根本原因系统流程图或处理流程图:可以帮助找出解决所遇质量问题的相关方法4.试验设计。试验设计。尝试找出最影响质量的因素、验证质量管理的合理性2024/5/11 周六27.6.3.4 质量计划的实施和控制前言质量计划的实施和控制前言v质量计划主要是获得产生质量缺陷的原因,从而减少软件缺陷或避免将来犯类似错误v通过设置检查点、验证点,对阶段性成果进行评审或完成质量评估,以确定项目阶段性成果是否达到所设定的质量标准。v项目收尾阶段的质量控制项目收尾阶段的
20、质量控制是一个非常重要而又容易忽视的内容。它需要检查项目文件资料的完备性,包括评审会议记录、测试报告等。同时进行项目总结2024/5/11 周六28.6.3.4 质量计划的实施和控制(续)质量计划的实施和控制(续)v加强对质量计划执行情况的检查,及时发现问题v在项目总体目标不变的前提下,应根据原质量计划和实际情况进行比较分析,找出问题产生的根本原因v针对原因,制定出相应的技术保证措施,对原计划做出适当的调整,以确保项目质量总目标的圆满实现。2024/5/11 周六29.第第6章项目质量管理章项目质量管理6.1 质量管理概述6.2 项目质量的组织保证6.3 质量计划6.4 软件评审方法和过程软件
21、评审方法和过程6.5 缺陷预防和跟踪分析6.6 质量度量6.7 过程质量管理2024/5/11 周六30.6.4 软件评审方法和过程软件评审方法和过程6.4.1 软件评审的方法和技术软件评审的方法和技术6.4.2 角色和责任角色和责任6.4.3 软件评审过程软件评审过程6.4.4 如何有效地组织评审如何有效地组织评审2024/5/11 周六31.软件评审软件评审v不管你有没有发现他们,缺陷总是存在,问题只是你最终发现它们时,需要多少纠正成本。评审的投入把质量成本从评审的投入把质量成本从昂贵的、后期返工转变为早期的缺陷发现昂贵的、后期返工转变为早期的缺陷发现。卡尔威格 2024/5/11 周六3
22、2.软件评审的方法软件评审的方法v临时评审临时评审(Ad hoc review):自发使用v轮查轮查(Passroud):邮件分发审查,异步进行v互为复审互为复审:两个人工作内容和技术比较接近,涉及人员很少,复审效率较高,如极限编程v走查走查(Walkthrough):对评审对象要从头到尾检查一遍v审查审查(Inspection):系统化、严密的集体评审方法最不正式最不正式最正式最正式临时评审临时评审轮查轮查互为复审互为复审走查走查 会议审查会议审查2024/5/11 周六33.软件评审方法(续)软件评审方法(续)v在软件开发过程中,各种评审技术交替使用,其原则:1.在不同的开发阶段和不同的场
23、合选择适合的评审方法需求和设计评审初稿:轮查需求和设计最终定稿之前:评审会议代码评审:互为评审、自发采用“临时评审”2.对最可能产生较大风险的工作成果,要采用最正式的评审方法需求分析报告:走查或者会议评审核心代码:走查或者会议评审2024/5/11 周六34.软件评审技术软件评审技术v检查表技术:检查表技术:简单、提高评审效率、改进评审质量。例如缺陷检查表列出容易出现的典型错误,帮助找出缺陷,排除隐患v场景分析技术场景分析技术:更能发现错误和问题,耗时多。多用于需求文档评审,发现遗漏和多余的需求v工具:工具:提高效率,如IBM的RRP、NASA的ARM,对导入的文档统计分析,找出各种词语的出现
24、概率,对完整性和二义性进行分析2024/5/11 周六35.6.4.2 评审过程中的角色和责任评审过程中的角色和责任v小组组长v作者v读者v记录者v评审员v审核者v协调者2024/5/11 周六36.6.4.3 软件评审过程软件评审过程(1)2024/5/11 周六37.软件评审过程软件评审过程(2)v计划确定被评审对象确定期望达到的评审目标计划选用的评审方法v会议准备确定评审组长:经验丰富、技术能力强、工作认真负责、不能和作者有密切关系(保持评审客观性)选定评审材料,找出哪些是必须评审的分发评审材料制定相应的活动进度表,提前2-3天通知小组成员2024/5/11 周六38.软件评审过程软件评
25、审过程(3)召开会议:召开会议:1.简要说明待审查内容、重申会议目标2.详细说明评审材料,了解各评审员对材料的了解是否一致3.如理解不一致,容易发现问题(二义性、遗漏、错误假设),从而找出缺陷4.记录问题和缺陷5.记录员向小组重述记录的缺陷6.评审决议座次图座次图主持人作者记录员列席人员内审员技术专业人员2024/5/11 周六39.软件评审过程软件评审过程(4)v评审决议的几种情况接受有条件接受:修订其中的一些小缺陷后通过不能接受评审未完成v问题跟踪(返工)验证作者是否恰当地解决了评审会上所列出的问题考虑是否需要再次召开评审会议2024/5/11 周六40.评审评审注意事项注意事项v明确自己
26、的角色和责任;v熟悉评审内容,为评审做好准备,做细做到位;v关注问题,针对问题阐述观点,而不是对人;v可以分别讨论主要的问题和次要的问题;v在会议前或者会议后可以就存在的问题提出自己的建设性的意见;v提高沟通能力,采取适当的、灵活的表述方式;v对发现的问题,要跟踪到底。2024/5/11 周六41.6.4.4 如何有效地组织评审如何有效地组织评审什么叫有效评审:什么叫有效评审:尽可能、尽早地发现问题和缺陷高效、省时、省力实施要点:实施要点:把握好流程和评审目标 认真、仔细地阅读评审材料,不断思考 善于提问 充分沟通一切围绕用户需求进行。用户?用户的操作习惯?用户的业务流程?应用场景和操作模式2
27、024/5/11 周六42.评审评审组织方法组织方法v分层评审方法分层评审方法(高层次、低层次)1.先总体后细节先总体后细节,避免过早陷入细节,只见树木,不见森林2.高层次评审高层次评审:主要评审产品是否满足客户的需求和期望,是否具有合理的功能层次性和完备性,能否满足客户各个方面的需求3.低层次评审低层次评审:逐字逐行地评审文档的各项描述,包括文字、图表,要求准确、完整、清晰。比如,需要较高的性能、多数情况下支持.vWeb页的刷新响应时间不超过3秒(不专业、不明确)v每一个页面访问的响应时间不超过3秒2024/5/11 周六43.评审评审组织方法(续)组织方法(续)v分类评审方法分类评审方法(
28、分业务需求、功能需求、非功能需求、用户操作性需求等)业务需求业务需求:最基本的需求、核心需求。用户的高层代表关注。资深人员(测试经理)参加评审。功能性需求功能性需求:用户的中层人员关注。用户的中层人员和各个功能模块负责人参加评审。操作性需求操作性需求:用户的操作人员关注。具体操作人员和测试工程师参加评审v分阶段评审方法,比如:分阶段评审方法,比如:目标性需求形成时,系统功能框架形成时,当功能细化成几个部分后,对每个部分分别进行,对关键的非功能性进行单独评审对整体的需求进行全面评审2024/5/11 周六44.第第6章项目质量管理章项目质量管理6.1 质量管理概述6.2 项目质量的组织保证6.3
29、 质量计划6.4 软件评审方法和过程6.5 缺陷预防和跟踪分析缺陷预防和跟踪分析6.6 质量度量6.7 过程质量管理2024/5/11 周六45.6.5 缺陷预防和跟踪分析缺陷预防和跟踪分析6.5.1 缺陷预防缺陷预防6.5.2 缺陷分析缺陷分析6.5.3 鱼骨图鱼骨图 软件缺陷不仅仅局限于程序功软件缺陷不仅仅局限于程序功能的问题,任何与用户需求不符合能的问题,任何与用户需求不符合的地方都是缺陷。需求说明、设计的地方都是缺陷。需求说明、设计文档、测试用例等文档中也同样存文档、测试用例等文档中也同样存在缺陷在缺陷2024/5/11 周六46.6.5.1 缺陷预防缺陷预防-whyv质量大师克劳士比
30、提倡“零缺陷管理”,在传统工业工程中深受欢迎。零缺陷管理的中心思想:第一次就把事情做第一次就把事情做正确,从而消除劣质成本正确,从而消除劣质成本。v项目管理既要保证质量又要降低成本,最佳结合点最佳结合点就是要求每一个人“第一次把事情做好”v软件产品的质量是做出来的,不是测试出来的。上千人的印度软件公司,只有5-6个SQA,无测试团队,软件质量依旧很好。2024/5/11 周六47.6.5.1 缺陷预防缺陷预防-howv从流程上加强控制建立和规范工作流程,加强评审过程改进v采用有效的工作方法代码评审单元测试v提高个人的技术水平自我学习和提高v延伸:测试驱动开发TDD2024/5/11 周六48.
31、6.5.2 缺陷分析缺陷分析(1)v缺陷分析:缺陷分析:将软件开发、运行过程中产生的缺陷进行必要的收集,对缺陷的信息进行分类和汇总统计v作用作用:通过缺陷分析,可以发现各种类型缺陷发生的概率,掌握缺陷集中的区域,明确缺陷的发展趋势,了解缺陷产生的主要原因。以便有针对性地提出遏制缺陷发生的措施,降低缺陷数量。v缺陷收集工具缺陷收集工具:IBM的RTC、MantisBT、Bugfree、Bugzilla2024/5/11 周六49.6.5.2 缺陷分析缺陷分析(2)v缺陷趋势分析缺陷趋势分析(实时、累积)v缺陷分布分析缺陷分布分析(如缺陷产生的原因、阶段、来源)2024/5/11 周六50.趋势趋
32、势分析趋势趋势分析v缺陷趋势分析缺陷趋势分析(实时、累积):针对缺陷数目随时间而不断变化的趋势进行分析,了解缺陷的发现或修正过程是否符合期望的规律性,是否出现异常现象。v需要统计每天的缺陷发现和修订情况。2024/5/11 周六51.缺陷发展趋势分析示例缺陷发展趋势分析示例2024/5/11 周六52.缺陷分布分析及示例缺陷分布分析及示例不同模块的缺陷分布图不同模块的缺陷分布图 不同阶段的缺陷分布图不同阶段的缺陷分布图 v缺陷分布分析缺陷分布分析:一种横向分析,即分析缺陷在功能模块、缺陷类型、缺陷产生原因等不同方面的分布情况。2024/5/11 周六53.分布分析示例分布分析示例 2不同级别的
33、缺陷分布图不同级别的缺陷分布图 2024/5/11 周六54.6.5.3 鱼骨图鱼骨图v可以更全面地探讨各种类别的原因v鼓励通过自由讨论发挥大家的创造性 v提供问题与各类原因之间关系的直观表示 鱼骨图鱼骨图,也叫因果分析图,它是分析影响事物质量形成的诸要素间因果关系的一种分析图。因为其形状像鱼骨,俗称鱼骨图。2024/5/11 周六55.鱼骨图的应用过程鱼骨图的应用过程 鱼骨图分析法要完成从主刺到小刺的思维和分析过程鱼骨图分析法要完成从主刺到小刺的思维和分析过程,一般分三步:1.确定问题:或实际问题,或潜在问题2.找出问题的主要原因:可以采用5M方法Manpower(人力):造成问题产生的人为
34、因素是什么Machinery(机械):软硬件条件对事件的影响Materials(物料):基础的准备以及原材料Methods(方法):与事件相关的方式与方法是否正确有效Mother-nature(环境):内、外部环境因素的影响3.根据问题类别,确定细节原因2024/5/11 周六56.示例示例2024/5/11 周六57.工具工具XMind 2008 Pro2024/5/11 周六58.第第6章项目质量管理章项目质量管理6.1 质量管理概述6.2 项目质量的组织保证6.3 质量计划6.4 软件评审方法和过程6.5 缺陷预防和跟踪分析6.6 质量度量质量度量6.7 过程质量管理2024/5/11
35、周六59.6.6 质量质量度量度量6.6.1 度量要素度量要素6.6.2 基于缺陷的质量度量基于缺陷的质量度量2024/5/11 周六60.质量度量的作用质量度量的作用1.有效的沟通和改进可见性。2.尽早的发现和更正问题。3.作出关键的权衡。4.跟踪特定的项目目标。按时?质量改进?5.管理风险。风险降低了吗?6.有助于决策。7.计划未来的项目。做为历史数据!2024/5/11 周六61.6.6.1 度量要素度量要素v项目度量项目度量:项目的规模、成本、工作量、进度、生产力、风险、顾客满意度v产品度量产品度量:以质量度量为中心,包括功能性、可靠性、易用性、可维护性、可移植性v过程度量过程度量:成
36、熟度、管理、生命周期、生产率等 2024/5/11 周六62.度量的表示方法度量的表示方法v数据v图表v模型:为了某种特定目的而对研究对象所做的一种简化的一种简化的描述或者模拟描述或者模拟。可以帮助澄清元素间的相互关系,识别关键元素,使得复杂信息简单易懂。2024/5/11 周六63.6.6.2 基于缺陷的基于缺陷的质量度量质量度量-代码质量代码质量v 代码质量代码质量BTPi:测试过程中发现的各种级别缺陷的数目。BFi:产品发布之后发现的各种级别缺陷的数目。Wli:各个缺陷的权重系数,详见P159页的表6-6WTP:测试过程中发现的缺陷的权重(测试小组内、外发现的缺陷)WF 产品发布之后的缺
37、陷的权重KCSI:新增加的和修改的千行代码数代码质量指标:这个值越低,说明发现的缺陷越少或者严重性越低,同时说明代码质量越高代码质量代码质量=2024/5/11 周六64.6.6.2 基于缺陷的基于缺陷的质量度量质量度量产品质量产品质量v 产品质量产品质量WF 产品发布之后的缺陷的权重KCSI:新增加的和修改的千行代码数指标含义:指标含义:这个指标值越低,说明遗留给客户的缺陷越少或者严重性越低,同时说明产品发布的质量越高。产品质量产品质量=2024/5/11 周六65.6.6.2 基于缺陷的基于缺陷的质量度量质量度量测试有效性测试有效性v 测试有效性测试有效性WT:整个产品中由测试小组发现的所
38、有缺陷的权重,不仅包含了测试小组在测试阶段发现的缺陷,也包括产品发布之后由测试小组发现的缺陷WTP:测试过程中发现的缺陷的权重(测试小组内、外发现的缺陷)WF 产品发布之后的缺陷的权重指标含义:指标含义:这个指标值越高,约接近100%,说明测试小组的有效性(效率)越高。做为高水平的测试团队,可以达到90-95%测试有效性测试有效性=2024/5/11 周六66.第第6章项目质量管理章项目质量管理6.1 质量管理概述6.2 项目质量的组织保证6.3 质量计划6.4 软件评审方法和过程6.5 缺陷预防和跟踪分析6.6 质量度量6.7 过程质量管理过程质量管理2024/5/11 周六67.6.7 过
39、程质量管理过程质量管理6.7.1 过程质量度量6.7.2 缺陷移除和预防2024/5/11 周六68.6.7.1 过程质量度量过程质量度量v产品的质量在一定程度上依赖于过程的质量。v软件过程软件过程质量的度量:的度量:对软件开发过程中各个方面质量指标进行度量,目的在于预测过程的未来性能,减少过程结果的偏差,对软件过程的行为进行目标管理,为过程控制、过程评价、持续改善建立量化管理奠定基础v过程质量度量的指标指标有:过程缺陷密度整体缺陷清除率 阶段性缺陷清除率缺陷到达模式2024/5/11 周六69.过程质量度量过程质量度量过程缺陷密度过程缺陷密度v过程缺陷密度(Density In Proces
40、s Faults,DIPF):用来判定过程产品的质量,以及检验过程的执行程度。vDn:某阶段或整个项目被发现的缺陷数vSp:被测试的软件产品规模数(如代码行数、功能点数、对象数等)v当DIPF过低时,应考虑两种情况:1.软件产品质量很好,缺陷很少2.方法或者能力不到位,不能发现产品中的某部分缺陷DIPF=Dn/Sp 2024/5/11 周六70.过程质量度量过程质量度量整体缺陷清除率整体缺陷清除率v缺陷被清除的程度缺陷被清除的程度能反映出项目组在质量上的工作表现,也能反映待发布的产品质量。v如果开发中大量的严重缺陷未被清除,可能阻止测试进行,也必然影响软件过程的质量和性能v缺陷清除率缺陷清除率
41、(Defect Removal Efficiency,DRE)度量缺陷清除的程度。2024/5/11 周六71.过程质量度量过程质量度量整体缺陷清除率(续)整体缺陷清除率(续)假定假定vF:软件规模的功能点数vD1:软件开发过程中发现的所有缺陷数vD2:软件发布后发现的缺陷数vD:发现的总缺陷数。D=D1+D2。则则v质量=D2/Fv缺陷注入率=D/Fv整体缺陷清除率=D1/Dv例如例如:某系统有100个功能点,开发中发现了20个缺陷,提交后又发现了3个错误。v解解:D1=20,D2=3,D=D1+D2=23。质量=D2/F=3/100 缺陷注入率=D/F=23/100 整体缺陷清除率=D1/
42、D=3/23业界平均水平为80%高水平软件公司可达到95%2024/5/11 周六72.过程质量度量过程质量度量阶段性缺陷清除率阶段性缺陷清除率v清除软件缺陷的难易程度在各个阶段不同。比如需求分析问题、设计错误的修改相对困难些v引入阶段性缺陷清除率,细化DRE指标。过程中注入的缺陷数陷数(该阶段)开发该阶段入口处存在的缺)排除的缺陷数(该阶段1002024/5/11 周六73.过程质量度量过程质量度量缺陷到达模式缺陷到达模式v问题:问题:产品的缺陷密度或者测试阶段的缺陷率是概括性指标。两个正在开发的软件产品,其缺陷密度是一样的,但其质量差异可能较大,一个发布前的缺陷多,而另一个发布后的缺陷多。
43、如何描述这种差异呢?v缺陷到达模式缺陷到达模式可以提供这种过程信息。模式一表明:测试团队越成熟,峰值到达得越早,纠正成本越低,软件质量越高。2024/5/11 周六74.过程质量度量过程质量度量缺陷到达模式(续)缺陷到达模式(续)缺陷到达模式的作用:缺陷到达模式的作用:1.可以用于整个软件开发周期或者某个特定的开发阶段(单元测试阶段、系统测试阶段等);2.可以扩展到修正的缺陷、关闭的缺陷,可以获取有关开发人员工作效率分析、缺陷修正进程分析、质量进程分析。2024/5/11 周六75.过程质量度量过程质量度量缺陷发现率缺陷发现率v缺陷发现率 bug/KLOCKLOC是指千行代码,而bug/KLO
44、C的意思是每千行代码平均产生的缺陷数量。CMM5CMM50.320.322024/5/11 周六76.6.7.2 缺陷移除和预防方法缺陷移除和预防方法v经常查看缺陷数据并更新缺陷检查表。经常查看缺陷数据并更新缺陷检查表。当发现什么地方做得好就保持,发现什么地方做得不好就反思如何改进并更新检查表。不断地,检查表就变成了个人经验的总结。v数据记录和分析数据记录和分析v有效的设计。有效的设计。v更完善彻底的设计更完善彻底的设计2024/5/11 周六77.本章小结本章小结v项目质量保证的组织架构(测试组、管理层、SQA组、SEPG组)v质量计划制定的步骤(6步)v软件评审的方法(5种)、技术(检查表技术、场景分析技术)、过程v缺陷趋势分析、缺陷分布分析、鱼骨图v质量度量代码质量产品质量测试有效性v过程质量度量过程缺陷密度整体缺陷清除率 阶段性缺陷清除率缺陷到达模式2024/5/11 周六78.思考题和课后作业思考题和课后作业v简要说明评审的流程v谈谈缺陷趋势分析和分布分析有什么不同,他们对质量管理工作有什么帮助v用来测试软件过程质量的指标有哪些?v实验题:针对选定系统,完成项目的质量计划2024/5/11 周六79.Q&A2024/5/11 周六80.