CN114153486A - 一种软件开发质量管控方法、装置、电子设备及存储介质 - Google Patents

一种软件开发质量管控方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114153486A
CN114153486A CN202111462483.3A CN202111462483A CN114153486A CN 114153486 A CN114153486 A CN 114153486A CN 202111462483 A CN202111462483 A CN 202111462483A CN 114153486 A CN114153486 A CN 114153486A
Authority
CN
China
Prior art keywords
software
information
developer
vulnerability
software vulnerability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111462483.3A
Other languages
English (en)
Inventor
王唯一
范渊
苗春雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202111462483.3A priority Critical patent/CN114153486A/zh
Publication of CN114153486A publication Critical patent/CN114153486A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种软件开发质量管控方法、装置、电子设备及介质,方法包括:接收软件漏洞信息条目;提取软件漏洞信息条目中的开发人员信息及软件漏洞信息;根据开发人员信息和/或软件漏洞信息生成软件漏洞统计数据;开发人员信息为软件漏洞开发者信息和/或软件漏洞测试者信息;利用软件漏洞统计数据进行软件开发质量管控。本发明能够自动收集软件漏洞信息条目,并根据该软件漏洞信息条目自动确定产出、测试这一软件漏洞的开发人员及该软件漏洞的各类信息,从而可根据软件漏洞信息条目自动生成软件漏洞统计数据,不仅可提升软件漏洞统计数据的生成效率,也可提升软件漏洞统计数据的全面性,进而可有效提升软件漏洞统计数据在软件开发复盘中的价值。

Description

一种软件开发质量管控方法、装置、电子设备及存储介质
技术领域
本发明涉及软件开发领域,特别涉及一种软件开发质量管控方法、装置、电子设备及存储介质。
背景技术
在软件行业中,各企业不仅看重软件产品本身的质量,同时还看重软件开发的成本及效率。在开发过程中,假若开发者的开发质量下降,其所产出的软件漏洞(Bug)数量上升,则容易提升软件测试者及运营维护人员的工作量及工作压力,进而降低软件开发效率并提升开发成本。因此,定期复盘软件开发质量,对软件项目开发过程中的软件漏洞统计数据进行管控分析,对维持开发者的高开发质量具有重要意义。
相关技术中,软件漏洞统计数据大多是由测试人员手动在管理平台进行手动收集、统计及计算,而这不仅耗费了大量的人力和时间,同时也难以保证软件漏洞统计数据的准确性,降低了软件漏洞统计数据的可靠性。
发明内容
本发明的目的是提供一种软件开发质量管控方法、装置、电子设备及存储介质,可自动收集软件漏洞信息条目,并根据该软件漏洞信息条目自动生成软件漏洞统计数据,进而可提升软件漏洞统计数据的可靠性及生成效率。
为解决上述技术问题,本发明提供一种软件开发质量管控方法,包括:
接收软件漏洞信息条目;
提取所述软件漏洞信息条目中的开发人员信息及软件漏洞信息;所述开发人员信息包括软件漏洞开发者信息和/或软件漏洞测试者信息;
根据所述开发人员信息和/或所述软件漏洞信息生成软件漏洞统计数据;
利用所述软件漏洞统计数据进行软件开发质量管控;
其中,当所述开发人员信息包括所述软件漏洞开发者信息时,所述根据所述开发人员信息和所述软件漏洞信息生成软件漏洞统计数据,包括:
提取所述开发人员信息中的所述软件漏洞开发者信息以及所述软件漏洞信息中的软件漏洞类型;
判断所述软件漏洞类型是否为预设有效软件漏洞类型;
若是,则更新所述软件漏洞开发者信息对应开发者的有效软件漏洞数量,并将所述有效软件漏洞数量添加至所述开发者的软件漏洞统计数据中。
可选地,在提取所述开发人员信息中的所述软件漏洞开发者信息以及所述软件漏洞信息中的软件漏洞类型之后,还包括:
查询所述开发者的预设任务数量;所述预设任务数量是所述开发者在指定项目版本中所需完成的任务数量,或是在指定时间段内所需完成的任务数量;
相应的,在更新所述软件漏洞开发者信息对应开发者的有效软件漏洞数量之后,还包括:
利用所述预设任务数量和所述有效软件漏洞数量计算所述开发者的需求缺陷值,并将所述需求缺陷值添加至所述开发者的软件漏洞统计数据中。
可选地,当所述预设任务数量是所述开发者在指定项目版本中所需完成的任务数量时,在利用所述预设任务数量和所述有效软件漏洞数量计算所述开发者的需求缺陷值之后,还包括:
从所述软件漏洞信息中提取软件漏洞所属版本及软件漏洞所属项目;
利用所述需求缺陷值更新所述开发者在所述软件漏洞所属版本中的第一需求缺陷平均值;
获取所述开发者在所述软件漏洞所属项目中其他版本的第二需求缺陷平均值,并将所述第一需求缺陷平均值和所述第二需求缺陷平均值添加至所述软件漏洞统计数据中。
可选地,在提取所述开发人员信息中的所述软件漏洞开发者信息以及所述软件漏洞信息中的软件漏洞类型之后,还包括:
根据所述软件漏洞类型统计所述开发者所产出的各类型软件漏洞数量,并将所述各类型软件漏洞数量添加至所述开发者的软件漏洞统计数据中。
可选地,当所述开发人员信息包括所述软件漏洞开发者信息时,所述根据所述开发人员信息和所述软件漏洞信息生成软件漏洞统计数据,包括:
提取所述开发人员信息中的所述软件漏洞测试者信息以及所述软件漏洞信息中的软件漏洞类型;
判断所述软件漏洞类型是否为预设有效软件漏洞类型;
若是,则更新所述软件漏洞测试者信息对应测试者的有效软件漏洞提交数量,并将所述有效软件漏洞提交数量添加至所述测试者的软件漏洞统计数据中。
可选地,所述根据所述软件漏洞信息生成软件漏洞统计数据,包括:
提取所述软件漏洞信息中的软件漏洞类型、软件漏洞所属项目、软件漏洞所属版本及软件漏洞修复工时;
根据所述软件漏洞类型及所述软件漏洞修复工时计算各类型软件漏洞平均修复工时;
更新所述软件漏洞所属项目对应的第一项目软件漏洞数量,获取其他项目的第二项目软件漏洞数量,并利用所述第一项目软件漏洞数量和所述第二项目软件漏洞数量计算项目软件漏洞平均数量;
更新软件漏洞所属版本对应的第一版本软件漏洞数量,获取所述软件漏洞所属版本中其他版本的第二版本软件漏洞数量,并利用所述第一版本软件漏洞数量和所述第二版本软件漏洞数量计算版本软件漏洞平均数量;
将所述各类型软件漏洞平均修复工时、所述项目软件漏洞平均数量及所述版本软件漏洞平均数量添加至所述软件漏洞统计数据中。
本发明还提供一种软件开发质量管控装置,包括:
接收模块,用于接收软件漏洞信息条目;
信息提取模块,用于提取所述软件漏洞信息条目中的开发人员信息及软件漏洞信息;所述开发人员信息包括软件漏洞开发者信息和/或软件漏洞测试者信息;
统计生成模块,用于根据所述开发人员信息和/或所述软件漏洞信息生成软件漏洞统计数据;
管控模块,用于利用所述软件漏洞统计数据进行软件开发质量管控;
其中,当所述开发人员信息为所述软件漏洞开发者信息时,所述统计生成模块,包括:
第一提取子模块,用于提取所述软件漏洞开发者信息以及所述软件漏洞信息中的软件漏洞类型;
第一判断子模块,用于判断所述软件漏洞类型是否为预设有效软件漏洞类型;
第一添加子模块,用于若是,则更新所述软件漏洞开发者信息对应开发者的有效软件漏洞数量,并将所述有效软件漏洞数量添加至所述开发者的软件漏洞统计数据中。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的软件开发质量管控方法的步骤。
本发明还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的软件开发质量管控方法的步骤。
本发明提供一种软件开发质量管控方法,包括:接收软件漏洞信息条目;提取所述软件漏洞信息条目中的开发人员信息及软件漏洞信息;所述开发人员信息包括软件漏洞开发者信息和/或软件漏洞测试者信息;根据所述开发人员信息和/或所述软件漏洞信息生成软件漏洞统计数据;利用所述软件漏洞统计数据进行软件开发质量管控;其中,当所述开发人员信息包括所述软件漏洞开发者信息时,所述根据所述开发人员信息和所述软件漏洞信息生成软件漏洞统计数据,包括:提取所述开发人员信息中的所述软件漏洞开发者信息以及所述软件漏洞信息中的软件漏洞类型;判断所述软件漏洞类型是否为预设有效软件漏洞类型;若是,则更新所述软件漏洞开发者信息对应开发者的有效软件漏洞数量,并将所述有效软件漏洞数量添加至所述开发者的软件漏洞统计数据中。
可见,本发明首先能够自动收集软件漏洞信息条目,无需人工参与,能够提升软件漏洞信息条目的收集效率;其次,本发明中的软件漏洞信息条目中包含有该软件漏洞所对应的开发人员信息及软件漏洞信息,可根据该软件漏洞信息条目确定产出、测试这一软件漏洞的开发人员及该软件漏洞的各类信息;进一步,本发明可根据软件漏洞信息条目自动生成软件漏洞统计数据,不仅能够提升软件漏洞统计数据的生成效率,也可以提升软件漏洞统计数据的全面性,进而可有效提升软件漏洞统计数据的可靠性以及其在软件开发复盘中的利用价值,为软件开发企业监管软件开发带来便利;进一步,本发明在统计软件漏洞开发者的软件漏洞数量时,还额外判断了软件漏洞类型是否为预设有效软件漏洞类型,可有效过滤由开发环境等非人为因素导致的软件漏洞,进而提升统计量的准确性。本发明还提供一种软件开发质量管控装置、电子设备及存储介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种软件开发质量管控方法的流程图;
图2为本发明实施例所提供的一种软件漏洞管理平台的业务流程图;
图3为本发明实施例所提供的一种软件开发质量管控装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,软件漏洞统计数据大多是由测试人员手动在管理平台进行手动收集、统计及计算,而这不仅耗费了大量的人力和时间,同时也难以保证软件漏洞统计数据的准确性,降低了软件漏洞统计数据的可靠性。有鉴于此,本发明提供了一种软件开发质量管控方法,可自动收集软件漏洞信息条目,并根据该软件漏洞信息条目自动生成软件漏洞统计数据,进而可提升软件漏洞统计数据的可靠性及生成效率。请参考图1,图1为本发明实施例所提供的一种软件开发质量管控方法的流程图,该方法可以包括:
S101、接收软件漏洞信息条目。
首先需要说明的是,本方法可由软件漏洞管理平台执行,其中软件漏洞的测试者可在软件漏洞管理平台上提交软件漏洞信息条目,当然也可通过其它电子设备向软件漏洞管理平台提交软件漏洞信息条目,可根据实际应用需求进行设定。需要说明的是,本发明实施例并不限定软件漏洞管理平台的实现方式,例如前端可采用VUE框架搭建、后端可采用Java、Spring全家桶搭建,而数据库可采用MySQL数据库,启动VUE框架用于构建用户界面,Spring是搭建Java软件的常用框架之一,MySQL数据库是常用的关系型数据库,具体的实现方式可根据实际应用需求进行选用。
进一步,在本发明实施例中,软件漏洞信息条目中包含有软件漏洞的诸多信息,例如可包含软件漏洞所对应的开发人员信息及软件漏洞信息,其中,开发人员信息中又可进一步包含编写这一软件漏洞的开发者、测试这一软件漏洞的测试者及修复这一软件漏洞的修复者等;而软件漏洞信息中则可以包含软件漏洞类型、软件漏洞所属项目、软件漏洞所属版本及修复软件漏洞所耗费的软件漏洞修复工时等。当然,软件漏洞信息中还可以进一步包含标题及描述信息等,可根据实际应用需求进行设置。
S102、提取软件漏洞信息条目中的开发人员信息及软件漏洞信息。开发人员信息包括软件漏洞开发者信息和/或软件漏洞测试者信息。
需要说明的是,本发明实施例并不限定具体要提取哪些开发人员信息,例如可以为软件漏洞开发者的信息,也可以为软件漏洞测试者的信息,也可以进一步包含软件漏洞修复者的信息,可根据实际应用需求进行设定;本发明实施例也不限定具体要提取的软件漏洞信息,所需使用的信息与后续的统计项有关,可根据后续统计需求进行设定。
S103、根据开发人员信息和/或软件漏洞信息生成软件漏洞统计数据。
在本发明实施例中,既可以根据开发人员信息生成软件漏洞统计数据,例如统计每一开发者所编写的软件漏洞数量、每一测试者所测试的软件漏洞数量,或是统计每一修复者所修复的软件漏洞数量;也可以根据软件漏洞信息生成软件漏洞统计数据,例如统计某一项目中的软件漏洞数量、某一项目的某一版本中的软件漏洞数量,或是各类型的软件漏洞数量等;当然也可以同时利用开发人员信息和软件漏洞信息生成软件漏洞统计数据,具体的统计方式将在后续的实施例中介绍。换而言之,本发明实施例可针对性地进行统计,例如针对开发者、测试者及修复者进行统计,也可以针对软件项目或软件版本进行统计,即软件漏洞统计数据可对应至多名被统计对象,例如对应值开发者、测试者或修复者,也可以对应至某一软件项目或软件版本。这不仅可提升软件漏洞统计数据的全面性,同时也可有效提升软件漏洞统计数据的实用价值。
S104、利用软件漏洞统计数据进行软件开发质量管控。
需要说明的是,本发明实施例并不限定如何进行软件开发质量管控,例如可以输出至软件漏洞统计数据对应的被统计对象,例如输出给开发者、测试者或修复者,当然,假若被统计对象为软件项目或软件版本,这些数据也可以输出给项目管理者。此外,也可以利用这些软件漏洞统计数据进行进一步的数据分析,例如可视化分析等,可根据实际应用需求进行设定。
基于上述实施例,本发明首先能够自动收集软件漏洞信息条目,无需人工参与,能够提升软件漏洞信息条目的收集效率;其次,本发明中的软件漏洞信息条目中包含有该软件漏洞所对应的开发人员信息及软件漏洞信息,可根据该软件漏洞信息条目确定产出、测试这一软件漏洞的开发人员及该软件漏洞的各类信息;最后,本发明可根据软件漏洞信息条目自动生成软件漏洞统计数据,不仅能够提升软件漏洞统计数据的生成效率,也可以提升软件漏洞统计数据的全面性,进而可有效提升软件漏洞统计数据的可靠性以及其在软件开发复盘中的利用价值,为软件开发企业监管软件开发带来便利。
基于上述实施例,下面将介绍为开发者生成软件漏洞统计数据的具体过程进行介绍。在一种可能的情况中,当开发人员信息包括软件漏洞开发者信息时,根据开发人员信息和软件漏洞信息生成软件漏洞统计数据,可以包括:
S201、提取开发人员信息中的软件漏洞开发者信息以及软件漏洞信息中的软件漏洞类型。
需要说明的是,本发明实施例并不限定软件漏洞开发者信息中可包含的具体内容,例如姓名、员工ID等,可根据实际应用需求进行设定。本发明实施例也不限定具体的软件漏洞类型,例如可以为代码问题、环境问题、需求新增或变更、数据问题、重复提交或回归等,同样可根据实际应用需求进行设定。
S202、判断软件漏洞类型是否为预设有效软件漏洞类型;若是,则进入步骤S203;若否,则忽略或不执行任何操作。
在本发明实施例中引入了预设有效软件漏洞类型的概念,这是由于在实际应用中,软件漏洞可能由外部环境因素导致的,例如某些软件漏洞可能随着开发环境的变更而出现,显然这类型的软件漏洞并不能反映开发者的代码质量,不应当计入开发者所编写的软件漏洞中。因此在本发明实施例中,会在各类型的软件漏洞中预先选择出有效的软件漏洞类型,这批有效类型的软件漏洞更能反映开发者的代码质量,从而可有效提升软件漏洞统计数据的可靠性。需要说明的是,本发明实施例并不限定具体的预设有效软件漏洞类型,可根据实际应用需求进行设定。具体的,预设有效软件漏洞类型可由管理软件漏洞管理平台的管理员进行设置,该管理员可同步所有的软件漏洞数据,并从这些数据中指定有效软件漏洞类型。
S203、若是,则更新软件漏洞开发者信息对应开发者的有效软件漏洞数量,并将有效软件漏洞数量添加至开发者的软件漏洞统计数据中。
可以理解的是,开发者的软件漏洞统计数据可展示给对应开发者,以便其了解自身的开发情况。
进一步,在实际应用中,开发者生成的软件漏洞数量可能随着其处理的开发任务数量的上升而上升,此时仅根据开发者的软件漏洞数量评价其代码质量并不可靠,甚至可能打击该名开发者的开发积极性。例如员工A在某段时间内产出了30个软件漏洞,所需处理的任务数量为8个,因此员工A在该时段平均每一任务产出3.75个软件漏洞;而另一名员工B在相同时段内产出了10个软件漏洞,所需处理的任务数量为2个,因此员工B在该时段平均每一任务产出5个软件漏洞。显然,假若仅根据软件漏洞的数量评价两人的代码质量,则员工A的代码质量不如员工B,而这是不符合实际情况的。因此在本发明实施例中,还可额外获取开发者所需处理的预设任务数量,并同时利用预设任务数量及有效软件漏洞数量计算需求缺陷值(即每任务所产生软件漏洞数量),进而可利用需求缺陷值提升对开发者代码质量的评价准确性。需要说明的是,本发明实施例并不限定预设任务数量是开发者在指定项目或指定项目版本中所需完成的任务数量,还是在指定时间段内所需完成的任务数量,可根据实际应用需求进行设置。
在一种可能的情况中,在提取开发人员信息中的软件漏洞开发者信息以及软件漏洞信息中的软件漏洞类型之后,还可以包括:
步骤11:查询开发者的预设任务数量;预设任务数量是开发者在指定项目版本中所需完成的任务数量,或是在指定时间段内所需完成的任务数量;
相应的,在更新软件漏洞开发者信息对应开发者的有效软件漏洞数量之后,还可以包括:
步骤21:利用预设任务数量和有效软件漏洞数量计算开发者的需求缺陷值,并将需求缺陷值添加至开发者的软件漏洞统计数据中。
具体的,预设任务数量同样可以由管理软件漏洞管理平台的管理员设置,即管理员可为每一开发者预先设置任务数量。
进一步,若预设任务数量是开发者在指定项目版本中所需完成的任务数量,则需求缺陷值还可用于统计该名开发者在该项目的不同版本之间的需求缺陷值。具体的,一个软件项目在开发过程中将会具有多个版本,而每一版本中则会有多个开发任务,每个开发者在每一版本的开发任务中选择一些任务进行处理。由于开发者在处理每一任务时都可能写出质量不一的程序代码,进而该名开发者在每一版本中的代码质量也不同,因此可以为每一版本计算需求缺陷平均值,以便记录该名开发者在每一版本中的代码质量变化情况。
在一种可能的情况中,当预设任务数量是开发者在指定项目版本中所需完成的任务数量时,在利用预设任务数量和有效软件漏洞数量计算开发者的需求缺陷值之后,还可以包括:
步骤31:从软件漏洞信息中提取软件漏洞所属版本及软件漏洞所属项目;
步骤32:利用需求缺陷值更新开发者在软件漏洞所属版本中的第一需求缺陷平均值;
步骤33:获取开发者在软件漏洞所属项目中其他版本的第二需求缺陷平均值,并将第一需求缺陷平均值和第二需求缺陷平均值添加至软件漏洞统计数据中。
进一步,由于每一软件漏洞都具有对应的软件漏洞类型,因此可该类型统计同一开发者所产出的各种类型的软件漏洞的数量,以便分析开发者的代码编写质量。
在一种可能的情况中,在提取开发人员信息中的软件漏洞开发者信息以及软件漏洞信息中的软件漏洞类型之后,还可以包括:
步骤41:根据软件漏洞类型统计开发者所产出的各类型软件漏洞数量,并将各类型软件漏洞数量添加至开发者的软件漏洞统计数据中。
基于上述实施例,本发明可以根据软件漏洞信息条目中的漏洞开发者信息及相关的软件漏洞信息,为开发者全面地统计衡量代码质量的软件漏洞统计数据,此外在本发明中,还额外引入了有效软件漏洞类型的概念,可利用有效软件漏洞类型区分由开发者所造成的软件漏洞和由外部开发环境所造成的软件漏洞,可有效提升开发者的软件漏洞统计数据的准确性,进而可有效提升软件漏洞统计数据的可靠性以及其在软件开发复盘中的利用价值。
基于上述实施例,下面将介绍为测试者生成软件漏洞统计数据的具体过程进行介绍。在一种可能的情况中,当开发人员信息包括软件漏洞测试者信息时,根据开发人员信息和软件漏洞信息生成软件漏洞统计数据,可以包括:
S301、提取开发人员信息中的软件漏洞测试者信息以及软件漏洞信息中的软件漏洞类型。
需要说明的是,本发明实施例并不限定具体的软件漏洞测试者信息,例如可以为姓名、员工ID等,可根据实际应用需求进行设定。
S302、判断软件漏洞类型是否为预设有效软件漏洞类型;若是,则进入步骤S303;若否,若否,则忽略或不执行任何操作。
同样的,本发明实施例也将区分测试者所提供的软件漏洞的类型,并利用有效软件漏洞提交数量来衡量测试者的测试能力。
S303、更新软件漏洞测试者信息对应测试者的有效软件漏洞提交数量,并将有效软件漏洞提交数量添加至测试者的软件漏洞统计数据中。
可以理解的是,测试者的软件漏洞统计数据可展示给对应测试者,以便其了解自身的开发情况。进一步可以理解的是,软件漏洞管理平台将向不同的用户展示不同的内容,例如对于管理员用户,他将可以设置有效软件漏洞类型、为开发者分配任务数量,并参考开发者、测试者、修复者及软件项目的各类统计数据;而对于开发者、测试者、修复者等普通用户,则只能查看其对应的软件漏洞统计数据。该平台在进行登录时,将会确定用户账号是否为管理员账号,以此向该用户展示对应的内容。
基于上述实施例,本发明额外引入了有效软件漏洞类型的概念,可利用有效软件漏洞类型区分由开发者所造成的软件漏洞和由外部开发环境所造成的软件漏洞,可有效提升衡量测试者工作能力的软件漏洞统计数据的准确性,进而可有效提升软件漏洞统计数据的可靠性以及其在软件开发复盘中的利用价值。
基于上述实施例,下面将介绍为软件项目生成软件漏洞统计数据的具体过程进行介绍。在一种可能的情况中,根据软件漏洞信息生成软件漏洞统计数据,包括:
S401、提取软件漏洞信息中的软件漏洞类型、软件漏洞所属项目、软件漏洞所属版本及软件漏洞修复工时。
关于软件漏洞类型的介绍可参考上述实施例。需要说明的是,软件漏洞所属项目为该软件漏洞所处的软件项目,软件漏洞所属版本为软件漏洞所处的软件项目版本,软件漏洞修复工时为修复该软件漏洞所耗费的时间。
S402、根据软件漏洞类型及软件漏洞修复工时计算各类型软件漏洞平均修复工时。
可以理解的是,修复不同类型的软件漏洞所消耗的时间可能不同,因此本发明实施例可利用软件漏洞类型和软件漏洞修复工时,计算各类型软件漏洞的平均修复工时,以便对开发者进行代码质量管控。
S403、更新软件漏洞所属项目对应的第一项目软件漏洞数量,获取其他项目的第二项目软件漏洞数量,并利用第一项目软件漏洞数量和第二项目软件漏洞数量计算项目软件漏洞平均数量。
同样的,不同项目所产生的软件漏洞数量也可能存在差异,因此本发明可根据软件漏洞所属项目统计各项目的软件漏洞平均数量,以便对开发者进行代码质量管控。
S404、更新软件漏洞所属版本对应的第一版本软件漏洞数量,获取软件漏洞所属版本中其他版本的第二版本软件漏洞数量,并利用第一版本软件漏洞数量和第二版本软件漏洞数量计算版本软件漏洞平均数量。
同样的,不同版本所产生的软件漏洞数量也可能存在差异,因此本发明可根据软件漏洞所属版本统计各版本的软件漏洞平均数量,以便对各版本的开发质量进行管控。
S405、将各类型软件漏洞平均修复工时、项目软件漏洞平均数量及版本软件漏洞平均数量添加至软件漏洞统计数据中。
基于上述实施例,本发明可以根据软件漏洞信息条目中的软件漏洞信息,为软件项目开发全面地统计衡量代码质量的软件漏洞统计数据,以此提升软件漏洞统计数据的可靠性以及其在软件开发复盘中的利用价值。
下面基于具体的例子介绍上述软件开发质量管控方法,该方法的思路及步骤可以包括:
1.定义Bug主要的数据结构:标题、描述、创建者(对应发现此缺陷的测试人员)、开发者(对应写出此缺陷的开发人员)、解决者(对应修复此缺陷的开发人员)、类型(代码问题、环境问题、需求新增或变更、数据问题、重复提交、回归等)、工时、项目、版本等主要字段;
2.整体项目技术栈:前端采用VUE框架搭建,后端采用Java、Spring全家桶搭建,数据库采用MySQL;
3.集成Bug管理平台第三方接口获取开发过程中产生登记的Bug列表以及相关数据;
4.用户角色可以分为管理员和普通用户两种类型。管理员账号可以选定无效Bug类型(如环境问题、数据问题、重复提交等这种不属于开发人员造成的Bug类型),以及分配每个员工的需求饱和度;其中,由于每个开发人员开发任务量都不一样,任务量大的话,产生的Bug数量自然会多一些,所以只单纯的统计Bug数量就决定员工的开发质量是不准确的,所以在此提出一个需求饱和度的概念。管理员可根据每个员工的需求分配任务量的多少按照数字1-10(即预设任务数量)分配给每个开发人员,任务量越多,需求饱和度越高,这样可以用来提高开发质量参考的准确度;
5.前端的图表展示接入ECharts图表(可视化图表)来实现,根据后端返回的数据可以生成条形图、柱状图、饼图等多种图表;
6.根据数据的相关字段进行统计,以表格和图表两种可选展示方式展示。统计方式包括但不限于:
(1)根据创建者和类型统计出测试人员提交的Bug有效百分比;
(2)根据开发者和类型统计出开发人员在开发过程中的有效Bug产出数量,可生成排行;
(3)根据开发者和类型统计出开发人员的Bug类型百分比;
(4)根据类型和用时统计出各类型Bug的工时对比;
(5)根据项目或版本分组,生成项目或版本的Bug平均数量;
(6)分配员工的需求饱和度,根据Bug有效数量以及需求饱和度依据相关算法统计出员工的需求缺陷值。其中,需求缺陷值可作为评判员工的质量标准,该缺陷平均值越少,表示员工开发质量越高。计算方式:需求缺陷平均值=有效Bug数量/需求饱和度;
(7)根据不同版本的统计,生成每个开发人员需求缺陷平均值对比,可作为进步的一个参考指标。
业务平台的具体流程图可参考图2,图2为本发明实施例所提供的一种软件漏洞管理平台的业务流程图。登陆平台后,根据登陆平台账号判断账号角色,进入不同角色主页展示。若为管理员,管理员可以实时同步Bug管理平台第三方的相关数据,拿到最新的Bug数据,然后选择无效的Bug类型,用来统计有效Bug的数据;根据Bug列表,对每个员工按照实际工作内容进行分配需求饱和度,然后根据需要选择自己所需要的统计方式,然后展示统计结果,用户可以切换列表展示以及图表展示两种方式。若为普通用户,可以按照管理员设置的数据(若没有设置,按照默认数据)来查看各种统计结果。
下面对本发明实施例提供的软件开发质量管控装置、电子设备及存储介质进行介绍,下文描述的软件开发质量管控装置、电子设备及存储介质与上文描述的软件开发质量管控方法可相互对应参照。
请参考图3,图3为本发明实施例所提供的一种软件开发质量管控装置的结构框图,该装置可以包括:
接收模块301,用于接收软件漏洞信息条目;
信息提取模块302,用于提取软件漏洞信息条目中的开发人员信息及软件漏洞信息;开发人员信息包括软件漏洞开发者信息和/或软件漏洞测试者信息;
统计生成模块303,用于根据开发人员信息和/或软件漏洞信息生成软件漏洞统计数据;
管控模块304,用于利用软件漏洞统计数据进行软件开发质量管控。
其中,统计生成模块303,可以包括:
第一提取子模块,用于提取开发人员信息中的软件漏洞开发者信息以及软件漏洞信息中的软件漏洞类型;
第一判断子模块,用于判断软件漏洞类型是否为预设有效软件漏洞类型;
第一添加子模块,用于若是,则更新软件漏洞开发者信息对应开发者的有效软件漏洞数量,并将有效软件漏洞数量添加至开发者的软件漏洞统计数据中。
可选地,统计生成模块303,还可以包括:
查询子模块,用于查询开发者的预设任务数量;预设任务数量是开发者在指定项目版本中所需完成的任务数量,或是在指定时间段内所需完成的任务数量;
相应的,统计生成模块303,还可以包括:
第一计算子模块,用于利用预设任务数量和有效软件漏洞数量计算开发者的需求缺陷值,并将需求缺陷值添加至开发者的软件漏洞统计数据中。
可选地,统计生成模块303,还可以包括:
第二提取子模块,用于从软件漏洞信息中提取软件漏洞所属版本及软件漏洞所属项目;
更新子模块,用于利用需求缺陷值更新开发者在软件漏洞所属版本中的第一需求缺陷平均值;
第二添加子模块,用于获取开发者在软件漏洞所属项目中其他版本的第二需求缺陷平均值,并将第一需求缺陷平均值和第二需求缺陷平均值添加至软件漏洞统计数据中。
可选地,统计生成模块303,还可以包括:
第三添加子模块,用于根据软件漏洞类型统计开发者所产出的各类型软件漏洞数量,并将各类型软件漏洞数量添加至开发者的软件漏洞统计数据中。可选地,统计生成模块303,可以包括:
第三提取子模块,用于提取开发人员信息中的软件漏洞测试者信息以及软件漏洞信息中的软件漏洞类型;
第二判断子模块,用于判断软件漏洞类型是否为预设有效软件漏洞类型;
第四添加子模块,用于若是,则更新软件漏洞测试者信息对应测试者的有效软件漏洞提交数量,并将有效软件漏洞提交数量添加至测试者的软件漏洞统计数据中。
可选地,统计生成模块303,可以包括:
第四提取子模块,用于提取软件漏洞信息中的软件漏洞类型、软件漏洞所属项目、软件漏洞所属版本及软件漏洞修复工时;
第二计算子模块,用于根据软件漏洞类型及软件漏洞修复工时计算各类型软件漏洞平均修复工时;
第三计算子模块,用于更新软件漏洞所属项目对应的第一项目软件漏洞数量,获取其他项目的第二项目软件漏洞数量,并利用第一项目软件漏洞数量和第二项目软件漏洞数量计算项目软件漏洞平均数量;
第四计算子模块,用于更新软件漏洞所属版本对应的第一版本软件漏洞数量,获取软件漏洞所属版本中其他版本的第二版本软件漏洞数量,并利用第一版本软件漏洞数量和第二版本软件漏洞数量计算版本软件漏洞平均数量;
第五添加子模块,用于将各类型软件漏洞平均修复工时、项目软件漏洞平均数量及版本软件漏洞平均数量添加至软件漏洞统计数据中。
本发明实施例还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的软件开发质量管控方法的步骤。
由于电子设备部分的实施例与软件开发质量管控方法部分的实施例相互对应,因此电子设备部分的实施例请参见软件开发质量管控方法部分的实施例的描述,这里暂不赘述。
本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的软件开发质量管控方法的步骤。
由于存储介质部分的实施例与软件开发质量管控方法部分的实施例相互对应,因此存储介质部分的实施例请参见软件开发质量管控方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种软件开发质量管控方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (9)

