一种软件代码缺陷率统计方法及装置与流程

文档序号:14774068发布日期:2018-06-23 02:32阅读:796来源:国知局
一种软件代码缺陷率统计方法及装置与流程

本发明涉及计算机技术领域,具体涉及一种软件代码缺陷率统计方法及装置。



背景技术:

软件研发中,代码缺陷率是评价软件质量的一个重要维度,对于项目、团队及个人代码产出质量的评价具有较大价值。

现有技术在统计代码缺陷率时,往往采用手工统计缺陷个数和代码量的提交,最后再手工计算出各个项目的缺陷率。统计过程耗费大量人力,且数据准确性不高。



技术实现要素:

针对现有技术中的缺陷,本发明提供一种软件代码缺陷率统计方法及装置,本发明能够自动统计出软件代码的缺陷率,解决了现有技术中代码缺陷统计耗费大量人力且数据不准确的问题。

为解决上述技术问题,本发明提供以下技术方案:

第一方面,本发明提供了一种软件代码缺陷率统计方法,包括:

获取第一时间周期内提交的代码中各类型缺陷的缺陷个数;

根据第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一时间周期内缺陷权重值总和;

获取第一时间周期内提交的代码量;

根据第一时间周期内提交的代码量计算第一时间周期内提交的千行代码数;

根据第一时间周期内缺陷权重值总和以及第一时间周期内提交的千行代码数计算第一时间周期内的代码缺陷率。

进一步地,所述获取第一时间周期内提交的代码中各类型缺陷的缺陷个数,包括:

获取第一项目在第一时间周期内提交的代码中各类型缺陷的缺陷个数;

相应地,所述根据第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一时间周期内缺陷权重值总和,包括:

根据第一项目在第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一项目在第一时间周期内的缺陷权重值总和;

相应地,所述获取第一时间周期内提交的代码量,包括:

获取第一项目在第一时间周期内提交的代码量;

相应地,所述根据第一时间周期内提交的代码量计算第一时间周期内提交的千行代码数,包括:

根据第一项目在第一时间周期内提交的代码量计算第一项目在第一时间周期内提交的千行代码数;

相应地,所述根据第一时间周期内缺陷权重值总和以及第一时间周期内提交的千行代码数计算第一时间周期内的代码缺陷率,包括:

根据第一项目在第一时间周期内的缺陷权重值总和以及第一项目在第一时间周期内提交的千行代码数计算第一项目在第一时间周期内的代码缺陷率。

进一步地,所述获取第一项目在第一时间周期内提交的代码中各类型缺陷的缺陷个数,包括:

从与第一项目对应的缺陷数据库中获取第一项目在第一时间周期内提交的代码中各类型缺陷的缺陷个数;其中,与第一项目对应的缺陷数据库根据与第一项目对应的缺陷统计结果不断更新。

进一步地,所述获取第一项目在第一时间周期内提交的代码量,包括:

从与第一项目对应的代码量数据库中获取第一项目在第一时间周期内提交的代码量;其中,与第一项目对应的代码量数据库根据与第一项目对应的代码提交数据抓取结果不断更新。

进一步地,所述获取第一时间周期内提交的代码中各类型缺陷的缺陷个数,包括:

获取第一个人在第一时间周期内提交的代码中各类型缺陷的缺陷个数;

相应地,所述根据第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一时间周期内缺陷权重值总和,包括:

根据第一个人在第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一个人在第一时间周期内的缺陷权重值总和;

相应地,所述获取第一时间周期内提交的代码量,包括:

获取第一个人在第一时间周期内提交的代码量;

相应地,所述根据第一时间周期内提交的代码量计算第一时间周期内提交的千行代码数,包括:

根据第一个人在第一时间周期内提交的代码量计算第一个人在第一时间周期内提交的千行代码数;

相应地,所述根据第一时间周期内缺陷权重值总和以及第一时间周期内提交的千行代码数计算第一时间周期内的代码缺陷率,包括:

根据第一个人在第一时间周期内的缺陷权重值总和以及第一个人在第一时间周期内提交的千行代码数计算第一个人在第一时间周期内的代码缺陷率。

进一步地,所述获取第一个人在第一时间周期内提交的代码中各类型缺陷的缺陷个数,包括:

从与第一个人对应的缺陷数据库中获取第一个人在第一时间周期内提交的代码中各类型缺陷的缺陷个数;其中,与第一个人对应的缺陷数据库根据与第一个人对应的缺陷统计结果不断更新。

进一步地,所述获取第一个人在第一时间周期内提交的代码量,包括:

从与第一个人对应的代码量数据库中获取第一个人在第一时间周期内提交的代码量;其中,与第一个人对应的代码量数据库根据与第一个人对应的代码量抓取结果不断更新。

进一步地,所述各类型缺陷包括:Blocker缺陷、Critical缺陷、Major缺陷、Minor缺陷和Trivial缺陷;

所述Blocker缺陷表示影响软件运行的阻塞性缺陷,该缺陷导致大面积的功能失效或某一类的流程阻塞;

所述Critical缺陷表示影响软件运行的严重缺陷,该缺陷导致一部分功能失效或某个功能不可用;

所述Major缺陷表示影响软件运行的缺陷,该缺陷导致部分主要功能存在问题;

所述Minor缺陷表示影响软件运行的一般缺陷,该缺陷的存在不影响功能使用,但会导致某功能的一小部分存在问题;

所述Trivial缺陷表示影响软件运行的微笑缺陷,该缺陷的存在不影响功能使用,但会影响用户评价或用户体验。

进一步地,所述各类型缺陷对应的权重包括:所述Blocker缺陷对应的权重为3、所述Critical缺陷对应的权重为1.5、所述Major缺陷对应的权重为1、所述Minor缺陷对应的权重为0.5以及所述Trivial缺陷对应的权重为0.2。

第二方面,本发明还提供了一种软件代码缺陷率统计装置,包括:

第一获取模块,用于获取第一时间周期内提交的代码中各类型缺陷的缺陷个数;

第一计算模块,用于根据第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一时间周期内缺陷权重值总和;

第二获取模块,用于获取第一时间周期内提交的代码量;

第二计算模块,用于根据第一时间周期内提交的代码量计算第一时间周期内提交的千行代码数;

第三计算模块,用于根据第一时间周期内缺陷权重值总和以及第一时间周期内提交的千行代码数计算第一时间周期内的代码缺陷率。

由上述技术方案可知,本发明提供的软件代码缺陷率统计方法,首先获取第一时间周期内提交的代码中各类型缺陷的缺陷个数,并根据第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一时间周期内缺陷权重值总和,然后获取第一时间周期内提交的代码量,并根据第一时间周期内提交的代码量计算第一时间周期内提交的千行代码数;最后根据第一时间周期内缺陷权重值总和以及第一时间周期内提交的千行代码数计算第一时间周期内的代码缺陷率。可见,本发明能够自动统计出软件代码的缺陷率,解决了现有技术中代码缺陷统计耗费大量人力且数据不准确的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的软件代码缺陷率统计方法的流程图;

图2是项目代码缺陷率统计结果;

图3是个人代码缺陷率统计结果;

图4是本发明另一实施例提供的软件代码缺陷率统计装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明一实施例提供了一种软件代码缺陷率统计方法,参见图1,该方法包括如下步骤:

步骤101:获取第一时间周期内提交的代码中各类型缺陷的缺陷个数。

在本步骤中,所述第一时间周期可以为一天、一周、一个月等任何时间段。在本步骤中,所述各类型缺陷包括:Blocker缺陷、Critical缺陷、Major缺陷、Minor缺陷和Trivial缺陷。

其中,所述Blocker缺陷表示影响软件运行的阻塞性缺陷,该缺陷导致大面积的功能失效或某一类的流程阻塞。

所述Critical缺陷表示影响软件运行的严重缺陷,该缺陷导致一部分功能失效或某个功能不可用。

所述Major缺陷表示影响软件运行的缺陷,该缺陷导致部分主要功能存在问题。

所述Minor缺陷表示影响软件运行的一般缺陷,该缺陷的存在不影响功能使用,但会导致某功能的一小部分存在问题。

所述Trivial缺陷表示影响软件运行的微笑缺陷,该缺陷的存在不影响功能使用,但会影响用户评价或用户体验。

在本步骤中,获取第一时间周期内提交的代码中各类型缺陷的缺陷个数分别为:Blocker缺陷0,Critical缺陷2,Major缺陷6,Minor缺陷8。

步骤102:根据第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一时间周期内缺陷权重值总和。

在本步骤中,假设第一时间周期内提交的代码中Blocker缺陷个数为0,Critical缺陷个数为2,Major缺陷个数为6,Minor缺陷个数为8,Trivial缺陷个数为5,Blocker缺陷对应的权重为3,Critical缺陷对应的权重为1.5,Major缺陷对应的权重为1,Minor缺陷对应的权重为0.5以及Trivial缺陷对应的权重为0.2,则缺陷权重值总和=Blocker缺陷个数*3+Critical缺陷个数*1.5+Major缺陷个数*1+Minor缺陷个数*0.5+Trivial缺陷个数*0.2=0*3+2*1.5+6*1+8*0.5+5*0.2=14。

步骤103:获取第一时间周期内提交的代码量。

在本步骤中,获取第一时间周期内提交的代码量。其中,代码量一般以行为单位进行计算。例如获取的第一时间周期内提交的代码量为50000行。

步骤104:根据第一时间周期内提交的代码量计算第一时间周期内提交的千行代码数。

在本步骤中,将第一时间周期内提交的代码量(以行为单位)除以1000即可得到第一时间周期内提交的千行代码数。例如,假设第一时间周期内提交的代码量为50000行,则第一时间周期内提交的千行代码数为50000/1000=50。

步骤105:根据第一时间周期内缺陷权重值总和以及第一时间周期内提交的千行代码数计算第一时间周期内的代码缺陷率。

在本步骤中,将第一时间周期内缺陷权重值总和除以第一时间周期内提交的千行代码数即可得到第一时间周期内的代码缺陷率。也就是可以采用如下公式一得到代码缺陷率:

代码缺陷率(千行)=缺陷权重值总和/千行代码数公式一。

例如,第一时间周期内缺陷权重值总和14,第一时间周期内提交的千行代码数为50,则第一时间周期内的代码缺陷率=14/50=0.28。

根据上面描述可知,本实施例提供的软件代码缺陷率统计方法,首先获取第一时间周期内提交的代码中各类型缺陷的缺陷个数,并根据第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一时间周期内缺陷权重值总和,然后获取第一时间周期内提交的代码量,并根据第一时间周期内提交的代码量计算第一时间周期内提交的千行代码数;最后根据第一时间周期内缺陷权重值总和以及第一时间周期内提交的千行代码数计算第一时间周期内的代码缺陷率。可见,本实施例能够自动统计出软件代码的缺陷率,解决了现有技术中代码缺陷统计耗费大量人力且数据不准确的问题

在一种可选实施方式中,参见图2,上述软件代码缺陷率统计方法可用于项目缺陷率的统计。可以理解的是,通过在质量管理工具描述字段中,填写对应代码库的地址,即可建立一对多的对应关系。基于此,就可以计算相应项目的项目缺陷率。

当上述软件代码缺陷率统计方法用于第一项目的项目缺陷率统计时,上述步骤101具体包括如下处理过程:

步骤101’:获取第一项目在第一时间周期内提交的代码中各类型缺陷的缺陷个数。

在本步骤中,从与第一项目对应的缺陷数据库中获取第一项目在第一时间周期内提交的代码中各类型缺陷的缺陷个数;其中,与第一项目对应的缺陷数据库通过程序可实现实时更新(如每天例行更新),无需人工干预。其中,与第一项目对应的缺陷数据库在更新时参照与第一项目对应的缺陷统计结果。

相应地,上述步骤102具体包括如下处理过程:

步骤102’:根据第一项目在第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一项目在第一时间周期内的缺陷权重值总和。

相应地,上述步骤103具体包括如下处理过程:

步骤103’:获取第一项目在第一时间周期内提交的代码量。

在本步骤中,从与第一项目对应的代码量数据库中获取第一项目在第一时间周期内提交的代码量;其中,与第一项目对应的代码量数据库根据与第一项目对应的代码提交数据抓取结果不断更新。

