软件产品质量度量

31
软软软软软软软软 软软软软软软软软 张张 张张 Kelly Zhang Kelly Zhang [email protected] [email protected] 软软软软软软软软 软软软软软软软软 Microsoft Office Microsoft Office 软软软软软软软 软软软软软软软 软软软软软软 软软软软软软

Upload: bao

Post on 04-Jan-2016

72 views

Category:

Documents


1 download

DESCRIPTION

软件产品质量度量. 张奭 ( Kelly Zhang ) [email protected] 软件开发测试主管 Microsoft Office 国际服务测试部 美国微软总部. 自我简介. 张奭 (Zhang Shi) ,英文名是 Kelly Zhang 软件开发测试主管。美国微软总部, Microsoft Office 国际服务部。 教育背景 : 北京师范大学获得学士和硕士学位。美国纽约州立大学获得博士学位 工作经验 : 近九年软件测试,测试项目主管,和发布协调总管工作经验. 主要议程. 为什么软件质量需要有度量?( 必要性) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 软件产品质量度量

软件产品质量度量软件产品质量度量

张奭张奭(( Kelly ZhangKelly Zhang ))[email protected]@Microsoft.com

软件开发测试主管软件开发测试主管

Microsoft OfficeMicrosoft Office 国际服务测试部国际服务测试部美国微软总部美国微软总部

Page 2: 软件产品质量度量

2

自我简介自我简介

• 张奭张奭 (Zhang Shi)(Zhang Shi) ,英文名是,英文名是 Kelly ZhangKelly Zhang • 软件开发测试主管。美国微软总部,软件开发测试主管。美国微软总部, MicMic

rosoft Office rosoft Office 国际服务部。国际服务部。• 教育背景教育背景 :: 北京师范大学获得学士和硕士学位。北京师范大学获得学士和硕士学位。

美国纽约州立大学获得博士学位美国纽约州立大学获得博士学位• 工作经验工作经验 :: 近九年软件测试,测试项目主管,近九年软件测试,测试项目主管,

和发布协调总管工作经验和发布协调总管工作经验

Page 3: 软件产品质量度量

3

