CN112748950B - 一种软件代码审查方法及装置 - Google Patents

一种软件代码审查方法及装置 Download PDF

Info

Publication number
CN112748950B
CN112748950B CN202110057321.5A CN202110057321A CN112748950B CN 112748950 B CN112748950 B CN 112748950B CN 202110057321 A CN202110057321 A CN 202110057321A CN 112748950 B CN112748950 B CN 112748950B
Authority
CN
China
Prior art keywords
code
project
target
examination
svn
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.)
Active
Application number
CN202110057321.5A
Other languages
English (en)
Other versions
CN112748950A (zh
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.)
Sprixin Technology Co ltd
Original Assignee
Sprixin Technology 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 Sprixin Technology Co ltd filed Critical Sprixin Technology Co ltd
Priority to CN202110057321.5A priority Critical patent/CN112748950B/zh
Publication of CN112748950A publication Critical patent/CN112748950A/zh
Application granted granted Critical
Publication of CN112748950B publication Critical patent/CN112748950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种软件代码审查方法及装置。其中,该方法包括:获取输入的目标检查时间点和版本库标识;基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库;基于所述目标检查时间点确定相应的目标检查任务;若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果。采用本发明公开的软件代码审查方法,能够在集成现有项目管理系统与编译发布系统的基础上实现代码审查,其操作过程便捷,评审复杂度低,避免了乱码问题,实现了代码审核强制覆盖,能够保障便利性和效率前提下,有效提高软件的开发质量。

Description

