SXU-软件项目管理-朱少民-第六章 项目质量管理 附相关习题

考点

26、质量管理分几个部分;

27、四种不同管理水平;

28、软件评审方法有哪些、何时适用;

29、评审会议;

30、鱼骨图概念;

第六章 项目质量管理

1、由于质量问题造成的成本(劣质成本)竞高达45.86%,差不多占开发总成本的一半。

2、软件的质量是软件开发各个阶段质量的综合反映,每个环节都可能带来产品的质量问题,因此软件的质量管理贯穿了整个软件开发周期

3、软件项目的质量管理,不仅确保项目最终交付的产品满足质量要求,而且要保证项目实施过程中阶段性成果的质量,也就是保证软件需求说明、设计和代码的质量,包括各种项目文档的质量。

4、质量管理是指确定质量方针、目标和职责,并通过质量体系中的质量策划、质量控制、质量保证和质量改进来使其实现的所有管理职能的全部活动

5、质量是满足要求的程度,包括符合规定的要求和满足顾客隐含需求。

6、质量形成于产品或者服务的开发过程中,而不是事后的检查(测试)把关等,不能通过后期测试提高。

7、项目质量管理包括项目质量的:组织保证、质量计划、软件评审、缺陷预防和跟踪分析、过程质量管理。

8、项目质量管理的目标是满足项目的需要

6.1 质量管理概述

1、代表软件质量工作的境界分为以下几部分:考点

质量管理的过程包括:①软件质量计划;②软件质量控制;③软件质量保证;④软件质量改进与持续改进。

1)软件质量控制(SQC):是科学地测量过程状态的基本的方法,像汽车表盘上的仪器,可以了解行驶中的转速、速度、油量等。
2)软件质量保证(SQA):则是过程和程序的参考与指南的集合,ISO9000就是其中的一种,就像汽车的用户手册。

3)软件质量管理(SQM):才是操作的哲学,教你如何驾车,建立质量文化和管理思想。

PS:质量管理总是围绕着质量保证质量控制过程两个方面进行

2、软件质量的4种不同的管理水平考点

1)检查:检验保证产品的质量,符合规格的软件产品为合格品,否则为残次品。这种管理平处在初级阶段,相当于早期的软件质量控制。

PS:检查是独立的质量工作,只判断产品质量,不检验中间流程,不能提高产品质量。

2)保证:质量目标通过软件开发部门来实现,开始定义软件质量目标、质量计划,保证软件开发流程的合理性、流畅性和稳定性。但软件度量工作很少,软件客户服务质量还不明确,设计质量不明确。相当于初期的软件质量保证”。

3)预防:软件质量以预防为主,以过程管理为重,把质量的保证工作重点放在过程管理上从软件产品需求分析、设计开始,就引人预防思想,面向客户特征,大大降低低质量的成本,是成熟的软件质量保证。

4)完美:以客户为中心,贯穿于软件开发生存期全过程,全员参与,追求卓越,是全面软件质量管理的作用。

3、质量工作的更高层次是质量方针和质量文化,即在质量方针指导下和在良好的质量文化氛围里,质量管理发挥指挥和控制组织的质量活动,协调质量的各项工作,包括质量控制、质量保证
和质量改进的作用。

4、为开发符合要求的软件产品,需要在各个层次上对质量管理提供支持:基础设施(质量文化、开发环境、标准体系),方法层次(开发模型、开发流程),技术层次(开发技术的成熟度、开发工具、自动化测试水平)

5、每个层次都有一些具体的活动,比如在技术层次上,可以通过一系列措施提高质量:

1)制定编程规范;提高代码的可读性可维护性可扩展性。

2)通过制定统一的模板来规范文档形成一些约定和规则以统一文档内容与风格。

3)实施覆盖生命周期的软件测试;包括单元测试、集成测试和系统测试,不仅要完成动态试,而且要进行静态测试,即在软件开发早期对需求定义、系统设计、代码等进行评审和验证。

4)采用统计分析的方法;主要通过对各种度量数据进行量化的数理统计分析等,揭示产品特征或开发过程特征,发现各种不一致性的问题。

6、从质量管理功能看:质量保证人员着重内部复审、评审等,包括监视和改善过程。

7、质量保证的工作对象:产品和其开发全过程的行为。

8、从项目一开始质量保证人员就介人计划、标准、流程的制定。这种参与有助于满足产品的实际需求,能对整个产品生命周期的开发过程进行有效的检查、审计。

9、基于软件系统及其用户的需求,包括特定应用环境的需要,可以确定每一个质量要素的各项特征的定性描述或量化指标,包括功能性、适用性、可靠性、安全性等具体要求。再据所采用的软件开发模型和开发阶段的定义,把各个质量要素及其子特征分解到各个阶段的开发活动、

10、复审或内审就是为了达到事先定义的质量标准,确保所有软件开发活动符合有关的要求、规范和约束。

复审Review:在软件生命周期每个阶段结束之前,都正式用结束标准对该阶段生产出的软件配置成分(阶段性成果)进行严格的技术审查,如需求分析人员、设计人员、开发人员和测试人员一起审查“产品设计规格说明书”“测试计划”等

内审Audit:部门内部审查自己的工作,或由一个独立部门审查其他各部门的工作,以检查组织内部是否遵守已有的模板、规则和流程等。

6.2 项目质量的组织保证

1、软件项目质量的组织保证主要是指以下几方面

1)管理层:具有强“质量第一意识”,可以制定有利于保证和提高质量正确的方针,给整个团队营造量高的质量文化,质量方针(体现对质量的总追求,是工作的指导思想和行动指南)这两个对项目影响很大。

2)SQA组(软件质量保证组):从流程上对软件的质量进行追踪、控制和改进。监督项目按符合定义的相关标准的流程走。注意:SQA组在职能划分上独立于项目组,但监督项目组的各项活动。

PS:

质量保证的工作对象是产品其开发全过程的行为

软件质量保证组主要从流程上对软件质量进行跟踪、控制和改进。 