主要议程主要议程一.一. 为什么软件质量需要有度量?(为什么软件质量需要有度量?(必要性)二.二. 使用软件测试的质量度量的挑战使用软件测试的质量度量的挑战三.三. 评价软件质量的优秀度量的特征评价软件质量的优秀度量的特征四.四. 制定软件质量度量时注意事项制定软件质量度量时注意事项五.五. 微软软件质量测试常用度量微软软件质量测试常用度量六.六. 使用软件质量度量的注意事项使用软件质量度量的注意事项

问题解答

Page 4: 软件产品质量度量

4

一 为什么软件质量需要有度量?一 为什么软件质量需要有度量?有效产品质量管理有效产品质量管理改进用户满意度改进用户满意度改进产品质量改进产品质量减少产品开发和售后服务支持费用减少产品开发和售后服务支持费用

没有质量度量,等于没有质量标准!没有质量度量,等于没有质量标准!

Page 5: 软件产品质量度量

5

软件测试的质量需要有度量软件测试的质量需要有度量

有效实行测试质量分析和管理有效实行测试质量分析和管理可及时检查测试进度和质量可及时检查测试进度和质量帮助发现测试漏洞帮助发现测试漏洞比较测试质量变化趋势,风险分析比较测试质量变化趋势,风险分析帮助找出最佳实践帮助找出最佳实践

Page 6: 软件产品质量度量

6

二 使用软件产品质量度量的挑战二 使用软件产品质量度量的挑战无公认准确和科学的度量无公认准确和科学的度量产品性质不同,很难有通用的度量产品性质不同,很难有通用的度量最佳实践实际上是经验积累总结最佳实践实际上是经验积累总结涉及不定因素和人为因素涉及不定因素和人为因素片面理解和使用可以造成负面影响和效果片面理解和使用可以造成负面影响和效果

Page 7: 软件产品质量度量

7

三 评价软件质量的优秀度量的特征三 评价软件质量的优秀度量的特征

准确性准确性稳定性稳定性可验证性可验证性有针对性有针对性有说服力有说服力重复使用性重复使用性可追踪性可追踪性简单实用性简单实用性

Page 8: 软件产品质量度量

8

四 制定软件质量度量时注意事项四 制定软件质量度量时注意事项跟踪度量的变化的一致性跟踪度量的变化的一致性提供基础数据以便杜绝滥用数据提供基础数据以便杜绝滥用数据讨论会或所有有关方面认可讨论会或所有有关方面认可体现产品质量结果是否满足质量标准体现产品质量结果是否满足质量标准明确谁是使用者明确谁是使用者

Page 9: 软件产品质量度量

9

五 微软软件质量测试常用度量五 微软软件质量测试常用度量

1.1. 产品设计规范产品设计规范 (Spec(Spec 或设计文档或设计文档 )) 质量状态质量状态2.2. 缺陷(缺陷( bugbug )数据有关度量)数据有关度量3.3. 测试案例度量测试案例度量4.4. 测试规范度量测试规范度量5.5. 测试过的系统数量测试过的系统数量6.6. 自动化测试度量自动化测试度量7.7. CodeCoverageCodeCoverage (代码覆盖)(代码覆盖)8.8. 单一功能测试验收质量度量单一功能测试验收质量度量

Page 10: 软件产品质量度量

10

1.1. 产品设计规范质量状态分类产品设计规范质量状态分类常用的五种状态常用的五种状态

一页 一页 (One page)– (One page)– 用于安排时间和分配人员用于安排时间和分配人员草稿 草稿 (Draft)– (Draft)– 用于提出疑问和初步设想以供讨论用于提出疑问和初步设想以供讨论审阅 审阅 (Review)–(Review)– 有所有的设计技术细节,可以供审阅有所有的设计技术细节,可以供审阅提交审核会 提交审核会 (Inspection)–(Inspection)– 所有的设计技术细节到位、所有的设计技术细节到位、没有明显遗留疑问、漏洞等没有明显遗留疑问、漏洞等开始编码 开始编码 (Coding)– (Coding)– 开发人员可以开始便写代码来实开发人员可以开始便写代码来实现该设计功能规范现该设计功能规范

Page 11: 软件产品质量度量

11

产品设计规范质量到位状况产品设计规范质量到位状况

五种状态中各占的五种状态中各占的 %%是多少是多少 ??按事先计划日程完成的比例是多少?按事先计划日程完成的比例是多少?多少多少 %%开发人员至少有一个指派给开发人员至少有一个指派给他的功能可以进行编码?他的功能可以进行编码?

Page 12: 软件产品质量度量

12

2.2. 缺陷统计数据的度量缺陷统计数据的度量 (I)(I)所有缺陷数量的时间走势或趋势统计 所有缺陷数量的时间走势或趋势统计 (Bug Trends By Tim(Bug Trends By Time)e)未被处理的缺陷按照严重程度的统计 未被处理的缺陷按照严重程度的统计 (Active Bugs By Sev(Active Bugs By Severity)erity) 未被处理的缺陷按照优先程度的统计 未被处理的缺陷按照优先程度的统计 (Active Bugs By Prio(Active Bugs By Priority)rity)未被处理的缺陷数量的时间走势或趋势统计未被处理的缺陷数量的时间走势或趋势统计 (( Active Bugs Active Bugs Over TimeOver Time ))所有的缺陷按照严重程度的统计所有的缺陷按照严重程度的统计 ((All Bugs By Severity)All Bugs By Severity)新被发现的缺陷按严重程度的统计 新被发现的缺陷按严重程度的统计 (Opened Bugs By Sev(Opened Bugs By Severity)erity) 已处理的缺陷按照严重程度的统计 已处理的缺陷按照严重程度的统计 (Resolved Bugs By Se(Resolved Bugs By Severity)verity) 被修复的缺陷按照严重程度的统计被修复的缺陷按照严重程度的统计 ((Fixed By Severity)Fixed By Severity)

Page 13: 软件产品质量度量

13 时间

缺陷数量

所有的缺陷按照严重程度的统计所有的缺陷按照严重程度的统计 ((All Bugs By SeveritAll Bugs By Severity)y)

Page 14: 软件产品质量度量

14

2.2. 缺陷统计数据的度量缺陷统计数据的度量 (II)(II)

已发现缺陷的数量和已修复的缺陷的数量的比率已发现缺陷的数量和已修复的缺陷的数量的比率 (Fixed/F(Fixed/Found)ound)。也被称为修改率或纠错率。也被称为修改率或纠错率 (Fix Rate)(Fix Rate) 未处理的缺陷数量和已处理的的缺陷数量的比率未处理的缺陷数量和已处理的的缺陷数量的比率 (( active/active/resolved)resolved)已处理的被修复的缺陷数量和已处理的缺陷数量的比率已处理的被修复的缺陷数量和已处理的缺陷数量的比率(( Resolved as Fixed/resolvedResolved as Fixed/resolved ))重新被激活的已修复的缺陷数量重新被激活的已修复的缺陷数量 ((Bug re-activation ratBug re-activation rate)e)通过测试找到的缺陷的统计通过测试找到的缺陷的统计 ((Bugs opened by testing acBugs opened by testing activity)tivity)

Page 15: 软件产品质量度量

15

2.2. 缺陷统计数据的度量缺陷统计数据的度量 (III)(III)不同语言版本缺陷数量的统计不同语言版本缺陷数量的统计 (Bugs opened by Languag(Bugs opened by Language version)e version)被报告存在缺陷的各功能统计被报告存在缺陷的各功能统计 (Where your bugs were fo(Where your bugs were found)und)处理缺陷的平均时间的统计处理缺陷的平均时间的统计 (Average Time to Resolve)(Average Time to Resolve)关闭缺陷的平均时间的统计关闭缺陷的平均时间的统计 (Average Time to Close)(Average Time to Close)被处理缺陷的不同结论统计被处理缺陷的不同结论统计 (Resolved Bugs By Resolutio(Resolved Bugs By Resolution)n)

Page 16: 软件产品质量度量

16

里程碑编程阶段缺陷变化趋势里程碑编程阶段缺陷变化趋势

Cumulative Bug count (Opened and Resolved Bugs on Secondary axis)

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

12/4

/200

3

12/1

8/20

03

1/1/

2004

1/15

/200

4

1/29

/200

4

2/12

/200

4

2/26

/200

4

3/11

/200

4

3/25

/200

4

4/8/

2004

4/22

/200

4

5/6/

2004

5/20

/200

4

6/3/

2004

6/17

/200

4

7/1/

2004

7/15

/200

4

7/29

/200

4

8/12

/200

4

8/26

/200

4

9/9/

2004

9/23

/200

4

10/7

/200

4

10/2

1/20

04

11/4

/200

4

11/1

8/20

04

12/2

/200

4

12/1

6/20

04

12/3

0/20

04

1/13

/200

5

1/27

/200

5

2/10

/200

5

2/24

/200

5

3/10

/200

5

Week Ending

Bu

gs

0

100

200

300

400

500

600

700

Total Bugs Closed Bugs Active Bugs Resolved Bugs Opened Bugs

Page 17: 软件产品质量度量

17

3.3. 测试案例度量测试案例度量

运行测试案例数量和通过测试的案例数量之比运行测试案例数量和通过测试的案例数量之比不同产品开发阶段该比率变化不同产品开发阶段该比率变化测试案例包括的范围测试案例包括的范围运行测试案例的频率运行测试案例的频率有测试案例的功能数量有测试案例的功能数量

Page 18: 软件产品质量度量

18

4.4. 测试规范度量测试规范度量

测试规范数量和所有功能数量之比测试规范数量和所有功能数量之比满足撰写要求的测试规范数量和所有测试规范数量之比满足撰写要求的测试规范数量和所有测试规范数量之比必要的内容遗漏的比率必要的内容遗漏的比率

测试规范测试规范 :: 微软把针对怎样测试某功能的,有细分功能后的具体测试条例等细节的测试文档叫做测试规范( Test Design Specification 或简称 TDS )。

Page 19: 软件产品质量度量

19

5.5. 测试过的系统数量测试过的系统数量

所支持的不同语言系统的总数与测试过的语言系所支持的不同语言系统的总数与测试过的语言系统数量统数量所支持系统的总数与测试过的系统数量所支持系统的总数与测试过的系统数量Windows 2000 (SPx)Windows 2000 (SPx)Windows XP (SPx)Windows XP (SPx)Windows 2003 Server (SPx)Windows 2003 Server (SPx)Tablet PCTablet PC新的系统平台新的系统平台

Page 20: 软件产品质量度量

20

6.6. 自动化测试度量自动化测试度量测试的可自动化程度测试的可自动化程度能自动化的和实现自动化的比率能自动化的和实现自动化的比率运行通过的自动化脚本比率运行通过的自动化脚本比率不同产品开发阶段该比率变化不同产品开发阶段该比率变化

Page 21: 软件产品质量度量

21

7.Code Coverage7.Code Coverage (代码覆盖)(代码覆盖)代码覆盖度量定义和目的代码覆盖度量定义和目的代码覆盖种类代码覆盖种类代码覆盖的有效使用代码覆盖的有效使用

开发人员:单元测试 开发人员:单元测试 (unit testing)(unit testing)测试人员:系统测试测试人员:系统测试 (system testing)(system testing) 和自动化测试和自动化测试

Page 22: 软件产品质量度量

22

代码覆盖是什么?代码覆盖是什么?动态白盒测试评价技术动态白盒测试评价技术已经执行(测试)了什么(已经执行(测试)了什么( what what hashas been executed been executed ) ) 没有执行的(测试)有什么 没有执行的(测试)有什么 what has what has notnot been executed and still been executed and still remains to be tested.remains to be tested.

需要有源代码需要有源代码内部辅助工具内部辅助工具

Page 23: 软件产品质量度量

23

使用代码覆盖度量的目地使用代码覆盖度量的目地

经验总结:大约的经验总结:大约的 20%20%代码囊括缺陷总数的代码囊括缺陷总数的 8080%%目的不是要达到某个神奇的数字,而是要发现测目的不是要达到某个神奇的数字,而是要发现测试中的漏洞试中的漏洞达到比较广泛的覆盖率相对容易,但要达到达到比较广泛的覆盖率相对容易,但要达到 100100%%覆盖常需要多得多的成本 覆盖常需要多得多的成本 平均目标 平均目标 65%65%理想目标 理想目标 75%75%

Page 24: 软件产品质量度量

24

代码覆盖度量种类代码覆盖度量种类

1.1. 代码函数覆盖数量代码函数覆盖数量2.2. 代码运行使用到的功能覆盖数量代码运行使用到的功能覆盖数量3.3. 代码数据种类覆盖数量代码数据种类覆盖数量4.4. 代码函数条件覆盖数量代码函数条件覆盖数量5.5. 代码通路代码通路 (path)(path) 覆盖数量覆盖数量

Page 25: 软件产品质量度量

25

代码覆盖结果分析代码覆盖结果分析

Page 26: 软件产品质量度量

26

使用代码覆盖度量改进测试使用代码覆盖度量改进测试

代码覆盖度量只能揭示测试的漏洞,并不能直接改进代码覆盖度量只能揭示测试的漏洞,并不能直接改进测试 测试 为什么有些代码没有执行到?为什么有些代码没有执行到?脚本运行时执行到了代码不意味着测试的深度和全面脚本运行时执行到了代码不意味着测试的深度和全面性性先查功能代码覆盖率,再计划写自动化脚本的优先顺先查功能代码覆盖率,再计划写自动化脚本的优先顺序序撰写测试用例已覆盖所有要测试的功能行为,然后编撰写测试用例已覆盖所有要测试的功能行为,然后编写自动化脚本加以验证 写自动化脚本加以验证 添加新自动化脚本覆盖找到的漏洞添加新自动化脚本覆盖找到的漏洞

Page 27: 软件产品质量度量

27

使用代码覆盖度量结果分析使用代码覆盖度量结果分析没有覆盖代码的可能原因和改进措施:没有覆盖代码的可能原因和改进措施:遗漏的功能行为:遗漏的功能行为:追加测试追加测试程序中有‘死角’代码,没有功能行为可以执行该代码:程序中有‘死角’代码,没有功能行为可以执行该代码:删除?删除?很难模拟的出错条件:很难模拟的出错条件:可否有其他方法?可否有其他方法?过时的功能规范?过时的功能规范? -- -- 更新功能规范更新功能规范

Page 28: 软件产品质量度量

28

8.8. 单一功能测试验收质量度量单一功能测试验收质量度量

预先计划的详细测试:预先计划的详细测试: 100%100% 完成?完成?

自动化测试覆盖率:自动化测试覆盖率:≥≥ 65%65% ??

自动化测试运行结果:自动化测试运行结果: 0%0% 失败率?失败率?

发现缺陷的难易程度:发现缺陷的难易程度: 44 小时发现缺陷≤小时发现缺陷≤ 22

缺陷严重度和数量变化趋势:缺陷严重度和数量变化趋势:近期无高严重度缺近期无高严重度缺陷陷功能稳定程度:功能稳定程度:近期代码无需改变、自动化运行一近期代码无需改变、自动化运行一直保持直保持 100%100% 通过通过

Page 29: 软件产品质量度量

29

六 使用软件质量度量的注意事项和建议六 使用软件质量度量的注意事项和建议应当加以分析后挑选适当度量应当加以分析后挑选适当度量不应作为唯一的测试质量衡量标准不应作为唯一的测试质量衡量标准考虑人为因素和不定性因素的影响考虑人为因素和不定性因素的影响同一产品不同功能也应使用统一衡量标准同一产品不同功能也应使用统一衡量标准分析度量结果以指导测试和开发过程分析度量结果以指导测试和开发过程研发适合自己产品使用的质量度量研发适合自己产品使用的质量度量

Page 30: 软件产品质量度量

30

问题解答?问题解答?

谢谢大家!欢迎交流!谢谢大家!欢迎交流!

Page 31: 软件产品质量度量

31