软件质量指标


软件指标可以分为三类 -

  • 产品指标- 描述产品的特征,例如尺寸、复杂性、设计特征、性能和质量水平。

  • 流程指标- 这些特征可用于改进软件的开发和维护活动。

  • 项目指标- 该指标描述了项目特征和执行情况。示例包括软件开发人员的数量、软件生命周期内的人员配置模式、成本、进度和生产力。

某些指标属于多个类别。例如,项目的过程质量指标既是过程指标又是项目指标。

软件质量度量是软件度量的一个子集,重点关注产品、过程和项目的质量方面。这些与流程和产品指标的关系比与项目指标的关系更密切。

软件质量指标可以进一步分为三类 -

  • 产品质量指标
  • 过程中的质量指标
  • 维护质量指标

产品质量指标

该指标包括以下内容 -

  • 平均无故障时间
  • 缺陷密度
  • 客户问题
  • 客户满意度

平均无故障时间

这是失败之间的时间。该指标主要用于安全关键系统,例如航空交通控制系统、航空电子设备和武器。

缺陷密度

它衡量相对于以代码行或功能点等表示的软件大小的缺陷,即衡量每个单元的代码质量。该指标用于许多商业软件系统。

客户问题

它衡量客户在使用产品时遇到的问题。它包含客户对软件问题空间的看法,其中包括非面向缺陷的问题和缺陷问题。

问题指标通常以每个用户月的问题数 (PUM)来表示。

PUM = Total Problems that customers reported (true defect and non-defect oriented 
problems) for a time period + Total number of license months of the software during 
the period

在哪里,

Number of license-month of the software = Number of install license of the software × 
Number of months in the calculation period

PUM 通常是在软件发布到市场后按月计算,也可以按年份计算月平均值。

客户满意度

客户满意度通常通过五点量表的客户调查数据来衡量 -

  • 很满意
  • 使满意
  • 中性的
  • 不满意
  • 非常不满

对产品整体质量及其具体尺寸的满意度通常是通过各种客户调查方法获得的。基于五点尺度的数据,可以根据分析的目的构建和使用几个略有变化的指标。例如 -

  • 完全满意的客户百分比
  • 满意客户的百分比
  • 不满意顾客的百分比
  • 不满意顾客的百分比

通常,使用此百分比满意度。

过程中的质量指标

过程中质量指标涉及在某些组织的正式机器测试期间跟踪缺陷到达情况。该指标包括 -

  • 机器测试期间的缺陷密度
  • 机器测试期间的缺陷到达模式
  • 基于阶段的缺陷去除模式
  • 缺陷去除效果

机器测试期间的缺陷密度

正式机器测试(代码集成到系统库后进行的测试)期间的缺陷率与现场的缺陷率相关。测试期间发现的较高缺陷率表明该软件在其开发过程中经历了较高的错误注入,除非较高的测试缺陷率是由于异常的测试工作造成的。

这个简单的每个 KLOC 或功能点缺陷度量是一个很好的质量指标,而软件仍在测试中。监视同一开发组织中产品的后续版本特别有用。

机器测试期间的缺陷到达模式

测试期间的总体缺陷密度将仅提供缺陷的摘要。缺陷到达模式提供了有关现场不同质量水平的更多信息。它包括以下内容 -

  • 按时间间隔(例如,周)在测试阶段期间到达的缺陷或报告的缺陷。这里所有这些都不会是有效的缺陷。

  • 对报告的问题进行问题确定时有效缺陷到达的模式。这是真正的缺陷模式。

  • 缺陷积压超时的模式。需要此指标是因为开发组织无法立即调查并修复所有报告的问题。这是工作量声明,也是质量声明。如果在开发周期结束时缺陷积压量很大,并且大量修复尚未集成到系统中,系统的稳定性(从而影响其质量)将会受到影响。需要重新测试(回归测试)以确保达到目标产品质量水平。

基于阶段的缺陷去除模式

这是测试期间缺陷密度度量的扩展。除了测试之外,它还跟踪开发周期所有阶段的缺陷,包括测试前的设计审查、代码检查和形式验证。

由于很大一部分编程缺陷与设计问题有关,因此进行形式审查或功能验证来增强前端流程的缺陷消除能力可以减少软件中的错误。阶段性缺陷去除模式反映了开发过程的整体缺陷去除能力。

对于设计和编码阶段的指标,除了缺陷率之外,许多开发组织还使用检查覆盖率和检查工作量等指标来进行过程中的质量管理。

缺陷去除效果

它可以定义如下 -

$$DRE = \frac{在开发阶段已消除的缺陷}{产品中潜在的缺陷} \times 100\%$$

该指标可以针对整个开发流程、代码集成之前的前端以及每个阶段进行计算。当用于特定阶段的前端和阶段有效性时,称为早期缺陷消除。该指标的值越高,开发过程就越有效,传递到下一阶段或现场的缺陷就越少。该指标是软件开发缺陷消除模型的关键概念。

维护质量指标

虽然在此阶段无法做太多事情来改变产品的质量,但可以采取以下修复措施,以尽快消除缺陷,并具有出色的修复质量。

  • 修复积压和积压管理索引
  • 修复响应时间并修复响应能力
  • 逾期修复百分比
  • 修复质量

修复积压和积压管理索引

修复积压与缺陷到达率以及报告问题的修复可用的速度有关。这是每个月末或每周仍存在的已报告问题的简单计数。以趋势图的形式使用该指标,可以为管理维护过程提供有意义的信息。

积压管理指数(BMI)用于管理未决和未解决问题的积压。

$$BMI = \frac{该月期间已关闭的问题数量}{该月期间到达的问题数量} \次100\%$$

如果BMI大于100,则意味着积压减少。如果 BMI 小于 100,则积压量增加。

修复响应时间并修复响应能力

修复响应时间指标通常计算为所有问题从打开到关闭的平均时间。较短的修复响应时间可提高客户满意度。

修复响应能力的重要元素是客户期望、商定的修复时间以及履行对客户承诺的能力。

逾期修复百分比

计算如下 -

$百分比\:拖欠\:修复=$

$\frac{超出响应时间标准的修复次数(按严重度级别)}{修复次数:已交付\: 在\:指定\:时间} \乘以100\%$

修复质量

修复质量或有缺陷的修复数量是维护阶段的另一个重要质量指标。如果修复没有修复报告的问题,或者修复了原始问题但注入了新的缺陷,则该修复是有缺陷的。对于关键任务软件,有缺陷的修复不利于客户满意度。有缺陷修复百分比的指标是一个时间间隔内所有有缺陷修复的百分比。

有缺陷的修复可以通过两种方式记录:在发现修复的月份记录,或在交付修复的月份记录。第一个是客户衡量标准;二是过程措施。两个日期之间的差异是缺陷修复的潜伏期。

通常延迟越长,受影响的客户就越多。如果缺陷数量很大,那么百分比指标的较小值将显示乐观的情况。当然,维护过程的质量目标是零缺陷修复且无拖欠。