1、 缺陷探测率 :测试发现/(测试+客户发现)
2、 缺陷移除率
1、缺陷移除率:表现的就是我们在当阶段明确发现该阶段引入的缺陷及问题的能力,反过来他又能体现出有多少问题被从一个阶段遗留到了下一阶段。如需求缺陷一共发现了12个,在需求分析阶段缺陷只发现了3个,那么缺陷在需求分析阶段的移除率只有25%
① 需求阶段缺陷移除率较低,说明需求评审工作的缺失
② 验收阶段报出需求问题数量可观,说明需求团队与用户的沟通不畅
③ 单元测试整体发现缺陷数过低
④ 测试以外的人员缺陷报告数较低
2、按缺陷等级
① 商品浏览模块报出的总体缺陷量较多
② 支付模块报出严重缺陷较多
版本按环境:不同环境测试引入阶段
缺陷修复率: 缺陷修复率指的在一定单位时间内,报出的,被修复的以及遗留的缺陷数量的对比。这是比较直观的一种报表。
① 缺陷报出数量在经历了稳定下降之后,在项目后期迎来了回升
② 开发团队的bug修复能力在4月份出现滑坡,据调查是因为开发核心人员受到了抽调
③ 项目收尾时的bug遗留数量不容乐观,主要是由于最后两个月报出bug数量激增造成
5. 缺陷修复轮次统计
解析:
① 项目大部分缺陷经历了多次修复
② 反映了开发与测试团队存在一定程度的沟通问题
③ 部分原因在于测试团队的测试描述不充分
5、测试类型缺陷率:各种类型的测试活动发现缺陷个数/全部测试活动发现的个数
① 系统测试的效率并没有我们想象中的那么高(200多个缺陷中,只有不到40%来源于系统测试阶段)
② 外部测试的缺陷数令人担忧(指的实际上UAT测试的结果)
③ 回归测试和探索性测试发现了系统测试没有发现的问题,说明他们都是非常有效而且必要的测试活动
缺陷到达率:
缺陷到达率指的是单位时间内,报出缺陷的数量。 上图按照每月报出的缺陷数量进行了统计,并且按严重级别进行了分类。
解析:
① 缺陷到达率在前四个月内呈明显下降趋势
② 五月份的缺陷量回升主要体现在低严重级缺陷数量上
③ 缺陷数的严重级别成正态分布
④ 六月份缺陷明显回升
提测质量如何度量:
这就引入一个叫千行代码缺陷率指标:缺陷总数/(代码行数/1000)
CMMI级别中做出了相关的指标规定,千行代码缺陷率(bug率)阈值限制:
CMM1级 11.95%
CMM2级 5.52%
CMM3级 2.39%
CMM4级 0.92%
CMM5级 0.32%
#统计总量
git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
#统计变更总量:按时间节点
git log --pretty=tformat: --since ==2021-4-1 --until=2022-01-31 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
#统计个人:按提交人
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since ==2021-4-1 --until=2022-01-31 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
#统计个人:按提交人和指定文件后缀(.html|.cs|.md|.xml|.properties)
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | grep "\(.html\|.cs\|.md\|.xml\|.properties\)$" | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
#统计总量和指定文件后缀(.html|.cs|.md|.xml|.properties)
git log --pretty=tformat: --numstat | grep "\(.cs\)$"| awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'