CN111666206B - 变更代码的影响范围的获取方法、装置、设备及存储介质 - Google Patents
变更代码的影响范围的获取方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111666206B CN111666206B CN202010366976.6A CN202010366976A CN111666206B CN 111666206 B CN111666206 B CN 111666206B CN 202010366976 A CN202010366976 A CN 202010366976A CN 111666206 B CN111666206 B CN 111666206B
- Authority
- CN
- China
- Prior art keywords
- code
- change
- code file
- target
- symbol 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
- 230000008859 change Effects 0.000 title claims abstract description 240
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000015654 memory Effects 0.000 claims description 19
- 238000012552 review Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种变更代码的影响范围的获取方法、装置、设备及存储介质,涉及软件安全领域。具体实现方案为:获取变更代码文件;解析变更代码文件中的目标符号信息;获取目标符号信息对应的目标符号在代码库中的影响范围。与现有技术相比,本申请可以自动地获取到变更代码文件中的目标符号在代码库的影响范围,整个过程省时省力,而且,能够有效地保证获取的目标符号的影响范围的全面性。因此,本申请的技术方案,能够有效地提高变更代码的影响范围的获取效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及软件安全领域,具体涉及一种变更代码的影响范围的获取方法、装置、设备及存储介质。
背景技术
随着软件功能的增多和复杂性的提高,软件的代码量也在不断增加。一个代码库里的代码行数可能从几百至数十万不等。
现有技术中,为了升级软件服务或者修复漏洞,在很多场景下,研发人员需要对代码进行变更。但是由于软件功能的复杂性,很多代码中还潜藏着调用与被调用等关系,理论上来讲,研发人员对代码进行变更时,需要全面考虑变更代码的影响范围,以全面核对变更代码的可行性。现有技术中需要研发人员根据自己对代码库的了解,手动寻找变更代码的影响范围。
但是,由于现有的代码量的增大,研发人员对代码逻辑和结构的理解越来越困难,人为手动地从代码库中寻找变更代码的影响范围,需要经过很多步的操作,且费时费力,也未必能找到变更代码的全部的影响范围,因此,现有的变更代码的影响范围的获取效率非常低。
发明内容
为了解决上述技术问题,本申请提供了一种变更代码的影响范围的获取方法、装置、设备及存储介质。
根据第一方面,提供了一种变更代码的影响范围的获取方法,包括:
获取变更代码文件;
解析所述变更代码文件中的目标符号信息;
获取所述目标符号信息对应的目标符号在代码库中的影响范围。
根据第二方面,提供了一种变更代码的影响范围的获取装置,包括:
文件获取模块,用于获取变更代码文件;
解析模块,用于解析所述变更代码文件中的目标符号信息;
范围获取模块,用于获取所述目标符号信息对应的目标符号在代码库中的影响范围。
根据第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方法。
根据第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。
根据本申请的技术,可以自动地获取到变更代码文件中的目标符号在代码库的影响范围,整个过程省时省力,而且,能够有效地保证获取的目标符号的影响范围的全面性。因此,本申请的技术方案,能够有效地提高变更代码的影响范围的获取效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的示意图;
图2是根据本申请第二实施例的示意图;
图3是本申请提供的原始符号信息数据库中存储的符号信息的示例;
图4是本申请提供的变更符号信息数据库中存储的符号信息的示例;
图5是根据本申请第三实施例的示意图;
图6是根据本申请第四实施例的示意图;
图7是用来实现本申请实施例的变更代码的影响范围的获取方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请第一实施例的示意图;如图1所示,本申请提供一种变更代码的影响范围的获取方法,具体可以包括如下步骤:
S101、获取变更代码文件;
S102、解析变更代码文件中的目标符号信息;
S103、获取目标符号信息对应的目标符号在代码库中的影响范围。
本实施例的变更代码的影响范围的获取方法的执行主体为变更代码的影响范围的查询装置,该装置可以为一实体的电子设备,或者也可以为集成的应用或者插件等,可以实现变更代码的影响范围的查询。
本实施例的变更代码的影响范围的获取方法的应用场景为:在企业、团体或者代码管理平台中,都会创建一个代码库,该代码库中包括多个代码文件,用于存储有效的代码。在需要进行软件升级或者漏洞修复的时候,需要对代码库中的部分代码进行变更。但是,若直接变更代码库,未考虑全面,可能会造成软件崩溃,或者影响软件中的很多功能,因此,在正式变更代码之前,可以进行代码变更预审。例如,在进行代码变更预审,可以采用本实施例的技术方案,查询变更代码的影响范围,并展示给研发人员来查看,若研发人员根据展示的变更代码的影响范围,确定此次变更代码的影响范围在其可控范围内,可以进行正式的代码变更,此时再在代码库中进行正式的代码变更。
具体地,获取变更代码文件,可以通过Git版本管理工具实现,如Github以及与Github类似的代码管理平台来实现。也就是说,研发人员进行代码变更时,可以从代码库中拷贝要进行变更的代码片段对应的原始代码文件至代码管理平台,然后在代码管理平台中进行代码变更,本实施例的代码变更可以包括代码的增加、删除以及修改。代码管理平台基于代码变更,可以得到变更代码文件。本实施例的变更代码的影响范围的查询装置,可以从该代码管理平台中获取该变更代码文件。
本实施例中,变更代码文件中的目标符号可以指的是变更代码文件的代码中的一个节点。例如变更代码文件的代码中的一个函数、一个定义等等之类的symbol或者token,都可以作为一个符号,如具体可以为函数(function)、方法(method)、类(class)、接口(interface)、变量(variable)、常量(literal)、或者枚举(enum)等都可以为一个符号。本实施例的目标符号信息可以包括:该符号的标识、该符号的类型、该符号的签名、该符号所属的文件标识、该符号在文件中的位置信息以及该文件的路径等等。例如,本实施例的符号的类型对应可以包括函数、方法、变量、枚举等。例如java语言的代码,对应的符号签名可以为java.lang.list,同理,其他语言的编程工具,也对应存在相应的符号签名。
由于变更代码文件中可能仅包括一个目标符号,也可能包括两个或者多个目标符号。本实施例中,是以查询每个目标符号在代码库中的影响范围为例。具体地,解析到变更代码文件中的每个目标符号信息后,可以基于获取到的目标符号信息,获取该目标符号在代码库中的影响范围。例如,本实施例的影响范围可以指的是该目标符号的修改可能影响到代码库中的所有对象及对象的信息,如所有文件及文件的信息等等。
在实际应用中,该变更代码的影响范围的查询装置可以运行在带有显示屏的计算机上,研发人员向该变更代码的影响范围的查询装置输入变更代码文件后,按照本实施例的方式,可以获取到变更代码文件中的每个目标符号的影响范围。可以直接在显示界面上展示每个目标符号的影响范围,以供研发人员评估。或者也可以在研发人员点击变更代码文件中的目标符号时,弹出一个界面展示该目标符号的影响范围,以供研发人员评估。还可以在看完之后,关闭弹出的界面,实现非常灵活。
本实施例的变更代码的影响范围的获取方法,通过获取变更代码文件;解析变更代码文件中的目标符号信息;获取目标符号信息对应的目标符号在代码库中的影响范围,与现有技术相比,便可以自动地获取到变更代码文件中的目标符号在代码库的影响范围,整个过程省时省力,而且,能够有效地保证获取的目标符号的影响范围的全面性。因此,本实施例的技术方案,能够有效地提高变更代码的影响范围的获取效率。
图2是根据本申请第二实施例的示意图;本实施例的变更代码的影响范围的获取方法,在上述图1所示实施例的技术方案的基础上,进一步更加详细地描述本申请的技术方案。如图2所示,本实施例的变更代码的影响范围的获取方法,具体可以包括如下步骤:
S201、从代码管理平台中获取变更代码文件;
S202、获取代码库中与变更代码文件具有依赖关系的关联代码文件;
具体地,可以预先统计有文件之间的依赖关系,具体采用文件标识之间的对应关系来存储。该步骤具体实现时,可以先从该文件之间的依赖关系中获取与变更代码文件的标识具有依赖关系的关联代码文件的标识。然后根据关联代码文件的标识,从代码库中获取关联代码文件。
S203、采用语法解析工具获取变更代码文件和关联代码文件的抽象语法树(Abstract Syntax Tree;AST);
例如,本实施例的语言解析工具可以为Java语言对应的JDT、C++语言对应的Clang、Go语言对应的Go parser等。本实施例中解析变更代码文件和关联代码文件可以得到一个整体的AST中的不同部分。由于变更代码文件包括的信息较少,可能仅包括较少的节点信息。
S204、基于对变更代码文件和关联代码文件的AST进行解析,获取变更代码文件在AST中的节点对应的目标符号信息;
由于变更代码文件中仅仅标识变更的代码的信息,所包括的信息非常有限,此时直接根据变更代码文件的AST节点对应的符号信息,获取到的符后信息可能不全面,例如,可能获取文件的路径等信息,或者可能获取不到符号的签名等信息。所以本实施例中,为了保证获取到的变更代码文件中的目标符号信息的全面性和准确性,同时对关联代码文件进行解析,得到包含变更代码文件和关联代码文件的信息的整体的AST,该AST中包含较丰富的信息。然后基于对该AST进行解析获取变更代码文件在AST中的节点对应的目标符号信息。这样,相当于是从变更代码文件中获取不到的目标符号的信息,可以从关联代码文件的符号信息中获取,可以保证获取的目标符号信息的全面性。
该步骤S202-步骤S204为上述图1所示实施例的步骤S102的一种实现方式。具体解析时,变更代码文件的AST中的每一个节点对应为一个目标符号。解析得到的每个目标符号信息可以包括目标符号的标识、目标符号的类型、目标符号的签名、目标符号所属的文件标识如文件的名称、目标符号在文件中的位置信息如哪一行、以及目标符号所属的文件的路径等等。当存在多个代码库中,还需要解析出目标符号所属的文件所在的代码库的标识。
其中,解析时,目标符号的标识可以采用符号的语法签名的字符串的hash值来标识。
S205、从目标符号信息中获取目标符号所在的目标代码文件的标识、在目标代码文件中的位置信息以及目标代码文件的路径;
该步骤可以直接从步骤S203解析的目标符号信息中获取,此时相当于获取到变更代码的一部分变更范围的信息。
S206、基于目标符号信息中的目标符号的标识和目标符号的类型,从预先建立的原始符号信息数据库和/或变更符号信息数据库中获取与目标代码文件具有依赖关系的相关代码文件的标识、以及相关代码文件的路径;
该步骤获取到变更代码的另一部分变更范围的信息。具体地,建立的原始符号信息数据库中包括了代码库中的全部符号信息,因此,在获取变更代码的影响范围时,先需要从原始符号信息数据库中获取符号的目标符号的标识相同的符号,然后才能进一步再结合原始符号信息数据库中获取到的该符号的信息,获取变更代码的影响范围。
例如,以原始符号信息数据库为例,以目标符号是符号1为例,假如变更代码文件X中的符号1的类型为定义,从原始符号信息数据库中获取符号1对应的代码文件为Y,并获取到符号1在代码文件Y中的类型调用,然后将代码文件Y中符号1的类型与变更代码文件X中符号1的类型比较,可以得知,基于该符号1,代码文件Y为具有依赖关系的相关代码文件,所以此时需要将代码文件Y作为具有依赖关系的相关代码文件,进而获取到代码文件Y的标识及路径,作为该符号1的变更代码的影响范围。按照类似的方式,可以获取到原始符号信息数据库中,与目标代码文件具有依赖关系的所有相关代码文件的标识、以及相关代码文件的路径。对于变更符号信息数据库的实现同理,在此不再赘述。
本实施例的步骤S205和步骤S206为获取到的变更代码文件的目标符号在代码库中的影响范围,如上所述,不仅包括目标符号所在的目标代码文件的标识、在目标代码文件中的位置信息以及目标代码文件的路径,还包括代码库对应的原始符号信息数据库中记录的与目标代码文件具有依赖关系的相关代码文件的标识、及相关代码文件的路径,这样可以全面地从代码库中获取到所有的与目标符号相关的影响范围。
且进一步地,本实施例中,还可以基于变更符号信息数据库,预测目标符号可能对正在进行代码变更预审的代码中的相关代码文件的影响,并同时获取到可能影响到的相关代码文件的标识及相关代码文件的路径,因此,该方案还可以预测该目标符号未来可能的影响范围,因此,本实施例的技术方案还具备目标符号的影响范围的预测能力,便于研发人员参考,以更加准确地对变更代码带来的风险进行把控,保证代码库的稳定性。
具体实现时,可以根据实际需求该步骤可以根据实际需求,选择从原始符号信息数据库和/或变更符号信息数据库中获取与目标代码文件具有依赖关系的相关代码文件的信息。
进一步可选地,本实施例中,该原始符号信息数据库基于代码库中的代码文件生成的。
例如,可以采用如下步骤,建立原始符号信息数据库:
(a)解析代码库的各代码文件中的各符号信息;各符号信息包括符号的标识、符号的名称、符号所属代码文件、符号在代码文件中的位置以及符号所属代码文件的路径;
(c)基于各符号信息推理代码文件之间的依赖关系;
例如符号为一个函数时,在代码文件A中,存在该符号,符号类型为定义时,表示在代码文件A中定义了该函数。而在代码文件B中,也存在该符号,但符号类型为调用,表示在代码文件B中调用了该函数。此时可以退出文件A和文件B存在依赖关系。按照类似的方式,可以基于符号信息,寻找出代码库中所有代码文件之间的依赖关系。
(b)将代码库的各代码文件中的各符号信息以及代码文件之间的依赖关系,存储在一数据库中,得到原始符号信息数据库;
需要说明的是,实际应用中,若同一代码管理平台包括多个代码库,需要同时按照上述方式对每个代码库中的每个代码文件中的每个符号信息解析,均存储在原始符号信息数据库中,以保证存储的信息的全面性。同时还存储有代码文件的依赖关系,便于后续基于依赖关系,更准确地获取变更代码的影响范围。
例如,上述步骤202获取代码库中与变更代码文件具有依赖关系的关联代码文件的时候,具体可以先从原始符号信息数据库中获取与变更代码文件的标识具有依赖关系的关联代码文件的标识,然后再基于关联代码文件的标识,从数据库中获取关联代码文件。
例如图3是本申请提供的原始符号信息数据库中存储的符号信息的示例。如图3示,该符号信息的ID为123xxx,该符号信息的名称为foo,该符号信息所属的文件及路径为src/main.cpp,文件所属的代码库为Myapp,该符号的类型为Function,该符号在该文件中的位置为第5行。
再进一步可选地,本实施例的该变更符号信息数据库基于正在进行代码变更预审的变更代码文件生成。例如,具体可以基于如下步骤实现生成:
(1)解析变更代码文件之前提交的、且正在进行代码变更预审的各历史变更代码文件的符号信息;
该符号信息的解析过程可以参考上述步骤S202和步骤S203的实现,在此不再赘述。
(2)并获取各历史变更代码文件的变更信息;例如,本实施例的变更信息可以包括变更提交的标识、提交人的标识以及提交时间等等各种变更记录信息;
(3)将各历史变更代码文件的变更信息和符号信息一起存储在一数据库中,得到变更符号信息数据库。
例如图4是本申请提供的变更符号信息数据库中存储的符号信息的示例。与上述图3示的符号信息的示例相比,增加了变更信息,如变更ID即图4中的“Commit Id”字段。其余信息与上述图3所示实施例相似,详细可以参考上述图3所示实施例的解释,在此不再赘述。
S207、将变更代码文件的符号信息和变更信息,更新在变更符号信息数据库中;
需要说明的时,变更代码的变更信息也可以从代码管理平台获取,每一次变更,代码管理平台可以生成该次变更的标识,用于唯一标识该次变更,同时还可以记录该次变更的提交人的标识、提交时间等等提交记录信息。可选地,该步骤S207可以位于该步骤S204之后的任意位置,以便于对变更符号信息数据库进行更新。例如,可以在步骤S204之后,步骤S205之前先执行步骤S207更新变更符号信息数据库,然后步骤S205获取的信息也可以直接从变更符号信息数据库中获取。
S208、检测变更代码文件是否变更起效;若是,执行步骤S209;否则,返回继续检测。
该步骤也可以通过监控代码管理平台来实现,代码管理平台可以实时监控到变更代码文件是否生效。
S209、将变更代码文件的符号信息更新至原始符号信息数据库中;
步骤S209为更新原始符号信息数据库的一种策略,即在每次有代码变更时进行增量更新,相比于定时定期对代码库进行全量更新,更加节省时间。通过该步骤的更新,可以保证原始符号信息数据库中的符号信息的准确性。
实际应用中,代码库中也可以经常存入新的代码文件,此时为了将该部分代码文件的符号信息更新到原始符号信息数据库中,还需要定时基于代码库中新写入的代码文件对原始符号信息数据库进行更新。例如,可以在每天的闲时如凌晨两点到四点,对代码库进行扫描,获取新写入的代码文件,并基于新写入的代码文件对原始符号信息数据库进行更新。其中更新方式可以参考上述原始符号信息数据库的创建过程,在此不再赘述。
S210、在变更符号信息数据库中删除变更代码文件对应的符号信息和变更信息;结束。
该步骤S209和S210可以没有先后顺序限制。
由于变更代码文件已经确定在数据库中进行更新,此时为了信息的一致性,需要删除该变更符号信息数据库中的相关信息,以保证变更符号信息数据库中的符号信息的准确性。
本实施例的变更代码的影响范围的获取方法,通过采用上述方案,可以自动地获取到变更代码文件中的目标符号在代码库的影响范围,整个过程省时省力,而且,能够有效地保证获取的目标符号的影响范围的全面性。因此,本实施例的技术方案,能够有效地提高变更代码的影响范围的获取效率。
进一步地,本实施例中,通过获取代码库中与所述变更代码文件具有依赖关系的关联代码文件;采用语法解析工具分别获取变更代码文件和关联代码文件的抽象语法树;分别解析变更代码文件和关联代码文件的抽象语法树中的节点对应的符号信息,从中获取变更代码文件的抽象语法树中的节点对应的目标符号信息,可以保证目标符号信息解析的准确性和全面性。
进一步地,本实施例中,通过解析代码库的各代码文件中的各符号信息;基于各符号信息推理代码文件之间的依赖关系;将代码库的各代码文件中的各符号信息以及代码文件之间的依赖关系,存储在一数据库中,得到原始符号信息数据库,能够保证原始符号信息数据库中的数据的全面性和准确性,以保证后续基于原始符号信息数据库获取变更代码的影响范围的准确性。
进一步地,本实施例中,还可以解析变更代码文件之前提交的、且正在进行代码变更预审的各历史变更代码文件的符号信息;并获取各历史变更代码文件的变更信息;将各历史变更代码文件的变更信息和符号信息一起存储在一数据库中,得到变更符号信息数据库,以保证后续基于变更符号信息数据库预测变更代码的影响范围时,预测的准确性。
图5是根据本申请第三实施例的示意图;如图5所示,本实施例提供一种变更代码的影响范围的获取装置500,包括:
文件获取模块501,用于获取变更代码文件;
解析模块502,用于解析变更代码文件中的目标符号信息;
范围获取模块503,用于获取目标符号信息对应的目标符号在代码库中的影响范围。
本实施例的变更代码的影响范围的获取装置500,通过采用上述模块实现变更代码的影响范围的获取的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关实施例的记载,在此不再赘述。
图6是根据本申请第四实施例的示意图;如图6所示,本实施例的变更代码的影响范围的获取装置500,在上述图6所示实施例的技术方案的基础上,进一步更加详细地描述本申请的技术方案。
本实施例的变更代码的影响范围的获取装置500中,解析模块502,用于:
获取代码库中与所述变更代码文件具有依赖关系的关联代码文件;
采用语法解析工具分别获取变更代码文件和关联代码文件的抽象语法树;
分别解析变更代码文件和关联代码文件的抽象语法树中的节点对应的符号信息,从中获取变更代码文件的抽象语法树中的节点对应的目标符号信息。
如图6所示,本实施例的变更代码的影响范围的获取装置500中,范围获取模块503,包括:
第一获取单元5031,用于从目标符号信息中获取目标符号所在的目标代码文件的标识、在目标代码文件中的位置信息以及目标代码文件的路径;
第二获取单元5032,用于基于目标符号信息中的目标符号的标识和目标符号的类型,从预先建立的原始符号信息数据库和/或变更符号信息数据库中获取与目标代码文件具有依赖关系的相关代码文件的标识、以及相关代码文件的路径;原始符号信息数据库基于代码库中的代码文件生成;变更符号信息数据库基于正在进行代码变更预审的变更代码文件生成。
如图6所示,进一步可选地,本实施例的变更代码的影响范围的获取装置500中,还包括:建立模块504,用于:
解析代码库的各代码文件中的各符号信息;基于各符号信息推理代码文件之间的依赖关系;将代码库的各代码文件中的各符号信息以及代码文件之间的依赖关系,存储在一数据库中,得到原始符号信息数据库;
进一步地,建立模块504,还用于:解析变更代码文件之前提交的、且正在进行代码变更预审的各历史变更代码文件的符号信息;并获取各历史变更代码文件的变更信息;将各历史变更代码文件的变更信息和符号信息一起存储在一数据库中,得到变更符号信息数据库。
如图6所示,进一步可选地,本实施例的变更代码的影响范围的获取装置500中,还包括:更新模块505,用于将变更代码文件的符号信息和变更信息,更新在变更符号信息数据库中;
进一步地,更新模块505,还用于:
若检测到变更代码文件变更起效时,将变更代码文件的符号信息更新至原始符号信息数据库中;和/或
在变更符号信息数据库中删除变更代码文件对应的符号信息和变更信息。
本实施例的变更代码的影响范围的获取装置500,通过采用上述模块实现变更代码的影响范围的获取的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关实施例的记载,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图7所示,是根据本申请实施例的实现变更代码的影响范围的获取方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的变更代码的影响范围的获取方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的变更代码的影响范围的获取方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的变更代码的影响范围的获取方法对应的程序指令/模块(例如,附图5和附图6所示的相关模块)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的变更代码的影响范围的获取方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储实现变更代码的影响范围的获取方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至实现变更代码的影响范围的获取方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现变更代码的影响范围的获取方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与实现变更代码的影响范围的获取方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过获取变更代码文件;解析变更代码文件中的目标符号信息;获取目标符号信息对应的目标符号在代码库中的影响范围,与现有技术相比,便可以自动地获取到变更代码文件中的目标符号在代码库的影响范围,整个过程省时省力,而且,能够有效地保证获取的目标符号的影响范围的全面性。因此,本实施例的技术方案,能够有效地提高变更代码的影响范围的获取效率。
根据本申请实施例的技术方案,通过获取代码库中与所述变更代码文件具有依赖关系的关联代码文件;采用语法解析工具分别获取变更代码文件和关联代码文件的抽象语法树;分别解析变更代码文件和关联代码文件的抽象语法树中的节点对应的符号信息,从中获取变更代码文件的抽象语法树中的节点对应的目标符号信息,可以保证目标符号信息解析的准确性和全面性。
根据本申请实施例的技术方案,通过解析代码库的各代码文件中的各符号信息;基于各符号信息推理代码文件之间的依赖关系;将代码库的各代码文件中的各符号信息以及代码文件之间的依赖关系,存储在一数据库中,得到原始符号信息数据库,能够保证原始符号信息数据库中的数据的全面性和准确性,以保证后续基于原始符号信息数据库获取变更代码的影响范围的准确性。
根据本申请实施例的技术方案,还可以解析变更代码文件之前提交的、且正在进行代码变更预审的各历史变更代码文件的符号信息;并获取各历史变更代码文件的变更信息;将各历史变更代码文件的变更信息和符号信息一起存储在一数据库中,得到变更符号信息数据库,以保证后续基于变更符号信息数据库预测变更代码的影响范围时,预测的准确性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (14)
1.一种变更代码的影响范围的获取方法,其特征在于,包括:
获取变更代码文件;
解析所述变更代码文件中的目标符号信息;所述变更代码文件中的目标符号指的是所述变更代码文件的代码中的节点;所述目标符号信息包括目标符号的标识、目标符号的类型、目标符号的签名、目标符号所属的目标代码文件的标识、目标符号在目标代码文件中的位置信息以及目标代码文件的路径;
获取所述目标符号信息对应的目标符号在代码库中的影响范围;所述影响范围包括:所述目标符号所在的目标代码文件的标识、所述目标符号在目标代码文件中的位置信息以及目标代码文件的路径;还包括代码库对应的原始符号信息数据库中记录的与目标代码文件具有依赖关系的相关代码文件的标识、及相关代码文件的路径;
其中,获取变更代码文件,包括:从代码管理平台中获取变更代码文件;所述代码管理平台接收研发人员从代码库中拷贝的要进行变更的代码片段对应的原始代码文件;并接收对原始代码文件进行的代码变更,得到变更代码文件;
其中,获取所述目标符号信息对应的目标符号在代码库中的影响范围,包括:
从所述目标符号信息中获取所述目标符号所在的目标代码文件的标识、在所述目标代码文件中的位置信息以及所述目标代码文件的路径;
基于所述目标符号信息中的目标符号的标识和所述目标符号的类型,从预先建立的原始符号信息数据库和变更符号信息数据库中获取与所述目标代码文件具有依赖关系的相关代码文件的标识、以及所述相关代码文件的路径;所述原始符号信息数据库基于代码库中的代码文件生成;所述变更符号信息数据库基于正在进行代码变更预审的变更代码文件生成。
2.根据权利要求1所述的方法,其特征在于,解析所述变更代码文件中的目标符号信息,包括:
获取所述代码库中与所述变更代码文件具有依赖关系的关联代码文件;
采用语法解析工具分别获取所述变更代码文件和所述关联代码文件的抽象语法树;
分别解析所述变更代码文件和所述关联代码文件的抽象语法树中的节点对应的符号信息,从中获取所述变更代码文件的抽象语法树中的节点对应的所述目标符号信息。
3.根据权利要求1所述的方法,其特征在于,基于所述目标符号信息中的目标符号的标识和所述目标符号的类型,从预先建立的原始符号信息数据库和变更符号信息数据库中获取与所述目标代码文件具有依赖关系的相关代码文件的标识、以及所述相关代码文件的路径之前,还包括:
解析所述代码库的各所述代码文件中的各符号信息;
基于各符号信息推理代码文件之间的依赖关系;
将所述代码库的各所述代码文件中的各所述符号信息以及代码文件之间的依赖关系,存储在一数据库中,得到所述原始符号信息数据库。
4.根据权利要求1所述的方法,其特征在于,基于所述目标符号信息中的目标符号的标识和所述目标符号的类型,从预先建立的原始符号信息数据库和变更符号信息数据库中获取与所述目标代码文件具有依赖关系的相关代码文件的标识、以及所述相关代码文件的路径之前,还包括:
解析所述变更代码文件之前提交的、且正在进行代码变更预审的各历史变更代码文件的符号信息;
并获取各所述历史变更代码文件的变更信息;
将各所述历史变更代码文件的变更信息和所述符号信息一起存储在一数据库中,得到所述变更符号信息数据库。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述变更代码文件的符号信息和变更信息,更新在所述变更符号信息数据库中。
6.根据权利要求1所述的方法,其特征在于,获取所述目标符号信息对应的目标符号在代码库中的影响范围之后,所述方法还包括:
若检测到所述变更代码文件变更起效时,将所述变更代码文件的符号信息更新至所述原始符号信息数据库中;和
在所述变更符号信息数据库中删除所述变更代码文件对应的符号信息和变更信息。
7.一种变更代码的影响范围的获取装置,其特征在于,包括:
文件获取模块,用于获取变更代码文件;
解析模块,用于解析所述变更代码文件中的目标符号信息;所述变更代码文件中的目标符号指的是所述变更代码文件的代码中的节点;所述目标符号信息包括目标符号的标识、目标符号的类型、目标符号的签名、目标符号所属的目标代码文件的标识、目标符号在目标代码文件中的位置信息以及目标代码文件的路径;
范围获取模块,用于获取所述目标符号信息对应的目标符号在代码库中的影响范围;所述影响范围包括:所述目标符号所在的目标代码文件的标识、所述目标符号在目标代码文件中的位置信息以及目标代码文件的路径;还包括代码库对应的原始符号信息数据库中记录的与目标代码文件具有依赖关系的相关代码文件的标识、及相关代码文件的路径;
所述文件获取模块,用于从代码管理平台中获取变更代码文件;所述代码管理平台接收研发人员从代码库中拷贝的要进行变更的代码片段对应的原始代码文件;并接收对原始代码文件进行的代码变更,得到变更代码文件;
所述范围获取模块,包括:
第一获取单元,用于从所述目标符号信息中获取所述目标符号所在的目标代码文件的标识、在所述目标代码文件中的位置信息以及所述目标代码文件的路径;
第二获取单元,用于基于所述目标符号信息中的目标符号的标识和所述目标符号的类型,从预先建立的原始符号信息数据库和变更符号信息数据库中获取与所述目标代码文件具有依赖关系的相关代码文件的标识、以及所述相关代码文件的路径;所述原始符号信息数据库基于代码库中的代码文件生成;所述变更符号信息数据库基于正在进行代码变更预审的变更代码文件生成。
8.根据权利要求7所述的装置,其特征在于,所述解析模块,用于:
获取所述代码库中与所述变更代码文件具有依赖关系的关联代码文件;
采用语法解析工具分别获取所述变更代码文件和所述关联代码文件的抽象语法树;
分别解析所述变更代码文件和所述关联代码文件的抽象语法树中的节点对应的符号信息,从中获取所述变更代码文件的抽象语法树中的节点对应的所述目标符号信息。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括建立模块,用于:
解析所述代码库的各所述代码文件中的各符号信息;
基于各符号信息推理代码文件之间的依赖关系;
将所述代码库的各所述代码文件中的各所述符号信息以及代码文件之间的依赖关系,存储在一数据库中,得到所述原始符号信息数据库。
10.根据权利要求9所述的装置,其特征在于,所述建立模块,还用于:
解析所述变更代码文件之前提交的、且正在进行代码变更预审的各历史变更代码文件的符号信息;
并获取各所述历史变更代码文件的变更信息;
将各所述历史变更代码文件的变更信息和所述符号信息一起存储在一数据库中,得到所述变更符号信息数据库。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
更新模块,用于将所述变更代码文件的符号信息和变更信息,更新在所述变更符号信息数据库中。
12.根据权利要求11所述的装置,其特征在于,所述更新模块,还用于:
若检测到所述变更代码文件变更起效时,将所述变更代码文件的符号信息更新至所述原始符号信息数据库中;和
在所述变更符号信息数据库中删除所述变更代码文件对应的符号信息和变更信息。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010366976.6A CN111666206B (zh) | 2020-04-30 | 2020-04-30 | 变更代码的影响范围的获取方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010366976.6A CN111666206B (zh) | 2020-04-30 | 2020-04-30 | 变更代码的影响范围的获取方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666206A CN111666206A (zh) | 2020-09-15 |
CN111666206B true CN111666206B (zh) | 2023-12-22 |
Family
ID=72383109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010366976.6A Active CN111666206B (zh) | 2020-04-30 | 2020-04-30 | 变更代码的影响范围的获取方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666206B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230980A (zh) * | 2020-09-28 | 2021-01-15 | 北京五八信息技术有限公司 | 一种依赖关系检测方法、装置、电子设备及存储介质 |
CN112256637A (zh) * | 2020-10-19 | 2021-01-22 | 贝壳技术有限公司 | 一种基于抽象语法树的文件管理方法、装置及存储介质 |
CN112486563A (zh) * | 2020-12-02 | 2021-03-12 | 车智互联(北京)科技有限公司 | 一种代码管理方法、系统、计算设备及可读存储介质 |
CN112698832B (zh) * | 2020-12-28 | 2024-02-13 | 东软集团股份有限公司 | 一种识别代码变更影响范围的方法、装置及设备 |
CN112596738B (zh) * | 2020-12-28 | 2023-07-11 | 北京字跳网络技术有限公司 | 待测试前端页面的确定方法、装置、存储介质及电子设备 |
CN112685079A (zh) * | 2021-01-05 | 2021-04-20 | 上海中通吉网络技术有限公司 | 基于代码差异对比自动分析测试范围的方法及设备 |
CN112783512B (zh) * | 2021-03-15 | 2024-05-10 | 腾讯科技(深圳)有限公司 | 应用程序包处理方法、装置、设备及存储介质 |
CN112948478A (zh) * | 2021-04-07 | 2021-06-11 | 深圳市易博天下科技有限公司 | 基于链路的代码分析方法、装置、电子设备及存储介质 |
CN113448605B (zh) * | 2021-06-29 | 2024-02-09 | 北京高途云集教育科技有限公司 | 一种软件更新方法、装置、电子设备及存储介质 |
CN117009230B (zh) * | 2023-07-25 | 2024-04-16 | 北京泰策科技有限公司 | 一种基于代码覆盖率评测的精准测试方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8418147B1 (en) * | 2009-05-08 | 2013-04-09 | Versionone, Inc. | Methods and systems for reporting on build runs in software development |
WO2013161057A1 (ja) * | 2012-04-27 | 2013-10-31 | 株式会社日立製作所 | ソースコード検査方法及び装置 |
CN103955429A (zh) * | 2014-05-16 | 2014-07-30 | 北京金山网络科技有限公司 | 确定回归测试范围的方法及装置 |
CN105159715A (zh) * | 2015-09-01 | 2015-12-16 | 南京大学 | 一种基于抽象语法树节点变更抽取的Python代码变更提示方法 |
CN106855804A (zh) * | 2016-11-03 | 2017-06-16 | 广州视源电子科技股份有限公司 | 代码变更管控方法及装置 |
CN106970820A (zh) * | 2017-04-26 | 2017-07-21 | 腾讯科技(深圳)有限公司 | 代码存储方法及代码存储装置 |
CN107085555A (zh) * | 2017-04-19 | 2017-08-22 | 广州视源电子科技股份有限公司 | 代码测试方法、装置、终端及存储介质 |
CN109582300A (zh) * | 2018-11-30 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 基于路径的代码变更分析方法、装置及设备 |
CN110413506A (zh) * | 2019-06-19 | 2019-11-05 | 平安普惠企业管理有限公司 | 测试用例推荐方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10379992B2 (en) * | 2016-10-25 | 2019-08-13 | International Business Machines Corporation | Adaptive dynamic code analysis |
-
2020
- 2020-04-30 CN CN202010366976.6A patent/CN111666206B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8418147B1 (en) * | 2009-05-08 | 2013-04-09 | Versionone, Inc. | Methods and systems for reporting on build runs in software development |
WO2013161057A1 (ja) * | 2012-04-27 | 2013-10-31 | 株式会社日立製作所 | ソースコード検査方法及び装置 |
CN103955429A (zh) * | 2014-05-16 | 2014-07-30 | 北京金山网络科技有限公司 | 确定回归测试范围的方法及装置 |
CN105159715A (zh) * | 2015-09-01 | 2015-12-16 | 南京大学 | 一种基于抽象语法树节点变更抽取的Python代码变更提示方法 |
CN106855804A (zh) * | 2016-11-03 | 2017-06-16 | 广州视源电子科技股份有限公司 | 代码变更管控方法及装置 |
CN107085555A (zh) * | 2017-04-19 | 2017-08-22 | 广州视源电子科技股份有限公司 | 代码测试方法、装置、终端及存储介质 |
CN106970820A (zh) * | 2017-04-26 | 2017-07-21 | 腾讯科技(深圳)有限公司 | 代码存储方法及代码存储装置 |
CN109582300A (zh) * | 2018-11-30 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 基于路径的代码变更分析方法、装置及设备 |
CN110413506A (zh) * | 2019-06-19 | 2019-11-05 | 平安普惠企业管理有限公司 | 测试用例推荐方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Improced bug localization based on code change histories and bug reports;Kalaus Changsun Youm等;《Information and Software Technology》;177-192 * |
面向数据库模式变更的代码演化推荐方法;张武能等;《计算机科学》;第43卷(第02期);216-233 * |
Also Published As
Publication number | Publication date |
---|---|
CN111666206A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111666206B (zh) | 变更代码的影响范围的获取方法、装置、设备及存储介质 | |
CN108027722B (zh) | 在编译和部署中动态更新应用 | |
US11675575B2 (en) | Checking source code validity at time of code update | |
CN111752843B (zh) | 用于确定影响面的方法、装置、电子设备及可读存储介质 | |
US11593342B2 (en) | Systems and methods for database orientation transformation | |
JP2016539421A (ja) | コールパスファインダ | |
EP2656222A1 (en) | Code clone notification and architectural change visualization | |
CA2956207C (en) | Program code comparison and reporting | |
WO2017087801A1 (en) | Dynamic update of an application in compilation and deployment | |
CN104679500B (zh) | 实体类自动生成实现方法及装置 | |
US20140298290A1 (en) | Identification of code changes using language syntax and changeset data | |
US9851944B2 (en) | Operation search method and operation search apparatus | |
CN111124420A (zh) | 编译方法、装置、电子设备及可读存储介质 | |
CN111274127B (zh) | 代码评审中的代码跳转方法、装置、设备和介质 | |
US9335990B2 (en) | Method, a system, and a non-transitory computer-readable medium for supporting application development | |
CN111831317B (zh) | 服务间依赖关系的获取方法、装置、电子设备和存储介质 | |
CN114691197A (zh) | 代码分析方法、装置、电子设备和存储介质 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和系统 | |
CN107451050B (zh) | 函数获取方法和装置、服务器 | |
CN111897687A (zh) | 接口校验方法、装置、设备及存储介质 | |
CN111506268B (zh) | 代码文件存储方法、装置和电子设备 | |
CN111459887B (zh) | 资源筛查方法、装置、电子设备和存储介质 | |
EP3828721A2 (en) | Method and apparatus for converting undirected relationship to directed relationship, device, storage medium, and computer program product | |
CN110297639B (zh) | 用于检测代码的方法和装置 | |
US20220414101A1 (en) | Shifting left database degradation detection |
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 |