CN111159013A - 一种代码质量的评估方法及装置 - Google Patents

一种代码质量的评估方法及装置 Download PDF

Info

Publication number
CN111159013A
CN111159013A CN201911258223.7A CN201911258223A CN111159013A CN 111159013 A CN111159013 A CN 111159013A CN 201911258223 A CN201911258223 A CN 201911258223A CN 111159013 A CN111159013 A CN 111159013A
Authority
CN
China
Prior art keywords
change
file
class file
evaluation
class
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.)
Granted
Application number
CN201911258223.7A
Other languages
English (en)
Other versions
CN111159013B (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.)
WeBank Co Ltd
Original Assignee
WeBank 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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201911258223.7A priority Critical patent/CN111159013B/zh
Publication of CN111159013A publication Critical patent/CN111159013A/zh
Application granted granted Critical
Publication of CN111159013B publication Critical patent/CN111159013B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及金融科技(Fintech)领域,并公开了一种代码质量的评估方法及装置,其中,方法包括:获取变更类文件;其中,变更类文件是定义变更函数的代码,变更函数是根据第一类文件和第二类文件确定的代码变更所对应的函数;第一类文件是最新提交的定义函数的代码,第二类文件是提交第一类文件之前一次提交的定义函数的代码;第一类文件和第二类文件定义相同业务所涉及的函数;根据变更类文件和第一类文件,确定变更类文件的质量。该技术方案用以在进行代码的质量评估时避免对业务源码进行编译,降低质量评估的复杂度。

Description

