CN112905224B - 一种用于代码评审的耗时确定方法、装置及设备 - Google Patents
一种用于代码评审的耗时确定方法、装置及设备 Download PDFInfo
- Publication number
- CN112905224B CN112905224B CN201911227004.2A CN201911227004A CN112905224B CN 112905224 B CN112905224 B CN 112905224B CN 201911227004 A CN201911227004 A CN 201911227004A CN 112905224 B CN112905224 B CN 112905224B
- Authority
- CN
- China
- Prior art keywords
- code
- code object
- reviewed
- time
- information
- 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
Links
- 238000012552 review Methods 0.000 title claims abstract description 188
- 238000000034 method Methods 0.000 title claims abstract description 133
- 230000008859 change Effects 0.000 claims description 104
- 238000011156 evaluation Methods 0.000 claims description 32
- 230000006399 behavior Effects 0.000 claims description 27
- 238000012549 training Methods 0.000 claims description 22
- 238000001914 filtration Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 8
- 239000006185 dispersion Substances 0.000 claims description 6
- 238000003672 processing method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种用于代码评审的耗时确定方法,包括:获取待评审代码对象;获取所述待评审代码对象的特征信息;根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。所述方法在获取待评审代码对象之后,通过获取待评审代码对象的特征信息,并根据获取到的特征信息来确定评审该待评审代码对象需要消耗的预估时间,从而可以根据该预估时间来准确的确定待评审代码对象所对应的工作量,以方便评审人合理的安排时间对待评审代码对象进行评审。
Description
技术领域
本申请涉及代码评审领域,具体涉及一种用于代码评审的耗时确定方法、装置、电子设备及存储设备。本申请同时涉及一种预估模型的获取方法、装置、电子设备及存储设备。本申请同时还涉及用于代码评审的时间处理方法、装置、电子设备及存储设备。
背景技术
代码评审,是指在编码人员完成代码编写或者代码改动并将代码文件提交到代码库之后,由代码评审人通过阅读代码来检查编码人员提交的代码是否符合编码标准以及代码的质量。代码评审是软件开发过程中不可或缺的环节,通过对代码进行评审可以提高代码的可阅读性以及可维护性,保证软件开发的质量。
目前,在软件开发过程中,当编码人员对于一次或多次提交的代码对象,如代码文件发出请求进行代码评审的申请时,通常是由计算设备响应编码人员的申请操作,向评审人发送评审通知,并在评审人所使用的计算设备上显示待评审代码对象的相关信息,如评审标题、提交时间、申请人姓名等信息;当评审人查看到评审通知时,需要抽出一定的时间,以用于对待评审代码对象进行评审。
由此可知,目前在进行代码评审时,评审人从计算设备发送的评审通知中,一般仅能获得与待评审代码对象对应的一些简单信息,例如,待评审代码对象对应的评审标题以及申请人信息等信息,而不能从评审通知中获得评审该待评审代码对象对应的大概工作量,评审人在获得评审通知后,只能根据个人经验安排一定的时间来针对该评审通知所对应的待评审代码对象进行评审。然而,每一个待评审代码对象所对应的工作量并不相同,有的待评审代码对象仅涉及少数代码文件,或仅涉及较小的代码改动,又或者仅涉及边缘业务逻辑,一般需要极短的时间即可评审完成,如果评审人安排了较多的时间来评审该待评审代码对象,则会造成时间的大量浪费;而有的待评审代码对象或是涉及的代码文件较多,或是涉及较大的代码改动,或是涉及较重要的业务逻辑,需要较长的时间来完成评审,如果评审人安排了较少的时间来评审该待评审代码对象,则会造成时间不足,匆匆评审了事,进而影响评审的质量。因此,现有技术在进行代码评审时,存在不能准确的确定待评审代码对象所对应的工作量的问题。
发明内容
本申请实施例提供一种用于代码评审的耗时确定方法,以解决在进行代码评审时,不能准确的确定待评审代码对象所对应的工作量的问题。
本申请实施例提供一种用于代码评审的耗时确定方法,包括:获取待评审代码对象;获取所述待评审代码对象的特征信息;根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。
可选的,所述待评审代码对象的特征信息,包括以下至少一种特征信息:所述待评审代码对象中的变更代码的特征信息、与所述待评审代码对象对应的项目历史特征信息以及与所述待评审代码对象对应的评审人的特征信息。
可选的,所述根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间,包括:将所述特征信息输入到用于预估代码评审时间的目标预估模型中,确定评审所述待评审代码对象需要消耗的预估时间。
可选的,所述将所述特征信息输入到用于预估代码评审时间的目标预估模型中,确定评审所述待评审代码对象需要消耗的预估时间,包括:从所述目标预估模型中,获取预先训练获得的所述特征信息与评审样本代码对象所消耗的实际时间之间的数据关系;根据所述特征信息和所述数据关系,确定评审所述待评审代码对象需要消耗的预估时间。
可选的,所述目标预估模型通过以下步骤获得:获取样本代码对象;获取评审所述样本代码对象所消耗的实际时间;获取所述样本代码对象的特征信息;将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型。
可选的,所述将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,包括:将所述特征信息和所述评审所述样本代码对象所消耗的实际时间进行拟合处理,获得目标预估模型以建立所述特征信息和评审所述样本代码对象所消耗的实际时间之间的数据关系。
可选的,所述获取评审所述样本代码对象所消耗的实际时间,包括:获取评审所述样本代码对象时的用户行为数据;从所述用户行为数据中,获取评审所述样本代码对象所消耗的实际时间。
可选的,所述从所述用户行为数据中,获取评审所述样本代码对象所消耗的实际时间,包括:从所述用户行为数据中,获取评审所述样本代码对象所消耗的第一实际时间;从所述用户行为数据中,获取评审所述样本代码对象所消耗的第二实际时间,其中,所述第二实际时间晚于所述第一实际时间;将所述第一实际时间和所述第二实际时间的累加和作为评审所述样本代码对象所消耗的实际时间。
可选的,所述从所述用户行为数据中,获取评审所述样本代码对象所消耗的第一实际时间,包括:从所述用户行为数据中,获取评审所述样本代码对象的开始时间信息,作为第一时间信息;从所述用户行为数据中,获取对所述样本代码对象之后的下一个样本代码对象进行评审的开始时间信息,作为第二时间信息;将所述第一时间信息和所述第二时间信息的差值的绝对值作为评审所述样本代码对象所消耗的第一实际时间。
可选的,所述将所述第一实际时间和所述第二实际时间的累加和作为评审所述样本代码对象所消耗的实际时间,包括:如果所述累加和不小于预设的最小时间阈值,并且不大于预设的最大时间阈值,则将所述累加和作为所述评审所述样本代码对象所消耗的实际时间。
可选的,所述将所述第一实际时间和所述第二实际时间的累加和作为评审所述样本代码对象所消耗的实际时间,包括:获取所述累加和与所述样本代码对象包含的有效增删代码行的比值;如果所述比值不小于预设的最小过滤比值阈值,并且不大于预设的最大过滤比值阈值,则将所述累加和作为评审所述样本代码对象所消耗的实际时间。
可选的,还包括:客户端向服务端发送用于获取所述预估时间的数据请求消息;所述客户端获取所述服务端提供的所述预估时间;所述客户端展示所述预估时间。
可选的,还包括:服务端将所述预估时间提供给客户端。
可选的,还包括:所述服务端获得所述客户端发送的用于获取所述预估时间的数据请求消息;所述服务端将所述预估时间提供给客户端,包括:所述服务端针对所述数据请求消息,将所述预估时间提供给客户端。
可选的,所述待评审代码对象中的变更代码的特征信息,包括以下至少一种特征信息:所述变更代码的总行数信息、所述变更代码中的有效变更行信息、用于表示所述变更代码的分散程度的熵值信息、所述变更代码所包含的代码区块的个数信息,其中,所述代码区块是在所述变更代码中包含至少一行变更代码的区域、所述变更代码中的大区块行数信息,其中,所述大区块行数信息是在所述变更代码中的连续变更行数大于预设的行数阈值的区域、所述变更代码中的代码区块间隔行数信息、所述变更代码中的增删行相似度信息、用于表示所述变更代码是否为测试代码的标识信息、所述变更代码对应的编程语言标识信息、所述变更代码中的唯一运算符信息、所述变更代码中的词汇数信息、用于表示理解和实现所述变更代码的困难程度的困难度信息以及用于表示所述变更代码的抽象程度的编码级别信息。
可选的,所述变更代码中的有效变更行信息,包括:所述变更代码中的有效增加行信息、所述变更代码中的有效删除行信息和所述变更代码中的有效变更行与所述待评审代码对象的所有代码行的比值信息。
可选的,所述困难度信息使用以下步骤获得:将所述变更代码中的唯一运算符的总数与预设的常数数值的比值作为第一比值;将所述变更代码中的所有运算对象的总数与所述变更代码中的唯一运算对象的总数的比值作为第二比值;将所述第一比值和所述第二比值的乘积作为所述困难度信息。
可选的,所述与所述待评审代码对象对应的项目历史特征信息,包括以下至少一种特征信息:所述待评审代码对象在预定时间周期内对应的提交频率、在预定时间周期内对所述待评审代码对象进行提交操作的人员总数、所述待评审代码对象在预定时间周期内对应的修复性提交频率、所述待评审代码对象在预定时间周期内对应的评价信息的总数。
可选的,所述与所述待评审代码对象对应的评审人的特征信息,包括以下至少一种特征信息:所述评审人针对所述待评审代码对象的历史平均评审时间、所述评审人针对所述待评审代码对象的历史逐行评审时间。
本申请实施例还提供一种预估模型的获取方法,包括:获取样本代码对象;获取评审所述样本代码对象所消耗的实际时间;获取所述样本代码对象的特征信息;将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间。
本申请实施例还提供一种用于代码评审的时间处理方法,其特征在于,包括:获取待评审代码对象信息;向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象信息对应的待评审代码对象需要消耗的预估时间;获取所述服务端提供的预估时间;展示所述服务端提供的预估时间。
本申请实施例还提供一种用于代码评审的时间处理方法,包括:获取评审待评审代码对象需要消耗的预估时间;将所述预估时间提供给客户端。
可选的,还包括:获得所述客户端发送的用于获取所述预估时间的数据请求消息;所述将所述预估时间提供给所述客户端,包括:针对所述数据请求消息,将所述预估时间提供给客户端。
本申请实施例还提供一种用于代码评审的耗时确定装置,包括:对象获取单元,用于获取待评审代码对象;信息获取单元,用于获取所述待评审代码对象的特征信息;预估时间确定单元,用于根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。
本申请实施例还提供一种电子设备,包括:
处理器;
存储器,用于存储用于代码评审的耗时确定方法的程序,该设备通电并通过所述处理器运行所述用于代码评审的耗时确定方法的程序后,执行下述步骤:
获取待评审代码对象;获取所述待评审代码对象的特征信息;根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。
本申请实施例还提供一种存储设备,存储有用于代码评审的耗时确定方法的程序,该程序被处理器运行,执行下述步骤:
获取待评审代码对象;获取所述待评审代码对象的特征信息;根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。
本申请实施例还提供一种预估模型的获取装置,包括:样本代码对象获取单元,用于获取样本代码对象;实际时间获取单元,用于获取评审所述样本代码对象所消耗的实际时间;特征信息获取单元,用于获取所述样本代码对象的特征信息;模型获得单元,用于将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间。
本申请实施例还提供一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储预估模型的获取方法的程序,该设备通电并通过所述处理器运行所述预估模型的获取方法的程序后,执行下述步骤:
获取样本代码对象;获取评审所述样本代码对象所消耗的实际时间;获取所述样本代码对象的特征信息;将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间。
本申请实施例还提供一种存储设备,存储有预估模型的获取方法的程序,该程序被处理器运行,执行下述步骤:
获取样本代码对象;获取评审所述样本代码对象所消耗的实际时间;获取所述样本代码对象的特征信息;将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间。
本申请实施例还提供一种用于代码评审的时间处理装置,应用于客户端,包括:
信息获取单元,用于获取待评审代码对象信息;消息发送单元,用于向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象信息对应的待评审代码对象需要消耗的预估时间;时间获取单元,用于获取所述服务端提供的预估时间;展示单元,用于展示所述预估时间。
本申请实施例还提供一种电子设备,应用于客户端,包括:
处理器;
存储器,用于存储用于代码评审的时间处理方法的程序,该设备通电并通过所述处理器运行所述用于代码评审的时间处理方法的程序后,执行下述步骤:
获取待评审代码对象信息;向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象信息对应的待评审代码对象需要消耗的预估时间;获取所述服务端提供的预估时间;展示所述预估时间。
本申请实施例还提供一种存储设备,应用于客户端,存储有用于代码评审的时间处理方法的程序,该程序被处理器运行,执行下述步骤:
获取待评审代码对象信息;向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象信息对应的待评审代码对象需要消耗的预估时间;获取所述服务端提供的预估时间;展示所述预估时间。
本申请实施例还提供一种用于代码评审的时间处理装置,应用于服务端,包括:时间获取单元,用于获取评审待评审代码对象需要消耗的预估时间;时间提供单元,用于将所述预估时间提供给客户端。
本申请实施例还提供一种电子设备,应用于服务端,包括:
处理器;
存储器,用于存储用于代码评审的时间处理方法的程序,该设备通电并通过所述处理器运行所述用于代码评审的时间处理方法的程序后,执行下述步骤:
获取评审待评审代码对象需要消耗的预估时间;将所述预估时间提供给客户端。
本申请实施例还提供一种存储设备,应用于服务端,存储有用于代码评审的时间处理方法的程序,该程序被处理器运行,执行下述步骤:
获取评审待评审代码对象需要消耗的预估时间;将所述预估时间提供给客户端。
与现有技术相比,本申请具有以下优点:
本申请实施例提供一种用于代码评审的耗时确定方法,包括:获取待评审代码对象;获取所述待评审代码对象的特征信息;根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。本申请实施例提供的方法在获取待评审代码对象之后,通过获取待评审代码对象的特征信息,并根据获取到的特征信息,确定评审该待评审代码对象需要消耗的预估时间,从而根据该预估时间来准确的确定该待评审代码对象所对应的工作量,以方便评审人合理的安排时间来对该待评审代码对象进行评审。
本申请实施例提供一种预估模型的获取方法,包括:获取样本代码对象;获取评审所述样本代码对象所消耗的实际时间;获取所述样本代码对象的特征信息;将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间。本申请实施例提供的方法通过将从样本代码对象中获取到的特征信息,以及评审该样本代码对象所消耗的实际时间作为样本数据,来训练获得用于确定评审待评审代码对象需要消耗的预估时间的目标预估模型,可以提高目标预估模型的预估结果的准确率。
本申请实施例提供一种用于代码评审的时间处理方法,包括:获取待评审代码对象信息;向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象信息对应的待评审代码对象需要消耗的预估时间;获取所述服务端提供的预估时间;展示所述服务端提供的预估时间。本申请实施例提供的方法可以使客户端在展示待评审代码对象信息时,直观的展示评审该待评审代码对象需要消耗的预估时间,以使评审人可以直观的确定评审待评审代码对象需要消耗的时间,从而合理安排时间,避免造成时间浪费,提高评审人的工作效率。
本申请实施例提供一种用于代码评审的时间处理方法,包括:获取评审待评审代码对象需要消耗的预估时间;将所述预估时间提供给客户端。本申请实施例提供的方法可以将评审待评审代码对象需要消耗的预估时间提供给客户端,以使客户端在展示待评审代码对象信息时,直观的展示评审该待评审代码对象需要消耗的预估时间,使评审人可以直观的确定评审待评审代码对象需要消耗的时间,从而合理安排时间,避免造成时间浪费,提高评审人的工作效率。
附图说明
图1-A是本申请第一实施例提供的一种用于代码评审的耗时确定方法的第一应用场景示意图。
图1-B是本申请第一实施例提供的一种用于代码评审的耗时确定方法的第二应用场景示意图。
图1-C是本申请第一实施例提供的一种用于代码评审的耗时确定方法的第三应用场景示意图。
图2是本申请第一实施例提供的一种用于代码评审的耗时确定方法的流程图。
图3是本申请第二实施例提供的一种预估模型的获取方法的流程图。
图4是本申请第三实施例提供的一种用于代码评审的时间处理方法的流程图。
图5是本申请第四实施例提供的另一种用于代码评审的时间处理方法的流程图。
图6是本申请第五实施例提供的一种用于代码评审的耗时确定装置的示意图。
图7是本申请第六实施例提供的一种电子设备的示意图。
图8是本申请第八实施例提供的一种预估模型的获取装置的示意图。
图9是本申请第十一实施例提供的一种用于代码评审的时间处理装置的示意图。
图10是本申请第十四实施例提供的另一种用于代码评审的时间处理装置的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
为了使本领域的技术人员更好的理解本申请方案,下面基于本申请提供的用于代码评审的耗时确定方法,对其实施例的具体应用场景进行详细描述。本申请所述用于代码评审的耗时确定方法可以应用与客户端与服务器交互的场景,如图1-A所示,其为本申请第一实施例提供的一种用于代码评审的耗时确定方法的第一应用场景示意图。
在具体实施本申请第一实施例提供的用于代码评审的耗时确定方法时,通常是基于评审人需要通过客户端查询评审待评审代码对象需要消耗的预估时间的需求,响应于评审人在客户端的查询操作,客户端获取待评审代码对象信息;之后,向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象需要消耗的预估时间;在服务端获得客户端发送的该数据请求消息之后,针对该数据请求消息,服务端获取所述待评审代码对象,并获取所述待评审代码对象的特征信息,根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间;之后,服务端将获取到的预估时间提供给客户端;在客户端获取到服务端提供的预估时间之后,在其显示界面上展示所述预估时间供用户查看。
如图1-B所示,其为本申请第一实施例提供的一种用于代码评审的耗时确定方法的第二应用场景示意图。根据图1-B可知,当客户端获取到服务端提供的预估时间之后,可以在客户端的显示界面上显示针对待评审代码对象的提醒消息,评审人在获得该提醒消息之后,可以通过该提醒消息准确的确定评审待评审代码对象所对应的工作量,从而可以合理安排时间来对该待评审代码对象进行评审。
如图1-C所示,其为本申请第一实施例提供的一种用于代码评审的耗时确定方法的第三应用场景示意图。当评审人查看到客户端中显示的提醒消息之后,可以通过该提醒消息跳转到待评审代码对象所对应的评审详情页面,以查看带评审代码对象的相关信息,如评审该待评审代码对象所需要的预估时间、待评审代码对象所对象的评审状态信息等信息。
需要说明的是,所述客户端可以是移动终端设备,如手机、平板电脑等,也可以是常用的计算机设备。所述服务端,一般是指服务器,该服务器可以是物理服务器,也可以是云端服务器,此处不做特殊限定。
所述待评审代码对象,一般是指由编码人员发起的请求评审人进行评审的代码文件,这些代码文件通常被存储于代码仓库中,并且被编码人员进行了一定程度的修改操作,其具体可以为一个或多个代码文件;另外,待评审代码对象也可以是与代码文件对应的以伪代码形式编写的详细设计文档。需要说明的是,待评审代码对象既可以是web端的代码对象,也可以是客户端的代码对象,在本申请第一实施例中,并不对待评审代码对象的具体应用或实施端进行特殊限定,只需要满足是可被评审的代码对象即可。
所述编码人员,是指进行具体的代码编写工作的人员,此处不再赘述。
所述代码仓库,一般是指借助于代码管理工具实现的用于集中存储及管理代码文件或代码设计文档等与代码相关的对象的虚拟仓库,所述代码管理工具常见的有svn、git等工具。
所述评审人,一般是指对待评审代码对象进行评审操作的人员。
另外,在具体实施时,也可以将本申请第一实施例提供的用于代码评审的耗时确定方法单独应用于客户端,或服务端,或服务端与服务端之间的交互中。
例如,客户端响应评审人查询评审待评审代码对象需要消耗的预估时间的查询操作,根据获取到的待评审代码对象信息,获取待评审代码对象;之后,获取待评审代码对象的特征信息,并根据获取到的特征信息,确定评审该待评审代码对象需要消耗的预估时间,展示所述预估时间供评审人查看。
又例如,服务端设备不需要响应客户端发送的用于获取评审待评审代码对象需要消耗的预估时间的数据请求消息,而是在编码人员提交代码评审请求之后,直接根据编码人员的提交请求,获取待评审代码对象,之后,获取待评审代码对象的特征信息,并根据获取到的特征信息,确定评审该待评审代码对象需要消耗的预估时间;之后,服务端建立该待评审代码对象与该预估时间的对应关系,并将该对应关系存储在自身存储设备中,当需要向其它客户端或服务端计算设备提供该预估时间时,直接从该对应关系中查询获得该预估时间,并将该预估时间提供给该客户端或服务端计算设备即可。
需要说明的是,上述应用场景仅仅是本申请第一实施例提供的用于代码评审的耗时确定方法的一个具体实施例,提供所述应用场景实施例的目的是便于理解本申请的用于代码评审的耗时确定方法,而并非用于限定本申请的用于代码评审的耗时确定方法。
如图2所示,其为本申请第一实施例提供的一种用于代码评审的耗时确定方法的流程图,以下结合图2对本申请第一实施例提供的一种用于代码评审的耗时确定方法进行详细说明。
步骤S201,获取待评审代码对象。
所述待评审代码对象,一般是指由编码人员提交的请求评审人进行评审的代码文件,这些代码文件通常被存储于代码仓库中,并且被编码人员进行了一定程度的修改操作,其具体可以为一个或多个代码文件;另外,待评审代码对象也可以是与代码文件对应的以伪代码形式编写的详细设计文档。需要说明的是,待评审代码对象既可以是web端的代码对象,也可以是客户端的代码对象,在本申请第一实施例中,并不对待评审代码对象的具体应用端或实施端进行特殊限定,只需要满足是可被评审的代码对象即可。
所述获取待评审代码对象,是指在编码人员发起针对代码对象的评审请求后,客户端或者服务端根据该请求中的待评审代码对象信息,获取该待评审代码对象,其中,所述待评审代码对象信息,可以是待评审代码对象的标识信息,或者是待评审代码对象的获取地址信息,此处不做特殊限定。
需要说明的是,此处之所以可以由客户端,或者可以由服务端来获取待评审代码对象,是由于在具体实施时,本申请第一实施例提供的用于代码评审的耗时确定方法既可以单独应用于客户端中也可以单独应用于服务端中,所以根据应用场景的不同,需要由不同端的计算设备来获取该待评审代码对象。在本申请第一实施例中,为了描述方便,以客户端与服务端交互进而获取待评审代码对象的预估时间的应用场景来描述本申请第一实施例提供的用于代码评审的耗时确定方法。
步骤S202,获取所述待评审代码对象的特征信息。
在经过步骤S201获取到待评审代码对象之后,为了在向评审人展示该评审任务时,能够使评审人准确、直观的确定该待评审代码对象的工作量,本申请第一实施例通过获取该待评审代码对象的特征信息,并根据该特征信息,来确定评审该代码对象需要消耗的预估时间,以使得客户端在向用户展示该评审任务时,使评审人直接根据该预估时间即可准确、直观的获得该待评审代码对象的工作量,进而合理安排时间,提高工作效率,以下对如何获取待评审代码对象的特征信息进行详细说明。
所述待评审代码对象的特征信息,包括以下至少一种特征信息:所述待评审代码对象中的变更代码的特征信息、与所述待评审代码对象对应的项目历史特征信息以及与所述待评审代码对象对应的评审人的特征信息。
所述待评审代码对象中的变更代码的特征信息,包括以下至少一种特征信息:所述变更代码的总行数信息、所述变更代码中的有效变更行信息、用于表示所述变更代码的分散程度的熵值信息、所述变更代码所包含的代码区块的个数信息,其中,所述代码区块是在所述变更代码中包含至少一行变更代码的区域、所述变更代码中的大区块行数信息,其中,所述大区块行数信息是在所述变更代码中的连续变更行数大于预设的行数阈值的区域、所述变更代码中的代码区块间隔行数信息、所述变更代码中的增删行相似度信息、用于表示所述变更代码是否为测试代码的标识信息、所述变更代码对应的编程语言标识信息、所述变更代码中的唯一运算符信息、所述变更代码中的词汇数信息、用于表示理解和实现所述变更代码的困难程度的困难度信息以及用于表示所述变更代码的抽象程度的编码级别信息。
变更代码的总行数信息,是指待评审代码对象中被编码人员进行了变更操作的总代码行数,其通常可以通过与上一版本的该待评审代码对象进行差分分析即可获得,此处不再赘述。
变更代码中的有效变更行信息,包括:所述变更代码中的有效增加行信息、所述变更代码中的有效删除行信息和所述变更代码中的有效变更行与所述待评审代码对象的所有代码行的比值信息。
熵值信息,是指用于表示所述变更代码的分散程度的信息,具体可以为行级熵,或者为字符级熵,其中,所述行级熵,是以代码行为单位,用于表示待评审代码对象中的代码区块间的代码行的分散程度的信息;所述字符级熵,是以字符为单位,用于表示待评审代码对象中的代码区块间的字符的分散程度的信息,该字符具体可以为编码中的关键字,也可以是由预先设置的表达式等;
代码区块,是指在待评审代码对象的变更代码中,由至少一个变更代码行构成的区域,例如,在一个包含1-100行代码行的代码文件中,如果该代码文件的第10—20、35—40行的代码内容发生了变更,则可以认为该代码文件中包含2个代码区块。
大区块行数信息,是指该待评审代码对象的变更代码中的连续变更行数大于预设的行数阈值的区域。例如,当预设的行数阈值为30行时,则每个连续变更超过30行的区域可以记为一个大区块。在具体实施时,也可以根据需要,将预设的行数阈值设置为其它值,如40、60等,此处不做特殊限定。
变更代码所包含的代码区块的个数信息,是指该待评审代码对象的变更代码所包含的代码区块的个数。例如,当有2处代码区块时,则可以将该个数信息记为2。
变更代码中的代码区块间隔行数信息,是指不同的区块之间的间隔行,例如,当上述2处区块之间间隔100行时,则可以将该代码区块间隔行数信息记为100。
变更代码中的增删行相似度信息,是指在该待评审代码对象的变更代码中,增加的代码行与删除的代码行的相似度,其通过相似度分析即可获得,关于如何进行相似度分析的方法由于现有技术中有详细介绍,此处不再赘述。一般来讲,增加的代码行与删除的代码行的相似度越高,则可以认为需要消耗的评审时间越短;而相似度越低,则可以认为需要消耗的评审时间越长。
用于表示所述变更代码是否为测试代码的标识信息,是指如果增加或删除的代码为用于测试的代码,则通常不必花费过多的时间进行评审。通常通过判断带评审代码对象的路径是否包含test即可判断该待评审代码对象是否为测试代码,当然,在具体实施时,也可以通过其它方法来识别变更代码是否为测试代码,此处不再赘述。
编程语言标识信息,是指用于标识不同的编程语言的标识,例如,可以用“1”标识java语言,用“2”标识C++语言等,当然,在具体实施时,也可以使用其它方式来标识不同的编程语言,此处不再赘述。
变更代码中的唯一运算符信息,是指该待评审代码对象的变更代码中包含的去重后的运算符信息。例如,待评审代码对象的变更代码中包含10个“+”运算符,20个“-”运算符,则将该唯一运算符信息记为2,即只有两个不重复的运算符。
变更代码中的词汇数信息,是指该待评审代码对象的变更代码中的唯一运算符和唯一运算符的运算对象的数量的累加和。
另外,所述特征信息中的困难度信息使用以下步骤获得:将变更代码中的唯一运算符的总数与预设的常数数值的比值作为第一比值;将变更代码中的所有运算对象的总数与所述变更代码中的唯一运算对象的总数的比值作为第二比值;将所述第一比值和所述第二比值的乘积作为所述困难度信息。
编码级别信息,用于表示该待评审代码对象的变更代码的抽象程度的信息,即实现变更代码需要的潜在行数与该变更代码的实际行数的比值。
另外,所述与所述待评审代码对象对应的项目历史特征信息,包括以下至少一种特征信息:所述待评审代码对象在预定时间周期内对应的提交频率、在预定时间周期内对所述待评审代码对象进行提交操作的人员总数、所述待评审代码对象在预定时间周期内对应的修复性提交频率、所述待评审代码对象在预定时间周期内对应的评价信息的总数。
待评审代码对象在预定时间周期内对应的提交频率,是指编码人员在预定时间周期内对该待评审代码对象进行变更,并将变更内容提交到代码仓库中的次数。例如,在一周内,编码人员针对src001.java进行了10次变更,并将变更内容通过“git commit”操作提交到代码仓库中,则可将src001.java的提交频率记为10次。
在预定时间周期内对所述待评审代码对象进行提交操作的人员总数,是指在预定时间周期内,对该待评审代码对象进行提交操作的编码人员总数。通常,对待评审代码对象进行变更提交的编码人员的总数越大,则说明该待评审代码对象的复杂度越高,在评审该待评审代码对象时,有可能需要消耗较长的时间。
待评审代码对象在预定时间周期内对应的修复性提交频率,是指在预定时间周期内,该待评审代码对象出现缺陷,并被编码人员进行修复性提交的次数。例如,在一周内,针对不同的缺陷,编码人员对src001.java进行了5次“fix xxx error”的提交操作,则可将src001.java的修复性提交频率记为5次。
此外,与所述待评审代码对象对应的评审人的特征信息,包括以下至少一种特征信息:所述评审人针对所述待评审代码对象的历史平均评审时间、所述评审人针对所述待评审代码对象的历史逐行评审时间。
根据上述描述可知,在获取到待评审代码对象之后,本申请第一实施例提供的用于代码评审的耗时确定方法从不同的维度先后提取到了该待评审代码对象的十多种特征信息,之后,即可根据该特征信息,获取评审该待代码对象需要消耗的预估时间。需要说明的是,在本申请第一实施例中,是在进行了特征重要性和共线性分析之后,仅提取了待评审代码对象中的上述特征信息以用于获取评审该代码对象需要消耗的预估时间,在具体实施时,也可以根据需要,加入其它特征信息,此处不再一一描述。
步骤S203,根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。
根据上述描述可知,经过步骤S202后获取到了待评审代码对象的不同维度的特征信息,根据该特征信息,即可确定评审该待评审代码对象需要消耗的预估时间。需要说明的是,不同的特征信息对最终需要获得的预估时间的影响也是不同的,因此,需要根据特征信息的不同,获取与该特征信息对应的贡献度,最后,将不同的特征信息对应的贡献度经过相应的计算之后,即可确定评审待评审代码对象需要消耗的预估时间。
在本申请第一实施例中,提供一种根据特征信息获取评审待评审代码对象需要消耗的预估时间的方法,具体是:将所述特征信息输入到用于预估代码评审时间的目标预估模型中,确定评审所述待评审代码对象需要消耗的预估时间。
所述将所述特征信息输入到用于预估代码评审时间的目标预估模型中,确定评审所述待评审代码对象需要消耗的预估时间,包括:从所述目标预估模型中,获取预先训练获得的所述特征信息与评审样本代码对象所消耗的实际时间之间的数据关系;根据所述特征信息和所述数据关系,确定评审所述待评审代码对象需要消耗的预估时间。
即,在该目标预估模型中,已经预先根据样本代码对象提取到了上述步骤S202中提取的特征信息,并且也可以通过评审人评审该样本代码对象的用户行为数据,预先获得评审样本代码对象所消耗的实际时间,之后,通过对上述特征信息和上述评审样本代码对象所消耗的实际时间进行回归分析,即可获得不同的特征信息对评审代码对象所造成的影响;进而获得不同的特征信息对应的贡献度,并建立上述特征信息与评审样本代码对象所消耗的实际时间之间的数据关系。此后,当需要预估评审待评审代码对象需要消耗的时间时,通过将获取到的待评审代码对象的特征信息输入到该目标预估模型中,通过该目标预估模型中的上述数据关系,即可获得评审待评审代码对象需要消耗的预估时间。
需要说明的是,本申请第一实施例中的目标预估模型为回归模型,具体为xgboost模型,当然,在具体实施时,也可以根据需要,使用其它回归模型,如线性回归模型、随机森林模型等,此处,不对模型的具体类型做特殊限定;所述样本代码对象,是指被评审人评审过的代码对象,其具体可以用来训练上述目标预估模型。
在本申请第一实施例中,所述目标预估模型通过以下步骤获得:获取样本代码对象;获取评审所述样本代码对象所消耗的实际时间;获取所述样本代码对象的特征信息;将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型。
其中,所述将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,包括:将所述特征信息和所述评审所述样本代码对象所消耗的实际时间进行拟合处理,获得目标预估模型以建立所述特征信息和评审所述样本代码对象所消耗的实际时间之间的数据关系。
所述获取评审所述样本代码对象所消耗的实际时间,包括:获取评审所述样本代码对象时的用户行为数据;从所述用户行为数据中,获取评审所述样本代码对象所消耗的实际时间。
所述用户行为数据,可以是用户评审代码对象时的埋点数据,该埋点数据预先预置于用于评审代码对象的评审系统中,通过该埋点数据,可以获得评审样本代码对象所消耗的实际时间;另外,用户行为数据,也可以是用户日志数据,即当评审人在评审系统中对样本代码对象进行评审时,由评审系统将评审人针对样本代码对象的行为数据记录到日志中,之后,通过用户日志数据来获取评审样本代码对象所消耗的实际时间。需要说明的是,在本申请第一实施例中,如无特殊说明,用于描述时间的单位为秒。
为了更加方便的获得评审样本代码对象所消耗的实际时间,在本申请第一实施例中,提供一种从用户日志数据中,获取评审所述样本代码对象所消耗的实际时间的方法,包括:从所述用户行为数据中,获取评审所述样本代码对象所消耗的第一实际时间;从所述用户行为数据中,获取评审所述样本代码对象所消耗的第二实际时间,其中,所述第二实际时间晚于所述第一实际时间;将所述第一实际时间和所述第二实际时间的累加和作为评审所述样本代码对象所消耗的实际时间。
所述从所述用户行为数据中,获取评审所述样本代码对象所消耗的第一实际时间,包括:从所述用户行为数据中,获取评审所述样本代码对象的开始时间信息,作为第一时间信息;从所述用户行为数据中,获取对所述样本代码对象之后的下一个样本代码对象进行评审的开始时间信息,作为第二时间信息;将所述第一时间信息和所述第二时间信息的差值的绝对值作为评审所述样本代码对象所消耗的第一实际时间。
即,在用户日志数据中,将评审人初次点击样本代码对象的时间作为评审该样本代码对象的开始时间;当评审人评审完成或者阶段评审完成该样本代码对象时,通常会点击下一个待评审的样本代码对象,此时,可将评审人点击下一个待评审的样本代码对象的开始时间作为评审上一样本代码对象的阶段完成时间;之后,根据这两个时间的差值,即可获得评审该样本代码对象所消耗的实际时间。
即,由于评审人个人习惯的不同,评审人可能会分阶段的对同一样本代码对象进行评审,例如,在第一阶段,仅评审样本代码对象20%的内容,此后,会去评审下一样本代码对象,当所有的样本代码对象都评审完成之后,评审人会从新开始评审样本代码对象中其它部分的内容。因此,为了准确的获得评审样本代码对象所消耗的实际时间,在从用户日志数据中获取评审样本代码对象所消耗的实际时间时,还需要获取每一阶段对应的实际时间,之后,将所有阶段的实际时间的累加和作为评审人评审该样本代码对象实际消耗的时间。
当然,在具体实施时,在评审人评审样本代码对象时,通常存在无效的评审时长,例如,评审人有时会快速的浏览一遍样本代码对象,进而造成通过用户日志数据获取到的评审该样本代码对象所消耗的实际时间较短的情况;又或者,当评审人在评审样本代码对象时,出现意外离开的情况,进而造成通过获用户日志数据获取到的评审该样本代码对象所消耗的实际时间较长的情况。然而,上述两种情况通常都是无效评审时间,不应记入评审该样本代码对象所消耗的实际时间中。
针对上述情况,为了准确获取评审样本代码对象所消耗的实际时间,进而提高最终获得的目标预估模型的准确率,本申请第一实施例中通过设置过滤条件来过滤无效评审时间,即在将所述第一实际时间和所述第二实际时间的累加和作为评审所述样本代码对象所消耗的实际时间时,还包括:如果所述累加和不小于预设的最小时间阈值,并且不大于预设的最大时间阈值,则将所述累加和作为评审所述样本代码对象所消耗的实际时间。
例如,将预设的最小时间阈值设置为10秒,将预设的最大时间阈值设置为60分钟,如果通过用户日志数据获取到的评审样本代码对象所消耗的实际时间的累加和在上述区间内,即不小于10秒,不大于60分钟,则可将该实际时间的累加和作为评审该样本代码对象所消耗的实际时间,否则,即为无效时间,不予记录。
此外,还可以通过设置以下过滤条件以用来获取评审样本代码对象所消耗的实际时间,即:获取所述累加和与所述样本代码对象包含的有效增删代码行的比值;如果所述比值不小于预设的最小过滤比值阈值,并且不大于预设的最大过滤比值阈值,则将所述累加和作为评审所述样本代码对象所消耗的实际时间。
例如,将预设的最小过滤比值阈值设置为0.7,将预设的最大过滤比值阈值设置为30,如果样本代码对象包含的有效增删代码行为100行,而通过用户日志数据获取到的评审样本代码对象所消耗的实际时间的累加和为50秒,则该累加和与上述有效增删代码行的比值为0.5,小于预设的最小过滤比值阈值,则可认为该累加和为无效时间;又或者,所消耗的实际时间的累加和为3600秒,则该累加和与上述有效增删代码行的比值为36,大于预设的最大过滤比值阈值,则可认为该累加和为无效时间。
当然,在具体实施时,也可以根据需要,将上述过滤条件组合使用或者设置其它过滤条件,此处不再赘述。
需要说明的是,由于目标预估模型需要训练获得,因此,当目标预估模型未训练成功,或者由于其它异常情况导致该目标预估模型未获取到评审待评审代码对象需要消耗的预估时间时,还可以将获取到的待评审代码对象的特征信息代入到兜底算法中,例如,可以是通过用户经验预先获得的一个耗时计算公式,该公式中可以包含主要的特征信息,以及主要的特征信息对应的权重值。当然,以上仅是用于进行兜底获取预估时间的一种具体实施方式,在具体实施时,当目标预估模型未获取到预估时间时,可以直接返回异常,并且不展示该预估时间即可;或者也可以设置重试次数,并定时的再次使用目标预估模型获取评审待评审对象需要消耗的预估时间,此处不再赘述。
另外,在获取到评审待评审代码对象需要消耗的预估时间之后,可以展示该预估时间,以供评审人根据该预估时间,直观的获得评审待评审代码对象的工作量,进而合理安排时间,提高工作效率。
在本申请第一实施例中,当该用于代码评审的耗时确定方法应用于客户端与服务端的交互场景中时,从客户端的角度,所述展示所述预估时间,具体包括:客户端向服务端发送用于获取所述预估时间的数据请求消息;所述客户端获取所述服务端提供的所述预估时间;所述客户端展示所述预估时间。
即,客户端响应评审人查询其对应的待评审代码对象的触控操作,其中,该触控操作,可以是评审人点击“查询”按钮的点击操作,也可以是评审人刷新待评审任务页面的刷新操作等;客户端响应于评审人的触控操作,获取待评审代码对象信息;之后,向服务端发送用于获取评审该待评审代码对象信息对应的待评审代码对象需要消耗的预估时间的数据请求消息;之后,获取服务端提供的预估时间,并在对应的用户界面上展示服务端提供的预估时间,以供用户查看。
另外,客户端在获得该预估时间之后,展示该预估时间的方式,具体可以是将该待评审代码对象信息和所述预估时间显示在其通知栏中,并发出提示声音;或者,也可以通过邮件系统,将该待评审代码对象信息和所述预估时间发送到评审人的邮箱中;或者,也可以是直接在代码评审列表页面中直接展示该待评审代码对象信息和所述预估时间等,此处不再赘述。
此外,从服务端的角度,所述展示所述预估时间,包括:获得评审待评审代码对象需要消耗的预估时间;将所述预估时间提供给客户端。其中,还包括:获取客户端发送的用于获取所述预估时间的数据请求消息;针对所述数据请求消息,将所述预估时间提供给所述客户端。
即,在服务端获得评审待评审代码对象需要消耗的预估时间之后,还可以响应于客户端发送的用户获取所述预估时间的数据请求消息,并针对该数据请求消息,将获取到的所述预估时间提供给所述客户端,以供客户端展示。
需要说明的是,在客户端展示该预估时间时,还可以根据该预估时间,将不同的待评审代码对象信息进行排序,并将排序后的待评审代码对象信息以列表的形式展示给评审人查看,以使评审人可以根据待评审代码对象的优先级顺序,合理安排时间,提高工作效率。
综上所述,本申请第一实施例提供的用于代码评审的耗时确定方法,包括:获取待评审代码对象;获取所述待评审代码对象的特征信息;根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。该方法在获取待评审代码对象之后,通过获取待评审代码对象的特征信息,并根据获取到的特征信息,确定评审该待评审代码对象需要消耗的预估时间,从而根据该预估时间来准确的确定该待评审代码对象所对应的工作量,以方便评审人合理的安排时间对该待评审代码对象进行评审,提高工作效率。
在以上描述中,提供了一种用于代码评审的耗时确定方法,与本申请第一实施例提供的用于代码评审的耗时确定方法相对应,本申请第二实施例还提供一种预估模型的获取方法,请参看图3所示,其为本申请第二实施例提供的一种预估模型的获取方法的流程图,其中部分步骤在本申请第一实施例中已经详细描述,所以此处描述的比较简单,相关之处参见本申请第一实施例提供的一种用于代码评审的耗时确定方法中的部分说明即可,下述描述的处理过程仅是示意性的。
步骤S301,获取样本代码对象。
步骤S302,获取评审所述样本代码对象所消耗的实际时间。
步骤S303,获取所述样本代码对象的特征信息。
步骤S304,将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间。
与本申请第一实施例提供的一种用于代码评审的耗时确定方法相对应,本申请第三实施例还提供一种用于代码评审的时间处理方法,其具体应用于客户端,请参看图4所示,其为本申请第三实施例提供的一种用于代码评审的时间处理方法的流程图,其中部分步骤在本申请第一实施例中已经详细描述,所以此处描述的比较简单,相关之处参见本申请第一实施例提供的一种用于代码评审的耗时确定方法中的部分说明即可,下述描述的处理过程仅是示意性的。
步骤S401,获取待评审代码对象信息。
步骤S402,向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象信息对应的待评审代码对象需要消耗的预估时间。
步骤S403,获取所述服务端提供的预估时间。
步骤S404,展示所述服务端提供的预估时间。
与本申请第一实施例提供的一种用于代码评审的耗时确定方法相对应,本申请第四实施例还提供一种用于代码评审的时间处理方法,其具体应用于服务端,请参看图5所示,其为本申请第四实施例提供的一种用于代码评审的时间处理方法的流程图,其中部分步骤在本申请第一实施例中已经详细描述,所以此处描述的比较简单,相关之处参见本申请第一实施例提供的一种用于代码评审的耗时确定方法中的部分说明即可,下述描述的处理过程仅是示意性的。
步骤S501,获取评审待评审代码对象需要消耗的预估时间。
步骤S502,将所述预估时间提供给客户端。
可选的,还包括:获得所述客户端发送的用于获取所述预估时间的数据请求消息;所述将所述预估时间提供给所述客户端,包括:针对所述数据请求消息,将所述预估时间提供给客户端。
与本申请第一实施例提供的一种用于代码评审的耗时确定方法相对应,本申请第五实施例还提供一种用于代码评审的耗时确定装置,请参看图6,其为本申请第五实施例提供的用于代码评审的耗时确定装置的示意图,由于装置实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的装置实施例仅仅是示意性的。本申请第五实施例提供的一种用于代码评审的耗时确定装置包括如下部分:
对象获取单元601,用于获取待评审代码对象。
信息获取单元602,用于获取所述待评审代码对象的特征信息。
预估时间确定单元603,用于根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。
与本申请第一实施例提供的一种用于代码评审的耗时确定方法相对应,本申请第六实施例还提供一种电子设备,请参看图7,其为本申请第六实施例提供的一种电子设备的示意图,由于电子设备实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的电子设备实施例仅仅是示意性的。本申请第六实施例提供的一种电子设备包括:
处理器701;
存储器702,用于存储用于代码评审的耗时确定方法的程序,该设备通电并通过所述处理器运行所述用于代码评审的耗时确定方法的程序后,执行下述步骤:
获取待评审代码对象;
获取所述待评审代码对象的特征信息;
根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。
与本申请第一实施例提供的一种用于代码评审的耗时确定方法相对应,本申请第七实施例还提供一种存储设备,由于存储设备实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的存储设备实施例仅仅是示意性的。本申请第七实施例提供的一种存储设备,存储有用于代码评审的耗时确定方法的程序,该程序被处理器运行,执行下述步骤:
获取待评审代码对象;
获取所述待评审代码对象的特征信息;
根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间。
与本申请第二实施例提供的一种预估模型的获取方法相对应,本申请第八实施例还提供一种预估模型的获取装置,请参看图8,其为本申请第八实施例提供的一种预估模型的获取装置的实施例的示意图,由于装置实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的装置实施例仅仅是示意性的。本申请第八实施例提供的一种预估模型的获取装置包括如下部分:
样本代码对象获取单元801,用于获取样本代码对象;
实际时间获取单元802,用于获取评审所述样本代码对象所消耗的实际时间;
特征信息获取单元803,用于获取所述样本代码对象的特征信息;
模型获得单元804,用于将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间。
与本申请第二实施例提供的一种预估模型的获取方法相对应,本申请第九实施例还提供另一种电子设备,其结构基本相似与本申请第六实施例所述的电子设备的结构,由于电子设备实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的电子设备实施例仅仅是示意性的。本申请第九实施例提供的一种电子设备包括:
处理器;
存储器,用于存储预估模型的获取方法的程序,该设备通电并通过所述处理器运行所述预估模型的获取方法的程序后,执行下述步骤:
获取样本代码对象;
获取评审所述样本代码对象所消耗的实际时间;
获取所述样本代码对象的特征信息;
将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间。
与本申请第二实施例提供的一种预估模型的获取方法相对应,本申请第十实施例还提供一种存储设备,由于存储设备实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的存储设备实施例仅仅是示意性的。本申请第十实施例提供的一种存储设备,存储有预估模型的获取方法的程序,该程序被处理器运行,执行下述步骤:
获取样本代码对象;
获取评审所述样本代码对象所消耗的实际时间;
获取所述样本代码对象的特征信息;
将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间。
与本申请第三实施例提供的一种用于代码评审的时间处理方法相对应,本申请第十一实施例还提供一种用于代码评审的时间处理装置,请参看图9,其为本申请第十一实施例提供的一种用于代码评审的时间处理装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的装置实施例仅仅是示意性的。本申请第十一实施例提供的一种用于代码评审的时间处理装置,应用于客户端,包括如下部分:
信息获取单元901,用于获取待评审代码对象信息。
消息发送单元902,用于向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象信息对应的待评审代码对象需要消耗的预估时间。
时间获取单元903,用于获取所述服务端提供的预估时间。
展示单元904,用于展示所述预估时间。
与本申请第三实施例提供的一种用于代码评审的时间处理方法相对应,本申请第十二实施例还提供另一种电子设备,其结构基本相似与本申请第六实施例所述的电子设备的结构,由于电子设备实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的电子设备实施例仅仅是示意性的。本申请第十二实施例提供的一种电子设备,应用于客户端,包括:
处理器;
存储器,用于存储用于代码评审的时间处理方法的程序,该设备通电并通过所述处理器运行所述用于代码评审的时间处理方法的程序后,执行下述步骤:
获取待评审代码对象信息;
向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象信息对应的待评审代码对象需要消耗的预估时间;
获取所述服务端提供的预估时间;
展示所述预估时间。
与本申请第三实施例提供的一种用于代码评审的时间处理方法相对应,本申请第十三实施例还提供一种存储设备,由于存储设备实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的存储设备实施例仅仅是示意性的。本申请第十三实施例提供的一种存储设备,应用于客户端,存储有用于代码评审的时间处理方法的程序,该程序被处理器运行,执行下述步骤:
获取待评审代码对象信息;
向服务端发送用于获取预估时间的数据请求消息,其中,所述预估时间是评审所述待评审代码对象信息对应的待评审代码对象需要消耗的预估时间;
获取所述服务端提供的预估时间;
展示所述预估时间。
与本申请第四实施例提供的一种用于代码评审的时间处理方法相对应,本申请第十四实施例还提供一种用于代码评审的时间处理装置,请参看图10,其为本申请第十四实施例提供的一种用于代码评审的时间处理装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的装置实施例仅仅是示意性的。本申请第十四实施例提供的一种用于代码评审的时间处理装置,应用于服务端,包括如下部分:
消息获取单元1001,用于获取评审待评审代码对象需要消耗的预估时间。
时间获取单元1002,用于将所述预估时间提供给客户端。
与本申请第四实施例提供的一种用于代码评审的时间处理方法相对应,本申请第十五实施例还提供另一种电子设备,其结构基本相似与本申请第六实施例所述的电子设备的结构,由于电子设备实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的电子设备实施例仅仅是示意性的。本申请第十五实施例提供的一种电子设备,应用于服务端,包括:
处理器;
存储器,用于存储用于代码评审的时间处理方法的程序,该设备通电并通过所述处理器运行所述用于代码评审的时间处理方法的程序后,执行下述步骤:
获取评审待评审代码对象需要消耗的预估时间;
将所述预估时间提供给客户端。
与本申请第四实施例提供的一种用于代码评审的时间处理方法相对应,本申请第十六实施例还提供一种存储设备,由于存储设备实施例基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,下述描述的存储设备实施例仅仅是示意性的。本申请第十六实施例提供的一种存储设备,应用于服务端,存储有用于代码评审的时间处理方法的程序,该程序被处理器运行,执行下述步骤:
获取评审待评审代码对象需要消耗的预估时间;
将所述预估时间提供给客户端。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (21)
1.一种用于代码评审的耗时确定方法,其特征在于,包括:
获取待评审代码对象;
获取所述待评审代码对象的特征信息;
根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间;
其中,所述待评审代码对象的特征信息,包括:所述待评审代码对象中的变更代码的特征信息、与所述待评审代码对象对应的项目历史特征信息以及与所述待评审代码对象对应的评审人的特征信息;
所述与所述待评审代码对象对应的项目历史特征信息,包括以下至少一种特征信息:
所述待评审代码对象在预定时间周期内对应的提交频率、在预定时间周期内对所述待评审代码对象进行提交操作的人员总数、所述待评审代码对象在预定时间周期内对应的修复性提交频率、所述待评审代码对象在预定时间周期内对应的评价信息的总数;
所述与所述待评审代码对象对应的评审人的特征信息,包括以下至少一种特征信息:
所述评审人针对所述待评审代码对象的历史平均评审时间、所述评审人针对所述待评审代码对象的历史逐行评审时间。
2.根据权利要求1所述的用于代码评审的耗时确定方法,其特征在于,所述根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间,包括:
将所述特征信息输入到用于预估代码评审时间的目标预估模型中,确定评审所述待评审代码对象需要消耗的预估时间。
3.根据权利要求2所述的用于代码评审的耗时确定方法,其特征在于,所述将所述特征信息输入到用于预估代码评审时间的目标预估模型中,确定评审所述待评审代码对象需要消耗的预估时间,包括:
从所述目标预估模型中,获取预先训练获得的所述特征信息与评审样本代码对象所消耗的实际时间之间的数据关系;
根据所述特征信息和所述数据关系,确定评审所述待评审代码对象需要消耗的预估时间。
4.根据权利要求2所述的用于代码评审的耗时确定方法,其特征在于,所述目标预估模型通过以下步骤获得:
获取样本代码对象;
获取评审所述样本代码对象所消耗的实际时间;
获取所述样本代码对象的特征信息;
将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型。
5.根据权利要求4所述的用于代码评审的耗时确定方法,其特征在于,所述将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,包括:
将所述特征信息和所述评审所述样本代码对象所消耗的实际时间进行拟合处理,获得目标预估模型以建立所述特征信息和评审所述样本代码对象所消耗的实际时间之间的数据关系。
6.根据权利要求4所述的用于代码评审的耗时确定方法,其特征在于,所述获取评审所述样本代码对象所消耗的实际时间,包括:
获取评审所述样本代码对象时的用户行为数据;
从所述用户行为数据中,获取评审所述样本代码对象所消耗的实际时间。
7.根据权利要求6所述的用于代码评审的耗时确定方法,其特征在于,所述从所述用户行为数据中,获取评审所述样本代码对象所消耗的实际时间,包括:
从所述用户行为数据中,获取评审所述样本代码对象所消耗的第一实际时间;
从所述用户行为数据中,获取评审所述样本代码对象所消耗的第二实际时间,其中,所述第二实际时间晚于所述第一实际时间;
将所述第一实际时间和所述第二实际时间的累加和作为评审所述样本代码对象所消耗的实际时间。
8.根据权利要求7所述的用于代码评审的耗时确定方法,其特征在于,所述从所述用户行为数据中,获取评审所述样本代码对象所消耗的第一实际时间,包括:
从所述用户行为数据中,获取评审所述样本代码对象的开始时间信息,作为第一时间信息;
从所述用户行为数据中,获取对所述样本代码对象之后的下一个样本代码对象进行评审的开始时间信息,作为第二时间信息;
将所述第一时间信息和所述第二时间信息的差值的绝对值作为评审所述样本代码对象所消耗的第一实际时间。
9.根据权利要求7所述的用于代码评审的耗时确定方法,其特征在于,所述将所述第一实际时间和所述第二实际时间的累加和作为评审所述样本代码对象所消耗的实际时间,包括:
如果所述累加和不小于预设的最小时间阈值,并且不大于预设的最大时间阈值,则将所述累加和作为所述评审所述样本代码对象所消耗的实际时间。
10.根据权利要求7所述的用于代码评审的耗时确定方法,其特征在于,所述将所述第一实际时间和所述第二实际时间的累加和作为评审所述样本代码对象所消耗的实际时间,包括:
获取所述累加和与所述样本代码对象包含的有效增删代码行的比值;如果所述比值不小于预设的最小过滤比值阈值,并且不大于预设的最大过滤比值阈值,则将所述累加和作为评审所述样本代码对象所消耗的实际时间。
11.根据权利要求1所述的用于代码评审的耗时确定方法,其特征在于,还包括:
客户端向服务端发送用于获取所述预估时间的数据请求消息;
所述客户端获取所述服务端提供的所述预估时间;
所述客户端展示所述预估时间。
12.根据权利要求1所述的用于代码评审的耗时确定方法,其特征在于,还包括:服务端将所述预估时间提供给客户端。
13.根据权利要求12所述的用于代码评审的耗时确定方法,其特征在于,还包括:所述服务端获得所述客户端发送的用于获取所述预估时间的数据请求消息;
所述服务端将所述预估时间提供给客户端,包括:所述服务端针对所述数据请求消息,将所述预估时间提供给客户端。
14.根据权利要求1所述的用于代码评审的耗时确定方法,其特征在于,所述待评审代码对象中的变更代码的特征信息,包括以下至少一种特征信息:
所述变更代码的总行数信息、所述变更代码中的有效变更行信息、用于表示所述变更代码的分散程度的熵值信息、所述变更代码所包含的代码区块的个数信息,其中,所述代码区块是在所述变更代码中包含至少一行变更代码的区域、所述变更代码中的大区块行数信息,其中,所述大区块行数信息是在所述变更代码中的连续变更行数大于预设的行数阈值的区域、所述变更代码中的代码区块间隔行数信息、所述变更代码中的增删行相似度信息、用于表示所述变更代码是否为测试代码的标识信息、所述变更代码对应的编程语言标识信息、所述变更代码中的唯一运算符信息、所述变更代码中的词汇数信息、用于表示理解和实现所述变更代码的困难程度的困难度信息以及用于表示所述变更代码的抽象程度的编码级别信息。
15.根据权利要求14所述的用于代码评审的耗时确定方法,其特征在于,所述变更代码中的有效变更行信息,包括:所述变更代码中的有效增加行信息、所述变更代码中的有效删除行信息和所述变更代码中的有效变更行与所述待评审代码对象的所有代码行的比值信息。
16.根据权利要求14所述的用于代码评审的耗时确定方法,其特征在于,所述困难度信息使用以下步骤获得:
将所述变更代码中的唯一运算符的总数与预设的常数数值的比值作为第一比值;
将所述变更代码中的所有运算对象的总数与所述变更代码中的唯一运算对象的总数的比值作为第二比值;
将所述第一比值和所述第二比值的乘积作为所述困难度信息。
17.一种预估模型的获取方法,其特征在于,包括:
获取样本代码对象;
获取评审所述样本代码对象所消耗的实际时间;
获取所述样本代码对象的特征信息;
将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间;
其中,所述待评审代码对象的特征信息,包括:所述待评审代码对象中的变更代码的特征信息、与所述待评审代码对象对应的项目历史特征信息以及与所述待评审代码对象对应的评审人的特征信息;
所述与所述待评审代码对象对应的项目历史特征信息,包括以下至少一种特征信息:
所述待评审代码对象在预定时间周期内对应的提交频率、在预定时间周期内对所述待评审代码对象进行提交操作的人员总数、所述待评审代码对象在预定时间周期内对应的修复性提交频率、所述待评审代码对象在预定时间周期内对应的评价信息的总数;
所述与所述待评审代码对象对应的评审人的特征信息,包括以下至少一种特征信息:
所述评审人针对所述待评审代码对象的历史平均评审时间、所述评审人针对所述待评审代码对象的历史逐行评审时间。
18.一种用于代码评审的耗时确定装置,其特征在于,包括:
对象获取单元,用于获取待评审代码对象;
信息获取单元,用于获取所述待评审代码对象的特征信息;
预估时间确定单元,用于根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间;
其中,用于获取所述待评审代码对象的特征信息,包括:所述待评审代码对象中的变更代码的特征信息、与所述待评审代码对象对应的项目历史特征信息以及与所述待评审代码对象对应的评审人的特征信息;
所述与所述待评审代码对象对应的项目历史特征信息,包括以下至少一种特征信息:
所述待评审代码对象在预定时间周期内对应的提交频率、在预定时间周期内对所述待评审代码对象进行提交操作的人员总数、所述待评审代码对象在预定时间周期内对应的修复性提交频率、所述待评审代码对象在预定时间周期内对应的评价信息的总数;
所述与所述待评审代码对象对应的评审人的特征信息,包括以下至少一种特征信息:
所述评审人针对所述待评审代码对象的历史平均评审时间、所述评审人针对所述待评审代码对象的历史逐行评审时间。
19.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储用于代码评审的耗时确定方法的程序,该设备通电并通过所述处理器运行所述用于代码评审的耗时确定方法的程序后,执行下述步骤:
获取待评审代码对象;
获取所述待评审代码对象的特征信息;
根据所述特征信息,确定评审所述待评审代码对象需要消耗的预估时间;
其中,所述获取所述待评审代码对象的特征信息,包括:所述待评审代码对象中的变更代码的特征信息、与所述待评审代码对象对应的项目历史特征信息以及与所述待评审代码对象对应的评审人的特征信息;
所述与所述待评审代码对象对应的项目历史特征信息,包括以下至少一种特征信息:
所述待评审代码对象在预定时间周期内对应的提交频率、在预定时间周期内对所述待评审代码对象进行提交操作的人员总数、所述待评审代码对象在预定时间周期内对应的修复性提交频率、所述待评审代码对象在预定时间周期内对应的评价信息的总数;
所述与所述待评审代码对象对应的评审人的特征信息,包括以下至少一种特征信息:
所述评审人针对所述待评审代码对象的历史平均评审时间、所述评审人针对所述待评审代码对象的历史逐行评审时间。
20.一种预估模型的获取装置,其特征在于,包括:
样本代码对象获取单元,用于获取样本代码对象;
实际时间获取单元,用于获取评审所述样本代码对象所消耗的实际时间;
特征信息获取单元,用于获取所述样本代码对象的特征信息;
模型获得单元,用于将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的预估时间;
其中,所述待评审代码对象的特征信息,包括:所述待评审代码对象中的变更代码的特征信息、与所述待评审代码对象对应的项目历史特征信息以及与所述待评审代码对象对应的评审人的特征信息;
所述与所述待评审代码对象对应的项目历史特征信息,包括以下至少一种特征信息:
所述待评审代码对象在预定时间周期内对应的提交频率、在预定时间周期内对所述待评审代码对象进行提交操作的人员总数、所述待评审代码对象在预定时间周期内对应的修复性提交频率、所述待评审代码对象在预定时间周期内对应的评价信息的总数;
所述与所述待评审代码对象对应的评审人的特征信息,包括以下至少一种特征信息:
所述评审人针对所述待评审代码对象的历史平均评审时间、所述评审人针对所述待评审代码对象的历史逐行评审时间。
21.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储预估模型的获取方法的程序,该设备通电并通过所述处理器运行所述预估模型的获取方法的程序后,执行下述步骤:
获取样本代码对象;
获取评审所述样本代码对象所消耗的实际时间;
获取所述样本代码对象的特征信息;
将所述特征信息和所述评审所述样本代码对象所消耗的实际时间作为样本数据,训练获得目标预估模型,其中,所述目标预估模型用于根据待评审代码对象的特征信息确定评审所述待评审代码对象需要消耗的时间;
其中,所述待评审代码对象的特征信息,包括:所述待评审代码对象中的变更代码的特征信息、与所述待评审代码对象对应的项目历史特征信息以及与所述待评审代码对象对应的评审人的特征信息;
所述与所述待评审代码对象对应的项目历史特征信息,包括以下至少一种特征信息:
所述待评审代码对象在预定时间周期内对应的提交频率、在预定时间周期内对所述待评审代码对象进行提交操作的人员总数、所述待评审代码对象在预定时间周期内对应的修复性提交频率、所述待评审代码对象在预定时间周期内对应的评价信息的总数;
所述与所述待评审代码对象对应的评审人的特征信息,包括以下至少一种特征信息:
所述评审人针对所述待评审代码对象的历史平均评审时间、所述评审人针对所述待评审代码对象的历史逐行评审时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911227004.2A CN112905224B (zh) | 2019-12-04 | 2019-12-04 | 一种用于代码评审的耗时确定方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911227004.2A CN112905224B (zh) | 2019-12-04 | 2019-12-04 | 一种用于代码评审的耗时确定方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112905224A CN112905224A (zh) | 2021-06-04 |
CN112905224B true CN112905224B (zh) | 2024-04-30 |
Family
ID=76104664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911227004.2A Active CN112905224B (zh) | 2019-12-04 | 2019-12-04 | 一种用于代码评审的耗时确定方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905224B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007323299A (ja) * | 2006-05-31 | 2007-12-13 | Sharp Corp | レビュー実施順序決定装置、レビュー実施順序決定プログラム、レビュー実施順序決定プログラムが格納された記録媒体およびレビュー実施順序決定方法 |
CN104572103A (zh) * | 2015-01-08 | 2015-04-29 | 西安空间无线电技术研究所 | 一种基于分布函数的wcet快速估计方法 |
CN106484606A (zh) * | 2015-09-01 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种代码提交方法和设备 |
CN107807978A (zh) * | 2017-10-26 | 2018-03-16 | 北京航空航天大学 | 一种基于协同过滤的代码评审者推荐方法 |
CN108089984A (zh) * | 2017-12-14 | 2018-05-29 | 泰康保险集团股份有限公司 | 代码评审的实现方法、装置、存储介质及电子设备 |
CN109002294A (zh) * | 2018-07-16 | 2018-12-14 | 浪潮电子信息产业股份有限公司 | 一种代码审查方法、装置、设备及可读存储介质 |
CN109086968A (zh) * | 2018-07-06 | 2018-12-25 | 深圳源码智能科技有限公司 | 实现共识算法的方法和装置 |
CN109146139A (zh) * | 2018-07-25 | 2019-01-04 | 北京炎黄盈动科技发展有限责任公司 | 一种事件时间预测方法及装置 |
CN110059953A (zh) * | 2019-04-16 | 2019-07-26 | 睿驰达新能源汽车科技(北京)有限公司 | 一种评审工作质量的评估方法及装置 |
CN110286938A (zh) * | 2019-07-03 | 2019-09-27 | 北京百度网讯科技有限公司 | 用于输出针对用户的评价信息的方法和装置 |
CN110297656A (zh) * | 2019-05-23 | 2019-10-01 | 重庆金融资产交易所有限责任公司 | 基于配置模型评审代码的方法、装置及计算机设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9916224B2 (en) * | 2015-09-15 | 2018-03-13 | Linkedin Corporation | Integrating quality analysis with a code review tool |
-
2019
- 2019-12-04 CN CN201911227004.2A patent/CN112905224B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007323299A (ja) * | 2006-05-31 | 2007-12-13 | Sharp Corp | レビュー実施順序決定装置、レビュー実施順序決定プログラム、レビュー実施順序決定プログラムが格納された記録媒体およびレビュー実施順序決定方法 |
CN104572103A (zh) * | 2015-01-08 | 2015-04-29 | 西安空间无线电技术研究所 | 一种基于分布函数的wcet快速估计方法 |
CN106484606A (zh) * | 2015-09-01 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种代码提交方法和设备 |
CN107807978A (zh) * | 2017-10-26 | 2018-03-16 | 北京航空航天大学 | 一种基于协同过滤的代码评审者推荐方法 |
CN108089984A (zh) * | 2017-12-14 | 2018-05-29 | 泰康保险集团股份有限公司 | 代码评审的实现方法、装置、存储介质及电子设备 |
CN109086968A (zh) * | 2018-07-06 | 2018-12-25 | 深圳源码智能科技有限公司 | 实现共识算法的方法和装置 |
CN109002294A (zh) * | 2018-07-16 | 2018-12-14 | 浪潮电子信息产业股份有限公司 | 一种代码审查方法、装置、设备及可读存储介质 |
CN109146139A (zh) * | 2018-07-25 | 2019-01-04 | 北京炎黄盈动科技发展有限责任公司 | 一种事件时间预测方法及装置 |
CN110059953A (zh) * | 2019-04-16 | 2019-07-26 | 睿驰达新能源汽车科技(北京)有限公司 | 一种评审工作质量的评估方法及装置 |
CN110297656A (zh) * | 2019-05-23 | 2019-10-01 | 重庆金融资产交易所有限责任公司 | 基于配置模型评审代码的方法、装置及计算机设备 |
CN110286938A (zh) * | 2019-07-03 | 2019-09-27 | 北京百度网讯科技有限公司 | 用于输出针对用户的评价信息的方法和装置 |
Non-Patent Citations (1)
Title |
---|
效力优化的代码评审者推荐模型;张小鹏;赵逢禹;刘亚;;小型微型计算机系统;20181115(11);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112905224A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3848843A1 (en) | Data processing systems for identifying whether cookies contain personally identifying information | |
CN109543925B (zh) | 基于机器学习的风险预测方法、装置、计算机设备和存储介质 | |
JP2018526710A (ja) | 情報推薦方法および情報推薦装置 | |
US10423409B2 (en) | Weighting static analysis alerts | |
CN110197445B (zh) | 知识产权状态的生成、查询方法、计算机设备及存储介质 | |
CN111666201A (zh) | 回归测试方法、装置、介质及电子设备 | |
CN112783762A (zh) | 软件质量的评估方法、装置及服务器 | |
US10282398B1 (en) | Editing tool for domain-specific objects with reference variables corresponding to preceding pages | |
CN113535577B (zh) | 基于知识图谱的应用测试方法、装置、电子设备和介质 | |
US8782626B2 (en) | Search suggestions for static code analysis | |
CN108228611B (zh) | 单据信息抄写方法和装置 | |
CN110472852B (zh) | 一种电力服务应用的体验测评实施管理方法 | |
CN112905224B (zh) | 一种用于代码评审的耗时确定方法、装置及设备 | |
CN110941760A (zh) | 基于信息推荐的用户评估方法、系统、服务器和存储介质 | |
US10541890B1 (en) | Windowed approach to analytics processing | |
CN113672497B (zh) | 无埋点事件的生成方法、装置、设备及存储介质 | |
CN111143220B (zh) | 一种软件测试的训练系统及方法 | |
US11995584B2 (en) | Training assignment tool | |
US20140316851A1 (en) | Predicting customer receptivity for commercial engagement | |
JP6520246B2 (ja) | 情報処理装置及び情報処理プログラム | |
CN112949670B (zh) | 用于联邦学习模型的数据集切换方法和装置 | |
JP4819441B2 (ja) | 電子広告解析のプログラム | |
CN115309870B (zh) | 一种知识获取方法及装置 | |
CN114817074A (zh) | 压力测试评估方法、装置、设备、介质及程序产品 | |
GB2615885A (en) | System and method for autonomous cognitive test stratagem (ACTS) |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40050676 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |