CN109739543A - 一种代码审查方法及其设备 - Google Patents

一种代码审查方法及其设备 Download PDF

Info

Publication number
CN109739543A
CN109739543A CN201811550068.1A CN201811550068A CN109739543A CN 109739543 A CN109739543 A CN 109739543A CN 201811550068 A CN201811550068 A CN 201811550068A CN 109739543 A CN109739543 A CN 109739543A
Authority
CN
China
Prior art keywords
code
unexamined
result
qualified
software
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
CN201811550068.1A
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.)
Hangzhou Maocai Network Technology Co Ltd
Original Assignee
Hangzhou Maocai Network 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 Hangzhou Maocai Network Technology Co Ltd filed Critical Hangzhou Maocai Network Technology Co Ltd
Priority to CN201811550068.1A priority Critical patent/CN109739543A/zh
Publication of CN109739543A publication Critical patent/CN109739543A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明实施例公开一种代码审查方法及其设备,其中方法包括如下步骤:获取所输入的待审查代码,基于代码审查软件调用软件项目对所述待审查代码进行静态审查,当所述静态审查的结果为合格时,基于所述代码审查软件显示输出所述待审查代码,以使开发人员对所述待审查代码进行初步审查,当所述初步审查的结果为合格时,基于所述软件项目对所述待审查代码进行再次审查,当所述再次审查的结果为合格时,将所述待审查代码存储至代码库。采用本发明,通过在代码审查中引入代码审查软件和软件项目实现对代码的逐层审查,可以实现一套完整的自动化代码审查流程,从而可以提高代码审查的专业性、安全性以及审查力度。

Description