质量保证的主要活动是项目执行过程审计项目产品审计

3)SEPG组(软件工程过程组):由专家组成在软件开发组织中领导和协调过程中改进小组。主要任务是推动企业所应用的过程的定义维护改进。

对比:SEPG类似于一个“立法”机构,而 SQA则类似于一个“监督”机构。SPEG 一般负责组织的过程定义,但也可以帮助项目进行过程剪裁,从而使项目流程更有效。

2、在软件中有测试组负责实施软件产品的测试工作外还需要独立于项目的第三方人员—SQA组和SPEG组参与,来指定更有效的质量计划、更合适的流程,达到更高的目标。

3、在此过程中项目组,包括项目经理,和SQA组之间的关系是合作的关系,而不是监督和被监督的关系。因为后者是被动的关系,成效会降低。

4、一定要认识到是合作关系,有着共同的目标(提高工作质量和产品质量)。

5、SQA成员帮助项目经理了解执行情况,过程质量,产品质量完成情况。

6、质量是构建出来的,每个人的工作都会影响产品的质量,质量保证是每一个人的责任。

7、从“质量是构建出来的”角度看,产品的设计人员和程序员对质量影响更大,对质量改进的贡献是主要的。SQA主要对流程进行监督和控制,保证软件开发遵循已定义的流程和规范。而测试人员则是针对产品本身进行测试,发现缺陷并督促、协助开发人员进行修改。

6.3 质量计划

质量计划是进行项目质量管理、实现项目质量方针和目标的具体规划。它是项目管理规划的重要组成部分,也是项目质量方针和质量目标的分解和具体体现。质量计划是针对特定的项目而制定。

6.3.1 质量计划的内容

1、SQA 人员都需要按照要求完成详细的 SQA 计划,一般SOA 计划包含了如下内容:

1)计划的目的和范围。
2)该质量计划参考的文件列表。
3)质量目标,包括总体目标和分阶段或分项的质量目标。
4)质量的任务,即在项目质量计划中要完成的任务,包括组织流程说明会、流程实施指导、关键成果(需求说明、设计和代码等)的评审等。
5)参与质量管理的相关人员及其责任,如在软件开发的不同阶段,项目经理、开发小组、测试小组、QA 等负有什么样的责任。
6)为项目的一些关键文档(如程序员手册、测试计划、配置管理计划)提出要求。
7)重申适合项目的相关标准,如文档模板标准、逻辑结构标准、代码编写标准等。
8)评审的流程和标准,如明确地区分技术评审和文档评审的不同点等。
9)配置管理要求,如代码版本控制、需求变更控制等。
10)问题报告和处理系统,确保所有的软件问题都被记录、分析和解决,并被归入到特定的范
11)采用的质量控制工具、技术和方法等。

2、ANSI建议下面这些不可缺少的评审工作:

需求说明评审,设计文档评审,测试计划评审,功能性评审,物理性评审,管理评审

3、若在敏捷模式开发中,没有传统的需求规格说明书,而是用户故事,需要针对用户故事及其验收标准进行评审,其中验收标准的制定和评审更为重要。

6.3.2 质量计划制定的步骤

1、制定项目质量计划时,主要考虑的因素:

1)质量方针:由项目决策者对项目的整个质量目标和方向所做出的一个指导性的文件,也是质量管理的行动纲领。

2)项目范围陈述:明确项目需求方的要求和目标,质量计划的目标就是如何最大程度满足用户的需求,故其也是项目质量计划编制的主要依据和基础。

3)产品说明:虽然产品说明可以在项目范围陈述中加以具体化,产品说明通常仍需阐明其技术要点的细节和其他可能影响质量计划的因素。

4)标准和规则

2、质量计划的制定,会经过以下一系列的步骤:

1)了解项目的基本概况,收集项目有关资料;2)确定项目的质量目标;3)确定围绕质量目标的工作任务;4)明确项目质量管理组织机构;

5)制定项目质量控制程序;6)制定项目质量控制程序;

6.3.3 如何制定有效的质量计划

质量计划主要方法包括试验设计、基准对照、质量成本分析、流程图方法、因果分析图。

1)利益/成本分析;满足质量要求的基本费用是辅助项目质量管理活动的付出。质量管理的基本原则是效益与成本之比尽可能的大。

2)基准;通过与其他同类项目的质量计划制定和实施过程的比较,为改进项目实施过程提供思路和可参考的标准。

3)流程图;一个由箭线连接若干因素的关系图。

① 因果图:用来分析和说明各种因素和原因如何导致或者产生各种潜在的质量问题。

② 系统流程图或处理流程图:要用来说明系统各种要素之间存在的相互关系。

4)试验设计;根据原质量计划和实际情况进行比较分析,找出问题产生的根本原因,从而制定出相应的技术保证措施。

6.3.4 质量计划的实施和控制

1、项目质量评估不仅是在项目完成后进行,还包括对项目实施过程中的各个关键点的质量评估

2、项目质量评估看起来属于事后控制,但其目的不是为了改变那些已经发生的事情,而是试图获得产生质量缺陷的根本原因,从而减少软件缺陷或避免将来犯同样的错误。

3、在质量计划实施过程中,应该通过设置检查点、验证点,对阶段性成果进行评审或完成质量
评估,以确定项目阶段性成果是否达到所设定的质量标准。

4、项目收尾阶段的质量控制是一个非常重要而又容易忽视的内容,它需要检查项目文件资料的完备性,包括评审会议记录、测试报告等,同时进行项目总结(实际和计划作比较)。

5、质量控制非常重要,但是进行质量控制也需要一定的成本,使用抽样统计可以降低质量控制的成本。

补充:

1、质量成本主要包括:预防成本、鉴定成本、内部损失成本和外部损失成本(预防成本和缺陷成本)。

6.4 软件评审方法和过程

当评审的对象是需求文档、技术设计、代码等,主要目的就是能尽早地发现产品的缺陷以前期较少的投人来消除后期大量的返工;