一种软件代码审查方法及装置
技术领域
本发明涉及计算机应用技术领域,具体涉及一种软件代码审查方法及装置。另外,还涉及一种电子设备及非暂态计算机可读存储介质。
背景技术
随着互联网技术的快速发展,各种软件项目不断推陈出新,代码迭代速度也越来越快,其无疑给运维人员带来越来越大的工作量。为此,自动部署应用服务应运而生。在自动部署应用服务过程中,研发人员提交代码的质量成为影响软件项目稳定性和可靠性的重要因素。
为了提高开发者提交代码的质量,需要引入代码审查环节,由高一级/同级研发人员对开发者提交的代码进行在线审查,审查通过后方可进行编译发布等后续措施。代码审查是对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。代码审查常以不同的形式进行,例如结对编程、非正式的看过整个代码,或是正式的软件检查。目前,比较常见的代码审查软件如:开放源代码的软件开发平台Phabricator,Phabricator能够提供命令行客户端工具提交审查申请和网页工具进行代码审查。然而,其安装过程过于繁琐,评审复杂度较高,另外由于客户端环境的复杂度使得提交信息容易产生乱码等问题,并且无法集成现有的项目管理系统(Redmine)和编译发布系统(Jenkins),导致对提交的项目代码进行审查的效率较低,已经逐渐无法满足当前的实际使用需求。因此,如何实现结合现有的项目管理系统和编译发布系统设计一种高效、便捷的代码审查检查方案成为本领域亟待解决的问题。
发明内容
为此,本发明提供一种软件代码审查方法及装置,以解决现有技术中存在的代码审查平台安装过程过于繁琐,评审复杂度较高,并且无法集成现有的项目管理系统和编译发布系统,导致对提交的项目代码审查效率较低的问题。
本发明提供一种软件代码审查方法,包括:
获取输入的目标检查时间点和版本库标识;
基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库;
基于所述目标检查时间点确定相应的目标检查任务;
若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果。
进一步的,所述基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,具体包括:
基于所述逻辑判断规则判断所述SVN版本库中的所述目标检查任务是否已经提交相应的项目代码评审;
若是,则通过读取所述项目管理系统中预先定义的与所述目标检查任务对应的标识位信息,判断所述SVN版本库中的所述目标检查任务对应的项目代码评审是否已经关闭。
进一步的,所述确定相应的项目代码审查结果,具体包括:
确定未分配项目代码评审的第一SVN版本列表;和/或,
确定项目代码未评审通过的第二SVN版本列表;和/或,
确定项目代码评审通过的第三SVN版本列表。
进一步的,所述的软件代码审查方法,还包括:
若所述项目代码审查结果包括未提交代码评审的目标检查任务,则输出未提交代码评审的所述目标检查任务对应的第一目标SVN版本号;或者,
若所述项目代码审查结果包括未通过代码审查或者未关闭代码评审的目标检查任务,则输出未通过代码审查或者未关闭代码评审的所述目标检查任务对应的第二目标SVN版本号;
其中,所述第一目标SVN版本号为提交的全部SVN版本号中未提交代码审查的所述目标检查任务对应的最小SVN版本号;所述第二目标SVN版本号为提交的全部SVN版本号中未通过代码审查或者未关闭代码评审的所述目标检查任务对应的最小SVN版本号;所述全部SVN版本号按照从小到大的顺序进行排序,所述从小到大的顺序与所述目标检查任务对应的项目代码更新的先后顺序相对应。
进一步的,所述的软件代码审查方法,还包括:基于所述项目代码检查结果,判断是否存在满足预设编译条件的项目代码;其中,所述项目代码与所述目标检查任务相对应;
若是,则利用预设的编译发布系统对已评审通过的第三SVN版本列表对应的所述项目代码进行规范检查及编译打包操作,实现更新部署应用;若否,则输出相应的异常提示信息。
进一步的,所述基于所述项目代码检查结果,判断是否存在满足预设编译条件的项目代码,具体包括:
基于所述项目代码检查结果,判断提交的SVN版本号列表中是否包含未提交代码审查、未通过代码审查或者未关闭代码评审的项目代码对应的SVN版本号;若未包含,则判定所述提交的SVN版本号列表对应的项目代码满足所述编译条件;若包含,则判定所述提交的SVN版本号列表对应的项目代码存在不满足所述编译条件的项目代码。
进一步的,所述若是,则利用预设的编译发布系统对已评审通过的第三SVN版本列表对应的所述项目代码进行规范检查及编译打包操作,具体包括:
若全部满足所述编译条件,则利用预设的编译发布系统对所述第三SVN版本列表对应的第一目标项目代码进行规范检查及编译打包操作;以及,
若部分满足所述编译条件,则利用预设的编译发布系统对所述SVN版本列表对应的部分满足编译条件中的第二目标项目代码进行规范检查及编译打包操作,并反馈相应的异常提示信息。
相应的,本发明还提供一种软件代码审查方法,包括:
参数获取单元,用于获取输入的目标检查时间点和版本库标识;
版本库配置判断单元,用于基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库;
检查点确定单元,用于基于所述目标检查时间点确定相应的目标检查任务;
审查状态检查单元,用于若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果。
进一步的,所述审查状态检查单元,具体用于:
基于所述逻辑判断规则判断所述SVN版本库中的所述目标检查任务是否已经提交相应的项目代码评审;
若是,则通过读取所述项目管理系统中预先定义的与所述目标检查任务对应的标识位信息,判断所述SVN版本库中的所述目标检查任务对应的项目代码评审是否已经关闭。
进一步的,所述审查状态检查单元,还用于:
确定未分配项目代码评审的第一SVN版本列表;和/或,
确定项目代码未评审通过的第二SVN版本列表;和/或,
确定项目代码评审通过的第三SVN版本列表。
进一步的,所述的软件代码审查装置,还包括:异常信息输出单元,用于:若所述项目代码审查结果包括未提交代码评审的目标检查任务,则输出未提交代码评审的所述目标检查任务对应的第一目标SVN版本号;或者,
若所述项目代码审查结果包括未通过代码审查或者未关闭代码评审的目标检查任务,则输出未通过代码审查或者未关闭代码评审的所述目标检查任务对应的第二目标SVN版本号;
其中,所述第一目标SVN版本号为提交的全部SVN版本号中未提交代码审查的所述目标检查任务对应的最小SVN版本号;所述第二目标SVN版本号为提交的全部SVN版本号中未通过代码审查或者未关闭代码评审的所述目标检查任务对应的最小SVN版本号;所述全部SVN版本号按照从小到大的顺序进行排序,所述从小到大的顺序与所述目标检查任务对应的项目代码更新的先后顺序相对应。
进一步的,所述的软件代码审查装置,还包括:编译判断单元,用于基于所述项目代码检查结果,判断是否存在满足预设编译条件的项目代码;其中,所述项目代码与所述目标检查任务相对应;
若是,则利用预设的编译发布系统对已评审通过的第三SVN版本列表对应的所述项目代码进行规范检查及编译打包操作,实现更新部署应用;若否,则输出相应的异常提示信息。
进一步的,所述编译判断单元,具体用于:
基于所述项目代码检查结果,判断提交的SVN版本号列表中是否包含未提交代码审查、未通过代码审查或者未关闭代码评审的项目代码对应的SVN版本号;若未包含,则判定所述提交的SVN版本号列表对应的项目代码满足所述编译条件;若包含,则判定所述提交的SVN版本号列表对应的项目代码存在不满足所述编译条件的项目代码。
进一步的,所述编译判断单元,具体用于:
若全部满足所述编译条件,则利用预设的编译发布系统对所述第三SVN版本列表对应的第一目标项目代码进行规范检查及编译打包操作;以及,
若部分满足所述编译条件,则利用预设的编译发布系统对所述第三SVN版本列表对应的部分满足编译条件中的第二目标项目代码进行规范检查及编译打包操作,并反馈相应的异常提示信息。
相应的,本发明还提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任意一项所述的软件代码审查方法的步骤。
相应的,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任意一项所述的软件代码审查方法的步骤。
采用本发明所述的软件代码审查方法,能够在集成现有项目管理系统与编译发布系统的基础上实现代码审查,其操作过程便捷,评审复杂度低,避免了乱码问题,实现了代码审核强制覆盖,能够保障便利性和效率前提下,有效提高软件的开发质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
图1为本发明实施例提供的一种软件代码审查方法的流程示意图;
图2为本发明实施例提供的一种软件代码集成方法的完整流程示意图;
图3为本发明实施例提供的代码审查检查器的业务逻辑流程图;
图4为本发明实施例提供的一种软件代码审查装置的结构示意图;
图5为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
本发明提供的软件代码审查方法包括:代码提交阶段、代码审核检查阶段以及自动化发布阶段。下面基于本发明所述的软件代码审查方法,对其实施例进行详细描述。如图1所示,其为本发明实施例提供的软件代码审查方法的流程示意图,具体实现过程包括以下步骤:
步骤101:获取输入的目标检查时间点和版本库标识。
在本发明实施例的代码提交阶段,预先需要根据业务进行代码编写,在项目管理系统(Redmine)中使用SVN(SubVersion)进行版本管理,通过SVN提交项目代码(即源代码,一系列人类可读的计算机语言指令),创建SVN版本库。
在执行代码审核检查阶段,代码审查检查器(codereview-check)首先获取用户输入的关键参数,所述关键参数包括目标检查时间点和版本库标识(比如rxwp)。其中,所述目标检查时间点可以是指项目代码对应的具体时间信息,所述版本库标识是指统一资源定位地址(Uniform Resource Locator;URL)中的目标地址字符。
如图2所示,在本发明实施例中,代码审查检查器可基于项目管理系统,以及输入的所述目标检查时间点和版本库标识,实现对项目代码进行审查状态检查,并结合编译发布系统(Jenkins)判断是否进行下一阶段,通过编译发布系统实现代码规范检查、代码打包等后续步骤。
所述代码审查检查器的具体实现过程如下:判断项目管理系统是否配置代码审查对应的SVN版本库(即目标版本库);判断是否都已经提交代码评审;判断代码评审是否都已经关闭,以及基于编译发布系统的自动化发布阶段。其中,在判断代码评审是否都已经关闭时,可读取项目管理系统里面预先定义并存入文档数据库中的标识位字段,通过相应的检测标识位字段判断代码评审是否都已经关闭。
步骤102:基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库。
如图3所示,在执行代码审核检查阶段之前,需要预先初始化数据库信息、项目管理工具以及持续集成化编译发布工具,然后预先基于项目管理系统版本库对代码审查任务进行相关配置,并基于所述版本库标识通过代码审查检查器内部的逻辑判断规则判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库,若已配置SVN版本库,则执行下述步骤。
步骤103:基于所述目标检查时间点确定相应的目标检查任务。
在本发明实施例中,可基于代码审查检查器预设的逻辑判断规则检查项目管理系统上的检查点(比如目标检查时间点),即确定相应的目标检查任务,基于目标检查点进行代码审查状态检查。
在本步骤中,可基于所述目标检查时间点确定SVN版本库(即目标版本库)中的目标检查任务,便于后续通过预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行评审,从而确定相应的项目代码的审查状态。
步骤104:若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果。
在本发明实施例中,可所述基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,比如对未提交代码审查信息处理,对未通过审查或者未关闭信息处理以及判断是否关闭代码审查。确定未提交代码审查的SVN版本信息、未通过审查或者未关闭SVN版本信息以及通过代码审查的最小SVN版本信息。其中,所述SVN版本信息对应特定的项目代码。
具体的,首先基于所述逻辑判断规则判断所述SVN版本库中的所述目标检查任务是否已经提交相应的项目代码评审;若是,则通过读取所述项目管理系统中预先定义的与所述目标检查任务对应的标识位信息,判断所述SVN版本库中的所述目标检查任务对应的项目代码评审是否已经关闭。其中,所述目标检查任务与所述项目代码相对应。所述确定相应的项目代码审查结果,具体包括:确定未分配项目代码评审的第一SVN版本列表;和/或,确定项目代码未评审通过的第二SVN版本列表;和/或,确定项目代码评审通过的第三SVN版本列表。
若所述项目代码审查结果包括未提交代码评审的目标检查任务,则输出未提交代码评审的所述目标检查任务对应的第一目标SVN版本号;或者,若所述项目代码审查结果包括未通过代码审查或者未关闭代码评审的目标检查任务,则输出未通过代码审查或者未关闭代码评审的所述目标检查任务对应的第二目标SVN版本号。
需要说明的是,所述第一目标SVN版本号为提交的全部SVN版本号中未提交代码审查的所述目标检查任务对应的最小SVN版本号;所述第二目标SVN版本号为提交的全部SVN版本号中未通过代码审查或者未关闭代码评审的所述目标检查任务对应的最小SVN版本号;所述全部SVN版本号按照从小到大的顺序进行排序,所述从小到大的顺序与所述目标检查任务对应的项目代码更新的先后顺序相对应。
另外,在本发明实施例中,还可基于所述项目代码检查结果,判断是否存在满足预设编译条件的项目代码;若是,则利用预设的编译发布系统对已评审通过的第三SVN版本列表对应的所述项目代码进行规范检查及编译打包操作,实现更新部署应用。具体的,若全部满足所述编译条件,则利用预设的编译发布系统对所述第三SVN版本列表对应的第一目标项目代码进行规范检查及编译打包操作;若部分满足所述编译条件,则利用预设的编译发布系统对所述第三SVN版本列表对应的部分满足编译条件中的第二目标项目代码进行规范检查及编译打包操作,并反馈相应的异常提示信息。若否,则输出相应的异常提示信息。其中,所述项目代码与所述目标检查任务相对应。
在具体实施过程中,基于所述项目代码检查结果,判断提交的SVN版本号列表中是否包含未提交代码审查、未通过代码审查或者未关闭代码评审的项目代码对应的SVN版本号;若未包含,则判定所述提交的SVN版本号列表对应的项目代码满足所述编译条件;若包含,则判定所述提交的SVN版本号列表对应的项目代码存在不满足所述编译条件的项目代码。
采用本发明实施例所述的软件代码审查方法,能够在集成现有项目管理系统与编译发布系统的基础上实现代码审查,其操作过程便捷,评审复杂度低,避免了乱码问题,实现了代码审核强制覆盖,能够保障便利性和效率前提下,有效提高软件的开发质量。
与上述提供的一种软件代码审查方法相对应,本发明还提供一种软件代码审查装置。由于该装置的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的软件代码审查装置的实施例仅是示意性的。请参考图4所示,其为本发明实施例提供的一种软件代码审查装置的结构示意图。
本发明所述的一种软件代码审查装置具体包括如下部分:
参数获取单元401,用于获取输入的目标检查时间点和版本库标识。
版本库配置判断单元402,用于基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库。
检查点确定单元403,用于基于所述目标检查时间点确定相应的目标检查任务。
审查状态检查单元404,用于若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果。
采用本发明实施例所述的软件代码审查装置,能够在集成现有项目管理系统与编译发布系统的基础上实现代码审查,其操作过程便捷,评审复杂度低,避免了乱码问题,实现了代码审核强制覆盖,能够保障便利性和效率前提下,有效提高软件的开发质量。
与上述提供的软件代码审查方法相对应,本发明还提供一种电子设备。由于该电子设备的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的电子设备仅是示意性的。如图5所示,其为本发明实施例公开的一种电子设备的实体结构示意图。该电子设备可以包括:处理器(processor)501、存储器(memory)502和通信总线503,其中,处理器501,存储器502通过通信总线503完成相互间的通信。处理器501可以调用存储器502中的逻辑指令,以执行软件代码审查方法,该方法包括:获取输入的目标检查时间点和版本库标识;基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库;基于所述目标检查时间点确定相应的目标检查任务;若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果。
此外,上述的存储器502中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的软件代码审查方法,该方法包括:获取输入的目标检查时间点和版本库标识;基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库;基于所述目标检查时间点确定相应的目标检查任务;若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的软件代码审查方法,该方法包括:获取输入的目标检查时间点和版本库标识;基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库;基于所述目标检查时间点确定相应的目标检查任务;若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种软件代码审查方法,其特征在于,包括:
获取输入的目标检查时间点和版本库标识;
基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库;所述SVN版本库是在项目管理系统中使用SVN进行版本管理,通过SVN提交项目代码进行创建得到的;所述版本库标识为统一资源定位地址中的目标地址字符;
基于所述目标检查时间点确定相应的目标检查任务;
若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果;所述确定相应的项目代码审查结果,具体包括:确定项目代码评审通过的第三SVN版本列表;
所述软件代码审查方法,还包括:基于所述项目代码审查结果,判断是否存在满足预设编译条件的项目代码;
所述基于所述项目代码审查结果,判断是否存在满足预设编译条件的项目代码,具体包括:基于所述项目代码审查结果,判断提交的SVN版本号列表中是否包含未提交代码审查、未通过代码审查或者未关闭代码评审的项目代码对应的SVN版本号;若未包含,则判定所述提交的SVN版本号列表对应的项目代码满足所述编译条件;若包含,则判定所述提交的SVN版本号列表对应的项目代码存在不满足所述编译条件的项目代码;其中,所述项目代码与所述目标检查任务相对应;
若不存在满足预设编译条件的项目代码,则输出相应的异常提示信息;
若存在满足预设编译条件的项目代码,则利用预设的编译发布系统对已评审通过的第三SVN版本列表对应的所述项目代码进行规范检查及编译打包操作,实现更新部署应用,具体包括:若全部满足所述编译条件,则利用预设的编译发布系统对所述第三SVN版本列表对应的第一目标项目代码进行规范检查及编译打包操作;以及,若部分满足所述编译条件,则利用预设的编译发布系统对所述第三SVN版本列表对应的部分满足编译条件中的第二目标项目代码进行规范检查及编译打包操作,并反馈相应的异常提示信息。
2.根据权利要求1所述的软件代码审查方法,其特征在于,所述基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,具体包括:
基于所述逻辑判断规则判断所述SVN版本库中的所述目标检查任务是否已经提交相应的项目代码评审;
若是,则通过读取所述项目管理系统中预先定义的与所述目标检查任务对应的标识位信息,判断所述SVN版本库中的所述目标检查任务对应的项目代码评审是否已经关闭。
3.根据权利要求1所述的软件代码审查方法,其特征在于,所述确定相应的项目代码审查结果,具体包括:
确定未分配项目代码评审的第一SVN版本列表;和/或,
确定项目代码未评审通过的第二SVN版本列表。
4.根据权利要求1所述的软件代码审查方法,其特征在于,还包括:
若所述项目代码审查结果包括未提交代码评审的目标检查任务,则输出未提交代码评审的所述目标检查任务对应的第一目标SVN版本号;或者,
若所述项目代码审查结果包括未通过代码审查或者未关闭代码评审的目标检查任务,则输出未通过代码审查或者未关闭代码评审的所述目标检查任务对应的第二目标SVN版本号;
其中,所述第一目标SVN版本号为提交的全部SVN版本号中未提交代码审查的所述目标检查任务对应的最小SVN版本号;所述第二目标SVN版本号为提交的全部SVN版本号中未通过代码审查或者未关闭代码评审的所述目标检查任务对应的最小SVN版本号;所述全部SVN版本号按照从小到大的顺序进行排序,所述从小到大的顺序与所述目标检查任务对应的项目代码更新的先后顺序相对应。
5.一种软件代码审查装置,其特征在于,包括:
参数获取单元,用于获取输入的目标检查时间点和版本库标识;
版本库配置判断单元,用于基于所述版本库标识判断预设的项目管理系统是否配置项目代码审查对应的SVN版本库;所述SVN版本库是在项目管理系统中使用SVN进行版本管理,通过SVN提交项目代码进行创建得到的;所述版本库标识为统一资源定位地址中的目标地址字符;
检查点确定单元,用于基于所述目标检查时间点确定相应的目标检查任务;
审查状态检查单元,用于若是,则基于预设的逻辑判断规则对所述SVN版本库中的所述目标检查任务进行审查状态检查,确定相应的项目代码审查结果;所述确定相应的项目代码审查结果,具体包括:确定项目代码评审通过的第三SVN版本列表;
所述软件代码审查装置,还包括:编译判断单元,用于基于所述项目代码审查结果,判断是否存在满足预设编译条件的项目代码;
所述编译判断单元,具体用于:基于所述项目代码审查结果,判断提交的SVN版本号列表中是否包含未提交代码审查、未通过代码审查或者未关闭代码评审的项目代码对应的SVN版本号;若未包含,则判定所述提交的SVN版本号列表对应的项目代码满足所述编译条件;若包含,则判定所述提交的SVN版本号列表对应的项目代码存在不满足所述编译条件的项目代码;其中,所述项目代码与所述目标检查任务相对应;
若不存在满足预设编译条件的项目代码,则输出相应的异常提示信息;
若存在满足预设编译条件的项目代码,则利用预设的编译发布系统对已评审通过的第三SVN版本列表对应的所述项目代码进行规范检查及编译打包操作,实现更新部署应用,具体包括:若全部满足所述编译条件,则利用预设的编译发布系统对所述第三SVN版本列表对应的第一目标项目代码进行规范检查及编译打包操作;以及,若部分满足所述编译条件,则利用预设的编译发布系统对所述第三SVN版本列表对应的部分满足编译条件中的第二目标项目代码进行规范检查及编译打包操作,并反馈相应的异常提示信息。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4任意一项所述的软件代码审查方法的步骤。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-4任意一项所述的软件代码审查方法的步骤。
CN202110057321.5A 2021-01-15 2021-01-15 一种软件代码审查方法及装置 Active CN112748950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110057321.5A CN112748950B (zh) 2021-01-15 2021-01-15 一种软件代码审查方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110057321.5A CN112748950B (zh) 2021-01-15 2021-01-15 一种软件代码审查方法及装置