可以理解的是,代码提交是以项目维度区分的,所以在统计时以项目维度分别统计每个时间段的提交。编写脚本调用代码管理库工具的API,统计以下部分的各种信息:(1)项目:包括项目ID、项目名称、描述、ssh url、web url、命名空间ID,创建时间。(2)提交:包括提交ID、作者名、作者邮箱、项目ID、提交注释、增加行数、删除行数、总行数、提交时间。(3)Group:包括GroupID、Group名称、描述、web url。(4)分支:包括:分支ID、项目ID、分支名称、修改人,修改时间。在进行代码提交数据抓取时,可以采用如下规则:全量数据:从抓取时间点到代码库创建时全部的提交数据。增量数据:每天凌晨抓取前一天的提交(按照提交时间判断)。通过全量数据或增量数据的抓取方式可以获取第一项目在第一时间周期内提交的代码量。

相应地,上述步骤104具体包括如下处理过程:

步骤104’:根据第一项目在第一时间周期内提交的代码量计算第一项目在第一时间周期内提交的千行代码数。

相应地,上述步骤105具体包括如下处理过程:

步骤105’:根据第一项目在第一时间周期内的缺陷权重值总和以及第一项目在第一时间周期内提交的千行代码数计算第一项目在第一时间周期内的代码缺陷率。

在另一种可选实施方式中,参见图3,上述软件代码缺陷率统计方法用于个人缺陷率的统计。可以理解的是,通过在质量管理工具描述字段中,填写对应代码库的地址,即可建立一对多的对应关系。基于此,就可以计算个人目的缺陷率。

当上述软件代码缺陷率统计方法用于个人缺陷率统计时,上述步骤101具体包括如下处理过程:

步骤101”:获取第一个人在第一时间周期内提交的代码中各类型缺陷的缺陷个数。

在本步骤中,从与第一个人对应的缺陷数据库中获取第一个人在第一时间周期内提交的代码中各类型缺陷的缺陷个数;其中,与第一个人对应的缺陷数据库根据与第一个人对应的缺陷统计结果不断更新。

相应地,上述步骤102具体包括如下处理过程:

步骤102”:根据第一个人在第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一个人在第一时间周期内的缺陷权重值总和。

相应地,上述步骤103具体包括如下处理过程:

步骤103”:获取第一个人在第一时间周期内提交的代码量。

在本步骤中,从与第一个人对应的代码量数据库中获取第一个人在第一时间周期内提交的代码量;其中,与第一个人对应的代码量数据库根据与第一个人对应的代码量抓取结果不断更新。

可以理解的是,由于编写脚本调用代码管理库工具的API在统计时统计了以下以下信息:(1)项目:包括项目ID、项目名称、描述、ssh url、web url、命名空间ID,创建时间。(2)提交:包括提交ID、作者名、作者邮箱、项目ID、提交注释、增加行数、删除行数、总行数、提交时间。因此可以根据代码提交时的提交ID获取某个人在第一时间周期内提交的代码量。

相应地,上述步骤104具体包括如下处理过程:

步骤104”:根据第一个人在第一时间周期内提交的代码量计算第一个人在第一时间周期内提交的千行代码数。

相应地,上述步骤105具体包括如下处理过程:

步骤105”:根据第一个人在第一时间周期内的缺陷权重值总和以及第一个人在第一时间周期内提交的千行代码数计算第一个人在第一时间周期内的代码缺陷率。

基于相同的发明构思,本发明另一实施例提供了一种软件代码缺陷率统计装置,参见图4,该装置包括:第一获取模块21、第一计算模块22、第二获取模块23、第二计算模块24和第三计算模块25;其中:

第一获取模块21,用于获取第一时间周期内提交的代码中各类型缺陷的缺陷个数;

第一计算模块22,用于根据第一时间周期内提交的代码中各类型缺陷的缺陷个数以及各类型缺陷对应的权重计算第一时间周期内缺陷权重值总和;

第二获取模块23,用于获取第一时间周期内提交的代码量;

第二计算模块24,用于根据第一时间周期内提交的代码量计算第一时间周期内提交的千行代码数;

第三计算模块25,用于根据第一时间周期内缺陷权重值总和以及第一时间周期内提交的千行代码数计算第一时间周期内的代码缺陷率。

本发明实施例提供的软件代码缺陷率统计装置,可以用于执行上述实施例所述的软件代码缺陷率统计方法,其原理和技术效果类似,此处不再详述。

以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1