一种代码审查方法及其设备
技术领域
本发明涉及互联网技术领域,尤其涉及一种代码审查方法及其设备。
背景技术
随着互联网技术与企业规模的发展,所有项目的代码量不断提高。在项目发展初期,实现需求并完善功能是第一目的,而伴随着代码量的逐步提高与对项目质量的重视程度不断提高,代码审查就出现了。现阶段使用较多的代码管理仓库为Gitlab与Github,这些平台提供了一些代码审查机制,但存在诸多不足并缺乏审查专业性。
现有技术中的代码审查方案主要有以下三种:
1、直接入库。本地代码开发完成之后,直接使用git push推到远程仓库中,这种方式从根本上就缺乏review。从而导致代码可维护性差,且安全性较低。
2、入库之后进行代码审查。这种方式虽然有代码审查的步骤但有诸多弊端,这种方式存在明显滞后性,当代码已经入库之后再进行审查就不再方便修改代码,从而增加了审查步骤增加了审查成本。
3、使用merge request。Gitlab提供了merge request的方案,但这种方案在审查的颗粒度上明显较粗,只能使用分支,限制了代码审查的自由性。
发明内容
本发明实施例提供一种代码审查方法及其设备,通过在代码审查中引入代码审查软件和软件项目实现对代码的逐层审查,可以实现一套完整的自动化代码审查流程,从而可以提高代码审查的专业性、安全性以及审查力度。
本发明实施例第一方面提供了一种代码审查方法,可包括:
获取所输入的待审查代码,基于代码审查软件调用软件项目对所述待审查代码进行静态审查;
当所述静态审查的结果为合格时,基于所述代码审查软件显示输出所述待审查代码,以使开发人员对所述待审查代码进行初步审查;
当所述初步审查的结果为合格时,基于所述软件项目对所述待审查代码进行再次审查,所述再次审查包括功能测试、模块测试和系统测试;
当所述再次审查的结果为合格时,将所述待审查代码存储至代码库。
本发明实施例第二方面提供了一种代码审查设备,可包括:
静态审查单元,用于获取所输入的待审查代码,基于代码审查软件调用软件项目对所述待审查代码进行静态审查;
输出显示单元,用于当所述静态审查的结果为合格时,基于所述代码审查软件显示输出所述待审查代码,以使开发人员对所述待审查代码进行初步审查;
再次审查单元,用于当所述初步审查的结果为合格时,基于所述软件项目对所述待审查代码进行再次审查,所述再次审查包括功能测试、模块测试和系统测试;
代码存储单元,用于当所述再次审查的结果为合格时,将所述待审查代码存储至代码库。
在本发明实施例中,通过获取所输入的待审查代码,基于代码审查软件调用软件项目对待审查代码进行静态审查,当静态审查的结果为合格时,基于代码审查软件显示输出待审查代码,以使开发人员对待审查代码进行初步审查,当初步审查的结果为合格时,基于软件项目对待审查代码进行再次审查,当再次审查的结果为合格时,将待审查代码存储至代码库。通过在代码审查中引入代码审查软件和软件项目实现对代码的逐层审查,实现了一套完整的自动化代码审查流程,提高了代码审查的专业性、安全性以及审查力度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种代码审查方法的流程示意图;
图2是本发明实施例提供的另一种代码审查方法的流程示意图;
图3是本发明实施例提供的一种代码审查设备的结构示意图;
图4是本发明实施例提供的另一种代码审查设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将结合附图1和附图2,对本发明实施例提供的代码审查方法进行详细介绍。
请参见图1,为本发明实施例提供了一种代码审查方法的流程示意图。如图1所示,本发明实施例的所述方法可以包括以下步骤S101-步骤S104。
S101,获取所输入的待审查代码,基于代码审查软件调用软件项目对所述待审查代码进行静态审查。
具体的,代码审查设备可以获取本地提交的待审查代码,可以理解的是,所述待审查代码可以是研发人员新开发的一组代码,本地提交代码时可以采用Git这一开源的分布式版本控制系统进行提交,提交流程可以是:
$git add<filename>
$git commit–m“commit msg”
$git push origin master:refs/for/master
进一步的,所述代码审查设备可以基于代码审查软件调用软件项目对所述待审查代码进行静态审查,可以理解的是,所述代码审查软件可以是Gerrit(一种免费、开放源代码的代码审查软件),上述提交流程中的$git push origin master:refs/for/master为Gerrit的规则。所述软件项目可以是Jenkins(一个开源软件项目)。代码提交之后,首先触发静态检查,所述静态审查可以包括代码复杂度,UT覆盖率,代码重复度等。
S102,当所述静态审查的结果为合格时,基于所述代码审查软件显示输出所述待审查代码。
具体的,当所述静态审查的结果为合格,即所述待审查代码的代码复杂度时,UT覆盖率,代码重复度等都合格,所述代码审查设备可以基于所述代码审查软件显示输出所述待审查代码,例如,在Gerrit的网页界面显示所述待审查代码,供其他开发人员对所述待审查代码进行人工审查,可选的,上述显示所述待审查代码的网页界面可以有审查合格和不合格两种选项按钮,开发人员可以根据审查的结果选择相应的选项。当初步审查结果为不合格时,开发人员可以选择不合格选项,所述代码审核设备可以将所述待审核代码退回至代码提交者进行修改。可选的,开发人员也可以在审查的过程中对代码不合格的部分进行标注或者修改。
S103,当所述初步审查的结果为合格时,基于所述软件项目对所述待审查代码进行再次审查。
可以理解的是,当初步审查结果为合格时,开发人员可以选择合格选项,所述代码审查设备可以基于所述软件项目对所述待审查代码进行再次审查。所述再次审查可以包括功能测试、模块测试和系统测试。所述功能测试可以是测试本次提交所涉及到的功能是否正常,包括了新增功能测试和之前老功能的回归测试,在经过了功能测试之后本次提交所涉及的功能已经得到了保障,但还不能确保本次提交的改动是否会对该模块的其它功能产生影响,因此还需要有一轮模块测试,测试整个模块功能的正确性;在经过了模块测试之后本模块的功能已经得到确保,但模块与模块之间的功能是否会受到影响还是未知的,因此这里需要系统测试来对各个模块进行测试,确保本次提交并未影响其它模块。
S104,当所述再次审查的结果为合格时,将所述待审查代码存储至代码库。
具体的,当所述再次审查的结果为合格,即上述功能测试、模块测试和系统测试都通过后,所述代码审查设备可以将所述待审查代码存储至代码库。可以理解的是,所述代码库可以是所述代码审查设备中存储代码的数据库。
在本发明实施例中,通过获取所输入的待审查代码,基于代码审查软件调用软件项目对待审查代码进行静态审查,当静态审查的结果为合格时,基于代码审查软件显示输出待审查代码,以使开发人员对待审查代码进行初步审查,当初步审查的结果为合格时,基于软件项目对待审查代码进行再次审查,当再次审查的结果为合格时,将待审查代码存储至代码库。通过在代码审查中引入代码审查软件和软件项目实现对代码的逐层审查,实现了一套完整的自动化代码审查流程,提高了代码审查的专业性、安全性以及审查力度。
请参见图2,为本发明实施例提供了另一种代码审查方法的流程示意图。如图2所示,本发明实施例的所述方法可以包括以下步骤S201-步骤S209。
S201,获取所输入的待审查代码,基于代码审查软件调用软件项目对所述待审查代码进行静态审查。
具体的,代码审查设备可以获取本地提交的待审查代码,可以理解的是,所述待审查代码可以是研发人员新开发的一组代码,本地提交代码时可以采用Git这一开源的分布式版本控制系统进行提交,提交流程可以是:
$git add<filename>
$git commit–m“commit msg”
$git push origin master:refs/for/master
进一步的,所述代码审查设备可以基于代码审查软件调用软件项目对所述待审查代码进行静态审查,可以理解的是,所述代码审查软件可以是Gerrit(一种免费、开放源代码的代码审查软件),上述提交流程中的$git push origin master:refs/for/master为Gerrit的规则。所述软件项目可以是Jenkins(一个开源软件项目)。代码提交之后,首先触发静态检查,所述静态审查可以包括代码复杂度,UT覆盖率,代码重复度等。
S202,当所述静态审查的结果为合格时,基于所述代码审查软件显示输出所述待审查代码。
具体的,当所述静态审查的结果为合格时,即所述待审查代码的代码复杂度,UT覆盖率,代码重复度等都合格,所述代码审查设备可以基于所述代码审查软件显示输出所述待审查代码,例如,在Gerrit的网页界面显示所述待审查代码,供其他开发人员对所述待审查代码进行人工审查,可选的,上述显示所述待审查代码的网页界面可以有审查合格和不合格两种选项按钮,开发人员可以根据审查的结果选择相应的选项。当初步审查结果为不合格时,开发人员可以选择不合格选项,所述代码审核设备可以将所述待审核代码退回至代码提交者进行修改。可选的,开发人员也可以在审查的过程中对代码不合格的部分进行标注或者修改。
S203,获取初步审查人员一次审查后输入的第一审查结果。
可以理解的是,人工审查的过程可以包括初步审查人员的一次审查过程和和管理人员的二次审查过程,所述二次审查过程可以是对所述静态审查和所述一次审查的复核过程,可以审查是否有自动构建成功,是否有足够的人员认真对代码审查。
具体的,所述代码审查设备可以获取初步审查人员一次审查后通过网页界面中的合格或不合格选项按钮输入的第一审查结果。
S204,获取所述管理人员二次审查后输入的第二审查结果。
进一步的,当所述第一审查结果为合格时,所述代码审查设备可以获取所述管理人员二次审查后输入的第二审查结果。
S205,当所述第一审查结果和/或所述第二审查结果合格时确认所述初步审查结果为合格。
具体的,当所述第一审查结果和/或所述第二审查结果合格时,所述代码审查设备可以确认所述初步审查结果为合格,可以理解的是,只有所述静态审查的结果和所述第一审查结果均合格时,所述第二审查结果才合格。
在本发明实施例中,通过设置管理人员的再次审查过程,增加了代码审查的可靠性。
S206,当所述初步审查的结果为合格时,基于所述软件项目对所述待审查代码进行再次审查。
具体的,当所述初步审查的结果为合格时,所述代码审查设备可以基于所述软件项目对所述待审查代码进行再次审查。所述再次审查可以包括功能测试、模块测试和系统测试。所述功能测试可以是测试本次提交所涉及到的功能是否正常,包括了新增功能测试和之前老功能的回归测试,在经过了功能测试之后本次提交所涉及的功能已经得到了保障,但还不能确保本次提交的改动是否会对该模块的其它功能产生影响,因此还需要有一轮模块测试,测试整个模块功能的正确性;在经过了模块测试之后本模块的功能已经得到确保,但模块与模块之间的功能是否会受到影响还是未知的,因此这里需要系统测试来对各个模块进行测试,确保本次提交并未影响其它模块。
S207,当所述再次审查的结果为合格时,将所述待审查代码存储至代码库。
具体的,当所述再次审查的结果为合格,即上述功能测试、模块测试和系统测试都通过后,所述代码审查设备可以将所述待审查代码存储至代码库。可以理解的是,所述代码库可以是所述代码审查设备中存储代码的数据库。
S208,基于预设时间段对所述待审查代码进行回归测试。
可以理解的是,所述待审查代码存储至所述代码库后,经过一次又一次提交之后代码库中的代码越来越多,功能也越来越多。这里就需要入库之后的产品测试来对整个产品进行整体回归,这样整个产品的质量也可以得到保证,具体的,所述代码审查设备可以基于预设时间段对所述待审查代码进行回归测试,所述预设时间段可以是一天或者一周等其他时间周期。
S209,当对所述待审查代码进行审查的任一环节存在审查结果不合格时,输出不合体提示信息。
可以理解的是,在上述代码审查的过程中任一环节存在审查结果不合格时,所述代码审查设备可以输出不合体提示信息,所述不合格提示信息包括提示所述待审查代码不合格的部分和不合格提示界面。
在本发明实施例中,通过获取所输入的待审查代码,基于代码审查软件调用软件项目对待审查代码进行静态审查,当静态审查的结果为合格时,基于代码审查软件显示输出待审查代码,以使开发人员对待审查代码进行初步审查,当初步审查的结果为合格时,基于软件项目对待审查代码进行再次审查,当再次审查的结果为合格时,将待审查代码存储至代码库。通过在代码审查中引入代码审查软件和软件项目实现对代码的逐层审查,实现了一套完整的自动化代码审查流程,提高了代码审查的专业性、安全性以及审查力度;通过设置管理人员的再次审查过程,增加了代码审查的可靠性。
下面将结合附图3和附图4,对本发明实施例提供的代码审查设备进行详细介绍。需要说明的是,附图3和附图4所示的代码审查设备,用于执行本发明图1和图2所示实施例的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明图1和图2所示的实施例。
请参见图3,为本发明实施例提供了一种代码审查设备的结构示意图。如图3所示,本发明实施例的所述代码审查设备1可以包括:静态审查单元11、输出显示单元12、再次审查单元13和代码存储单元14。
静态审查单元11,用于获取所输入的待审查代码,基于代码审查软件调用软件项目对所述待审查代码进行静态审查。
具体实现中,静态审查单元11可以获取本地提交的待审查代码,可以理解的是,所述待审查代码可以是研发人员新开发的一组代码,本地提交代码时可以采用Git这一开源的分布式版本控制系统进行提交,提交流程可以是:
$git add<filename>
$git commit–m“commit msg”
$git push origin master:refs/for/master
进一步的,所述静态审查单元11可以基于代码审查软件调用软件项目对所述待审查代码进行静态审查,可以理解的是,所述代码审查软件可以是Gerrit(一种免费、开放源代码的代码审查软件),上述提交流程中的$git push origin master:refs/for/master为Gerrit的规则。所述软件项目可以是Jenkins(一个开源软件项目)。代码提交之后,首先触发静态检查,所述静态审查可以包括代码复杂度,UT覆盖率,代码重复度等。
输出显示单元12,用于当所述静态审查的结果为合格时,基于所述代码审查软件显示输出所述待审查代码。
具体实现中,当所述静态审查的结果为合格,即所述待审查代码的代码复杂度时,UT覆盖率,代码重复度等都合格,输出显示单元12可以基于所述代码审查软件显示输出所述待审查代码,例如,在Gerrit的网页界面显示所述待审查代码,供其他开发人员对所述待审查代码进行人工审查,可选的,上述显示所述待审查代码的网页界面可以有审查合格和不合格两种选项按钮,开发人员可以根据审查的结果选择相应的选项。当初步审查结果为不合格时,开发人员可以选择不合格选项,所述代码审核设备1可以将所述待审核代码退回至代码提交者进行修改。可选的,开发人员也可以在审查的过程中对代码不合格的部分进行标注或者修改。
再次审查单元13,用于当所述初步审查的结果为合格时,基于所述软件项目对所述待审查代码进行再次审查。
可以理解的是,当初步审查结果为合格时,开发人员可以选择合格选项,再次审查单元13可以基于所述软件项目对所述待审查代码进行再次审查。所述再次审查可以包括功能测试、模块测试和系统测试。所述功能测试可以是测试本次提交所涉及到的功能是否正常,包括了新增功能测试和之前老功能的回归测试,在经过了功能测试之后本次提交所涉及的功能已经得到了保障,但还不能确保本次提交的改动是否会对该模块的其它功能产生影响,因此还需要有一轮模块测试,测试整个模块功能的正确性;在经过了模块测试之后本模块的功能已经得到确保,但模块与模块之间的功能是否会受到影响还是未知的,因此这里需要系统测试来对各个模块进行测试,确保本次提交并未影响其它模块。
代码存储单元14,用于当所述再次审查的结果为合格时,将所述待审查代码存储至代码库。
具体实现中,当所述再次审查的结果为合格,即上述功能测试、模块测试和系统测试都通过后,代码存储单元14可以将所述待审查代码存储至代码库。可以理解的是,所述代码库可以是所述代码审查设备中存储代码的数据库。
在本发明实施例中,通过获取所输入的待审查代码,基于代码审查软件调用软件项目对待审查代码进行静态审查,当静态审查的结果为合格时,基于代码审查软件显示输出待审查代码,以使开发人员对待审查代码进行初步审查,当初步审查的结果为合格时,基于软件项目对待审查代码进行再次审查,当再次审查的结果为合格时,将待审查代码存储至代码库。通过在代码审查中引入代码审查软件和软件项目实现对代码的逐层审查,实现了一套完整的自动化代码审查流程,提高了代码审查的专业性、安全性以及审查力度。
请参见图4,为本发明实施例提供了另一种代码审查设备的结构示意图。如图4所示,本发明实施例的所述代码审查设备1可以包括:静态审查单元11、输出显示单元12、再次审查单元13、代码存储单元14、第一结果获取单元15、第二结果获取单元16、结果确认单元17、提示信息输出单元18和回归测试单元19。
静态审查单元11,用于获取所输入的待审查代码,基于代码审查软件调用软件项目对所述待审查代码进行静态审查。
具体实现中,静态审查单元11可以获取本地提交的待审查代码,可以理解的是,所述待审查代码可以是研发人员新开发的一组代码,本地提交代码时可以采用Git这一开源的分布式版本控制系统进行提交,提交流程可以是:
$git add<filename>
$git commit–m“commit msg”
$git push origin master:refs/for/master
进一步的,所述静态审查单元11可以基于代码审查软件调用软件项目对所述待审查代码进行静态审查,可以理解的是,所述代码审查软件可以是Gerrit(一种免费、开放源代码的代码审查软件),上述提交流程中的$git push origin master:refs/for/master为Gerrit的规则。所述软件项目可以是Jenkins(一个开源软件项目)。代码提交之后,首先触发静态检查,所述静态审查可以包括代码复杂度,UT覆盖率,代码重复度等。
输出显示单元12,用于当所述静态审查的结果为合格时,基于所述代码审查软件显示输出所述待审查代码。
具体实现中,当所述静态审查的结果为合格,即所述待审查代码的代码复杂度时,UT覆盖率,代码重复度等都合格,输出显示单元12可以基于所述代码审查软件显示输出所述待审查代码,例如,在Gerrit的网页界面显示所述待审查代码,供其他开发人员对所述待审查代码进行人工审查,可选的,上述显示所述待审查代码的网页界面可以有审查合格和不合格两种选项按钮,开发人员可以根据审查的结果选择相应的选项。当初步审查结果为不合格时,开发人员可以选择不合格选项,所述代码审核设备1可以将所述待审核代码退回至代码提交者进行修改。可选的,开发人员也可以在审查的过程中对代码不合格的部分进行标注或者修改。
第一结果获取单元15,用于获取初步审查人员一次审查后输入的第一审查结果。
可以理解的是,人工审查的过程可以包括初步审查人员的一次审查过程和和管理人员的二次审查过程,所述二次审查过程可以是对所述静态审查和所述一次审查的复核过程,可以审查是否有自动构建成功,是否有足够的人员认真对代码审查。
具体实现中,第一结果获取单元15可以获取初步审查人员一次审查后通过网页界面中的合格或不合格选项按钮输入的第一审查结果。
第二结果获取单元16,用于获取所述管理人员二次审查后输入的第二审查结果。
进一步的,当所述第一审查结果为合格时,第二结果获取单元16可以获取所述管理人员二次审查后输入的第二审查结果。
结果确认单元17,用于当所述第一审查结果和/或所述第二审查结果合格时确认所述初步审查结果为合格。
具体实现中,当所述第一审查结果和/或所述第二审查结果合格时,结果确认单元17可以确认所述初步审查结果为合格,可以理解的是,只有所述静态审查的结果和所述第一审查结果均合格时,所述第二审查结果才合格。
在本发明实施例中,通过设置管理人员的再次审查过程,增加了代码审查的可靠性。
再次审查单元13,用于当所述初步审查的结果为合格时,基于所述软件项目对所述待审查代码进行再次审查。
具体实现中,当所述初步审查的结果为合格时,再次审查单元13可以基于所述软件项目对所述待审查代码进行再次审查。所述再次审查可以包括功能测试、模块测试和系统测试。所述功能测试可以是测试本次提交所涉及到的功能是否正常,包括了新增功能测试和之前老功能的回归测试,在经过了功能测试之后本次提交所涉及的功能已经得到了保障,但还不能确保本次提交的改动是否会对该模块的其它功能产生影响,因此还需要有一轮模块测试,测试整个模块功能的正确性;在经过了模块测试之后本模块的功能已经得到确保,但模块与模块之间的功能是否会受到影响还是未知的,因此这里需要系统测试来对各个模块进行测试,确保本次提交并未影响其它模块。
代码存储单元14,用于当所述再次审查的结果为合格时,将所述待审查代码存储至代码库。
具体实现中,当所述再次审查的结果为合格,即上述功能测试、模块测试和系统测试都通过后,代码存储单元14可以将所述待审查代码存储至代码库。可以理解的是,所述代码库可以是所述代码审查设备中存储代码的数据库。
回归测试单元18,用于基于预设时间段对所述待审查代码进行回归测试。
可以理解的是,所述待审查代码存储至所述代码库后,经过一次又一次提交之后代码库中的代码越来越多,功能也越来越多。这里就需要入库之后的产品测试来对整个产品进行整体回归,这样整个产品的质量也可以得到保证,具体实现中,回归测试单元18可以基于预设时间段对所述待审查代码进行回归测试,所述预设时间段可以是一天或者一周等其他时间周期。
提示信息输出单元19,用于当对所述待审查代码进行审查的任一环节存在审查结果不合格时,输出不合体提示信息。
可以理解的是,在上述代码审查的过程中任一环节存在审查结果不合格时,提示信息输出单元19可以输出不合体提示信息,所述不合格提示信息包括提示所述待审查代码不合格的部分和不合格提示界面。
在本发明实施例中,通过获取所输入的待审查代码,基于代码审查软件调用软件项目对待审查代码进行静态审查,当静态审查的结果为合格时,基于代码审查软件显示输出待审查代码,以使开发人员对待审查代码进行初步审查,当初步审查的结果为合格时,基于软件项目对待审查代码进行再次审查,当再次审查的结果为合格时,将待审查代码存储至代码库。通过在代码审查中引入代码审查软件和软件项目实现对代码的逐层审查,实现了一套完整的自动化代码审查流程,提高了代码审查的专业性、安全性以及审查力度;通过设置管理人员的再次审查过程,增加了代码审查的可靠性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (10)

