软件质量指标
软件指标可分为三类 −
产品指标 − 描述产品的特征,例如大小、复杂性、设计特点、性能和质量水平。
过程指标 − 这些特征可用于改进软件的开发和维护活动。
项目指标 − 这些指标描述项目的特征和执行情况。示例包括软件开发人员的数量、软件生命周期内的人员配置模式、成本、进度和生产力。
某些指标属于多个类别。例如,项目的过程质量指标既是过程指标,又是项目指标。
软件质量指标是软件指标的一个子集,侧重于产品、过程和项目的质量方面。这些指标与流程和产品指标的关系比与项目指标的关系更密切。
软件质量指标可进一步分为三类 −
- 产品质量指标
- 过程中质量指标
- 维护质量指标
产品质量指标
此指标包括以下内容 −
- 平均故障时间
- 缺陷密度
- 客户问题
- 客户满意度
平均故障时间
这是两次故障之间的时间。该指标主要用于安全关键系统,例如航空交通控制系统、航空电子设备和武器。
缺陷密度
它衡量相对于软件大小的缺陷,以代码行或功能点等表示。即,它衡量每单位代码质量。该指标用于许多商业软件系统。
客户问题
它衡量客户在使用产品时遇到的问题。它包含客户对软件问题空间的看法,包括非缺陷导向问题和缺陷问题。
问题指标通常以每用户月问题数 (PUM) 表示。
PUM = 客户在一段时间内报告的总问题数(真实缺陷和非缺陷导向问题)+ 该期间软件的总许可月数
其中,
软件的许可月数 = 软件的安装许可数 × 计算期的月数
PUM 通常是在软件发布到市场后按月计算的,也可以按年计算月平均值。
客户满意度
客户满意度通常通过五分量表的客户调查数据来衡量 −
- 非常满意
- 满意
- 一般
- 不满意
- 非常不满意
对产品整体质量及其具体尺寸的满意度通常通过各种客户调查方法获得。基于五分量表数据,可以根据分析目的构建和使用几个略有变化的指标。例如 −
- 完全满意的客户百分比
- 满意的客户百分比
- 不满意的客户百分比
- 不满意的客户百分比
通常使用此满意度百分比。
过程中质量指标
对于某些组织来说,过程中质量指标涉及在正式机器测试期间跟踪缺陷到达情况。此指标包括 −
- 机器测试期间的缺陷密度
- 机器测试期间的缺陷到达模式
- 基于阶段的缺陷消除模式
- 缺陷消除有效性
机器测试期间的缺陷密度
正式机器测试(将代码集成到系统库后进行测试)期间的缺陷率与现场缺陷率相关。测试期间发现的缺陷率较高表明软件在开发过程中经历了较高的错误注入,除非较高的测试缺陷率是由于额外的测试工作造成的。
当软件仍在测试时,这种每 KLOC 或功能点的缺陷简单度量是一个很好的质量指标。它对于监控同一开发组织中产品的后续版本特别有用。
机器测试期间的缺陷到达模式
测试期间的总体缺陷密度将仅提供缺陷的摘要。缺陷到达模式提供有关现场不同质量级别的更多信息。它包括以下内容 −
按时间间隔(例如一周)在测试阶段报告的缺陷到达或缺陷。这里所有这些都不是有效缺陷。
对报告的问题进行问题确定时的有效缺陷到达模式。这是真正的缺陷模式。
缺陷积压模式。需要此指标是因为开发组织无法立即调查和修复所有报告的问题。这是工作量说明,也是质量说明。如果在开发周期结束时缺陷积压很大,并且许多修复尚未集成到系统中,则系统的稳定性(因此其质量)将受到影响。需要重新测试(回归测试)以确保达到目标产品质量水平。
基于阶段的缺陷消除模式
这是测试期间缺陷密度指标的扩展。除了测试之外,它还跟踪开发周期各个阶段的缺陷,包括设计评审、代码检查和测试前的形式验证。
由于很大一部分编程缺陷与设计问题有关,因此进行形式评审或功能验证以增强前端流程的缺陷消除能力可以减少软件中的错误。基于阶段的缺陷移除模式反映了开发过程的整体缺陷移除能力。
关于设计和编码阶段的指标,除了缺陷率之外,许多开发组织还使用诸如检查覆盖率和检查工作量等指标来进行过程内质量管理。
缺陷移除有效性
可定义为 −
$$DRE = \frac{Defect \: removed \: during \: a \: development\:phase }{Defects\: latent \: in \: the\: product} imes 100\%$$
可针对整个开发过程、代码集成之前的前端和每个阶段计算此指标。用于前端时称为早期缺陷移除,用于特定阶段时称为阶段有效性。度量值越高,开发过程就越有效,传递到下一阶段或现场的缺陷就越少。该度量是软件开发缺陷消除模型的一个关键概念。
维护质量指标
尽管在此阶段无法改变产品质量,但以下是可以执行的修复,以便尽快消除缺陷,并实现出色的修复质量。
- 修复积压和积压管理指数
- 修复响应时间和修复响应度
- 拖欠修复百分比
- 修复质量
修复积压和积压管理指数
修复积压与缺陷到达率以及已报告问题的修复可用率有关。它是每月或每周末剩余的报告问题的简单计数。以趋势图的形式使用时,此指标可为管理维护过程提供有意义的信息。
积压管理指数 (BMI) 用于管理未解决和未解决问题的积压。
$$BMI = \frac{本月内关闭的问题数量 }{本月内出现的问题数量} 100\%$$
如果 BMI 大于 100,则表示积压减少了。如果 BMI 小于 100,则积压增加了。
修复响应时间和修复响应性
修复响应时间指标通常计算为所有问题从打开到关闭的平均时间。较短的修复响应时间可使客户满意。
修复响应能力的重要元素包括客户期望、约定的修复时间以及履行对客户承诺的能力。
拖欠修复百分比
计算方法如下 −
$拖欠修复百分比 =$
$\frac{超过响应时间标准(严重性级别)的修复数量}{在指定时间内交付的修复数量} 100%$
修复质量
修复质量或缺陷数量修复是维护阶段的另一个重要质量指标。如果修复没有修复所报告的问题,或者修复了原始问题但引入了新的缺陷,则该修复是有缺陷的。对于关键任务软件,有缺陷的修复不利于客户满意度。缺陷修复百分比指标是一段时间内所有修复中有缺陷的百分比。
缺陷修复可以用两种方式记录:在发现的月份记录,或在交付修复的月份记录。第一种是客户衡量标准;第二种是流程衡量标准。两个日期之间的差异是缺陷修复的潜伏期。
通常,延迟时间越长,受影响的客户就越多。如果缺陷数量很大,那么百分比指标的小值将显示乐观的图景。当然,维护过程的质量目标是零缺陷修复,无拖延。