当评审的对象是软件技术时,主要目的是判断引人新的技术是否带来很大风险?技术是否适用当前的研发环境等;

当评审的对象是软件流程、管理时,主要目的是发现流程、管理中存在的问题,加以改进;

当评审对象是项目计划、测试计划、测试用例时,主要目的也是发现问题,完善这些计划和文档。

概括评审的主要目的:发现问题去解决,也可以进行记录方便追溯。

6.4.1 软件评审的方法和技术 考点有哪些、何时适用

软件评审的方法:临时评审、轮查、互为复审、走查、会议审查。

1、最不正式的是临时评审【设计、开发和测试人员程序员在工作过程中会自发地用临时评审】

2、其次时轮查【邮件分发审查方法,通过邮件分发再收回反馈,简单、方便,不是实时进行而是异步进行有灵活性,用于需求评审还好但不保证准确实时】

注意:需求和设计评审一般先采用“轮查”审查初稿,找出显而易见的问题。在最终定稿前采用正式“评审会议”对所有关键内容再过一遍。

较为认可的:互为复审或称同行评审、走查、会议审查;

3、互为复审:一对一伙伴合作关系,相互审查对方的工作成果

1)由于两个人的工作内容和技术比较接近,涉及人员很少,复审效率比较高也比较灵活。

2)如:极限编程中的成对编程,可以看作互为复审的一种特例。

注意:在代码评审中选用“互为评审”比较多。

4、走查:强调对评审的对象要从头到尾检查一遍,比上面的互为复审要求更严格一些,保证其评审的范围全面。

1)可以将走查和互为复审结合起来使用。

2)但是在审查前缺乏计划,参与审查的人员没有做好充分的准备,所以只能发现表面问题。

3)走查还常用在产品基本完成之后,由市场人员和产品经理来完成这一工作,发现产品中界面、操作逻辑、用户体验等方面的问题。

5、会议审查:是一种系统化、严密的集体评审方法,包含了制定计划、准备和组织会议、跟踪和分析结果等。

1)对于最可能产生风险的工作成果,要采用这种最正式的评审方法。如:对于需求分析报
告而言其不准确和不完善,核心代码的失效也会带来很严重的后果。

2)例:软件需求分析报告、系统架构设计和核心模块的代码次采用会议审查的方法。至少用一次会议审查的方法。

3)在IEEE中是这样描述会议审查:

① 通过会议审查可以验证产品是否满足功能规格说明、质量特性以及用户需求等。

② 通过会议审查可以验证产品是否符合相关标准、规则、计划和过程

③ 会议审查能提供缺陷和审查工作的度量,以改进审查过程和组织的软件工程过程。

4)在会议评审过程中涉及到多个角色如评审组长、作者、评审人员、列席人员和会议记录人员等虽然评审员是一个独立的角色,但所有的参与者在评审中都充当评审员的角色。

注意:

① 在软件开发的过程中,各种评审方法都是交替使用的,在不同的开发阶段和不同的场合要选择适宜的评审方法。

② 找最合适的评审方法的有效途径是在每次评审结束后,对所选择的评审方法的有效性进行分析,形成适合组织的最优评审方法。

6、检查表

1)检查表就是一种简单有效的技术,是一种常用的质量保证手段,也是正式技术评审的必要工具,评审过程往往由检查表驱动。

2)具有以下特征:

① 可靠性 ② 效率

③ 不同类型的评审对象应该编制不同的检查表

④ 据以往经验收集同类评审对象常见缺陷,按缺陷的子类组织为每一个缺陷类型指定一个标识码

⑤ 基于以软件问题和个人经验,按各种缺陷对软件影响的严重性和发生的可能性从大到小排列

⑥ 简单句表达,检查表不宜过长 ⑦ 根据评审对象的要求对其做必要的增,删,改,调整

7、其他技术

1)场景分析技术 多用于需求文档评审,按照用户使用场景对产品/文档进行评审

2)对于需求评审,场景分析法比检查表更能发现错误和问题。

6.4.2 角色和责任

在评审过程中涉及多个角色,分别是:评审组长、作者、评审员、读者和记录者。所有的参与者除了自身担任的特定角色外,都在评审中充评审员的角色。

6.4.3 软件评审过程

评审会议 考点 是需要事先做好策划、准备和组织的;评审会议目标发现可能存在的缺陷和问题

步骤:①首先做好计划包括被评审对象,期望达到目标和选用的方法;②接着对评审计划的实施做准备 包括参加评审的人员协商时间;③进入关键阶段,召开会议进行集体评审找问题;④跟踪并解决问题

1、会议准备

第1件事就是确定评审组长。他需要和作者一起策划和组织整个评审活动。一个优秀的评审组长所领导的评审组比其他评审组平均每千行代码多发现 20%~30%的缺陷。

接下来需要完成下列几项准备工作:1)选定评审材料 2)将评审材料汇总成一个评审包会议开始前发给评审小组的成员 3)制定相应的活动进度表,提前2~3天。

2、召开会议

1)评审会议是评审活动的核心,所有与会者都需要仔细检查评审内容,提出可能缺陷和可能记录在评审表格中。

2)有人没准备好,评审组长有权终止会议,重订时间。

3)在会议结束前记录员需要向小组重述记录的缺陷。

3、评审决议

会议的最后,形成评审结论【可以是接受(通过) 有条件接受(需要修订其中的一些小缺陷后通过) 不能接受和评审未完成(继续评审)】

4、问题跟踪

1)会议结束并不意味着评审已经结束了,评审会议发现的问题需要进行修订进行追踪。

2)对于评审结果是“有条件接受”的情况时,作者也需要对产品进行修改,并将修改后的产品发给所有的评审组成员获得确认。所有问题被解决修正工作得到确认,评审才算结束。

5、评审注意事项
1)明确角色和责任。2)熟悉评审内容、做好准备细做到位。3)在评审会上关注问题,针对问题阐述观点,不是针对个人。4)讨论问题分主次要。5)提出建设性意见。6)会沟通。7)对问题追踪到底。

6.4.4 如何有效地组织评审

