文章目录
更新记录
时间 | 版本 | 内容 | 修订者 | 备注 |
---|---|---|---|---|
2024/08/06 | 0.1.0 | 创建 | henry.xu | |
2024/08/16 | 0.2.0 | 修改功能总分的计算规则 | henry.xu |
项目总评分计算公式
项目总评分 = 功能总分 * 修正系数
- 功能总分由功能模块步骤数量总和 / 重复模块数量 / 重复模块调试分数三个部分决定
- 修正系数等于每个影响参数与其权重乘积之和,目前已有的影响参数:任务周期,程序稳定性,内测评审;
项目分说明
- 项目分为完成该项目以后获得的分数,将计入KPI;
- 计入时间
- 内测结束之后计入KPI内;
- 内测以后项目的运维
- 项目内测以后一直到下次需求分析进版,中间的bug修复任务只能算任务量,但是不计入KPI;
- 即第一位和第二位进版的任务才会计入KPI; 第三位进版的任务不计入KPI;
功能总分
经需求分析类项目
1. 功能总分的计算公式
- 评分标准
- 1 - 3 分: 业务逻辑简单能找到相关代码的;
- 弹窗或者系统设置等功能模块;
- step个数 <=10: 1分
- 10 < step个数 <= 20: 2分
- 20 < step个数: 3分
- 4 - 6 分: 业务逻辑复杂,创新性不高,且开发组内没有相关代码引用;
- 7 - 10分:开发组内没有相关技术储备,创新性较高的功能模块;
- 1 - 3 分: 业务逻辑简单能找到相关代码的;
功能总分的计算公式如下:
n = 功能模块的数量 n = \text{功能模块的数量} n=功能模块的数量
R i = 第 i 个模块的评分 R_i = \text{第 } i \text{ 个模块的评分} Ri=第 i 个模块的评分
因此,功能总分的公式可以表示为:
功能总分 = ∑ i = 1 n R i \text{功能总分} = \sum_{i=1}^{n} R_i 功能总分=∑i=1nRi
2. 任务允许的最大 bug 数量的计算公式
任务允许的最大 bug 数量的计算公式如下:
T = 功能模块的数量 T = \text{功能模块的数量} T=功能模块的数量
计算公式为:
最大 bug 数量 = max ( ⌊ T 3 ⌋ , 5 ) \text{最大 bug 数量} = \max\left(\left\lfloor \frac{T}{3} \right\rfloor, 5\right) 最大 bug 数量=max(⌊3T⌋,5)
这里, ⌊ ⋅ ⌋ \left\lfloor \cdot \right\rfloor ⌊⋅⌋表示向下取整。
3.整理成数学公式
-
功能总分:
功能总分 = ∑ i = 1 n R i \text{功能总分} = \sum_{i=1}^{n} R_i 功能总分=∑i=1nRi -
任务允许的最大 bug 数量:
最大 bug 数量 = max ( ⌊ T 3 ⌋ , 5 ) \text{最大 bug 数量} = \max\left(\left\lfloor \frac{T}{3} \right\rfloor, 5\right) 最大 bug 数量=max(⌊3T⌋,5)
4.示例
假设:
- 模块的数量 ( n = 3 ),
- n 1 n_1 n1 = 1
- n 2 n_2 n2 = 2
- n 3 n_3 n3 = 3
计算:
-
功能总分:
功能总分 = 6 \text{功能总分} = 6 功能总分=6 -
任务允许的最大 bug 数量:
最大 bug 数量 = max ( ⌊ 3 3 ⌋ , 5 ) \text{最大 bug 数量} = \max\left(\left\lfloor \frac{3}{3} \right\rfloor, 5\right) 最大 bug 数量=max(⌊33⌋,5)
最大 bug 数量 = max ( ⌊ 1 ⌋ , 5 ) \text{最大 bug 数量} = \max\left(\left\lfloor 1 \right\rfloor, 5\right) 最大 bug 数量=max(⌊1⌋,5)
最大 bug 数量 = 5 \text{最大 bug 数量} = 5 最大 bug 数量=5
其他类项目
- 同通用项目规则一致
修正系数
修正系数计算
1. 定义影响参数和修正系数
- 设有 n n n 个影响参数,每个参数的权重为 x i x_i xi 和最终值为 y i y_i yi。
- 所有影响参数的权重之和为 1,因此 ∑ i = 1 n x i = 1 \sum_{i=1}^{n} x_i = 1 i=1∑nxi=1
- 修正系数初始值为 1,修正系数最终值为所有影响参数最终值之和,即 ∑ i = 1 n y i \sum_{i=1}^{n} y_i i=1∑nyi
2. 计算每个影响参数的最终值
每个影响参数的最终值 ( y_i ) 可以通过以下公式计算:
y
i
=
x
i
∗
(
1
−
实际值
−
标准值
实际值
+
标准值
)
y_i = x_i *(1 - \frac{实际值-标准值}{实际值 + 标准值})
yi=xi∗(1−实际值+标准值实际值−标准值)
3. 计算修正系数最终值
修正系数的最终值是所有影响参数最终值的和:
修正系数最终值
=
∑
i
=
1
n
y
i
修正系数最终值 = \sum_{i=1}^{n} y_i
修正系数最终值=i=1∑nyi
4. 整理成数学公式
将上述定义和公式整理如下:
修正系数最终值
=
∑
i
=
1
n
[
x
i
∗
(
1
−
实际值
−
标准值
实际值
+
标准值
)
]
修正系数最终值 = \sum_{i=1}^{n} \ [x_i * (1 - \frac{实际值-标准值}{实际值 + 标准值})]
修正系数最终值=i=1∑n [xi∗(1−实际值+标准值实际值−标准值)]
5. 取值范围
-
实际值 − 标准值 实际值 + 标准值 \frac{实际值-标准值}{实际值 + 标准值} 实际值+标准值实际值−标准值的范围是从 -1 到 1。
-
当比率为 -1 时, y i = x i × 2 y_i = x_i \times 2 yi=xi×2(最大值)。
-
当比率为 1 时, y i = x i × 0 y_i = x_i \times 0 yi=xi×0(最小值)。
-
最终,修正系数的取值范围是:
0 < 修正系数最终值 < 2 0 < 修正系数最终值 < 2 0<修正系数最终值<2
6. 示例
- 影响参数最终值
y
i
y_i
yi随实际(x)数值的变化图:
- 假设权重为 x i x_i xi=1
- 标准值为5
- 实际值 = [0, 0.2, 0.3, 1, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500]
-
y
i
=
x
i
∗
(
1
−
实际值
−
标准值
实际值
+
标准值
)
y_i = x_i *(1 - \frac{实际值-标准值}{实际值 + 标准值})
yi=xi∗(1−实际值+标准值实际值−标准值)
影响参数具体定义
- 任务周期
- 权重值:0.25(默认值,可根据任务情况调整)
- 实际任务时数
- 标准任务时数
- 程序稳定性
- bug等级为严重才计入程序稳定性计算
- 权重值:0.25(默认值,可根据任务情况调整)
- 内测实际bug数量
- 内测任务允许的最大 bug 数量
- 内测评审
- 0.5(默认值,可根据任务情况调整)
- 通过:标准值为1,实际值为1
- 未通过:标准值为1,实际值为0
实际计算示例
- 已AT05_SW3_Module_Camera_AutoTest _v100任务为例子
- 第一步先计算功能总分
- 总共31个功能模块, 假定每个模块评分为1分
- 功能总分 = 31 * 1 =31
- 第二步计算修正系数
- 影响参数
- 任务周期
- 权重:0.25
- 程序稳定性:
- 权重:0.25
- 任务允许的最大 bug 数量:计算公式 = round(功能模块总和 / 3) = round(31 / 3) = 10
- 内测评审
- 权重:0.5
- 评审通过
- 任务周期
- 任务相关情况:预估任务实数为100H,实际用时150H;内测发现20个严重bug;
- 修正系数 = 0.25 * (150 - 100)/ (150 + 100) + 0.25 * (20-10)/ (10+20)+ 0.5 *1 = 0.05 + 0.083 + 0.5 = 0.588
- 影响参数
- 第三步计算项目分
- 项目总评分 = 功能总分 * 修正系数 = 31 * 0.588 = 18.288
功能模块总和 | 功能模块总分 | 任务允许的最大bug数量 | 任务周期权重 | 程序稳定性权重 | 内测评审权重 | 功能总分 | 项目总评分 |
---|---|---|---|---|---|---|---|
31 | 31 | 10 | 0.25 | 0.25 | 0.5 | 31 | 18.288 |