CMMI 与软件质量管理

38
CMMI 与与与与与与与

description

CMMI 与软件质量管理. 目的. 明确组织实施 CMMI 的基本目标应包含对质量管理能力的提升 理解 CMMI 质量管理的基本理念 了解 CMMI 所包含的质量管理的实践和要求。 明确以提高产品质量为目的的项目质量管理所涵盖的内容和方法. 内容. 推进质量管理是实施 CMMI 过程改进的重要目标 基于过程的质量管理 项目质量管理的 3 个方面:质量保证、质量控制和质量工程的实践 质量保证 - 概念及 QA 的角色 质量控制 项目质量工程的实践. CMMI 实施带来哪些改变?. CMMI 的实施有助于:. 改进软件产品的质量 改进项目满足预定目标的能力 - PowerPoint PPT Presentation

Transcript of CMMI 与软件质量管理

Page 1: CMMI 与软件质量管理

CMMI 与软件质量管理

Page 2: CMMI 与软件质量管理

目的 明确组织实施 CMMI 的基本目标应包含对

质量管理能力的提升 理解 CMMI 质量管理的基本理念 了解 CMMI 所包含的质量管理的实践和要

求。 明确以提高产品质量为目的的项目质量管

理所涵盖的内容和方法

Page 3: CMMI 与软件质量管理

内容 推进质量管理是实施 CMMI 过程改进的重要目标 基于过程的质量管理 项目质量管理的 3 个方面:质量保证、质量控制和质量

工程的实践 质量保证 - 概念及 QA 的角色 质量控制 项目质量工程的实践

Page 4: CMMI 与软件质量管理

CMMI 实施带来哪些改变?

改进软件产品的质量 改进项目满足预定目标的能力 减少开发成本和周期 降低项目风险 更有效地控制供应商 提高组织过程能力 提高竞争力,市场占有率,效益 …….

CMMI 的实施有助于:

Page 5: CMMI 与软件质量管理

成功的经验 -1

缺陷率

生产率

‘88 ’89 ‘90 ’91 ‘92 ’93 ‘94 ’95 ‘96 ’97 ‘98 ’99

软件缺陷率Defect / KLOC

软件生产率和质量性能

Reference: Presented at SEPG 99

L2 L3 L4

软件生产率

SLOC / 人天

Page 6: CMMI 与软件质量管理

成功的经验 -2

Defect Management

0

50

100

150

200

250

Req. Design Code Test Post-Release

Level 1

Level 2

Level 3

缺陷能够在早期发现并消除

Page 7: CMMI 与软件质量管理

成功的经验 -2

缺陷管理

0

50

100

150

200

250

Req. Design Code Test Post-Release

Level 1

Level 2

Level 3

缺陷能够在早期发现并消除

Page 8: CMMI 与软件质量管理

成功的经验 -3产品质量随成熟度的提高而改进

Page 9: CMMI 与软件质量管理

CMM 等级与产品缺陷CMM Level

隐含的缺陷缺陷消除率

%交付的缺陷

1 5.00 85 0.75

2 4.00 89 0.44

3 3.00 91 0.27

4 2.00 93 0.14

5 1.00 95 0.05

数据按每个功能点的缺陷数来表示Source: Software Assessments, Benchmarks, and Best Practices by Capers Jones, year 2000

Page 10: CMMI 与软件质量管理

国内 CMM 成熟度等级分布成熟度等级分布

30, 9%

16, 5%

163, 46%

141, 40% ML 5ML 4ML 3ML 2

数据来源:信产部科技司 05 年 12 月软件过程改进与评估推进座谈会

国内软件企业开展 CMM/CMMI 过程评估的数量达到 350 家

Page 11: CMMI 与软件质量管理

被评估组织的地区分布

116

91

41

2518 18 16

10 15

0

20

40

60

80

100

120

北京 上海* 广东 辽宁* 浙江 山东 云南 江苏 其他

区域分布

* 上海、辽宁数据到 05 年底

数据来源:信产部科技司 05 年 12 月软件过程改进与评估推进座谈会

Page 12: CMMI 与软件质量管理

国内软件企业的质量管理能力 缺少对产品质量状况进行客观评价的数据

按 CMMI 模型实施的过程改进应将项目质量管理能力的提升作为改进重点之一。

Page 13: CMMI 与软件质量管理

质量和软件质量管理 质量 (Quality)

• 一组内在特性满足需求的程度。 [ISO 9000: 2000]

• 一个系统、构件或过程满足特定需求(顾客或用户需要或期望)的程度。 [IEEE-STD-610]