评审方法有以下几种:

1、分层评审方法先总体,后细节 按从高层次向低层次推进的方法来完成评审

1)高层次评审:主要评审产品是否满足客户的需求和期望,是否具有合理的功能层次性和完备性满足客户各个方面的需求。

① 从产品功能逻辑去分析,检查功能之间衔接是否平滑、功能之间有没有冲突。

② 从客户的角度分析需求,检查是否符合用户的需求和体验,需求是否遵守已有的标准和规范。

③ 检查需求的可扩充性、复杂性、可测试性(可验证性)等。

2)低层次评审:建立一个详细的检査表逐项检查,是否包含糊表述如有时、多数情况下、可能、差不多、容易。

低层次评审需要逐字逐行地审查需求规格说明书的各项描述,包文字、图形化的描述是否准确、完整和清晰。

注意:

① 需求规格的描述,不仅包括功能性需求,而且包括非功能性需求

2、分类评审方法:需求往往由于来源不同,而属于不同的范畴,需求评审可以按照业务需求、功能需求、非功能需求、用户操作性需求进行分类评审;按下面几类分:

业务目标:整个系统需要达到的业务目标,这是最基本的需求,核心。需要高层代表参加。

功能性需求:整个系统需要实现的功能和任务,是目标之下的第2层次需求,是用户的中层管理人员所关注的,测试组让各模块负责人参加即可。

操作性需求:完成每个任务的具体的人机交互(UI)需求,是用户的具体操作人员所关注的。一般不需要中高层人员参加,让具体操作人员和测试工程师参加评审。

3、分阶段评审方法:在需求形成的过程中,最好采用分阶段进行多次评审,而不是需求最终形成后只进行一次评审。分阶段评审可以将原本大规模评审拆分成各个小规模的评审,降低了需求分析返工的风险,提高评审的质量。

6.5 缺陷预防和跟踪分析

软件缺陷不仅仅局限于程序功能的问题,任何与用户需求不符合的地方都是缺陷,需求说明设计文档和测试用例等文档中也同样存在着缺陷。

6.5.1 缺陷预防

1、其最好的结合点就是要求每一个人“第一次就把事情做好”。

2、软件开发过程在很大程度上依赖于发现和纠正缺陷的过程,但一旦缺陷被发现之后,软件过程的控制并不能降低太多的成本

3、相比软件测试或质量检验的方法,更有效的方法是开展预防缺陷的活动,防止在开发过程中引入缺陷。

4、缺陷预防要求在开发周期的每个阶段实施根本原因分析,为有效开展缺陷预防活动提供依据。找到缺陷产生的根本原因,确定这些缺陷产生的根源和这些根源存在的程度。

5、缺陷预防:

1)从流程上进行控制,避免缺陷的引人,定义或制定规范的、行之有效的开发流程来减少缺陷。

2)采用有效的工作方法和技巧来减少缺陷,提高软件工程师的设计能力、编码能力、测试能力。

6.5.2 缺陷分析

1、缺陷分析是将软件开发、运行过程中产生的缺陷进行必要的收集,对缺陷的信息进行分类和总统计。可以发现各种类型缺陷发生的概率,掌握缺陷集中的区域,明晰缺陷的发展趋势,了解缺陷产生的主要原因。

2、缺陷趋势分析:发现缺陷趋势中的关闭的总缺陷数具有明显的阶梯状。

3、缺陷分布分析:

缺陷趋势分析是从时间纵向来进行分析,而缺陷分布分析是横向分析即针对缺陷在功能模块、缺陷类型、缺陷产生原因等不同方面的分布情况

缺陷分布图直观地反映了缺陷在不同地方的分布密度,有利于对缺陷进行进一步讨论

a中看出工作流模块集中了约50%的缺陷,因此该模块的质最直接影响整个项目的质量情况。

4、缺陷分布分析只是分析的第1步。它只不过提供了主要影响产品质量的是哪些模块信息不足以给出更深层次的原因。需要针对这些高危模块进一步分析。

6.5.3 鱼骨图 考点

1、为了更好地分析缺陷的根本原因,采用鱼骨图又称为因果分析图,它是分析和影响事物质量形成的诸要素间因果关系的一种分析图,其形状像鱼骨所以俗称鱼骨图。

2、3个优点:

1)可以更全面地探讨各种类别的原因。2)鼓励通过自由讨论发挥大家的创造性。3)提供问题与各类原因之间关系的直观表示。

3、鱼骨图分析法要完成从主刺到小刺的思维和分析的过程,即先找出最主要的问题,分析导致此问题的因素后,再逐层递推,分析导致各个小问题的因素,最后找出最根本的原因。

4、步骤:

1)确定问题,实际或者潜在的问题

2)找出问题的主要原因,沿鱼骨图的骨干将其分类作为原因的主要类别,一般通过质量记录、经验、自由讨论等确定。对于主要问题使用5M方法(5M指的是下面五个方面)

Manpower(人力),造成问题产生的人为因素有哪些。
Machinery(机械),通指软、硬件条件对于事件的影响。
Materials(物料),基础的准备以及原材料。
Methods(方法),与事件相关的方式与方法是否正确有效。
Mother-nature(环境),指的是内外部环境因素的影响。

3、根据问题类别,确定细节原因

人力:需求评审人员不够认真准备不足没有与客户充分沟通。机械:沟通设备有限、交通不方便。物料:需求规格说明书质量不高。方法:没有采用正式评审方法。环境:对需求分析没有给与足够的重视

6.6 质量度量

质量度量可以实现以下目标:

1)使沟通更有效,改进可见性。2)尽早地发现和更正问题。3)作出关键的权衡。4)跟踪特定的项目目标。5)管理风险。6)计划未来的项目。

6.6.1 度量要素

1、度量提供了对项目进度评估、质量状况的洞察力和用于决策的有关数据。虽然度量不能担保项目的成功,但可以帮助决策者通过积极的方法来管理软件项目中与生俱来的关键问题。

2、软件度量主要包括3部分:项目度量、产品度量和过程度量。