一种代码质量的评估方法及装置
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种代码质量的评估方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Finteh)转变,计算机技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
在对业务代码的质量进行管理时,现有技术中主要对全量业务的源码进行编译以生成字节码,然后统计字节码中方法的圈复杂度,以实现对全量业务代码的质量评估。但该质量评估方式需要对全量业务源码进行编译,导致整个质量评估的复杂度较高。
发明内容
本发明实施例提供一种代码质量的评估方法及装置,用以在质量评估时避免对业务源码进行编译,降低质量评估的复杂度。
本发明实施例提供的一种代码质量的评估方法,包括:
获取变更类文件;所述变更类文件是定义变更函数的代码,所述变更函数是根据第一类文件和第二类文件确定的代码变更所对应的函数;所述第一类文件是最新提交的定义函数的代码,所述第二类文件是提交所述第一类文件之前一次提交的定义函数的代码;所述第一类文件和所述第二类文件定义相同业务所涉及的函数;
根据所述变更类文件和所述第一类文件,确定所述变更类文件的质量。
可选的,所述根据所述变更类文件和所述第一类文件,确定所述变更类文件的质量,包括:
根据所述变更类文件,确定所述变更类文件的第一评估参数;所述第一评估参数至少包括所述变更类文件中的代码总行数、判断语句的嵌套层次、条件语句块的个数;
根据所述第一类文件,确定所述第一类文件的第二评估参数;所述第二评估参数至少包括所述第一类文件中的代码总行数、函数个数;
根据所述第一评估参数和所述第二评估参数,确定所述变更类文件的质量。
可选的,所述根据所述第一评估参数和所述第二评估参数,确定所述变更类文件的质量,包括:
若确定所述第一评估参数大于第一阈值且所述第二评估参数大于第二阈值,则生成相关通知并经过邮件发送。
可选的,所述第一类文件中包括M个变更类文件;每个变更类文件唯一对应第一评估参数;
所述确定所述变更类文件的质量之后,还包括:
确定M个第一评估参数的均值;
根据所述M个第一评估参数的均值和所述第二评估参数,确定所述第一类文件的质量。
可选的,所述方法还包括:
针对所述第一类文件之前提交的N-1次历史类文件中的任一个,获取所述历史类文件对应的历史变更类文件的第一评估参数、所述历史类文件的第二评估参数;所述第一类文件和所述N-1次历史类文件都是在预设时段内提交的;
根据所述变更类文件的第一评估参数和N-1个历史变更类文件的第一评估参数,确定N个第一评估参数的均值;
根据所述第一类文件的第二评估参数和N-1个历史类文件的第二评估参数,确定N个第二评估参数的均值;
根据所述N个第一评估参数的均值和N个第二评估参数的均值,确定所述预设时段内的所述定义相同业务所涉及的函数的修改情况。
上述技术方案中,不是对最新提交的全量业务代码进行质量评估,而是确定出最新提交业务代码中相比于上一次提交业务代码的变更代码,进而确定该变更代码的质量,相比于评估全量业务代码,降低了代码质量评估的复杂性,进一步的,在对变更代码的质量评估时,该变更代码是用于定义变更函数的代码,也即定义变更函数的类,相当于是从类定义层面去评估变更代码质量,加快评估速度。
相应的,本发明实施例还提供了一种代码质量的评估装置,包括:
获取模块,用于获取变更类文件;所述变更类文件是定义变更函数的代码,所述变更函数是根据第一类文件和第二类文件确定的代码变更所对应的函数;所述第一类文件是最新提交的定义函数的代码,所述第二类文件是提交所述第一类文件之前一次提交的定义函数的代码;所述第一类文件和所述第二类文件定义相同业务所涉及的函数;
评估模块,用于根据所述变更类文件和所述第一类文件,确定所述变更类文件的质量。
可选的,所述评估模块具体用于:
根据所述变更类文件,确定所述变更类文件的第一评估参数;所述第一评估参数至少包括所述变更类文件中的代码总行数、判断语句的嵌套层次、条件语句块的个数;
根据所述第一类文件,确定所述第一类文件的第二评估参数;所述第二评估参数至少包括所述第一类文件中的代码总行数、函数个数;
根据所述第一评估参数和所述第二评估参数,确定所述变更类文件的质量。
可选的,所述评估模块具体用于:
若确定所述第一评估参数大于第一阈值且所述第二评估参数大于第二阈值,则生成相关通知并经过邮件发送。
可选的,所述第一类文件中包括M个变更类文件;每个变更类文件唯一对应第一评估参数;
所述评估模块还用于:
在所述确定所述变更类文件的质量之后,确定M个第一评估参数的均值;
根据所述M个第一评估参数的均值和所述第二评估参数,确定所述第一类文件的质量。
可选的,所述评估模块还用于:
针对所述第一类文件之前提交的N-1次历史类文件中的任一个,获取所述历史类文件对应的历史变更类文件的第一评估参数、所述历史类文件的第二评估参数;所述第一类文件和所述N-1次历史类文件都是在预设时段内提交的;
根据所述变更类文件的第一评估参数和N-1个历史变更类文件的第一评估参数,确定N个第一评估参数的均值;
根据所述第一类文件的第二评估参数和N-1个历史类文件的第二评估参数,确定N个第二评估参数的均值;
根据所述N个第一评估参数的均值和N个第二评估参数的均值,确定所述预设时段内的所述定义相同业务所涉及的函数的修改情况。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述代码质量的评估方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述代码质量的评估方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构的示意图;
图2为本发明实施例提供的一种代码质量的评估方法的流程示意图;
图3为本发明实施例提供的另一种代码质量的评估方法的流程示意图;
图4为本发明实施例提供的一种代码质量的评估装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例提供代码质量的评估方法所适用的系统架构,该系统架构可以包括代码质量评估系统100和客户端200;代码开发人员作为提交者将更新版本后的业务代码通过客户端200提交至代码质量评估系统100,该代码质量评估系统100基于提交者当前提交的最新版本的业务代码和之前提交的业务代码,确定当前提交的最新版本的业务代码的质量。
基于上述描述,图2示例性的示出了本发明实施例提供的一种代码质量的评估方法的流程,该流程可以由代码质量的评估装置执行,该装置可以位于代码质量评估系统中,可以是该代码质量评估系统。
如图2所示,该流程具体包括:
步骤201,获取变更类文件;
此处,变更类文件是定义变更函数的代码,变更函数指的是根据第一类文件和第二类文件确定的代码变更所对应的函数,第一类文件是最新提交的用于定义函数的代码,第二类文件是提交第一类文件之前一次提交的用于定义函数的代码,且第一类文件和第二类文件用于定义相同业务所涉及的函数。
也就是说,提交者就同一个业务向代码质量评估系统前后提交了两个类文件,分别是第一类文件和第二类文件,二者均是对同一个业务所涉及的函数的定义,代码质量评估系统会根据该第一类文件和第二类文件对比出该两次提交的类文件的区别,也即代码发生变更的函数,并将该代码发生变更的函数的代码作为变更类文件。
本发明实施例中,该代码质量评估系统可以包括管理模块和评估模块,其中,管理模块用于接收第一类文件和第二类文件,对比第一类文件和第二类文件,并确定变更类文件在第一类文件中的位置,以生成变更类文件的位置信息。评估模块从管理模块中获取变更类文件的定位信息和第一类文件,以及根据变更类文件的定位信息从第一类文件中获取变更类文件。
具体实现中,提交者可以通过客户端向管理模块提交最新版本的类文件,相应的,管理模块会生成提交信息,该提交信息中包括提交者信息、本次提交标识、修改文件名、文件路径、文件内容所在行数,其中,文件内容所在行数即管理模块根据本次提交的类文件和上一次提交的类文件确定出的发生变化的代码在本次提交的类文件中所在的位置信息。管理模块可以向评估模块提供用于评估模块进行监听的接口,也即,管理模块每次生成的提交信息都会被评估模块监听到。评估模块在获取到提交信息后,会将该提交信息进行解析并存储至数据库中,同时以异步方式处理该提交信息。具体的,管理模块根据提交信息中的修改文件名、文件路径从管理模块中获取本次提交的类文件,进而根据文件内容所在行数从本次提交的类文件中获取变更类文件。
步骤202,根据变更类文件和第一类文件,确定变更类文件的质量。
可以是根据变更类文件确定用于评估变更类文件的质量的第一评估参数,以根据第一类文件确定用于评估变更类文件的质量的第二评估参数,进而根据第一评估参数和第二评估参数确定变更类文件的质量。若确定第一评估参数大于第一阈值且第二评估参数大于第二阈值,则生成相关通知并经过邮件发送。其中,第一阈值和第二阈值都是根据人为经验确定的,且二者都可以随着业务代码的变化而浮动。
此处,第一评估参数至少包括变更类文件中的代码总行数、判断语句的嵌套层次、条件语句块的个数;第二评估参数至少包括第二类文件中的代码总行数、函数个数。可以理解为,第一评估参数包括多个维度的参数,第二评估参数包括多个维度的参数,在根据第一评估参数和第二评估参数确定变更类文件的质量时,可以是在确定第一评估参数的各个维度的参数均大于对应的预设阈值且第二评估参数的各个维度的参数均大于对应的预设阈值后,确定该变更类文件存在复杂度较高、逻辑嵌套过深的问题,不利于代码的维护、阅读、测试等,需要进行精简,则可以将该相关信息发送至相关修改人和系统负责人,以进行提醒。
此外,不仅可以针对第一评估参数和第二评估参数的各个维度的参数与对应的预设阈值进行比较,还可以确定第一评估参数与第二评估参数的相对值,比如,变更类文件的代码总行数与第一类文件的代码总行数的比值,以用于评估变更类文件的质量。
本发明实施例中,不是对最新提交的全量业务代码进行质量评估,而是确定出最新提交业务代码中相比于上一次提交业务代码的变更代码,进而确定该变更代码的质量,相比于评估全量业务代码,降低了代码质量评估的复杂性,进一步的,在对变更代码的质量评估时,该变更代码是用于定义变更函数的代码,也即定义变更函数的类,相当于是从类定义层面去评估变更代码质量,加快评估速度。
此外,当提交者在提交一个第一类文件时,该最新提交的第一类文件相比于第二类文件可能确定出M个变更类文件,其中,M大于1,则可以有如下实现方式:针对每个变更类文件确定其唯一对应的第一评估参数,从而可以确定出M个第一评估参数,然后计算该M个第一评估参数的均值,并结合该M个第一评估参数的均值和第二评估参数以确定整体类文件的质量,也即最新提交的该第一类文件的质量。
进一步的,还可以结合近一段时间内多次提交的类文件以确定该段时间内的用于定义该相同业务所涉及的函数的代码修改情况,具体的,假设在预设时段内,包括第一类文件在内一共提交了N个类文件,其中,N大于1,也即在第一类文件之前一共进行了N-1次提交,即一共提交了N-1个历史类文件。针对该N-1个历史类文件中的任一个,获取该历史类文件对应的历史变更类文件的第一评估参数、历史类文件的第二评估参数。比如,预设时段内共提交了5次,最新一次提交第一类文件对应的变更类文件的第一评估参数为A1,第一类文件的第二评估参数为A2,之前4次提交的历史类文件对应的变更类文件的第一评估参数分别为B1、C1、D1、E1,4次提交的历史类文件的第二评估参数分别为B2、C2、D2、E2,则计算5个第一评估参数的平均值(A1+B1+C1+D1+E1)/5,5个第二评估参数的平均值(A2+B2+C2+D2+E2)/5,从而根据两个平均值确定这段时间内业务代码修改的质量。
此外,还可以根据历次的第一评估参数和第二评估参数确定业务代码变更的趋势,比如,变更代码的总行数逐渐减少,或者变更代码的嵌套层次越来越深,从而对业务代码的质量进行多维度的评估。
基于上述描述,为了更好的解释本发明,下面提供一个具体的实施例,流程可以如图3所示,此处,管理模块可以是gib。
步骤301,评估模块监听gib提交的信息,其中,gib提交的信息中包括提交者信息、本次提交标识、修改文件名、文件路径、文件内容所在行数等信息。
步骤302,评估模块将gib提交的信息存储至数据库中。
步骤303,评估模块根据修改文件名、文件路径从gitlab中获取第一类文件,并根据文件内容所在行数从第一类文件确定变更类文件。
步骤304,评估模块评估变更类文件的质量。
解析变更类文件,以确定函数的总行数、条件语句的嵌套层次、条件语句块的个数,解析第一变更类文件,以确定类总行数、类总函数个数等,进而根据确定出的各评估参数评估此次变更类文件的质量。
步骤305,评估模块评估本次提交的第一类文件的整体质量。
评估模块可以收集此次提交的第一类文件中的多个变更类文件的不同维度的评估参数,并针对每个维度计算该多个变更类文件的评估参数的均值,根据本次提交的各维度的评估参数的均值评估第一类文件的整体质量。
步骤306,评估模块评估预设时段内修改的整体代码质量。
结合步骤305中各维度的评估参数的均值,计算最近一段时间内的平均评估参数,如最近10次修改、最近7天内的修改,以用于衡量预设时段内修改的整体代码质量。
上述步骤中,任何一次评估确定的评估参数以及评估结果都可以存储至数据库中,且任何一个维度的参数超过对应的阈值,则会通过邮件系统通知相关人员。此外,还可以基于数据库中各维度的评估参数,确定各维度的评估参数的走势曲线,形成报告以展示给相关人员。
基于同一发明构思,图4示例性的示出了本发明实施例提供的一种代码质量的评估装置的结构,该装置可以执行代码质量的评估方法的流程。
所述装置包括:
获取模块401,用于获取变更类文件;所述变更类文件是定义变更函数的代码,所述变更函数是根据第一类文件和第二类文件确定的代码变更所对应的函数;所述第一类文件是最新提交的定义函数的代码,所述第二类文件是提交所述第一类文件之前一次提交的定义函数的代码;所述第一类文件和所述第二类文件定义相同业务所涉及的函数;
评估模块402,用于根据所述变更类文件和所述第一类文件,确定所述变更类文件的质量。
可选的,所述评估模块402具体用于:
根据所述变更类文件,确定所述变更类文件的第一评估参数;所述第一评估参数至少包括所述变更类文件中的代码总行数、判断语句的嵌套层次、条件语句块的个数;
根据所述第一类文件,确定所述第一类文件的第二评估参数;所述第二评估参数至少包括所述第一类文件中的代码总行数、函数个数;
根据所述第一评估参数和所述第二评估参数,确定所述变更类文件的质量。
可选的,所述评估模块402具体用于:
若确定所述第一评估参数大于第一阈值且所述第二评估参数大于第二阈值,则生成相关通知并经过邮件发送。
可选的,所述第一类文件中包括M个变更类文件;每个变更类文件唯一对应第一评估参数;
所述评估模块402还用于:
在所述确定所述变更类文件的质量之后,确定M个第一评估参数的均值;
根据所述M个第一评估参数的均值和所述第二评估参数,确定所述第一类文件的质量。
可选的,所述评估模块402还用于:
针对所述第一类文件之前提交的N-1次历史类文件中的任一个,获取所述历史类文件对应的历史变更类文件的第一评估参数、所述历史类文件的第二评估参数;所述第一类文件和所述N-1次历史类文件都是在预设时段内提交的;
根据所述变更类文件的第一评估参数和N-1个历史变更类文件的第一评估参数,确定N个第一评估参数的均值;
根据所述第一类文件的第二评估参数和N-1个历史类文件的第二评估参数,确定N个第二评估参数的均值;
根据所述N个第一评估参数的均值和N个第二评估参数的均值,确定所述预设时段内的所述定义相同业务所涉及的函数的修改情况。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述代码质量的评估方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述代码质量的评估方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种代码质量的评估方法,其特征在于,包括:
获取变更类文件;所述变更类文件是定义变更函数的代码,所述变更函数是根据第一类文件和第二类文件确定的代码变更所对应的函数;所述第一类文件是最新提交的定义函数的代码,所述第二类文件是提交所述第一类文件之前一次提交的定义函数的代码;所述第一类文件和所述第二类文件定义相同业务所涉及的函数;
根据所述变更类文件和所述第一类文件,确定所述变更类文件的质量。
2.如权利要求1所述的方法,其特征在于,所述根据所述变更类文件和所述第一类文件,确定所述变更类文件的质量,包括:
根据所述变更类文件,确定所述变更类文件的第一评估参数;所述第一评估参数至少包括所述变更类文件中的代码总行数、判断语句的嵌套层次、条件语句块的个数;
根据所述第一类文件,确定所述第一类文件的第二评估参数;所述第二评估参数至少包括所述第一类文件中的代码总行数、函数个数;
根据所述第一评估参数和所述第二评估参数,确定所述变更类文件的质量。
3.如权利要求2所述的方法,其特征在于,所述根据所述第一评估参数和所述第二评估参数,确定所述变更类文件的质量,包括:
若确定所述第一评估参数大于第一阈值且所述第二评估参数大于第二阈值,则生成相关通知并经过邮件发送。
4.如权利要求2或3所述的方法,其特征在于,所述第一类文件中包括M个变更类文件;每个变更类文件唯一对应第一评估参数;
所述确定所述变更类文件的质量之后,还包括:
确定M个第一评估参数的均值;
根据所述M个第一评估参数的均值和所述第二评估参数,确定所述第一类文件的质量。
5.如权利要求2或3所述的方法,其特征在于,所述方法还包括:
针对所述第一类文件之前提交的N-1次历史类文件中的任一个,获取所述历史类文件对应的历史变更类文件的第一评估参数、所述历史类文件的第二评估参数;所述第一类文件和所述N-1次历史类文件都是在预设时段内提交的;
根据所述变更类文件的第一评估参数和N-1个历史变更类文件的第一评估参数,确定N个第一评估参数的均值;
根据所述第一类文件的第二评估参数和N-1个历史类文件的第二评估参数,确定N个第二评估参数的均值;
根据所述N个第一评估参数的均值和N个第二评估参数的均值,确定所述预设时段内的所述定义相同业务所涉及的函数的修改情况。
6.一种代码质量的评估装置,其特征在于,包括:
获取模块,用于获取变更类文件;所述变更类文件是定义变更函数的代码,所述变更函数是根据第一类文件和第二类文件确定的代码变更所对应的函数;所述第一类文件是最新提交的定义函数的代码,所述第二类文件是提交所述第一类文件之前一次提交的定义函数的代码;所述第一类文件和所述第二类文件定义相同业务所涉及的函数;
评估模块,用于根据所述变更类文件和所述第一类文件,确定所述变更类文件的质量。
7.如权利要求6所述的装置,其特征在于,所述评估模块具体用于:
根据所述变更类文件,确定所述变更类文件的第一评估参数;所述第一评估参数至少包括所述变更类文件中的代码总行数、判断语句的嵌套层次、条件语句块的个数;
根据所述第一类文件,确定所述第一类文件的第二评估参数;所述第二评估参数至少包括所述第一类文件中的代码总行数、函数个数;
根据所述第一评估参数和所述第二评估参数,确定所述变更类文件的质量。
8.如权利要求7所述的装置,其特征在于,所述评估模块具体用于:
若确定所述第一评估参数大于第一阈值且所述第二评估参数大于第二阈值,则生成相关通知并经过邮件发送。
9.如权利要求7或8所述的装置,其特征在于,所述第一类文件中包括M个变更类文件;每个变更类文件唯一对应第一评估参数;
所述评估模块还用于:
在所述确定所述变更类文件的质量之后,确定M个第一评估参数的均值;
根据所述M个第一评估参数的均值和所述第二评估参数,确定所述第一类文件的质量。
10.如权利要求7或8所述的装置,其特征在于,所述评估模块还用于:
针对所述第一类文件之前提交的N-1次历史类文件中的任一个,获取所述历史类文件对应的历史变更类文件的第一评估参数、所述历史类文件的第二评估参数;所述第一类文件和所述N-1次历史类文件都是在预设时段内提交的;
根据所述变更类文件的第一评估参数和N-1个历史变更类文件的第一评估参数,确定N个第一评估参数的均值;
根据所述第一类文件的第二评估参数和N-1个历史类文件的第二评估参数,确定N个第二评估参数的均值;
根据所述N个第一评估参数的均值和N个第二评估参数的均值,确定所述预设时段内的所述定义相同业务所涉及的函数的修改情况。
11.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至5任一项所述的方法。
12.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至5任一项所述的方法。
CN201911258223.7A 2019-12-10 2019-12-10 一种代码质量的评估方法及装置 Active CN111159013B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911258223.7A CN111159013B (zh) 2019-12-10 2019-12-10 一种代码质量的评估方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911258223.7A CN111159013B (zh) 2019-12-10 2019-12-10 一种代码质量的评估方法及装置

