质量度量与分析技能Skill quality-metrics

质量度量与分析技能用于通过可操作的指标(如DORA指标、bug逃逸率、测试有效性)来衡量和优化软件质量,建立质量仪表板、定义KPIs、设置质量门以及评估测试流程的有效性。关键词包括质量度量、DORA指标、质量门、仪表板、测试有效性、bug逃逸率、MTTD、MTTR。

测试 0 次安装 0 次浏览 更新于 3/9/2026

name: quality-metrics description: “通过可操作的指标有效衡量质量。适用于建立质量仪表板、定义KPIs或评估测试有效性。” category: testing-methodologies priority: high tokenEstimate: 900 agents: [qe-quality-analyzer, qe-test-executor, qe-coverage-analyzer, qe-production-intelligence, qe-quality-gate] implementation_status: optimized optimization_version: 1.0 last_optimized: 2025-12-02 dependencies: [] quick_reference_card: true tags: [metrics, dora, quality-gates, dashboards, kpis, measurement] trust_tier: 3 validation: schema_path: schemas/output.json validator_path: scripts/validate-config.json eval_path: evals/quality-metrics.yaml


质量度量

<default_to_action> 衡量质量或构建仪表板时:

  1. 衡量结果(bug逃逸率、MTTD),而不是活动(测试数量)
  2. 关注DORA指标:部署频率、变更前置时间、MTTD、MTTR、变更失败率
  3. 避免虚荣指标:如果测试不能发现bug,100%覆盖率毫无意义
  4. 设置驱动行为的阈值(质量门阻挡坏代码)
  5. 随时间趋势:方向比绝对数字更重要

快速指标选择:

  • 速度:部署频率、变更前置时间
  • 稳定性:变更失败率、MTTR
  • 质量:bug逃逸率、缺陷密度、测试有效性
  • 流程:代码审查时间、不稳定测试率

关键成功因素:

  • 没有行动的指标是作秀
  • 你衡量的就是你优化的
  • 趋势比快照更重要 </default_to_action>

快速参考卡片

何时使用

  • 构建质量仪表板
  • 定义质量门
  • 评估测试有效性
  • 证明质量投资合理性

有意义 vs 虚荣指标

✅ 有意义 ❌ 虚荣
Bug逃逸率 测试用例数量
MTTD(检测) 测试代码行数
MTTR(恢复) 测试执行次数
变更失败率 覆盖率%(单独)
变更前置时间 需求追溯

DORA指标

指标 精英
部署频率 按需 每周 每月 每年
前置时间 < 1 小时 < 1 周 < 1 个月 > 6 个月
变更失败率 < 5% < 15% < 30% > 45%
MTTR < 1 小时 < 1 天 < 1 周 > 1 个月

质量门阈值

指标 阻塞阈值 警告
测试通过率 100% -
关键覆盖率 > 80% > 70%
安全关键 0 -
性能p95 < 200ms < 500ms
不稳定测试 < 2% < 5%

核心指标

Bug逃逸率

Bug逃逸率 = (生产Bug / 总Bug发现) × 100

目标:< 10%(90%在生产前捕获)

测试有效性

测试有效性 = (测试发现的Bug / 总Bug) × 100

目标:> 70%

缺陷密度

缺陷密度 = 缺陷 / 千行代码

良好:< 每千行代码1个缺陷

平均检测时间(MTTD)

MTTD = 时间(Bug报告) - 时间(Bug引入)

目标:< 1 天(关键),< 1 周(其他)

仪表板设计

// 代理生成质量仪表板
await Task("生成仪表板", {
  metrics: {
    delivery: ['deployment-frequency', 'lead-time', 'change-failure-rate'],
    quality: ['bug-escape-rate', 'test-effectiveness', 'defect-density'],
    stability: ['mttd', 'mttr', 'availability'],
    process: ['code-review-time', 'flaky-test-rate', 'coverage-trend']
  },
  visualization: 'grafana',
  alerts: {
    critical: { bug_escape_rate: '>20%', mttr: '>24h' },
    warning: { coverage: '<70%', flaky_rate: '>5%' }
  }
}, "qe-quality-analyzer");

质量门配置

{
  "qualityGates": {
    "commit": {
      "coverage": { "min": 80, "blocking": true },
      "lint": { "errors": 0, "blocking": true }
    },
    "pr": {
      "tests": { "pass": "100%", "blocking": true },
      "security": { "critical": 0, "blocking": true },
      "coverage_delta": { "min": 0, "blocking": false }
    },
    "release": {
      "e2e": { "pass": "100%", "blocking": true },
      "performance_p95": { "max_ms": 200, "blocking": true },
      "bug_escape_rate": { "max": "10%", "blocking": false }
    }
  }
}

代理辅助指标

// 计算质量趋势
await Task("质量趋势分析", {
  timeframe: '90d',
  metrics: ['bug-escape-rate', 'mttd', 'test-effectiveness'],
  compare: 'previous-90d',
  predictNext: '30d'
}, "qe-quality-analyzer");

// 评估质量门
await Task("质量门评估", {
  buildId: 'build-123',
  environment: 'staging',
  metrics: currentMetrics,
  policy: qualityPolicy
}, "qe-quality-gate");

代理协调提示

内存命名空间

aqe/quality-metrics/
├── dashboards/*         - 仪表板配置
├── trends/*             - 历史指标数据
├── gates/*              - 门评估结果
└── alerts/*             - 触发警报

舰队协调

const metricsFleet = await FleetManager.coordinate({
  strategy: 'quality-metrics',
  agents: [
    'qe-quality-analyzer',         // 趋势分析
    'qe-test-executor',            // 测试指标
    'qe-coverage-analyzer',        // 覆盖率数据
    'qe-production-intelligence',  // 生产指标
    'qe-quality-gate'              // 门决策
  ],
  topology: 'mesh'
});

常见陷阱

陷阱 问题 解决方案
覆盖率崇拜 100%覆盖率,bug仍逃逸 测量bug逃逸率代替
测试数量焦点 许多测试,反馈慢 测量执行时间
活动指标 忙碌工作,无结果 衡量结果(MTTD、MTTR)
点时间 无上下文的快照 随时间跟踪趋势

相关技能


记住

衡量结果,而不是活动。 Bug逃逸率 > 测试数量。 MTTD/MTTR > 覆盖率%。 趋势 > 快照。 设置阻挡坏代码的门。 你衡量的就是你优化的。

与代理一起: 代理自动跟踪指标、分析趋势、触发警报并做出门决策。 使用代理保持持续质量可见性。