项目度量的对象有规模、成本、工作量、进度、生产力、风险、顾客满意度等;

产品度量以质量度量为中心,包括对功能性、可靠性、易用性、效率、可维护性、可移植性等的度量。
过程度量则主要针对成熟度、管理、生命周期、生产率、缺陷植入率等进行度量。

3、实施软件度量,主要通过3个基本要素—数据、图表、模型 来体现度量的结果。

1)数据:关于事务或者事项的记录,是科学研究最重要的基础。数据分析是在大量试验数据的基础上,也可在正交试验设计的基础上,通过数学处理和计算,揭示产品质量和性能指标与众多影响因素之间的内在关系。

2)图表:清晰地反映出复杂的逻辑关系,图表的作用表现在以下几点:

① 培养思考习惯,直观的弥补文字存在的缺陷。② 有助于沟通效率。③ 有助于明确清晰地说明和闸述内容。

3)模型:为了某种特定的目的而对研究对象和认识对象所作的一种简化的描述或模拟,表示对现实的一种假设,说明变量的关系。模型的作用就是使复杂信息变得简单易懂,使我们容易洞察复杂的原始数据背后的规律,并能有效地将系统需求映射到软件结构上去。

6.6.2 基于缺陷的产品质量度量

通过以下几个公式进行度量

1、代码质量

代码质量=\frac{W_{TP}+W_{F}}{KCSI}

W_{TP}是测试过程中(正式发布产品前)发现的缺陷的权重,包含所有小组发现的缺陷;

W_{F}是产品发布之后发现的缺陷的权重;

KCSI表示新增加的和修改的千行代码数

1)不使用所有的代码行数,是因为很多的软件产品都是在之前的版本上进行开发,而在当前的版本中,很多的代码没有变动。

2)根据缺陷的重要性和严重性,测试人员会给发现的缺陷定义相应的级别。缺陷的重要性或严重性越高,那么它的权重系数就越大。

W_{TP}=(\sum B_{TPi}\times W_{li})/5

W_{P}=(\sum B_{Fi}\times W_{li})/5

B_{TPi}是测试过程中发现的各种级别的缺陷数目,B_{Fi}是产品发布后发现的各种级别缺陷的数目,W_{li}是权重系数的值。 

3)代码质量指标的值越低,说明发现的缺陷越少或严重性越低,开发小组完成的代码质量越高。

2、产品质量

产品质量=\frac{W_{F}}{KCSI}

W_{F}是产品发布后发现的缺陷的权重;KCSI是新增加的和修改的千行代码数。

1)这个指标说明了遗留给客户的缺略权重和产品规模之间的关系,用于产品质量的外在度。该指标的值越低,说明遗留给客户的缺陷越少或严重性越低,说明发布的产品的质量越高。

2)若用于内部的质量度量,选用相对比率会更科学些,即W_{F}/(W_{TP}+W_{F})这个比重越小说明质量相对越高。将此比重控制在5%以内。

3、测试有效性

测试有效性=\frac{W_{T}}{(W_{TP}+W_{F})}\times100%

W_{F}是整个产品中由测试小组发现的所有缺陷的权重,包含测试阶段测试小组发现的和产品发布后测试小组发现的

W_{TP}是测试过程中(正式发布产品前)发现的缺陷的权重

W_{F}是产品发布之后发现的缺陷的权重,这个指标说明了试小组发现的缺陷和产品总缺陷的关系。该指标越高,越接近100%。

1)说明在产品发布之前发现的缺陷越多或越重要,同时说明测试小组的工组效率越高。作为高水平的测试团队,这个比值可以达到 90%~95%,甚至更高。

2)产品发布后测试人员再发现缺陷相当于亡羊补牢。故采用W_{TTP}测试小组在测试过程中所发现的缺陷的权重做分子更好,即W_{TTP} / (W_{TP}+W_{F})x100%,这样能驱动测试团队提高测试效率。

6.7 过程质量管理

1、大项目的软件质量依赖于项目中更小的单元的质量

2、个体软件过程(PSP)可以指导软件工程师如何有效地跟踪和管理缺陷,提高软件开发效率质量

6.7.1 过程质量度量

1、软件过程质量的度量是对软件开发过程中各个方面质量指标进行度量,目的在于预测过程的未来性能,减少过程结果的偏差,对软件过程的行为进行目标管理,为过程控制、过程评价、持续改善建立量化管理奠定基础。

2、软件过程质量的好坏会直接影响软件产品质量的好坏,软件过程质量度量的最终目的是提高软件产品的质量。

3、过程质量度量有以下几个标准:

1)过程缺陷密度DIPF;是一种度量标准,用来判定过程产品的质量以及检验过程的执行程度。

DIPF=\frac{D_{n}}{S_{p}} 

D_{n}是指某阶段或整个项目被发现的缺陷数,S_{p}是指被测试的软件产品规模(如代码行数、功能点数或对象数。

当DIPF过低时,可能是产品质量很好以致难以发现产品中的缺陷从而使缺陷密度偏低,也可能是因为工作的方法和策略不当或能力不足,造成不能发现产品中的某部分缺陷。

2)整体缺陷清除率

缺陷被清除的程度能反映出项目组在质量上的工作表现,以及待发布的产品质量。

缺陷清除率DRE=开发阶段清除的缺陷数 / 产品中潜伏的缺陷数×100%

假定F为描述软件规模用的功能点;D1为在软件开发过程中发现的所有缺陷数;D2为软件发布后发现的缺陷数;D为发现的总缺陷数(D=D1+D2);

质量=D2/F;缺陷注入率=D/F;整体缺陷清除率=D1/D;

题:假如有100个功能点,即F=100,而在开发过程中发现了20个错误,提交后又发现了3人误,则D1=20,D2=3,D=D1+D2=23。

质量(每功能点的缺陷数)=D2/F=3/100=0.03(3%);缺陷注人率=D/F-23/100=0.23(23%);整体缺陷清除率=D1/D=20/23=0.8696(86.96%)。