1.一种代码审查方法,其特征在于,包括:
获取所输入的待审查代码,基于代码审查软件调用软件项目对所述待审查代码进行静态审查;
当所述静态审查的结果为合格时,基于所述代码审查软件显示输出所述待审查代码,以使开发人员对所述待审查代码进行初步审查;
当所述初步审查的结果为合格时,基于所述软件项目对所述待审查代码进行再次审查,所述再次审查包括功能测试、模块测试和系统测试;
当所述再次审查的结果为合格时,将所述待审查代码存储至代码库。
2.根据权利要求1所述的方法,其特征在于,所述开发人员包括初步审查人员和管理人员,所述基于所述代码审查软件显示输出所述待审查代码之后,所述方法还包括:
获取初步审查人员一次审查后输入的第一审查结果;
获取所述管理人员二次审查后输入的第二审查结果,所述二次审查是对所述静态审查和所述一次审查的复核;
当所述第一审查结果和/或所述第二审查结果合格时确认所述初步审查结果为合格。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当对所述待审查代码进行审查的任一环节存在审查结果不合格时,输出不合体提示信息,所述不合格提示信息包括提示所述待审查代码不合格的部分和不合格提示界面。
4.根据权利要求1所述的方法,其特征在于,所述代码审查软件为Gerrit,所述软件项目为Jenkins。
5.根据权利要求1所述的方法,其特征在于,所述将所述待审查代码存储至代码库之后,所述方法还包括:
基于预设时间段对所述待审查代码进行回归测试。
6.一种代码审查设备,其特征在于,包括:
静态审查单元,用于获取所输入的待审查代码,基于代码审查软件调用软件项目对所述待审查代码进行静态审查;
输出显示单元,用于当所述静态审查的结果为合格时,基于所述代码审查软件显示输出所述待审查代码,以使开发人员对所述待审查代码进行初步审查;
再次审查单元,用于当所述初步审查的结果为合格时,基于所述软件项目对所述待审查代码进行再次审查,所述再次审查包括功能测试、模块测试和系统测试;
代码存储单元,用于当所述再次审查的结果为合格时,将所述待审查代码存储至代码库。
7.根据权利要求6所述的设备,其特征在于,所述开发人员包括初步审查人员和管理人员,所述设备还包括:
第一结果获取单元,用于获取初步审查人员一次审查后输入的第一审查结果;
第二结果获取单元,用于获取所述管理人员二次审查后输入的第二审查结果,所述二次审查是对所述静态审查和所述一次审查的复核;
结果确认单元,用于当所述第一审查结果和/或所述第二审查结果合格时确认所述初步审查结果为合格。
8.根据权利要求6所述的设备,其特征在于,所述设备还包括:
提示信息输出单元,用于当对所述待审查代码进行审查的任一环节存在审查结果不合格时,输出不合体提示信息,所述不合格提示信息包括提示所述待审查代码不合格的部分和不合格提示界面。
9.根据权利要求6所述的设备,其特征在于,所述代码审查软件为Gerrit,所述软件项目为Jenkins。
10.根据权利要求6所述的设备,其特征在于,所述设备还包括:
回归测试单元,用于基于预设时间段对所述待审查代码进行回归测试。
CN201811550068.1A 2018-12-18 2018-12-18 一种代码审查方法及其设备 Pending CN109739543A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811550068.1A CN109739543A (zh) 2018-12-18 2018-12-18 一种代码审查方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811550068.1A CN109739543A (zh) 2018-12-18 2018-12-18 一种代码审查方法及其设备