1.一种软件开发质量管控方法,其特征在于,包括:
接收软件漏洞信息条目;
提取所述软件漏洞信息条目中的开发人员信息及软件漏洞信息;所述开发人员信息包括软件漏洞开发者信息和/或软件漏洞测试者信息;
根据所述开发人员信息和/或所述软件漏洞信息生成软件漏洞统计数据;
利用所述软件漏洞统计数据进行软件开发质量管控;
其中,当所述开发人员信息包括所述软件漏洞开发者信息时,所述根据所述开发人员信息和所述软件漏洞信息生成软件漏洞统计数据,包括:
提取所述开发人员信息中的所述软件漏洞开发者信息以及所述软件漏洞信息中的软件漏洞类型;
判断所述软件漏洞类型是否为预设有效软件漏洞类型;
若是,则更新所述软件漏洞开发者信息对应开发者的有效软件漏洞数量,并将所述有效软件漏洞数量添加至所述开发者的软件漏洞统计数据中。
2.根据权利要求1所述的软件开发质量管控方法,其特征在于,在提取所述开发人员信息中的所述软件漏洞开发者信息以及所述软件漏洞信息中的软件漏洞类型之后,还包括:
查询所述开发者的预设任务数量;所述预设任务数量是所述开发者在指定项目版本中所需完成的任务数量,或是在指定时间段内所需完成的任务数量;
相应的,在更新所述软件漏洞开发者信息对应开发者的有效软件漏洞数量之后,还包括:
利用所述预设任务数量和所述有效软件漏洞数量计算所述开发者的需求缺陷值,并将所述需求缺陷值添加至所述开发者的软件漏洞统计数据中。
3.根据权利要求2所述的软件开发质量管控方法,其特征在于,当所述预设任务数量是所述开发者在指定项目版本中所需完成的任务数量时,在利用所述预设任务数量和所述有效软件漏洞数量计算所述开发者的需求缺陷值之后,还包括:
从所述软件漏洞信息中提取软件漏洞所属版本及软件漏洞所属项目;
利用所述需求缺陷值更新所述开发者在所述软件漏洞所属版本中的第一需求缺陷平均值;
获取所述开发者在所述软件漏洞所属项目中其他版本的第二需求缺陷平均值,并将所述第一需求缺陷平均值和所述第二需求缺陷平均值添加至所述软件漏洞统计数据中。
4.根据权利要求1所述的软件开发质量管控方法,其特征在于,在提取所述开发人员信息中的所述软件漏洞开发者信息以及所述软件漏洞信息中的软件漏洞类型之后,还包括:
根据所述软件漏洞类型统计所述开发者所产出的各类型软件漏洞数量,并将所述各类型软件漏洞数量添加至所述开发者的软件漏洞统计数据中。
5.根据权利要求1所述的软件开发质量管控方法,其特征在于,当所述开发人员信息包括所述软件漏洞开发者信息时,所述根据所述开发人员信息和所述软件漏洞信息生成软件漏洞统计数据,包括:
提取所述开发人员信息中的所述软件漏洞测试者信息以及所述软件漏洞信息中的软件漏洞类型;
判断所述软件漏洞类型是否为预设有效软件漏洞类型;
若是,则更新所述软件漏洞测试者信息对应测试者的有效软件漏洞提交数量,并将所述有效软件漏洞提交数量添加至所述测试者的软件漏洞统计数据中。
6.根据权利要求1所述的软件开发质量管控方法,其特征在于,所述根据所述软件漏洞信息生成软件漏洞统计数据,包括:
提取所述软件漏洞信息中的软件漏洞类型、软件漏洞所属项目、软件漏洞所属版本及软件漏洞修复工时;
根据所述软件漏洞类型及所述软件漏洞修复工时计算各类型软件漏洞平均修复工时;
更新所述软件漏洞所属项目对应的第一项目软件漏洞数量,获取其他项目的第二项目软件漏洞数量,并利用所述第一项目软件漏洞数量和所述第二项目软件漏洞数量计算项目软件漏洞平均数量;
更新软件漏洞所属版本对应的第一版本软件漏洞数量,获取所述软件漏洞所属版本中其他版本的第二版本软件漏洞数量,并利用所述第一版本软件漏洞数量和所述第二版本软件漏洞数量计算版本软件漏洞平均数量;
将所述各类型软件漏洞平均修复工时、所述项目软件漏洞平均数量及所述版本软件漏洞平均数量添加至所述软件漏洞统计数据中。
7.一种软件开发质量管控装置,其特征在于,包括:
接收模块,用于接收软件漏洞信息条目;
信息提取模块,用于提取所述软件漏洞信息条目中的开发人员信息及软件漏洞信息;所述开发人员信息包括软件漏洞开发者信息和/或软件漏洞测试者信息;
统计生成模块,用于根据所述开发人员信息和/或所述软件漏洞信息生成软件漏洞统计数据;
管控模块,用于利用所述软件漏洞统计数据进行软件开发质量管控;
其中,当所述开发人员信息为所述软件漏洞开发者信息时,所述统计生成模块,包括:
第一提取子模块,用于提取所述开发人员信息中的所述软件漏洞开发者信息以及所述软件漏洞信息中的软件漏洞类型;
第一判断子模块,用于判断所述软件漏洞类型是否为预设有效软件漏洞类型;
第一添加子模块,用于若是,则更新所述软件漏洞开发者信息对应开发者的有效软件漏洞数量,并将所述有效软件漏洞数量添加至所述开发者的软件漏洞统计数据中。
8.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的软件开发质量管控方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的软件开发质量管控方法的步骤。
CN202111462483.3A 2021-12-02 2021-12-02 一种软件开发质量管控方法、装置、电子设备及存储介质 Pending CN114153486A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111462483.3A CN114153486A (zh) 2021-12-02 2021-12-02 一种软件开发质量管控方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111462483.3A CN114153486A (zh) 2021-12-02 2021-12-02 一种软件开发质量管控方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114153486A true CN114153486A (zh) 2022-03-08