业界平均整体缺陷清除率目前只达到大约80%,一些重质量的、高水平的软件公司,其主流软件产品的缺陷清除率可以达到95%。

3)阶段性缺陷清除率

① 清除软件缺陷的难易程度在各个阶段也是不同的。需求错误、规格说明、设计题及错误修改相对困难些。

回归缺陷是由于修正当前缺陷而引起相关的、新的缺陷,即使在测试阶段也会产生新的缺陷。

③ 阶段性的 DRE=该阶段排除的缺陷数 / (该阶段入口处存在的缺陷数+该阶段开发过程中注入的缺陷数) × 100%

④ 清除的缺陷数=检测到的缺陷数➖不正确修正的缺陷。

如果不正确修正的缺陷数所占的比例很低,清除的缺陷数≈检测到的缺陷数

4)缺陷到达模式

① 产品的缺陷密度或者测试阶段的缺陷率是概括性指标,而缺陷到达模式可以提供更多的过程信息。

例如,两个正在开发的软件产品,其缺陷密度是一样的,但其质量差异可能较大,原因就是缺陷到达的模式不一样

② 测试团队越成熟,峰值到达得越早

③ 从一个峰值达到一个低而稳定的水平、需要的时间至少是达到峰值所用的时间的4~5倍。

④ 缺陷到达模式不仅仅是一个要的过程状态或过程改查的度量,还是进度预测或缺陷预测的数据源和有利工具。

⑤ 为了消除不同的程序规模等其他因素的影响需要对缺陷到达图表进行规格化

⑥ 使用缺陷到达模式的规则有:a、尽量将比较基线的数据在缺陷到达模式同一个图表表现出来。

b、不能获得比较基线,就要为缺陷到达的关键点设置期望值。c、X轴单位是星期,若开发时间按很短或很长也可以选天或月,Y轴就是软件缺陷数目

⑦ 缺陷到达模式,可以用于整个软件开发周期或某个特定的开发阶段(如单元测试阶段集成测试阶段、系统测试阶段等);也还可以扩展到修正的、关闭的缺陷可以获取有关开发人员工作效率、缺陷修正进程、质量进程等方面的信息。

6.7.2 缺陷移除和预防

3种相互支持的方法来预防缺陷:

1、数据记录和分析;2、有效地设计;3、彻底地设计

习题

一、单选题(共7题,38.5分)

1、下列不属于质量管理过程的是( )

A、 质量计划

B、 质量保证

C、 质量控制

D、 质量优化

正确答案: D

2、项目质量管理的目标是满足( )的需要

A、 老板

B、 项目经理

C、 项目

D、 组织

正确答案: C

3、下列属于质量成本的是( )

A、 预防成本

B、 缺陷数量

C、 预测成本

D、 缺失成本

正确答案: A

4、下列不是质量计划方法的是( )

A、 质量成本分析

B、 因果分析图

C、 抽样分析

D、 基准对照

正确答案: C

5、下列不是软件质量模型的是( )

A、 Boehm质量模型

B、 McCall 质量模型

C、 ISO/IEC 9216质量模型

D、 Mark质量模型

正确答案: D

6、质量控制非常重要,但是进行质量控制也需要一定的成本,( )可以降低质量控制的成本。

A、 进行过程分析

B、 使用抽样统计

C、 对全程进行监督

D、 进行质量审计

正确答案: B

7、McCall 质量模型不包含( )

A、 产品修改

B、 产品转移

C、 产品特点

D、 产品运行

正确答案: C

二、填空题(共6题,34分)

1、质量成本包括预防成本和____。

正确答案:缺陷成本

2、质量管理包括____、____、____等过程。

正确答案:

第1空:软件质量计划

第2空:软件质量保证

第3空:软件质量控制

3、____是软件满足明确说明或者隐含的需求的程度。

正确答案:软件质量

4、McCall质量模型关注的3个方面是____、____、____。

正确答案:

第1空:产品运行

第2空:产品转移

第3空:产品修改

5、质量管理总是围绕着质量保证和____过程两个方面进行。

正确答案:质量控制

6、质量保证的主要活动是____和____。

正确答案:项目执行过程审计;第2空:项目产品审计

三、判断题(共5题,27.5分)

1、质量是满足要求的程度,包括符合规定的要求和客户隐含的需求。____ (原文:质量是满足要求的程度,包括符合规定的要求和满足顾客隐含需求.) 正确答案: 正确

2、软件质量是软件满足明确说明或者隐含的需求的程度。正确答案: 正确

3、软件质量可以通过后期测试得以提高。____

(原文:质量形成于产品或者服务的开发过程中,而不是事后的检查(测试)把关等。)

正确答案: 错误

4、质量计划可以确定质量保证人员的特殊汇报渠道。正确答案: 正确

5、软件质量是代码正确的程度。正确答案: 错误

信息系统项目管理师---第八章项目质量管理历年考题_过程改进计划产生于什么阶段-CSDN博客

一、选择题

(1)项目质量管理的最终责任由谁来承担?(D)

   A.项目开发人员        B.采购经理        C.质量经理        D.项目经理

(2)“质量成本”是一个项目管理概念,它说明了下列哪项成本?(C)

   A.额外需求的成本        B.需求变更的成本        C.确保符合需求的成本        D.固定成本

(3)增加有益的活动过程减少没有价值的活动过程是哪类质量活动?(A)

   A.质量保证         B.质量规划        C.质量控制        D.质量改进

(4)质量控制是(B)。

   A.对每个工作包增加工作时间

   B.项目生存期的各个阶段都需要实施的

   C.只需要做一次

   D.只有大的项目才需要的

(5)质量管理计划与质量体系的区别在于(A)。

A.质量计划是针对单一的产品、项目、服务和合同制定的

B.质量管理系统是针对单一的产品、项目、服务和合同制定的

C.质量管理系统是由一个单独的组织实体所使用的

D.质量计划不属于项目计划的一部分

(6)项目质量管理的目标是满足(C)的需要。

   A.老板        B.干系人        C.项目        D.组织