Publications (2)

Publication Number Publication Date
CN112748950A CN112748950A (zh) 2021-05-04
CN112748950B true CN112748950B (zh) 2024-05-31

Family

ID=75652193

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110057321.5A Active CN112748950B (zh) 2021-01-15 2021-01-15 一种软件代码审查方法及装置

Country Status (1)

Country Link
CN (1) CN112748950B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113553262B (zh) * 2021-07-22 2023-08-11 网易(杭州)网络有限公司 一种代码审核方法、装置、电子设备及存储介质
CN113918162B (zh) * 2021-09-29 2024-10-18 成都安恒信息技术有限公司 一种基于集中式管理模式下的前端代码自动化校验方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309804A (zh) * 2013-04-08 2013-09-18 中国电子科技集团公司第十研究所 自动化代码规则检查平台
CN107402765A (zh) * 2017-07-27 2017-11-28 郑州云海信息技术有限公司 一种代码审查发布方法及系统
CN107463375A (zh) * 2017-07-18 2017-12-12 上海斐讯数据通信技术有限公司 一种检测源代码的方法和系统
CN107463371A (zh) * 2017-07-01 2017-12-12 广州视源电子科技股份有限公司 代码管控方法及系统
CN107908420A (zh) * 2017-11-16 2018-04-13 泰康保险集团股份有限公司 一种代码处理方法、装置及系统
CN109002294A (zh) * 2018-07-16 2018-12-14 浪潮电子信息产业股份有限公司 一种代码审查方法、装置、设备及可读存储介质
CN109739543A (zh) * 2018-12-18 2019-05-10 杭州茂财网络技术有限公司 一种代码审查方法及其设备
CN110809756A (zh) * 2017-06-29 2020-02-18 微软技术许可有限责任公司 代码评审重新设定差异

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201646B2 (en) * 2013-01-05 2015-12-01 Vmware, Inc. Automatic code review and code reviewer recommendation
CN108089984A (zh) * 2017-12-14 2018-05-29 泰康保险集团股份有限公司 代码评审的实现方法、装置、存储介质及电子设备
CN110389773A (zh) * 2018-04-23 2019-10-29 比亚迪股份有限公司 软件发布及部署方法、装置及系统
CN109491663A (zh) * 2018-11-01 2019-03-19 北京车和家信息技术有限公司 代码审查方法及装置
US11610173B2 (en) * 2019-06-13 2023-03-21 Sri International Intelligent collaborative project management

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309804A (zh) * 2013-04-08 2013-09-18 中国电子科技集团公司第十研究所 自动化代码规则检查平台
CN110809756A (zh) * 2017-06-29 2020-02-18 微软技术许可有限责任公司 代码评审重新设定差异
CN107463371A (zh) * 2017-07-01 2017-12-12 广州视源电子科技股份有限公司 代码管控方法及系统
CN107463375A (zh) * 2017-07-18 2017-12-12 上海斐讯数据通信技术有限公司 一种检测源代码的方法和系统
CN107402765A (zh) * 2017-07-27 2017-11-28 郑州云海信息技术有限公司 一种代码审查发布方法及系统
CN107908420A (zh) * 2017-11-16 2018-04-13 泰康保险集团股份有限公司 一种代码处理方法、装置及系统
CN109002294A (zh) * 2018-07-16 2018-12-14 浪潮电子信息产业股份有限公司 一种代码审查方法、装置、设备及可读存储介质
CN109739543A (zh) * 2018-12-18 2019-05-10 杭州茂财网络技术有限公司 一种代码审查方法及其设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Mining Source Code Improvement Patterns from Similar Code Review Works;Yuki Ueda 等;《IEEE》;20190314;13-19 *
代码规则自动化检查系统的设计与实现;杨冰娥;《中国优秀硕士学位论文全文数据库》;20140915(第2014年09期);I138-523 *
版本管理与代码走查系统设计与实现;李嵩泉 等;《计算机与网络》;20140326;第40卷(第6期);53-56 *
面向大众化协同开发的贡献审查关键技术研究;李志星;《中国优秀硕士学位论文全文数据库》(第2020年02期);I138-517 *