Publications (2)

Publication Number Publication Date
CN111159013A true CN111159013A (zh) 2020-05-15
CN111159013B CN111159013B (zh) 2023-05-12

Family

ID=70556681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911258223.7A Active CN111159013B (zh) 2019-12-10 2019-12-10 一种代码质量的评估方法及装置

Country Status (1)

Country Link
CN (1) CN111159013B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161028A1 (en) * 2013-12-09 2015-06-11 International Business Machines Corporation System and method for determining test coverage
CN104780076A (zh) * 2015-03-19 2015-07-15 杭州华三通信技术有限公司 一种代码检查方法和设备
CN107239396A (zh) * 2017-05-11 2017-10-10 东南大学 一种基于代码圈复杂度度量的软件演化评估方法
CN107688541A (zh) * 2017-09-15 2018-02-13 广州酷狗计算机科技有限公司 文件评审方法、装置、服务器及计算机可读存储介质
CN108536472A (zh) * 2018-03-13 2018-09-14 中国银行股份有限公司 一种代码的规范性检查方法及装置
US20190155715A1 (en) * 2017-11-21 2019-05-23 Accenture Global Solutions Limited Intelligent code quality monitoring
CN110018954A (zh) * 2018-12-25 2019-07-16 阿里巴巴集团控股有限公司 代码质量检测、代码检测质量的评估方法、装置及设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150161028A1 (en) * 2013-12-09 2015-06-11 International Business Machines Corporation System and method for determining test coverage
CN104780076A (zh) * 2015-03-19 2015-07-15 杭州华三通信技术有限公司 一种代码检查方法和设备
CN107239396A (zh) * 2017-05-11 2017-10-10 东南大学 一种基于代码圈复杂度度量的软件演化评估方法
CN107688541A (zh) * 2017-09-15 2018-02-13 广州酷狗计算机科技有限公司 文件评审方法、装置、服务器及计算机可读存储介质
US20190155715A1 (en) * 2017-11-21 2019-05-23 Accenture Global Solutions Limited Intelligent code quality monitoring
CN108536472A (zh) * 2018-03-13 2018-09-14 中国银行股份有限公司 一种代码的规范性检查方法及装置
CN110018954A (zh) * 2018-12-25 2019-07-16 阿里巴巴集团控股有限公司 代码质量检测、代码检测质量的评估方法、装置及设备