(7)质量与等级的区别是什么?(B)

   A.质量是对需求的满足程度,而等级是对质量的排序

   B.质量是对需求的满足程度,而等级是对货物和服务的排序

   C.在项目管理过程中,质量和等级没有明显的区别

   D.质量是项目的最终结果,而等级是项目进展过程中对质量的排序

(8)下面哪项是质量计划的方法?(D)

   A.质量检查        B.对等评审        C.抽样分析        D.试验设计

(9)(B)是企业的生命,也是信誉。

   A.形象        B.质量        C.利润        D.效签

(10)质量管理过程的目的是确保项目满足需要执行的过程。主要过程不包含以下哪一项?(A)

   A.质量评审        B.质量保证        C.质量规划        D.质量控制

(11)下列不属于质量管理过程的是(D) 
A 质量计划 B 质量保证 C 质量控制 D 质量优化 
(12)下列属于质量成本的是(A) 
A 预防成本 B 缺陷数量 C 预测成本 D 缺失成本 
(13)下列不是质量计划方法的是(C) 
A 质量成本分析 B 因果分析图 C 抽样分析 D 基准对照 
(14)下列不是软件质量模型的是(D) 
A Boehm质量模型 B McCall 质量模型 C ISO/IEC 9216质量模型 D Mark质量模型 
(15)质量控制非常重要,但是进行质量控制也需要一定的成本,(B)可以降低质量控制的成本。 
A 进行过程分析 B 使用抽样统计 C 对全程进行监督 D 进行质量审计 
(16)McCall 质量模型不包含(C) 
A 产品修改 B 产品转移 C 产品特点 D 产品运行

17.卖方刚刚提交新计算机调制项目的实验结果。结果表明项目不满足总体质量要求。如果项目经理与团队成员一起分析问题,则项目经理正在进行的工作是:
A.质量管理
B.质量保证
C.质量计划
D.质量控制

答案:“B.质量保证。”
此处的关键词是“总体”。质量控制不是正确答案,因为我们现在讨论的不是一项任务的性能问题

18. 在项目执行过程中,一名团队成员找到项目经理,告诉项目经理根据他的见解,项目将无法满足为之制定的质量标准。项目经理与所有相关各方开会,进行相关分析。项目经理处于质量管理过程的哪个步骤?
A.质量计划。
B.质量保证。
C.质量分析。
D.质量控制。

答案:“B.质量保证。”确定质量标准是否仍旧有效是质量保证过程的一项内容。
19.新软件安装项目正在进行之中。项目经理正与质量保证部门一起,试图提高每个人对项目将要满足质量标准的信心。在开始该过程之前,他们需要下述哪项内容?
A.质量问题
B.质量改进
C.质量控制测量指标
D.返工

答案:“C.质量控制测量指标。”其中只有一个答案比较合理,即质量保证的一项正式输入
20.一名项目团队成员通知项目经理,说明项目的一项质量衡量指标无法满足。项目经理应该如何做?
A.通知管理层。
B.召开团队会议。
C.寻找满足质量水平的替代方法。
D.询问管理层,让管理层拿出方案。

答案:“C.寻找满足质量水平的替代方法。”
选项B说召开团队会议,但是并没有说与团队讨论,确定影响以及可能的解决方案。你需要寻找替代方法,比便满足要求。
21.除下述哪项外,其余各项均是质量计划编制过程的输出?
A.质量管理计划
B.质量改进
C.核查清单
D.衡量尺度。

答案:“B.质量改进。”质量改进是质量保证和质量控制过程的输出。
22.谁对项目的质量管理负有最终责任?
A.项目工程师
B.项目经理
C.质量经理
D.团队成员

答案:“D.团队成员。”
需要记住,项目经理对质量负有“首要”责任。
每个团队成员对质量负有“最终”责任。
23.项目质量保证不以下列___为特性。
A.评价整体项目绩效。
B.检查项目特定可交付成果的质量。
C.提供给项目管理团队。
D.提供给项目发起人。

答案:“B.检查项目特定可交付成果的质量。”
检测特定的项目结果是质量控制(而不是质量保证)的一个特征。质量保证可以提供给下列任何一项或所有各项:项目管理团队、工作实施公司的管理层、客户和/或组织以外的任何人。
24.帕累托法则宣称:
A.80%的项目将在20%的时间交付。
B.将需要80%的计划时间交付20%的项目可交付成果。
C.80%的项目成本归于20%的项目资源。
D.20%的原因导致80%的问题。

答案:“D.20%的原因导致80%的问题。”
帕累托法则宣称20%的原因导致80%的问题。这意味着集中关注上面的20%将消除80%的问题。
它还意味着当你超过80%时,处理剩余的20%将更困难和昂贵。
25.一个项目经理和他的团队正在努力确定,使用鱼骨图Ishikawa将会有多少不同因素会与潜在的问题相关联。项目经理要参与质量管理过程的那个步骤?
A.质量计划编制。
B.质量工具。
C.质量保证。
D.质量控制。

答案:“A.质量计划编制。”团队讨论“潜在问题”是质量计划编制过程。当团队讨论所发现质量问题的原因时,那是质量控制过程。
26.项目经理正与团队使用因果图,确定各种因素如何与潜在问题相关联。项目经理目前处于质量管理过程的哪一个步骤?
A.质量分析;
B.质量保证;
C.质量控制;
D.质量计划。

答案:“D.质量计划”本题涉及潜在问题。所以,项目经理和团队肯定处于质量计划过程中。
27.Pareto图的主要用途是:
A.将精力集中到最关键的问题上。
B.风险量化。
C.帮助预测未来的问题。
D.改进风险管理。

答案:“A.将精力集中到最关键的问题上。”Pareto图帮助寻找最经常发生的问题并确定集中精力处理哪些问题。其结果是改善项目的质量。可以用以观察过去的问题,而不能预测未来的问题。
28.项目团队邀请了许多项目干系人帮助检查项目质量。下述哪项不是这种检查活动的一项输出?
A.质量管理计划。
B.质量改进。
C.返工。
D.过程调整。