Also Published As

Publication number Publication date
CN112748950A (zh) 2021-05-04

Similar Documents

Publication Publication Date Title
Pashchenko et al. Vulnerable open source dependencies: Counting those that matter
US9753838B2 (en) System and method to classify automated code inspection services defect output for defect analysis
Rahman et al. Source code properties of defective infrastructure as code scripts
Langer et al. A posteriori operation detection in evolving software models
US20130086556A1 (en) System for ensuring comprehensiveness of requirements testing of software applications
CN106484606A (zh) 一种代码提交方法和设备
Santana et al. RAIDE: a tool for Assertion Roulette and Duplicate Assert identification and refactoring
CN112748950B (zh) 一种软件代码审查方法及装置
Henkel et al. Shipwright: A human-in-the-loop system for dockerfile repair
He et al. Technical debt in MDE: A case study on GMF/EMF-based projects
Pesola et al. Integrating early v&v support to a gse tool integration platform
CN111522741A (zh) 接口测试代码生成方法、装置、电子设备及可读存储介质
Maes-Bermejo et al. Revisiting the building of past snapshots—a replication and reproduction study
Kwon et al. Exploring LLM-based Automated Repairing of Ansible Script in Edge-Cloud Infrastructures
Bandara et al. Identifying software architecture erosion through code comments
Dautovic Automatic assessment of software documentation quality
Ben Charrada et al. An automated hint generation approach for supporting the evolution of requirements specifications
Dautovic et al. Automated quality defect detection in software development documents
CN110633204B (zh) 一种程序缺陷检测方法及装置
Raghunathan et al. Feedback Topics in Modern Code Review: Automatic Identification and Impact on Changes.
Khan et al. A literature review on software testing techniques
Erdogan et al. A systematic method for risk-driven test case design using annotated sequence diagrams
Bermon Angarita et al. A Bibliometric Analysis of DevOps Metrics.
van Amstel et al. Visualizing traceability in model transformation compositions
Kocbek et al. Beta Testing of a Mobile Application: A Case Study.

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
GR01 Patent grant
GR01 Patent grant