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