没有衡量的东西就不会得到改善。质量指标可帮助您了解软件健康状况并指导决策。本指南向您介绍最重要的指标以及如何使用它们。
为什么要衡量质量
可见性
了解当前状态。
趋势
变得更好还是更糟?
决定
基于数据,而不是直觉。
通讯
向利益相关者展示质量。
代码指标
代码覆盖率
测试覆盖的代码百分比。
圈复杂度
代码中路径的复杂性。
重复
重复代码。
技术债务
清理工作估算。
可维护性指数
维护难易度得分。
错误指标
缺陷密度
按代码大小划分的错误 (KLOC)。
错误逃逸率
生产环境与完整环境中发现的错误。
###MTBF
平均故障间隔时间。
平均修复时间
平均修复时间。
严重性分布
按严重程度划分的比例。
测试指标
测试覆盖率
单元、集成、E2E。
测试通过率
通过的百分比。
不稳定的测试
测试不稳定。
测试执行时间
运行套件需要多长时间。
流程指标
交货时间
从提交到部署。
周期时间
从一个功能的开始到结束。
部署频率
每个时期有多少部署。
更改失败率
导致问题的部署的百分比。
朵拉指标
它们是什么
DevOps 研究和评估指标。
四个指标
- 部署频率
- 变更准备时间
- 改变失败率
- 恢复服务的时间
分类
精英、高、中、低绩效者。
代码审查
回顾时间
代码审核需要多长时间。
审查完整性
实质性评论。
批准率
通过率。
生产指标
正常运行时间
系统可用性。
错误率
生产中的错误率。
响应时间
请求延迟(p50、p95、p99)。
吞吐量
每秒请求数。
用户满意度
###NPS
净推荐值。
应用商店评级
商店评价。
错误报告
用户报告量。
支持票
与错误相关的票证。
##安全
漏洞
数量和严重程度。
打补丁的时间
多久修好。
安全事件
安全事件。
工具
声纳Qube
静态分析,代码度量。
Codecov/工作服
覆盖范围跟踪。
朵拉/侦探
部署指标。
Datadog/New Relic
生产指标。
仪表板
可见性
团队可以访问的指标。
更新
尽可能实时。
###趋势
查看进化论。
警报
异常情况通知。
使用指标
不要游戏化
衡量洞察力的指标,而不是惩罚的指标。
上下文
没有背景的数字是具有欺骗性的。
趋势 > 绝对
方向比点值更重要。
###动作
不能带来行动的指标是没有用的。
按阶段划分的指标
发展
复杂性、覆盖范围、审查时间。
发布
交付时间、部署频率。
生产
错误率、正常运行时间、响应时间。
发布后
缺陷密度,客户满意度。
持续改进
基线
建立起点。
目标
设定切合实际的目标。
回顾
定期讨论指标。
###实验
测试干预措施。
常见错误
指标作为目标
100%的覆盖率并不意味着质量。
许多指标
专注于一些重要的事情。
忽略上下文
不同的团队和项目。
按指标进行惩罚
它会导致不正常的行为。
结论
质量指标是理解和改进软件的工具。选择适合您的环境、监控趋势并采取数据驱动的行动。质量是一个持续的旅程,而不是终点。
##常见问题解答
1) 什么样的覆盖范围就足够了? 70-80% 是一个不错的目标。但这取决于测试的内容。
2) 什么指标最重要? DevOps 的 DORA 指标。缺陷密度和正常运行时间以保证质量。
3) 指标会取代良好的判断吗? 不。他们通知决策,但他们不做决定。
4) 如何说服团队采用指标? 显示价值。不要用它来惩罚。
5) 指标对小团队有效吗? 是的。简化,但衡量要点。
另请阅读
- [数字质量保证:软件产品的质量保证0
- [软件质量指标:验证和基础知识1
- [软件质量指标:验证和基本步骤2
- [软件质量:性能快速指南3
- [手动软件测试:完整指南4
- [软件质量5
