《软件项目管理 教学课件 ppt 作者 刘海 第五章 软件项目质量管理》由会员分享,可在线阅读,更多相关《软件项目管理 教学课件 ppt 作者 刘海 第五章 软件项目质量管理(44页珍藏版)》请在金锄头文库上搜索。
1、第五章 软件项目质量管理,软件项目管理,本章内容提要,软件质量管理的基本概念 软件质量控制 缺陷跟踪 缺陷预防 软件质量的常用度量 软件项目质量管理计划,第一节 软件质量管理的基本概念,软件质量是指软件满足明确说明或者隐含的需求的程度。 用户需求是衡量软件质量的基础。 除满足明确定义的需求外,还要满足隐含的需求。,软件质量的重要性,软件项目的三大目标:,质量,进度,费用,软件质量问题可能导致经济损失甚至灾难性的后果。 质量是软件产品和软件组织的生命线。 质量问题会增加开发和维护软件产品的成本。,软件质量的重要性,软件质量属性,软件质量属性,可靠性,可用性,安全性,可维护性,保密性,软件质量,功
2、能,性能,易用性,可信性,软件质量的形成,软件的质量形成于软件的整个开发过程中,而不是事后的检查(如测试)。 20世纪80年代起,质量管理逐步从单一的关注产品,转移到关注生产好产品的过程上,并且将过程的作用扩大到了组织运行的所有领域。,质量产生于过程,要真正地提高软件质量,必须有一个成熟和稳定的软件过程。 结果可预测 对现行执行可监测,质量得到保证,实施的过程性能,稳定过程的上下控制界,特殊原因造成过程性能不稳定。 根除特殊原因,使过程性能稳定,防止质量问题的出现。,质量产生于过程,造成不稳定的特殊原因,质量成本(CoQ),质量成本是为了达到产品或服务的质量而付出的所有努力的总成本,包括三部分
3、: 预防成本:为防止将缺陷引入软件而进行的预防工作所消耗的费用。 评价成本:检查软件是否包含缺陷的工作所消耗的费用。 失效成本:修复缺陷工作所消耗的成本。 PAF(Prevention / Appraisal / Failure)成本模型,质量成本(CoQ),质量成本(CoQ),在项目早期预防和检测缺陷比在项目晚期检测和排除缺陷更有效、更节省成本。,本章内容提要,软件质量管理的基本概念 软件质量控制 缺陷跟踪 缺陷预防 软件质量的常用度量 软件项目质量管理计划,第二节 软件质量控制,质量控制(Quality Control, QC)是确定项目结果与质量标准是否相符,并及时纠正产品缺陷的过程。
4、质量控制的主要手段是验证与确认( V&V ) 验证(Verification):是否正确地构造了产品?以开发者的视角进行。 确认(Validation):是否构造了正确的产品?以用户的视角进行。,软件项目中的QC活动,需求分析,需求评审,设计,设计评审,编码,代码审查,系统测试,界面原型,需求确认,需求确认,确认测试,测试开发,质量控制方法,质量控制方法,静态方法:评审,技术评审,代码评审,动态方法:测试,单元测试,集成测试,确认测试,技术评审(Technical Review),技术评审是指在完成一项工作后,把工作产品分发给合作者,让合作者检查其中的缺陷。然后开会讨论工作产品并产生需要修复的
5、缺陷列表。 技术评审的主要对象:需求和设计规格说明、测试计划、用户手册等。,技术评审流程,组织召开评审会议:一般应有35个相关人员参加,会前每个参加者做好准备,评审会议一般不超过两个小时。 在评审会议上,由开发小组对提交的评审对象进行讲解。 评审组可对开发小组提问,提出建议和要求,展开讨论。,会议结束时必须做出以下三个决策之一: 接受该产品,不需要做修改。 由于错误严重,拒绝接受。 暂时接受该产品,但需要对某一部分进行修改。 评审报告与记录:对所提出的问题要进行记录,并产生一个评审报告。,技术评审流程,同行评审(Peer Review),同行评审是一种特殊类型的技术评审。 由与工作产品开发人员
6、具有同等背景和能力的人员对工作产品进行技术评审,因此非常有利于发现工作产品中的问题。,代码评审(Code Review),编码阶段的一种技术评审,由一组人员对程序进行阅读和静态分析,可以很有效地检查程序代码中的缺陷。 评审内容:程序是否符合编码规范,程序结构是否合理,算法和程序逻辑是否正确,程序性能怎样等。 很多程序逻辑错误很难通过测试发现。,本章内容提要,软件质量管理的基本概念 软件质量控制 缺陷跟踪 缺陷预防 软件质量的常用度量 软件项目质量管理计划,第三节 缺陷跟踪,缺陷跟踪是指从缺陷被发现开始到被改正为止的整个跟踪流程。,缺陷跟踪一般需要软件工具支持。常用的工具有Bugzilla、Cl
7、earQuest、JIRA、TrackRecord 等。,缺陷跟踪,缺陷跟踪工具Bugzilla,Bugzilla是Mozilla公司提供的一个开源的缺陷跟踪工具,在全世界拥有大量用户。 它能够为软件组织建立一个完善的缺陷跟踪体系,包括报告缺陷、查询缺陷记录并产生报表、处理解决缺陷、管理员系统初始化和设置等。,Bugzilla的功能和特点:,基于Web方式运行,易于掌握。 缺陷从最初的报告到最后的关闭,都有详细的操作记录,确保了缺陷不会被忽略,并允许用户在检查缺陷状态时获取历史记录。 提供强大的查询匹配能力,能根据各种条件组合进行缺陷查询,并能够记忆搜索条件。,当缺陷状态发生改变时,会自动发送
8、邮件通知相关责任人。 自带基于数据库的报表生成功能,主要生成两类图表:基于表格的视图和图形视图(条形图、线图、饼状图)。,Bugzilla的特点:,Bugzilla的基本操作说明,报告缺陷 分配缺陷 处理缺陷 验证已解决的缺陷,本章内容提要,软件质量管理的基本概念 软件质量控制 缺陷跟踪 缺陷预防 软件质量的常用度量 软件项目质量管理计划,第四节 缺陷预防,优点:主动 改进软件过程,降低出错几率 降低质量成本,实现项目效益,找到根本原因,消除根本原因,软件缺陷原因分析方法,Step1:选择缺陷数据。 对小项目,可选择某一时期内发现的所有缺陷。 对大项目,可选择一个缺陷样本集合。 Step2:分
9、析缺陷的根本原因 对缺陷逐个进行分析,常以会议的方式进行。 可对分析出的根本原因进行分类,例如: IBM:疏忽、培训、通信失效、书写错误 Motorola:开发阶段相关、人员相关、项目相关、复审相关,软件缺陷原因分析方法,缺陷原因分析工具因果图(鱼骨图),Step3:识别公共原因,制定改进措施。 在逐个分析了缺陷之后,还要对分析得到的根本原因进行综合和归纳,识别导致缺陷产生的公共原因,并制定有关过程、技术和人员管理方面的改进措施。,软件缺陷原因分析方法,本章内容提要,软件质量管理的基本概念 软件质量控制 缺陷跟踪 缺陷预防 软件质量的常用度量 软件项目质量管理计划,第五节 软件质量的常用度量,
10、初期故障率:指软件在初期故障期(一般以软件交付给用户后的三个月内为初期故障期)内单位时间的故障数。 用来评价交付使用的软件的质量,预测什么时候软件运行达到基本稳定。 一般以每100小时的故障数为单位。,偶然故障率:指软件在偶然故障期(一般以软件交付给用户后的4个月以后为偶然故障期)内单位时间的故障数。 它用来度量软件处于稳定状态下的质量。 一般以每1000小时的故障数为单位。,软件质量的常用度量,平均失效前时间(Mean Time to Failure,MTTF):指软件在失效前(两次失效之间)正常工作的平均统计时间。 用来度量软件的可靠性。 平均修复时间(Mean Time to Repai
11、ration,MTTR):指软件失效后,使其恢复正常工作所需要的平均统计时间。 用来度量软件的可维护性。,软件质量的常用度量,缺陷密度:指软件单位数量的源代码中隐藏的缺陷数量。 通常以每千行无注解源代码为一个单位。,软件质量的常用度量,本章内容提要,软件质量管理的基本概念 软件质量控制 缺陷跟踪 缺陷预防 软件质量的常用度量 软件项目质量管理计划,第六节 软件项目质量管理计划,软件项目质量管理计划一般应满足以下要求: 确定项目应达到的质量目标和所有特性的要求; 确定项目中的质量活动和质量控制程序; 确定项目采用的控制手段及合适的验证手段和方法; 确定和准备质量记录。 制订软件项目质量管理计划的依据是企业的质量体系和项目的特点。,改进软件质量的一些要求,软件质量活动必须经过规划并明文规定 质量活动必须尽早开始 质量小组必须独立存在 质量小组的人员应该经过必要的培训,本章内容小结,理解质量管理的基本概念 软件质量、质量属性、质量形成、质量成本 了解质量控制的方法 技术评审、同行评审、代码评审 理解缺陷跟踪流程 理解缺陷预防的作用和方法 掌握常用质量度量,作业题,质量控制方法主要包括哪些? 简述缺陷跟踪流程。,