System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件开发领域,更具体的说,是涉及开发分支代码质量的评估方法、装置、设备及存储介质。
技术介绍
1、随着软件技术的不断发展,软件开发受到众多信息技术企业重点关注,使得软件开发正在蓬勃发展。软件开发的开发代码为开发人员根据需求开发功能编写的,而针对于在主体功能上开发新功能的情况,开发人员需要在基础版本代码上编写。
2、开发代码质量的优劣对软件运行的性能具有密切关系,因此在软件开发生命周期中,开发人员需要对开发代码进行代码质量评估,以此评估结果作为是否获得通过的标准之一。
3、在代码质量评估的过程中一个关键参数是新增代码覆盖率。目前,需要先存着基线代码的相关扫描记录,也即需要先对基础版本代码扫描,形成扫描记录,再对新代码扫描获得新扫描记录,从而比较两个扫描记录来获取新增代码覆盖率,这种方式的计算准确率低下,限制性大,灵活性低下。
技术实现思路
1、鉴于上述问题,本申请提供了开发分支代码质量的评估方法、装置、设备及存储介质,以灵活评估开发分支代码的质量,提高新增代码覆盖率计算的准确性。
2、为了实现上述目的,现提出具体方案如下:
3、一种开发分支代码质量的评估方法,包括:
4、获取开发分支代码,并基于所述开发分支代码,获取基础版本代码;
5、对所述开发分支代码的进行单元测试,得到覆盖代码行;
6、根据所述覆盖代码行、所述开发分支代码的代码行信息以及所述开发分支代码中的所述基础版本代码的代码行信息,
7、基于所述单元测试全量覆盖率和所述新增代码覆盖率,对所述开发分支代码进行质量评估,得到所述开发分支代码的质量评估结果。
8、可选的,基于所述开发分支代码,获取基础版本代码,包括:
9、确定所述开发分支代码的域信息;
10、从发布系统中获取与所述域信息匹配的最近一次成功发布的基础版本代码。
11、可选的,根据所述覆盖代码行、所述开发分支代码的代码行信息以及所述开发分支代码中的所述基础版本代码的代码行信息,计算所述开发分支代码的单元测试全量覆盖率及新增代码覆盖率,包括:
12、确定所述开发分支代码中所述基础版本代码的行数为第一行数;
13、根据所述第一行数,确定所述开发分支代码中的新增开发代码的行数为第二行数;
14、将所述覆盖代码行除以所述开发分支代码的总行数,得到所述开发分支代码的单元测试全量覆盖率,所述总行数为所述第一行数与所述第二行数之和;
15、确定所述覆盖代码行中覆盖了所述新增开发代码的行数为第三行数;
16、将所述第三行数除以所述第二行数,得到所述开发分支代码的新增代码覆盖率。
17、可选的,基于所述单元测试全量覆盖率和所述新增代码覆盖率,对所述开发分支代码进行质量评估,得到所述开发分支代码的质量评估结果,包括:
18、若所述单元测试全量覆盖率大于预设全量覆盖率阈值,且所述新增代码覆盖率大于预设新增覆盖率阈值,确定所述开发分支代码的质量评估结果为第一质量等级;
19、若所述单元测试全量覆盖率不大于所述预设全量覆盖率阈值,且所述新增代码覆盖率大于所述预设新增覆盖率阈值,确定所述开发分支代码的质量评估结果为第二质量等级;
20、若所述单元测试全量覆盖率大于所述预设全量覆盖率阈值,且所述新增代码覆盖率不大于所述预设新增覆盖率阈值,确定所述开发分支代码的质量评估结果为第三质量等级;
21、若所述单元测试全量覆盖率不大于所述预设全量覆盖率阈值,且所述新增代码覆盖率不大于所述预设新增覆盖率阈值,确定所述开发分支代码的质量评估结果为第四质量等级。
22、一种开发分支代码质量的评估装置,包括:
23、版本代码获取单元,用于获取开发分支代码,并基于所述开发分支代码,获取基础版本代码;
24、测试单元,用于对所述开发分支代码的进行单元测试,得到覆盖代码行;
25、覆盖率计算单元,用于根据所述覆盖代码行、所述开发分支代码的代码行信息以及所述开发分支代码中的所述基础版本代码的代码行信息,计算所述开发分支代码的单元测试全量覆盖率及新增代码覆盖率;
26、质量评估单元,用于基于所述单元测试全量覆盖率和所述新增代码覆盖率,对所述开发分支代码进行质量评估,得到所述开发分支代码的质量评估结果。
27、可选的,所述版本代码获取单元,包括:
28、代码域信息确定单元,用于确定所述开发分支代码的域信息;
29、基础版本代码获取单元,用于从发布系统中获取与所述域信息匹配的最近一次成功发布的基础版本代码。
30、可选的,所述覆盖率计算单元,包括:
31、第一行数确定单元,用于确定所述开发分支代码中所述基础版本代码的行数为第一行数;
32、第二行数确定单元,用于根据所述第一行数,确定所述开发分支代码中的新增开发代码的行数为第二行数;
33、全量覆盖率计算单元,用于将所述覆盖代码行除以所述开发分支代码的总行数,得到所述开发分支代码的单元测试全量覆盖率,所述总行数为所述第一行数与所述第二行数之和;
34、第三行数确定单元,用于确定所述覆盖代码行中覆盖了所述新增开发代码的行数为第三行数;
35、新增覆盖率确定单元,用于将所述第三行数除以所述第二行数,得到所述开发分支代码的新增代码覆盖率。
36、可选的,所述质量评估单元,包括:
37、第一质量评估子单元,用于若所述单元测试全量覆盖率大于预设全量覆盖率阈值,且所述新增代码覆盖率大于预设新增覆盖率阈值,确定所述开发分支代码的质量评估结果为第一质量等级;
38、第二质量评估子单元,用于若所述单元测试全量覆盖率不大于所述预设全量覆盖率阈值,且所述新增代码覆盖率大于所述预设新增覆盖率阈值,确定所述开发分支代码的质量评估结果为第二质量等级;
39、第三质量评估子单元,用于若所述单元测试全量覆盖率大于所述预设全量覆盖率阈值,且所述新增代码覆盖率不大于所述预设新增覆盖率阈值,确定所述开发分支代码的质量评估结果为第三质量等级;
40、第四质量评估子单元,用于若所述单元测试全量覆盖率不大于所述预设全量覆盖率阈值,且所述新增代码覆盖率不大于所述预设新增覆盖率阈值,确定所述开发分支代码的质量评估结果为第四质量等级。
41、一种开发分支代码质量的评估设备,包括存储器和处理器;
42、所述存储器,用于存储程序;
43、所述处理器,用于执行所述程序,实现如上所述的开发分支代码质量的评估方法的各个步骤。
44、一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的开发分支代码质量的评估方法的各个步骤。
45、借本文档来自技高网...
【技术保护点】
1.一种开发分支代码质量的评估方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,基于所述开发分支代码,获取基础版本代码,包括:
3.根据权利要求1所述的方法,其特征在于,根据所述覆盖代码行、所述开发分支代码的代码行信息以及所述开发分支代码中的所述基础版本代码的代码行信息,计算所述开发分支代码的单元测试全量覆盖率及新增代码覆盖率,包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,基于所述单元测试全量覆盖率和所述新增代码覆盖率,对所述开发分支代码进行质量评估,得到所述开发分支代码的质量评估结果,包括:
5.一种开发分支代码质量的评估装置,其特征在于,包括:
6.根据权利要求1所述的装置,其特征在于,所述版本代码获取单元,包括:
7.根据权利要求5所述的装置,其特征在于,所述覆盖率计算单元,包括:
8.根据权利要求5-7任一项所述的装置,其特征在于,所述质量评估单元,包括:
9.一种开发分支代码质量的评估设备,其特征在于,包括存储器和处理器;
10.一
...【技术特征摘要】
1.一种开发分支代码质量的评估方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,基于所述开发分支代码,获取基础版本代码,包括:
3.根据权利要求1所述的方法,其特征在于,根据所述覆盖代码行、所述开发分支代码的代码行信息以及所述开发分支代码中的所述基础版本代码的代码行信息,计算所述开发分支代码的单元测试全量覆盖率及新增代码覆盖率,包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,基于所述单元测试全量覆盖率和所述新增代码覆盖率,对所述开发分支代码进行质量评估,得到所述开发分支代码的质量评估结果,包括:
【专利技术属性】
技术研发人员:雷达伟,
申请(专利权)人:广州品唯软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。