答案:“A.质量管理计划。”检验是质量控制的组成部分。质量管理计划不是质量控制一项输出。
29.在下述哪种情况下,质量即已满足?
A.满足要求。
B.超出了客户预期。
C.客户表示接受产品或服务。
D.客户不再要求额外的特征。

答案:“A.满足要求。”质量被定义为符合要求、规范并且适用。
此处,最好的答案是A。
产品或服务超出预期、获得口头的认可或客户不再增加额外要求都不意味着质量得以实现。
30.除下述哪项外,其余各项都是质量控制的内容:
A.趋势分析
B.检验
C.控制图
D.制定参照基准

答案:“D.制定参照基准。”制定参照基准是质量计划的内容。
31.在项目结束时,项目经理确定项目增加了四项功能领域、三项性能。客户表示对项目很满意。从项目成功角度讲,这意味着什么?
A.项目是完全意义上的成功。
B.项目不成功,因为项目镀金了。
C.项目不成功,因为,客户满意意味着客户本来可以为项目多付款。
D.项目成功,因为,团队有机会学习新功能领域,同时使客户满意。

答案:“B.项目不成功,因为项目镀金了。”对项目进行镀金,既浪费时间又浪费资金,并且使得项目不成功。
32.下述哪项图表以80/20规则为基础?
A.50/50规则
B.鱼骨图
C.控制图
D.Pareto图

答案:“D.Pareto图。”
33.质量指:
A.满足并超越客户预期。
B.增加额外事项,使客户满意。
C.符合要求、规范并适用。
D.符合管理层要求。

答案:“C.符合要求、规范并适用。”当今,经常使用的定义是“满足并超越预期”。
PMI说明选项C是正确答案。考试时,要确保采用PMI的观点。
34.项目经理正在使用因果图,确定特定要素与潜在问题之间的联系。项目经理正在执行的工作属于质量管理过程的哪个步骤?
A.质量保证。
B.质量控制
C.质量计划
D.质量工具

答案:“C.质量计划。”考题内讲到的是潜在问题。所以,该工作肯定属于质量计划过程。

二、填空题

(1)质量成本包括( 预防成本 )和缺陷成本。

(2)质量体系是一个企业质量管理系统的规范,常用的标准有( ISO )和CMM。

(3)( 质量 )是满足要求的程度,包括符合规定的要求和满足顾客的需求。

(4)软件质量框架是一个( 质量特征 )、质量子特征、度量因子的三层结构模型。

(5)软件质量与硬件质量有很大的不同,教件质量间题基本上是由( 人为差错 )引起,硬件质量问题主要是设计、生产和使用的问题。

(6)软件质量管理的发展经历的三个时期:程序设计、程序系统、( 软件工程 )。

(7)质量成本包括预防成本和( 缺陷成本 )。

(8)质量体系是一个企业质量管理系统的规范,常用的标准有ISO和( CMM )。

(9)(审计)是对过程或产品的一次独立质量评估。 
(10)(软件质量)是软件满足明确说明或者隐含的需求的程度。 
(11)McCall质量模型关注的3个方面是(产品运行)、(产品转移)、(产品修改)。 
(12)质量管理总是围绕着质量保证和(质量控制)过程两个方面进行。 
(13)质量保证的主要活动是(项目执行过程审计)和(项目产品审计)。

三、判断题

(1)质量计划中可以确定质量保证人员的特殊汇报渠道。( √ )

(2)质量计划可以在项目进行过程中编写,不一定在前期完成。( × )

(3)项目沟通是以项目经理为中心,纵向对高层管理者、项目发起人、团队成员,横向对职能部门、客户、供应商等进行项目信息的交换。( √ )

(4)冲突不能完全靠项目经理来处理解决,团队成员间的冲突应该由相关成员来处理。( √ )

(5)质量是满足要求的程度,包括符合规定的要求和客户隐含的需求。(对) 
(6)软件质量是软件满足明确说明或者隐含的需求的程度。(对) 
(7)软件质量可以通过后期测试得以提高。(错) 
(8)质量计划可以确定质量保证人员的特殊汇报渠道。(对) 
(9)软件质量是代码正确的程度。(错)

四、应用题

IT项目管理之第7章 项目质量管理习题之案例分析汇总_it总监 项目管理 案例题目-CSDN博客

某公司的质量管理体系中的配置管理程序文件中有如下规定:
(1)由变更控制委员会(CCB)制订项目的配置管理计划。
(2)由配置管理员(CMO)创建配置管理环境。
(3)由CCB車核变更计划。
(4)项目中配置基线的变更经过变更申请、变更评估、变更实施后便可发布。
(5)CCB组成人员不少于一人,主席由项目经理担任。
公司的项目均严格按照程序文件的规定执行。在项目经理的一次例行检査中,发现项目教件产品的一个基线版本(版本号V1.3)的两个相关联的源代码文件仍有遗留错误,便向CMO提出变更申请。CMO批准后,项目经理指定上述源代码文件的开发人员甲、乙修政错误。甲修改第一个文件后将版本号定为V1.4,直接在项目组内发布。次日,乙修政第二个文件后将版本号定为V2.3,也在项目组内发布。
(1)请结合案例,分析该公司的配置管理程序文件的规定及实际变更执行过程存在的问题。
答:① 只制定了配置管理计划,没有配置标识,配置控制,配置状态和报告,配置的审计,发布管理与支付。② 配置版本错乱。③ 没有配置管理员。④ 没有建立配置库。⑤ 变更流程不完善,没有经评审直接发布。⑥ ccb主席不应由项目经理担任。可以是公司其他管理层。⑦ 变更后没有通知相关的人员。⑧ 变更后实施过程没有监控。

(2)请为案例中的每项工作职责指派一个你认为最合适的负责角色(在表7-2相应的单元格中画“√”,每一列最多只能有一个单元格画“√”,多画、错画“√”不得分)。
                                                              表7-2工作职责表

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值