Family

ID=80455979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111462483.3A Pending CN114153486A (zh) 2021-12-02 2021-12-02 一种软件开发质量管控方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114153486A (zh)

Similar Documents

Publication Publication Date Title
Athanasiou et al. Test code quality and its relation to issue handling performance
Theisen et al. Approximating attack surfaces with stack traces
EP2572294B1 (en) System and method for sql performance assurance services
Grbac et al. A second replicated quantitative analysis of fault distributions in complex software systems
CN113407517B (zh) 一种基于多维分析技术的数据质量健康度分析方法及系统
US9253057B2 (en) Evaluation of performance of software applications
CN111522728A (zh) 自动化测试用例的生成方法、电子设备及可读存储介质
CN110728422A (zh) 用于施工项目的建筑信息模型、方法、装置和结算系统
CN112989563A (zh) 一种大坝安全监测数据分析方法
Lu et al. Does the role matter? an investigation of the code quality of casual contributors in github
CN115080389A (zh) 提升指标统计效率的测试系统、方法、设备及存储介质
CN109359946B (zh) 工程审计方法和系统
CN110765007A (zh) 一种面向安卓应用的崩溃信息线上分析方法
CN112905435B (zh) 基于大数据的工作量评估方法、装置、设备及存储介质
CN113065737A (zh) 一种基于DevOps的效能度量方法和系统
JP4502535B2 (ja) ソフトウエア品質検査支援システム及び方法
CN114153486A (zh) 一种软件开发质量管控方法、装置、电子设备及存储介质
CN117056218A (zh) 测试管理方法、平台、介质和设备
CN109542496B (zh) 增量代码确定方法、装置及系统
CN111127223A (zh) 保险产品测试方法、装置和存储介质
JP2015041259A (ja) リスク計量システム
CN111143216A (zh) 质量报告的生成方法、装置、设备及计算机可读存储介质
CN115617670A (zh) 软件测试管理方法、存储介质及系统
CN114881521A (zh) 业务评估方法、装置、电子设备以及存储介质
Wang et al. Quantitative analysis of requirements evolution across multiple versions of an industrial software product

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination