如何衡量、跟踪软件测试指标?(附:计算公式)

489 阅读7分钟

什么是软件测试指标?

软件测试指标是用于确定软件测试活动进度的可量化指标。通常,它们帮助团队跟踪和监控软件测试的进度、质量和生产力。这些测试指标的主要目的是提高整个软件验收和测试过程的效率。

为什么企业应该了解软件测试指标?

通过分析以下几点,企业可以使用这些指标进一步评估其软件项目的有效性和软件测试效率:

  1. 跟踪软件测试的质量和进度
  2. 评估现有软件测试流程的效率
  3. 评估需要改进的领域
  4. 有效管理软件测试团队的项目优先级和工作量
  5. 帮助利益相关者就软件测试质量做出正确的决策
  6. 跟踪和监控整个测试过程的有效性
  7. 估算成本并计划未来软件测试的项目排期
  8. 帮助利益相关者决定现有技术或流程是否需要升级

软件测试指标的四大类

流程指标:

用于衡量和提高软件测试过程的能力 (例如,在测试过程中发现了多少缺陷,修复了多少缺陷,修复缺陷花费了多少时间等

产品指标:

它处理软件产品的质量并描述产品的特性 (如大小、复杂性、设计特征、性能、质量水平等。这些指标的主要目的是提高产品质量

项目指标:

它描述了项目特征,如成本、进度、生产力,还衡量了项目效率 (如项目进展情况、是否按计划进行、是否落后于计划等

人员指标:

它衡量软件测试团队的能力和技能水平。 (例如,团队是否按计划工作,团队在规定时间内识别的缺陷质量,团队的生产力等

企业需要知道的6种软件测试指标

1. 跟踪测试效率的指标

测试效率是一个需要有效评估的重要属性。它描述了软件测试过程的质量水平。下面列出了一些用于测试跟踪并了解其效率的指标:

  • 通过测试用例百分比\color{red}{通过测试用例百分比}=(通过测试数)/(执行测试总数)×100 
  • 失败测试用例百分比\color{red}{失败测试用例百分比}=(失败测试数)/(执行测试总数)×100 
  • 阻塞测试用例百分比\color{red}{阻塞测试用例百分比}=(阻塞测试的数量)/(执行的测试总数)×100
  • 平均维修时间(MTTR)\color{red}{平均维修时间(MTTR)}=总纠正性维修时间 / 维修次数

2. 跟踪测试工作的指标

这是衡量或量化测试团队为测试产品所付出的努力的重要指标。它帮助利益相关者评估和比较测试团队的预期与实际测试工作。

  • 测试执行覆盖率\color{red}{测试执行覆盖率}=(运行的测试次数)/(要运行的测试总数)×100
  • 每次测试的错误数\color{red}{每次测试的错误数}=(缺陷总数)/(测试总数)
  • 测试错误修复的平均时间\color{red}{测试错误修复的平均时间}=(缺陷修复和所有缺陷重新测试之间的总时间)/(缺陷总数)

3. 跟踪测试覆盖率的指标

这些指标描述了测试过程的真实场景和情况。下面列出了一些用于跟踪测试覆盖率百分比的公式: 

  • 需求覆盖率\color{red}{需求覆盖率}=(覆盖的需求数)/(总需求数)×100 
  • 自动测试覆盖率\color{red}{自动测试覆盖率}=(自动化案例总数)/(自动化候选总数)x100 (自动化测试覆盖率:该指标衡量通过利用自动化实现的测试覆盖率百分比测试。随着时间的推移,测试覆盖率应该会显着增加,从而提高软件质量。自动化测试覆盖率越高,软件中出现缺陷的机会就越低。

4. 跟踪测试有效性的指标

测试有效性指标测量和评估错误并确定测试集的质量。其中一些包括: 

  • 测试有效性\color{red}{测试有效性}=(在测试中发现的错误数)/(发现的错误总数(在测试中发现的错误数+在发布后发现的错误数))×100

5. 跟踪缺陷的指标

它测量缺陷密度、缺陷严重程度以及与缺陷相关的所有其他方面。这些指标有助于评估有多少缺陷及其严重程度,以确保软件测试过程的质量。他们之中有一些是:

  • 接受的缺陷百分比\color{red}{接受的缺陷百分比}=(开发团队接受为有效的缺陷数量)/(报告的缺陷总数)×100
  • 被拒绝的缺陷百分比\color{red}{被拒绝的缺陷百分比}=(被开发团队拒绝为无效的缺陷数量)/(报告的缺陷总数)×100
  • 延迟缺陷百分比\color{red}{延迟缺陷百分比}=(延迟到未来版本的缺陷数量)/(报告的缺陷总数)×100
  • 固定缺陷百分比\color{red}{固定缺陷百分比}=(固定缺陷总数)/(报告的缺陷总数)×100
  • 关键缺陷百分比\color{red}{关键缺陷百分比}=(关键缺陷)/(报告的总缺陷)×100
  • 缺陷密度\color{red}{缺陷密度}=(缺陷总数)/(模块总数)
  • 检测时间\color{red}{检测时间}=(发现的缺陷数量)/(总执行时间(以小时为单位))
  • 缺陷严重程度指数\color{red}{缺陷严重程度指数}=((导致测试阻断的陷数量×8)+(严重缺陷数量×6)+(轻微严重缺陷数量×3)+(低级别缺陷数量×1 )) / (缺陷总数)
  • 缺陷年龄\color{red}{缺陷年龄}(严重性分布):该指标反映了有多少打开的bug长期打开以及相应的严重性
  • 缺陷泄漏百分比\color{red}{缺陷泄漏百分比}= (UAT中发现的缺陷总数/Production)/(UAT前发现的缺陷总数/Production)×100
  • 缺陷循环时间\color{red}{缺陷循环时间}:这些指标衡量这些敏捷团队从团队开始修复错误到解决错误所花费的时间。它可以借助图表来表示,其中x轴代表时间,y轴代表解决缺陷所花费的小时数。
  • 缺陷类别:软件缺陷可分为多种类别,例如:
    • 区域分布:这些指标反映基于所执行测试类型的缺陷分布。例如安全缺陷、性能缺陷、功能缺陷等。
    • 组件分布:该度量代表软件每个模块中的缺陷数量。通过添加每个模块中的缺陷数量,测试人员可以识别软件中的缺陷总数。 
    • 严重性分布:该指标代表缺陷的严重性级别。可能有最低数量的区域。有的缺陷可能包含高度严重的缺陷;因此,应首先纠正这些缺陷。它通常以直方图表示。 image.png

6. 跟踪测试成本的指标

在软件测试过程中,有几个组成部分会影响测试成本,例如所涉及的资源、工具和基础设施成本等。跟踪和评估测试成本并比较预期与实际测试支出是很重要的。以下指标可以跟踪它:

  • 测试的实际成本\color{red}{测试的实际成本}= (实际测试预算)/(测试需求或测试用例或测试小时数) 
  • 预算差异\color{red}{预算差异}= 实际成本-计划成本 
  • 进度差异\color{red}{进度差异}= 完成测试的实际时间-计划时间

有效跟踪软件测试指标的 4 个最佳实践

1. 将软件测试指标与业务目标联系起来:

实际上,同时跟踪以上所有指标几乎是不可能的。因此,软件测试指标应该与业务优先级相关联。只选择与业务最相关的几个指标。

2. 分析趋势,而不仅仅是数字:

通常,只要满足测试指标目标,软件团队就会宣布它是成功的。但这些简单、可量化的目标并不能代表所有。软件测试背后还有很多工作要做,因此需要定时分析趋势,以确定测试工作的发展方向以及进步程度。

3. 将测量周期拆分成更短的时间片段:

这有助于软件开发团队定时分析软件指标和趋势。借助更短的时间片段,团队可以及时地确定软件测试工作的进展情况。

4. 向利益相关者通知进展:

软件测试指标用于在简单数字的帮助下向管理层和利益相关者表示复杂的过程。这些指标不应被视为判断个人性能的手段,因为软件测试过程涉及大量工作和其他不可量化的方面。因此,指标应始终用作参考数据,团队和经理可以通过它讨论必要的改进。