软件质量管理-质量管理线
概念
质量管理挑战:三要素
面向用户的质量观、质量策略、质量路径
面向用户的质量观
该质量观定义质量为满足用户需求的程度,需要明确:
- 用户是谁?
- 用户需求的优先级?
- 这种优先级对软件产品的开发过程有什么影响?
- 怎么度量该质量观下的质量水平?
典型的用户质量期望:
- 产品能工作
- 执行快
- 安全可靠,兼容性好,可用易用
质量管理策略和背后逻辑
-
先保证基本没有缺陷,再考虑其他质量目标
-
用缺陷管理来替代质量管理
-
高质量产品即意味着软件产品的各个组件基本无缺陷
不同缺陷消除方式消除缺陷的效率:

测试消除缺陷的典型流程:
- 发现异常
- 理解程序工作方式
- 调试程序找出出错原因
- 修改缺陷
- 测试验证修改是否有效
评审消除缺陷典型流程:
- 按评审者的逻辑来理解程序
- 发现缺陷
- 修正缺陷
评审
个人评审
关键控制因素
打印后评审效果更好:
- 评审复杂系统时,单个屏幕上的信息不全
- 评审人员的注意力:屏幕容易分散
时机选择
编译前or编译后
后:
- 编译器可以帮助发现更多错误
- 再nb的评审也会遗漏20%~50%的语法错误
- 即视编译器仍然遗漏了一些错误,单元测试可以兜底
前:
- 不管评审前有没有编译,评审的速度是一定的不会变;而如果先评审,编译时就可以避免许多错误,节省编译时间
- 编译器总会遗漏大概9%的错误,可以期望评审消除这些缺陷
- 编译时遇到的错误越多往往意味着测试时遇到更多的错误
- 一发过编译会使开发人员有成就感
小组评审
个人评审1 → 小组评审
小组评审的意义:
- 有利于更好地发现缺陷预防风险
- 个人之后安排小组评审,也有利于提高个人技能
过程质量控制方式
PSP?TSP?评审?
质量控制指标(考虑特点和用途)
Yield
Yield指标用于度量每个阶段在消除缺陷方面的效率
Phase Yield = 100 * (某阶段发现的缺陷个数)/(某阶段注入的缺陷个数+进入该阶段前遗留的缺陷个数)
Process Yield = 100 * (第一次编译前发现的缺陷个数)/(第一次编译前注入的缺陷个数)


答案:
6.90 |
A/FR
- PSP中定义的失效成本为编译时间和单元测试时间之和。
- PSP中定义的质检成本为设计评审时间与代码评审时间之和。
A/FR = PSP质检成本 / PSP失效成本

理论上,A/FR越大质量越高;但是过高的AFR意味着做了更多评审,会导致开发效率下降;因此期望值是2.0
PQI
5个指标的乘积:
- 设计质量:设计的时间应该大于编码的时间
- 设计评审质量:设计评审的时间应该大于设计时间的50%
- 代码评审质量:代码评审时间应该大于编码时间的50%
- 代码质量:代码的编译缺陷密度应当小于10个/千行
- 程序质量:代码单元测试缺陷密度应当小于5个/千行
有一个做的不到位,直接给PQI干成0了
PQI和交付后缺陷密度关系:

与集成时缺陷关系:

RR(Review Rate)
评审速度,因为高质量的评审需要投入足够多时间,所以不能太快
在PSP的实践中,代码评审速度小于200 LOC/小时,文档评审速度小于4 Page/小时
DRL
缺陷消除效率比,度量的是不同手段消除缺陷的效率。
计算方式是以某个测试阶段(一般是单元测试)每小时发现的缺陷数为基础,其他阶段每小时发现缺陷数和该基准阶段发现数量的比值
示例:

Quality Journey(质量路径)
- 第一步:各种测试
- 第二步:进入测试之前的产物质量提升
- 第三步:评审过程度量和稳定
- 第四步:质量意识和主人翁态度
- 第五步:个体 review 的度量和稳定
- 第六步:诉诸设计
- 第七步:缺陷预防
- 第八步:用户质量关 —— 其他质量属性
思考:Quality Journey体现了什么质量管理哲学
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 (๑>ᴗ<๑)!
评论