CN107015911A - 持续集成的代码评审方法及装置 - Google Patents
持续集成的代码评审方法及装置 Download PDFInfo
- Publication number
- CN107015911A CN107015911A CN201710225775.2A CN201710225775A CN107015911A CN 107015911 A CN107015911 A CN 107015911A CN 201710225775 A CN201710225775 A CN 201710225775A CN 107015911 A CN107015911 A CN 107015911A
- Authority
- CN
- China
- Prior art keywords
- code
- source code
- result
- continuous integrating
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
Abstract
本发明公开一种持续集成的代码评审方法及装置,其中,该持续集成的代码评审方法包括如下步骤:利用SVN钩子获取客户端上传的源代码并生成源码信息,所述源码信息包括源代码、源代码注释以及源代码编号;生成源码信息的验证请求,在对验证请求进行验证后获得验证结果;判断验证结果是否通过,当验证结果通过验证时,提交事务并将SVN的状态切换至验证成功状态;以及生成评审请求结果并对评审请求结果进行反馈。本发明的技术方案能够实现持续体系的代码评审,尤其在研发管理过程中按需求进行代码评审,提升了代码评审的水平及效率,因而可以提升软件总体质量。
Description
技术领域
本发明涉及一种程序控制装置,尤其涉及一种持续集成的代码评审方法及装置。
背景技术
目前,代码评审是指在软件开发过程中,对源代码进行系统性检查的过程。代码评审的目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平。现有技术中采用较多的是Code Review,Code Review是轻量级代码评审,相对于正式代码评审,轻量级代码评审所需要的各种成本要明显低的多,如果流程正确,它可以起到更加积极的效果。在实际应用的过程中,该代码评审对整个功能模块进行测试,不能针对具体的应用需求或任务,导致代码评审的效率及效果的问题
有鉴于此,有必要提出对目前的代码评审技术进行进一步的改进。
发明内容
为解决上述至少一技术问题,本发明的主要目的是提供一种持续集成的代码评审方法。
为实现上述目的,本发明采用的一个技术方案为:提供一种持续集成的代码评审方法,包括如下步骤:
利用SVN钩子获取客户端上传的源代码并生成源码信息,所述源码信息包括源代码、源代码注释以及源代码编号;
生成源码信息的验证请求,在对验证请求进行验证后获得验证结果;
判断验证结果是否通过,当验证结果通过验证时,提交事务并将SVN的状态切换至验证成功状态;以及
生成评审请求结果并对评审请求结果进行反馈。
在一些实施例中,所述判断验证结果是否通过的步骤,还包括:
当验证结果没有通过验证时,则回滚事务并将SVN的状态切换至验证失败状态,或继续保持SVN的初始状态。
在一些实施例中,所述提交事务的步骤之后,还包括对提交事务进行记录的步骤。
在一些实施例中,所述对验证请求进行验证得到验证结果的步骤,具体包括:
调用预设的验证信息对源代码注释及源代码编号进行验证得到信息验证结果;以及
调用预设的验证逻辑对源代码进行验证得到代码验证结果。
在一些实施例中,所述生成评审请求的步骤,具体包括:
生成进入代码评审界面的代码查看索引;以及
根据触发的索引跳转至代码评审界面,以对源代码进行修改操作。
为实现上述目的,本发明采用的另一个技术方案为:提供一种持续集成的代码评审装置包括:获取模块、验证模块、判断模块及生成模块;
获取模块,用于利用SVN钩子获取客户端上传的源代码并生成源码信息,所述源码信息包括源代码、源代码注释以及源代码编号;
验证模块,用于生成源码信息的验证请求,在对验证请求进行验证后获得验证结果;
判断模块,用于判断验证结果是否通过,当验证结果通过验证时,提交事务并将SVN的状态切换至验证成功状态;以及
生成模块,用于生成评审请求结果并对评审请求结果进行反馈。
在一些实施例中,所述判断模块,还用于:
当验证结果没有通过验证时,则回滚事务并将SVN的状态切换至验证失败状态,或继续保持SVN的初始状态。
在一些实施例中,所述持续集成的代码评审装置还包括暂存模块,用于对提交事务进行记录。
在一些实施例中,所述验证模块,具体用于:
调用预设的验证信息对源代码注释及源代码编号进行验证得到信息验证结果;以及
调用预设的验证逻辑对源代码进行验证得到代码验证结果。
在一些实施例中,所述生成模块,具体用于:
生成进入代码评审界面的代码查看索引;以及
根据触发的索引跳转至代码评审界面,以对源代码进行修改操作。
本发明的技术方案通过采用SVN钩子获取客户端上传的源代码并生成源码信息,然后对源码信息进行认证,并且在认证通过时生成评审请求结果并将评审请求结果反馈至研发管理平台,能够实现持续体系的代码评审,尤其在研发管理过程中按需求进行代码评审,提升了代码评审的水平及效率,还可以对方便对源代码进行维护,因而可以提升软件总体质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明一实施例持续集成的代码评审方法的方法流程图;
图2为本发明一具体实施例持续集成的代码评审方法的方法流程图;
图3至图7为本发明持续集成的代码评审方法的各步骤执行界面示意图;
图8为本发明一实施例的持续集成的代码评审装置的模块方框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
请参照图1,在本发明实施例中,该持续集成的代码评审方法,包括如下步骤:
步骤S10、利用SVN钩子获取客户端上传的源代码并生成源码信息,所述源码信息包括源代码、源代码注释以及源代码编号;
本步骤中,利用SVN钩子可以获取客户端上传的源代码,以及获取源代码注释及源代码编号可生成源码信息。可以理解的,源代码编号可以是SVN分配的任务号等,源代码注释为对源代码的释义,注释长度可以根据具体的要求来设置。
步骤S20、生成源码信息的验证请求,在对验证请求进行验证后获得验证结果;
本步骤中,需要对源码信息进行验证,主要是对源代码注释及源代码编号进行验证,如此,可以确保源代码评审的准确性。具体的验证过程请参照下述具体实施例。
在一些实施例中,所述对验证请求进行验证得到验证结果的步骤S20,具体包括:
调用预设的验证信息对源代码注释及源代码编号进行验证得到信息验证结果;以及
调用预设的验证逻辑对源代码进行验证得到代码验证结果。
本实施例中,可以从研发系统中调用验证消息对执行任务的实施例进行源代码注释及源代码编号的认证,并且只有在两者都通过后进入下一验证步骤,进一步的,还可以从第三平台中调用验证逻辑对源代码进行验证,
步骤S30、判断验证结果是否通过,当验证结果通过验证时,提交事务并将SVN的状态切换至验证成功状态,当验证结果没有通过验证时,则回滚事务并将SVN的状态切换至验证失败状态,或继续保持SVN的初始状态;
本步骤中,可以根据返回的验证结果判断验证是否通过,如果是则提交事务并将SVN的状态切换至验证成功状态,如果否则回滚事务,并将SVN的状态切换至验证失败状态,或继续保持SVN的初始状态。本实施例中,SVN的初始状态可以为红色,验证通过后可切换成绿色,验证失败后可切换成红色或其他颜色,以区分验证是否通过。需要指出的是,无论验证结果是否通过,均可以将结果反馈至客户端。
在一些实施例中,所述提交事务的步骤S30之后,还包括对提交事务进行记录的步骤。
本步骤中,通过记录源代码提交的时间,可以方便检查及维护。
步骤S40、生成评审请求结果并对评审请求结果进行反馈。
本步骤中,该评审请求结果可以反馈至研发管理平台,以便于统一评审管理,具体的管理请参照下述实施例。
在一些实施例中,所述生成评审请求的步骤S40,具体包括:
生成进入代码评审界面的代码查看索引;以及
根据触发的索引跳转至代码评审界面,以对源代码进行修改操作。
本实施例中,评审请求结果为进入代码评审界面的代码查看索引。具体的,在源码信息验证通过后,可根据触发的索引跳转至代码评审界面,并通过对代码评审界面进行进一步操作可以查看或修改或删除评审的源码。
本发明的技术方案通过采用SVN钩子获取客户端上传的源代码并生成源码信息,然后对源码信息进行认证,并且在认证通过时生成评审请求结果并将评审请求结果反馈至研发管理平台,能够实现持续体系的代码评审,尤其在研发管理过程中按需求进行代码评审,提升了代码评审的水平及效率,还可以对方便对源代码进行维护,因而可以提升软件总体质量。
请参照图2,本实施例中,采用SVN作为源码管理工具,开发与研发平台关联的SVN钩子,实现源码提交与研发平台的需求关联,提供多平台的钩子实现。SVN钩子包括提交验证插件及验证服务插件,利用SVN钩子的提交验证插件可以获取从客户端上传的源代码、对应源代码编号及源代码注释,然后可以生成向验证服务插件的验证请求;在验证服务插件对源码信息进行验证后,获取验证结果,并进一步判断验证是否通过,当验证通过时提交事务,可以将结果反馈至客户端,以及根据提交事务的结果生成评审请求,如此,以按照任务的需求持续对源代码进行评审。
请参照图3至图7,图3为客户端提交源码到SVN的执行结果示意图,图4和图5分别为对源代码注释及源代码编号验证的执行结果示意图,可以理解的,当不通过时,直接返回错误结果,并执行回滚事务。图6为验证通过后执行结果示意图,此时,SVN位置为成功状态。在点击触发SVN后,可以直接跳转至代码评审界面。当然,还可以对代码评审界面进行进一步操作,以查看或修改或删除评审的源码。
请参照图8,在本发明实施例中,该持续集成的代码评审装置包括:获取模块10、验证模块20、判断模块30及生成模块40;
获取模块10,用于利用SVN钩子获取客户端上传的源代码并生成源码信息,所述源码信息包括源代码、源代码注释以及源代码编号;
验证模块20,用于生成源码信息的验证请求,在对验证请求进行验证后获得验证结果;
判断模块30,用于判断验证结果是否通过,当验证结果通过验证时,提交事务并将SVN的状态切换至验证成功状态;以及
生成模块40,用于生成评审请求结果并对评审请求结果进行反馈。
本实施例中,该持续集成的代码评审装置为上述持续集成的代码评审方法的虚拟模块,对应的功能及数据处理关系可以参照上述的实施例,此处不再赘述。
在一些实施例中,所述判断模块30,还用于:
当验证结果没有通过验证时,则回滚事务并将SVN的状态切换至验证失败状态,或继续保持SVN的初始状态。
在一些实施例中,所述持续集成的代码评审装置还包括暂存模块,用于对提交事务进行记录。
在一些实施例中,所述验证模块20,具体用于:
调用预设的验证信息对源代码注释及源代码编号进行验证得到信息验证结果;以及
调用预设的验证逻辑对源代码进行验证得到代码验证结果。
在一些实施例中,所述生成模块40,具体用于:
生成进入代码评审界面的代码查看索引;以及
根据触发的索引跳转至代码评审界面,以对源代码进行修改操作。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (10)
1.一种持续集成的代码评审方法,其特征在于,所述持续集成的代码评审方法包括如下步骤:
利用SVN钩子获取客户端上传的源代码并生成源码信息,所述源码信息包括源代码、源代码注释以及源代码编号;
生成源码信息的验证请求,在对验证请求进行验证后获得验证结果;
判断验证结果是否通过,当验证结果通过验证时,提交事务并将SVN的状态切换至验证成功状态;以及
生成评审请求结果并对评审请求结果进行反馈。
2.如权利要求1所述的持续集成的代码评审方法,其特征在于,所述判断验证结果是否通过的步骤,还包括:
当验证结果没有通过验证时,则回滚事务并将SVN的状态切换至验证失败状态,或继续保持SVN的初始状态。
3.如权利要求1或2所述的持续集成的代码评审方法,其特征在于,所述提交事务的步骤之后,还包括对提交事务进行记录的步骤。
4.如权利要求1所述的持续集成的代码评审方法,其特征在于,所述对验证请求进行验证得到验证结果的步骤,具体包括:
调用预设的验证信息对源代码注释及源代码编号进行验证得到信息验证结果;以及
调用预设的验证逻辑对源代码进行验证得到代码验证结果。
5.如权利要求1所述的持续集成的代码评审方法,其特征在于,所述生成评审请求的步骤,具体包括:
生成进入代码评审界面的代码查看索引;以及
根据触发的索引跳转至代码评审界面,以对源代码进行修改操作。
6.一种持续集成的代码评审装置,其特征在于,所述持续集成的代码评审装置包括:获取模块、验证模块、判断模块及生成模块;
获取模块,用于利用SVN钩子获取客户端上传的源代码并生成源码信息,所述源码信息包括源代码、源代码注释以及源代码编号;
验证模块,用于生成源码信息的验证请求,在对验证请求进行验证后获得验证结果;
判断模块,用于判断验证结果是否通过,当验证结果通过验证时,提交事务并将SVN的状态切换至验证成功状态;以及
生成模块,用于生成评审请求结果并对评审请求结果进行反馈。
7.如权利要求6所述的持续集成的代码评审装置,其特征在于,所述判断模块,还用于:
当验证结果没有通过验证时,则回滚事务并将SVN的状态切换至验证失败状态,或继续保持SVN的初始状态。
8.如权利要求6或7所述的持续集成的代码评审装置,其特征在于,所述持续集成的代码评审装置还包括暂存模块,用于对提交事务进行记录。
9.如权利要求6所述的持续集成的代码评审装置,其特征在于,所述验证模块,具体用于:
调用预设的验证信息对源代码注释及源代码编号进行验证得到信息验证结果;以及
调用预设的验证逻辑对源代码进行验证得到代码验证结果。
10.如权利要求6所述的持续集成的代码评审装置,其特征在于,所述生成模块,具体用于:
生成进入代码评审界面的代码查看索引;以及
根据触发的索引跳转至代码评审界面,以对源代码进行修改操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710225775.2A CN107015911A (zh) | 2017-04-07 | 2017-04-07 | 持续集成的代码评审方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710225775.2A CN107015911A (zh) | 2017-04-07 | 2017-04-07 | 持续集成的代码评审方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107015911A true CN107015911A (zh) | 2017-08-04 |
Family
ID=59445519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710225775.2A Pending CN107015911A (zh) | 2017-04-07 | 2017-04-07 | 持续集成的代码评审方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107015911A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908420A (zh) * | 2017-11-16 | 2018-04-13 | 泰康保险集团股份有限公司 | 一种代码处理方法、装置及系统 |
CN108763061A (zh) * | 2018-04-29 | 2018-11-06 | 西安交通大学 | 一种计算机软件产品品质管制管理系统 |
CN109343890A (zh) * | 2018-08-17 | 2019-02-15 | 武汉精立电子技术有限公司 | 一种代码集成方法及系统 |
CN110389887A (zh) * | 2018-04-16 | 2019-10-29 | 鸿富锦精密工业(武汉)有限公司 | 代码检测系统及方法 |
CN111274127A (zh) * | 2020-01-14 | 2020-06-12 | 北京百度网讯科技有限公司 | 代码评审中的代码跳转方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217376A (zh) * | 2007-12-28 | 2008-07-09 | 腾讯科技(深圳)有限公司 | 一种上传文件验证方法及装置 |
CN106095681A (zh) * | 2016-06-14 | 2016-11-09 | 深圳市彬讯科技有限公司 | 一种SVN集成JSHint代码检测方法及其系统 |
CN106293749A (zh) * | 2016-08-15 | 2017-01-04 | 云南电网有限责任公司信息中心 | 一种基于持续集成的源代码管控系统 |
-
2017
- 2017-04-07 CN CN201710225775.2A patent/CN107015911A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217376A (zh) * | 2007-12-28 | 2008-07-09 | 腾讯科技(深圳)有限公司 | 一种上传文件验证方法及装置 |
CN106095681A (zh) * | 2016-06-14 | 2016-11-09 | 深圳市彬讯科技有限公司 | 一种SVN集成JSHint代码检测方法及其系统 |
CN106293749A (zh) * | 2016-08-15 | 2017-01-04 | 云南电网有限责任公司信息中心 | 一种基于持续集成的源代码管控系统 |
Non-Patent Citations (1)
Title |
---|
陈挺 等: "一种软件持续集成平台的技术方案", 《计算机光盘软件与应用》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908420A (zh) * | 2017-11-16 | 2018-04-13 | 泰康保险集团股份有限公司 | 一种代码处理方法、装置及系统 |
CN110389887A (zh) * | 2018-04-16 | 2019-10-29 | 鸿富锦精密工业(武汉)有限公司 | 代码检测系统及方法 |
CN110389887B (zh) * | 2018-04-16 | 2022-07-05 | 鸿富锦精密工业(武汉)有限公司 | 代码检测系统及方法 |
CN108763061A (zh) * | 2018-04-29 | 2018-11-06 | 西安交通大学 | 一种计算机软件产品品质管制管理系统 |
CN109343890A (zh) * | 2018-08-17 | 2019-02-15 | 武汉精立电子技术有限公司 | 一种代码集成方法及系统 |
CN111274127A (zh) * | 2020-01-14 | 2020-06-12 | 北京百度网讯科技有限公司 | 代码评审中的代码跳转方法、装置、设备和介质 |
CN111274127B (zh) * | 2020-01-14 | 2023-04-07 | 北京百度网讯科技有限公司 | 代码评审中的代码跳转方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107015911A (zh) | 持续集成的代码评审方法及装置 | |
AU2020200909A1 (en) | Evaluation control | |
WO2019200701A1 (zh) | 一种配置管理方法、装置、终端设备及存储介质 | |
CN102122265B (zh) | 一种计算机软件测试结果的验证方法及系统 | |
CN108009199A (zh) | 一种计量校准检定证书的检索方法及系统 | |
CN104077217B (zh) | 代码文件的编译发布方法及系统 | |
CN106528418A (zh) | 一种测试方法及装置 | |
CN102331967A (zh) | 芯片验证测试用例的管理方法 | |
CN108537042A (zh) | 自定义插件生成方法、装置、设备及存储介质 | |
CN109270919B (zh) | 一种车辆检测数据管理方法、分析方法、设备及服务器 | |
CN106326116B (zh) | 产品测试的方法和装置 | |
CN107862327A (zh) | 一种基于多特征的安全缺陷识别系统和方法 | |
CN104036193B (zh) | 一种应用程序的本地跨域漏洞检测方法及装置 | |
CN109101819A (zh) | 一种漏洞检测方法及终端、存储介质 | |
CN110349248A (zh) | 快速生成标准结构的方法、系统、装置和存储介质 | |
CN103838871B (zh) | 一种核电站安全级dcs s-vdu过程文件的校验方法 | |
CN108776723A (zh) | 测试系统自检适配器连线生成方法、装置、设备及存储介质 | |
CN107301352A (zh) | 一种权限设置的方法及装置 | |
CN110688823A (zh) | Xml文件验证方法及装置 | |
CN112015715A (zh) | 工业互联网数据管理服务测试方法及系统 | |
CN103577758B (zh) | 程序的代码审核方法和装置 | |
CN112783942B (zh) | 基于区块链的数据采集质量核验方法及系统及装置及介质 | |
CN113282496B (zh) | 接口自动测试方法、装置、设备及存储介质 | |
CN115599683A (zh) | 自动化测试方法、装置、设备及存储介质 | |
CN108416569A (zh) | 一种测绘成果的验证方法及系统 |
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 |
Application publication date: 20170804 |
|
RJ01 | Rejection of invention patent application after publication |