CMMI与软件质量管理(精)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用缺陷数据评估
• 过程 • 项目
缺陷预防
• 错误发生的类别 • 原因分析
Page
32
缺陷消除的模式
Defect Density
40 30 20 10 0 Req. Design Coding UT IT ST Field
Defect Profile
Defect Density
40 30 20 10 0 Req. Design
Source: Software Assessments, Benchmarks, and Best Practices by Capers Jones, year 2000 Page
9
国内CMM成熟度百度文库级分布
成熟度等级分布 30, 9% 16, 5% 141, 40% ML ML ML ML 163, 46% 5 4 3 2
SW-CMM [CMU/SEI-93-TR-025]
Page
13
质量对成本和进度的影响
早期阶段工作产品的低质量将最终影响成本和进度 开发过程中较早引入的缺陷,如果未加消除,将在后期花 费更多的资源来治理。 单独依靠产品交付前的测试会更多地牺牲进度和成本
• 成熟的过程在项目早期就开始控制工作产品的质量
Page
27
质量分析模型- 缺陷消除
进入本阶段前 存在的缺陷
当前的开发阶段
未发现的缺陷
结束本阶段时 遗留的缺陷
进入的缺陷
本阶段 开发中 注入的缺陷
逃逸的缺陷 引入 消除的缺陷
缺陷发现
缺陷 修改
错误修改
缺陷消除的有效性 (DRE)
DRE = 阶段性缺陷消除的有效性
消除的缺陷
/( 进入的缺陷 +
Page
目的: 验证产品符合技术文档预期的特性、功能和性能 等要求;识别产品的缺陷。 正式测试过程
• 测试规程、方法和工具 • 缺陷的记录和跟踪机制
Page
24
评审和测试关注的重点
过程发现缺陷的能力
对过程活动和产品质量状况的了解
Trouble Reports 150
Total
125 100 75 50
Q&P
人
过程
Page
15
基于过程的质量
定义过程
开发产品
评估产品质量
否
改进过程
质量 OK
是
将过程制度化
Page
16
质量管理的职责
质量管理体系和过程的建立在组织级,实施在项 目级; 组织质量管理的职责
• 质量目标是组织的商业目标之一 • 建立质量方针和策略 • 提供资源和支持
项目质量管理的职责
Page
26
项目质量工程的实践
质量分析模型 质量分析的技术、方法和工具
• 鱼骨图、Pareto 图、趋势分析、统计过程控制等
质量分析产生的共识
• 尽可能早地发现并消除缺陷 • 在软件开发周期的各阶段实施质量控制活动;
收集质量管理的数据
• 缺陷数据 • 返工的工作量数据
缺陷消除有效性分析; 质量成本分析
质量(Quality)
• 一组内在特性满足需求的程度。
[ISO 9000: 2000]
• 一个系统、构件或过程满足特定需求(顾客或用户需要或期望) 的程度。 [IEEE-STD-610]
软件质量管理
确定一个软件产品的质量目标、建立实现这些目标的 计划以及监督和调整软件计划、软件工作产品、活动和质 量目标以满足顾客和最终用户需要和期望的过程。
Page
3
CMMI实施带来哪些改变?
CMMI的实施有助于:
改进软件产品的质量 改进项目满足预定目标的能力
减少开发成本和周期
降低项目风险 更有效地控制供应商 提高组织过程能力 提高竞争力,市场占有率,效益
…….
Page
4
成功的经验-1
软件生产率和质量性能
软件生产率
Open Closed
25 1 2 3 4 5 6 7 Weeks 8 9 10
Page
25
质量工程
确保将质量构建到软件产品而对需求、设 计、代码和验证过程和结果所进行的各种 分析、研究和调控,以确保产品的可靠性、 可维护性和其它质量要素得到满足的活动。
• • • • 早期的错误发现 缺陷消除有效性分析 质量成本的优化 缺陷预防
Code
Test
7
PostRelease
成功的经验-3
产品质量随成熟度的提高而改进
Page
8
CMM等级与产品缺陷
CMM Level
隐含的缺陷
缺陷消除率 %
交付的缺陷
1
2
5.00
4.00
85
89
0.75
0.44
3
4 5
3.00
2.00 1.00
91
93 95
0.27
0.14 0.05
数据按每个功能点的缺陷数来表示
CMMI与软件质量管理
国家软件标准化推广中心 林平
目的
明确组织实施CMMI的基本目标应包含对质 量管理能力的提升 理解CMMI质量管理的基本理念 了解CMMI所包含的质量管理的实践和要求。 明确以提高产品质量为目的的项目质量管 理所涵盖的内容和方法
Page
2
内容
推进质量管理是实施CMMI过程改进的重要目标 基于过程的质量管理 项目质量管理的3个方面:质量保证、质量控制和质量 工程的实践 质量保证 - 概念及QA的角色 质量控制 项目质量工程的实践
本阶段 开发中 注入的缺陷
+
修改引入 的缺陷
)
28
尽早消除缺陷的价值
缺陷修改的成本 1:10:100
100
…
$100+
Cost to Fix
60 50 40 30 20 10 0
Requirements Design Code
$50
$20
$1 $5
System Test
Maintenance
Phase Error Found & Fixed Page
Defect Profile
Coding
UT
IT
ST
Field
Project phase
Project phase
Page
33
分析缺陷数据
对每次评审和测试活动收集的数据进行汇 总和分析
• 缺陷分布的趋势及其对产品质量的影响 • 识别缺陷引入阶段 • 缺陷密度- 缺陷是否被充分地发现 ……
Page
250 200 150 100 50 0 Req. Design
Page
Level 1 Level 2 Level 3
Code
Test
6
PostRelease
成功的经验-2
缺陷能够在早期发现并消除
缺陷管理
250 200 150 100 50 0 Req. Design
Page
Level 1 Level 2 Level 3
SLOC / 人天 缺陷率
软件缺陷率
Defect / KLOC
生产率
L2
‘88 ’89 ‘90 ’91 Reference: Presented at SEPG 99 ‘92 ’93 Page ‘94
L3
’95 ‘96 ’97
L4
‘98 ’99
5
成功的经验-2
缺陷能够在早期发现并消除
Defect Management
DRE
10% ×3
缺陷
Page
30
项目发现缺陷的状况?
Page
31
缺陷数据是质量活动的基础
策划将来的项目和项目的后续阶段
• 积累的缺陷历史数据在项目策划中可以用来确立项目的质量目标
• 估计缺陷密度 • 缺陷消除率
• 在开发进程中利用项目前期采集的缺陷数据来预测产品潜在的缺 陷
• 采取适当的措施来改进质量 • 规划产品的维护工作
10
江苏
其他
数据来源:信产部科技司 05 年 12 月软件过程改进与评估推进座谈会
*上海、辽宁数据到05 年底 Page
11
国内软件企业的质量管理能力
缺少对产品质量状况进行客观评价的数据
按CMMI模型实施的过程改 进应将项目质量管理能力的提 升作为改进重点之一。
Page
12
质量和软件质量管理
• 在工作产品的开发进程中由同行们对该工作产品进行的评审,目 的是识别要消除的缺陷。[CMMI V1.2] • 方式:审查(Inspection)、走查(walkthrough), ……
评审过程
• 评审的检查单 • 评审记录和报告
Page
23
测试
测试 - 对产品的动态检测和评价
• 不同层次,单元测试、集成测试, ..…. • 不同的类型,黑箱、白箱 • ……
Page
36
缺陷预测 With Rayleigh Model
缺陷数
需求
设计
编码
单元测试
部件测试
系统测试
交付使用
开发阶段
Page
37
小结
软件质量管理是一项艰巨的任务 了解质量管理的基础知识、方法和工具 逐步实施质量管理的实践
Page
38
谢谢各位 !
Page
39
Page
20
理解QA的角色
QA 不承担: 对模型(CMM/CMMI)符合性的监督 验证项目工作产品的好坏 “goodness” 产品质量的责任 强迫对过程的遵循
Page
21
质量控制
为评价和验证已开发的产品而执行的活动和技术
• 产品是否满足质量要素(quality factors)的要求? • 产品 (包括生命周期的工作产品)是否具有可接受的质量?
34
缺陷消除有效性矩阵(DRE Matrix)
高 DRE >90%
中 75-90% Page
警示 < 75%
项目的 DRE = 148/166 = 89.2%
35
改进质量的途径- 尽早消除缺陷
缺陷数
需求
设计
编码
单元测试
部件测试
系统测试
交付使用
在总体注入缺陷相同的情况下,尽早地消除缺陷可以使交付产品 的质量大大提高。
18
软件质量保证
什么是软件质量保证?
• 由(相对)独立的质量管理人员在项目的整个开发周期中对项目 所执行的过程和产生的工作产品进行监督和检查,确保其符合预 定的要求。 • 条件:组织已经制定了较为完备的开发和管理过程体系
质量保证的目的
• 确保过程得到有效地执行,并推进过程改进 • 就项目过程的执行情况和所构造的产品向管理者提供适当的可视 性
缺陷预防的方法能达到成本效益最佳
成本和进度是确定质量等级的主要影响因素之一
Page
14
CMMI质量管理的理念
“产品的质量在很大程度上取决于 用以开发和维护该产品的过程的质量。”
该前提
技术
以制造业为基础已长久建立; 在世界范围的制造和服务业的质量运动中 得到确信(如,ISO 9000 标准)。
• 把质量构建到产品中去 • 实施对产品质量的监控
项目如何实施质量管理?
Page
17
项目质量管理的主要环节
质量保证(Quality Assurance) 质量控制(Quality Control) 质量工程的实践(Quality Engineering Practices)
Page
29
多阶段消除缺陷比较
95% 1000
DRE
50
60%
60%
60%
60%
60%
60% 19
100
阶 段 进入的缺陷 60% 的缺陷被消除 进入的缺陷 70% 的缺陷被消除 需求 100 40 100 30
300
设计 340 136 330 99
600
实施 736 295 699 210 UT 295 118 210 63 IT 118 47 63 19 ST 47 19 19 6
工具和技术
• 同行评审/技术评审 • 测试
质量控制的目的
• 发现在工作产品中隐藏的缺陷和问题 • 为产品的质量分析提供数据
Page
22
评审
评审(Review):
软件技术人员(包括管理人员、用户代表)以会议的形式对软件 产品进行评论,识别存在的问题,并判断其是否满足预期的要求。
同行评审(Peer review)
国内软件企业开展 CMM/CMMI 过程评估的数 量达到 350 家
数据来源:信产部科技司 05 年 12 月软件过程改进与评估推进座谈会
Page
10
被评估组织的地区分布
区域分布 116 120 100 80 60 40 20 0 北京 上海* 广东 辽宁* 浙江 山东 云南 41 25 18 18 16 15 91
质量保证有效实施的前提
• 各级管理者相信“过程” • 高级管理者提供资源和支持 • QA的主动性
Page
19
理解QA的角色
QA 关注的是: 正确的贯彻和使用过程 客观地审视项目过程的符合性 与 SEPG组共同分析执行过程所产生的结果, 以支持过程改进 合作协调地开展工作 提供执行过程的反馈意见 为项目人员掌握过程提供指导