Publications (1)

Publication Number Publication Date
CN109739543A true CN109739543A (zh) 2019-05-10

Family

ID=66360542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811550068.1A Pending CN109739543A (zh) 2018-12-18 2018-12-18 一种代码审查方法及其设备

Country Status (1)

Country Link
CN (1) CN109739543A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112748950A (zh) * 2021-01-15 2021-05-04 国能日新科技股份有限公司 一种软件代码审查方法及装置
CN114816976A (zh) * 2021-01-29 2022-07-29 北京字节跳动网络技术有限公司 信息处理方法、装置、设备、存储介质及计算机程序产品
CN116611074A (zh) * 2023-07-17 2023-08-18 北京奇虎科技有限公司 安全信息审查方法、设备、存储介质及装置
CN112748950B (zh) * 2021-01-15 2024-05-31 国能日新科技股份有限公司 一种软件代码审查方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170169370A1 (en) * 2015-12-14 2017-06-15 Apartsw Consulting Inc. Continuous integration software development platform and system, and implementation method therefor
CN107450933A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种软件持续集成方法和系统
CN108073394A (zh) * 2018-02-27 2018-05-25 西安闻泰电子科技有限公司 代码管理方法、装置、代码管理服务器及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170169370A1 (en) * 2015-12-14 2017-06-15 Apartsw Consulting Inc. Continuous integration software development platform and system, and implementation method therefor
CN107450933A (zh) * 2017-08-18 2017-12-08 郑州云海信息技术有限公司 一种软件持续集成方法和系统
CN108073394A (zh) * 2018-02-27 2018-05-25 西安闻泰电子科技有限公司 代码管理方法、装置、代码管理服务器及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
散尽浮华: ""[原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接"", 《HTTPS://WWW.CNBLOGS.COM/KEVINGRACE/P/5651447.HTML》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112748950A (zh) * 2021-01-15 2021-05-04 国能日新科技股份有限公司 一种软件代码审查方法及装置
CN112748950B (zh) * 2021-01-15 2024-05-31 国能日新科技股份有限公司 一种软件代码审查方法及装置
CN114816976A (zh) * 2021-01-29 2022-07-29 北京字节跳动网络技术有限公司 信息处理方法、装置、设备、存储介质及计算机程序产品
CN116611074A (zh) * 2023-07-17 2023-08-18 北京奇虎科技有限公司 安全信息审查方法、设备、存储介质及装置

Similar Documents

Publication Publication Date Title
US20090271351A1 (en) Rules engine test harness
US10079858B2 (en) Managing access in one or more computing systems
CN102141956A (zh) 用于开发中的安全漏洞响应管理的方法和系统
US20120254829A1 (en) Method and system to produce secure software applications
Felderer et al. Using defect taxonomies to improve the maturity of the system test process: Results from an industrial case study
CN109739543A (zh) 一种代码审查方法及其设备
Paiva et al. End-to-end automatic business process validation
Azeem et al. Specification of e-Health system using Z: A motivation to formal methods
US7730096B2 (en) Method and apparatus for utilizing a database
US20090182671A1 (en) Interface system for annuity database for management of assets
Murach et al. Software testing for the CTA observation execution system
Tufail et al. DMAIC methodology for achieving public satisfaction with health departments in various districts of Punjab and optimizing CT scan patient load in urban city hospitals
Chatterjee et al. A prolific approach for automated generation of test cases from informal requirements
Dalal et al. A novel approach for testing an aspect oriented software system using prioritized-genetic algorithm (P-GA)
Ahmad et al. Exploring documentation: a trivial dimension of RUP
Shah et al. Sensitivity Analysis of Effectiveness of FLEX Strategies Using a CDF-Based Importance Measure Under Accident Conditions
US20230161690A1 (en) System and framework for testing of application performance with real-time scaled simulation
He et al. An automatic compliance checking approach for software processes
Mancin How Model Based Systems Engineering Streamlines the Development of Complex Systems.
KN The Evaluation of Efficient Process Model Based on Survey
Com Logistic Hub
Xiu et al. Diagnosing Conformance between Object-Centric Event Logs and Models
Premprasatsit et al. Software Program Development Of Certificate Of Origin Requisition System (Cor) Applying For Certificate Of Origin To Department Of Foreign Trade
Chrisna et al. LOW CODE INTEGRATION TESTING IN OUTSYSTEMS PERSONAL ENVIRONMENT
Mudaranthakam et al. Case Study: Electronic Data Capture System Validation at an Academic Institution

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190510