Also Published As

Publication number Publication date
CN111159013B (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
CN112365070B (zh) 一种电力负荷预测方法、装置、设备及可读存储介质
CN109740760B (zh) 文本质检自动化训练方法、电子装置及计算机设备
CN112162980A (zh) 数据质量管控方法及系统、存储介质、电子设备
CN110795326A (zh) 一种代码拦截检测方法、存储介质、电子设备及系统
CN111143390A (zh) 更新元数据的方法及装置
CN113485988A (zh) 一种数据质量监控方法、设备及计算机可读存储介质
CN115081651A (zh) 基于大数据的汽车配件管理方法、系统及计算机可读介质
CN106708875B (zh) 一种特征筛选方法及系统
CN111106953B (zh) 一种异常根因分析的方法及装置
CN111159013B (zh) 一种代码质量的评估方法及装置
CN117408561A (zh) 一种住宅工程建设监理方法、装置及电子设备
CN117763024A (zh) 一种数据分片抽取方法及装置
CN116643985A (zh) 一种mes与capp的工艺数据传输协同验证方法
JP2018018197A (ja) ソースコード評価プログラム
CN116303320A (zh) 基于日志文件的实时任务管理方法、装置、设备及介质
CN110909085A (zh) 数据处理方法、装置、设备及存储介质
CN112380204B (zh) 一种数据质量的评估方法及装置
CN115934513A (zh) 一种需求分析及测试设计适配方法、装置、设备及介质
CN114817209A (zh) 监控规则的处理方法和装置、处理器及电子设备
CN109829016B (zh) 一种数据同步方法及装置
CN114519003A (zh) 基于映射关系的回归测试方法、装置及电子设备
CN113434273A (zh) 数据处理方法、装置、系统及存储介质
CN112667569A (zh) 特征方法、系统、计算机设备及计算机可读存储介质
CN113468158B (zh) 数据修复方法、系统、电子设备及介质
CN114926154B (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
GR01 Patent grant
GR01 Patent grant