软件质量管理 确定一个软件产品的质量目标、建立实现这些目标的

计划以及监督和调整软件计划、软件工作产品、活动和质量目标以满足顾客和最终用户需要和期望的过程。

SW-CMM [CMU/SEI-93-TR-025]

Page 14: CMMI 与软件质量管理

质量对成本和进度的影响

早期阶段工作产品的低质量将最终影响成本和进度 开发过程中较早引入的缺陷,如果未加消除,将在后期花

费更多的资源来治理。 单独依靠产品交付前的测试会更多地牺牲进度和成本

• 成熟的过程在项目早期就开始控制工作产品的质量 缺陷预防的方法能达到成本效益最佳 成本和进度是确定质量等级的主要影响因素之一

Page 15: CMMI 与软件质量管理

CMMI 质量管理的理念

“产品的质量在很大程度上取决于用以开发和维护该产品的过程的质量。”

人 过 程

技 术

Q & P

该前提 以制造业为基础已长久建立; 在世界范围的制造和服务业的质量运动中

得到确信(如, ISO 9000 标准)。

Page 16: CMMI 与软件质量管理

基于过程的质量

定义过程

质量OK

否 是

开发产品 评估产品质量

改进过程 将过程制度化

Page 17: CMMI 与软件质量管理

质量管理的职责 质量管理体系和过程的建立在组织级,实施在项

目级; 组织质量管理的职责

• 质量目标是组织的商业目标之一• 建立质量方针和策略• 提供资源和支持

项目质量管理的职责• 把质量构建到产品中去• 实施对产品质量的监控

项目如何实施质量管理?

Page 18: CMMI 与软件质量管理

项目质量管理的主要环节

质量保证 (Quality Assurance) 质量控制 (Quality Control) 质量工程的实践 (Quality Engineering

Practices)

Page 19: CMMI 与软件质量管理

软件质量保证 什么是软件质量保证?

• 由(相对)独立的质量管理人员在项目的整个开发周期中对项目所执行的过程和产生的工作产品进行监督和检查,确保其符合预定的要求。

• 条件:组织已经制定了较为完备的开发和管理过程体系 质量保证的目的

• 确保过程得到有效地执行,并推进过程改进• 就项目过程的执行情况和所构造的产品向管理者提供适当的可视

性 质量保证有效实施的前提

• 各级管理者相信“过程”• 高级管理者提供资源和支持• QA 的主动性

Page 20: CMMI 与软件质量管理

理解 QA 的角色QA 关注的是 : 正确的贯彻和使用过程 客观地审视项目过程的符合性 与 SEPG 组共同分析执行过程所产生的结果,

以支持过程改进 合作协调地开展工作 提供执行过程的反馈意见 为项目人员掌握过程提供指导

Page 21: CMMI 与软件质量管理

理解 QA 的角色

QA 不承担 : 对模型 (CMM/CMMI)符合性的监督 验证项目工作产品的好坏 “ goodness” 产品质量的责任 强迫对过程的遵循

Page 22: CMMI 与软件质量管理

质量控制 为评价和验证已开发的产品而执行的活动和技术

• 产品是否满足质量要素( quality factors) 的要求 ?• 产品 ( 包括生命周期的工作产品 ) 是否具有可接受的质量 ?

工具和技术• 同行评审 / 技术评审• 测试

质量控制的目的• 发现在工作产品中隐藏的缺陷和问题• 为产品的质量分析提供数据

Page 23: CMMI 与软件质量管理

评审 评审 (Review): 软件技术人员(包括管理人员、用户代表)以会议的形式对软件

产品进行评论,识别存在的问题,并判断其是否满足预期的要求。 同行评审 (Peer review)

• 在工作产品的开发进程中由同行们对该工作产品进行的评审,目的是识别要消除的缺陷。 [CMMI V1.2]

• 方式:审查 (Inspection) 、走查 (walkthrough), ……

评审过程• 评审的检查单• 评审记录和报告

Page 24: CMMI 与软件质量管理

测试 测试 - 对产品的动态检测和评价

• 不同层次,单元测试、集成测试 , ..….• 不同的类型,黑箱、白箱• ……

目的: 验证产品符合技术文档预期的特性、功能和性能

等要求;识别产品的缺陷。 正式测试过程

• 测试规程、方法和工具• 缺陷的记录和跟踪机制

Page 25: CMMI 与软件质量管理

评审和测试关注的重点 过程发现缺陷的能力 对过程活动和产品质量状况的了解

Weeks1 2 3 4 5 6 7 8 9 10

25

50

75

100

125

150

Open

Closed

Total

TroubleReports

Weeks1 2 3 4 5 6 7 8 9 10

25

50

75

100

125

150

Open

Closed

Total

Weeks1 2 3 4 5 6 7 8 9 10

25

50

75

100

125

150

Open

Closed

Total

TroubleReports

Page 26: CMMI 与软件质量管理

质量工程 确保将质量构建到软件产品而对需求、设

计、代码和验证过程和结果所进行的各种分析、研究和调控,以确保产品的可靠性、可维护性和其它质量要素得到满足的活动。 • 早期的错误发现• 缺陷消除有效性分析• 质量成本的优化• 缺陷预防

Page 27: CMMI 与软件质量管理

项目质量工程的实践 质量分析模型 质量分析的技术、方法和工具

• 鱼骨图、 Pareto 图、趋势分析、统计过程控制等 质量分析产生的共识

• 尽可能早地发现并消除缺陷• 在软件开发周期的各阶段实施质量控制活动;

收集质量管理的数据• 缺陷数据• 返工的工作量数据

缺陷消除有效性分析; 质量成本分析

Page 28: CMMI 与软件质量管理

质量分析模型 - 缺陷消除

错误修改引入

缺陷发现

进入本阶段前存在的缺陷

未发现的缺陷

结束本阶段时遗留的缺陷

消除的缺陷

逃逸的缺陷本阶段开发中

注入的缺陷进入的缺陷

进入的缺陷本阶段开发中

注入的缺陷消除的缺陷 +( )/DRE =

缺陷消除的有效性 (DRE)

缺陷修改

修改引入的缺陷+

当前的开发阶段

阶段性缺陷消除的有效性

Page 29: CMMI 与软件质量管理

尽早消除缺陷的价值

0

10

20

30

40

50

60

100

Requirements Design Code System Test Maintenance

Phase Error Found & Fixed

Co

st t

o F

ix

$1 $5

$20

$50

$100+缺陷修改的成本 1 : 10 : 100

Page 30: CMMI 与软件质量管理

多阶段消除缺陷比较

阶 段 需求 设计 实施 UT IT ST

进入的缺陷 100 340 736 295 118 47

60% 的缺陷被消除 40 136 295 118 47 19

进入的缺陷 100 330 699 210 63 19

70% 的缺陷被消除 30 99 210 63 19 6

100 300 600

95%

1000

60% 60% 60% 60% 60% 60%

19

50

DRE

DRE 10%

缺陷 ×3

Page 31: CMMI 与软件质量管理

项目发现缺陷的状况?

Page 32: CMMI 与软件质量管理

缺陷数据是质量活动的基础 策划将来的项目和项目的后续阶段

• 积累的缺陷历史数据在项目策划中可以用来确立项目的质量目标• 估计缺陷密度• 缺陷消除率

• 在开发进程中利用项目前期采集的缺陷数据来预测产品潜在的缺陷

• 采取适当的措施来改进质量• 规划产品的维护工作

利用缺陷数据评估• 过程 • 项目

缺陷预防• 错误发生的类别• 原因分析

Page 33: CMMI 与软件质量管理

缺陷消除的模式

Defect Profile

0

10

20

30

40

Req. Design Coding UT IT ST Field

Project phase

DefectDensity

Defect Profile

0

10

20

30

40

Req. Design Coding UT IT ST Field

Project phase

Defect Density

Page 34: CMMI 与软件质量管理

分析缺陷数据 对每次评审和测试活动收集的数据进行汇总和分析• 缺陷分布的趋势及其对产品质量的影响• 识别缺陷引入阶段• 缺陷密度 - 缺陷是否被充分地发现……

Page 35: CMMI 与软件质量管理

缺陷消除有效性矩阵 (DRE Matrix)

项目的 DRE = 148/166 = 89.2% 高 中 警示

DRE >90% 75-90% < 75%

Page 36: CMMI 与软件质量管理

改进质量的途径 - 尽早消除缺陷

在总体注入缺陷相同的情况下,尽早地消除缺陷可以使交付产品的质量大大提高。

需 求 设 计 编 码 单元测试 系统测试部件测试 交付使用

缺陷数

Page 37: CMMI 与软件质量管理

缺陷预测 With Rayleigh Model

开 发 阶 段

缺陷数

需 求 设 计 编 码 单元测试 系统测试部件测试 交付使用

Page 38: CMMI 与软件质量管理

小结 软件质量管理是一项艰巨的任务 了解质量管理的基础知识、方法和工具 逐步实施质量管理的实践