CN113050926B - 一种代码同步变更的确认方法、装置和设备 - Google Patents
一种代码同步变更的确认方法、装置和设备 Download PDFInfo
- Publication number
- CN113050926B CN113050926B CN202110313419.2A CN202110313419A CN113050926B CN 113050926 B CN113050926 B CN 113050926B CN 202110313419 A CN202110313419 A CN 202110313419A CN 113050926 B CN113050926 B CN 113050926B
- Authority
- CN
- China
- Prior art keywords
- code
- information set
- code information
- codes
- moment
- 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 79
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000001360 synchronised effect Effects 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000012790 confirmation Methods 0.000 claims abstract description 14
- 238000012986 modification Methods 0.000 claims description 59
- 230000004048 modification Effects 0.000 claims description 49
- 238000012795 verification Methods 0.000 claims description 49
- 230000006870 function Effects 0.000 claims description 43
- 238000012360 testing method Methods 0.000 claims description 34
- 230000000694 effects Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Abstract
本说明书实施例提供了一种代码同步变更的确认方法、装置和设备,涉及大数据技术领域,其中,该方法包括:获取目标系统的代码中与待修改内容信息集关联的第一代码信息集;待修改内容信息集表示在第一时刻需要修改的代码内容;按照预设时间间隔获取第二代码信息集;第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息;确定第三代码信息集;其中,第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息;将所述第三代码信息集反馈给目标系统对应的处理对象。在本说明书实施例中,可以有效避免代码的同步更改发生遗漏,同时有效节省了人力和时间,提高了代码同步变更确认的效率和准确性。
Description
技术领域
本说明书实施例涉及大数据技术领域,特别涉及一种代码同步变更的确认方法、装置和设备。
背景技术
在大数据时代,为提高用户体验,快速响应市场需求,软件产品功能日益庞大,接口关联调用场景日益增多,当其中某个公共接口或表发生变更时,关联场景的调用调查、验证测试会涉及大量代码。为了避免出现生产问题需要及时确定公共模块改动对其他模块是否涉及影响以及是否完成同步变更。
现有技术中通常是通过维护人员的手动修改和测试完成同步变更,由于人工手动修改受维护人员的经验和主观限制,具有一定随机性,可能出现关联代码同步修改遗漏的情况下,从而导致后续投产出现生产问题,并且人工手动修改耗费大量时间和人力。因此,采用现有技术中的技术方案无法高效地完成代码的同步变更。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本说明书实施例提供了一种代码同步变更的确认方法、装置和设备,以解决现有技术中无法高效地完成代码的同步变更的问题。
本说明书实施例提供了一种代码同步变更的确认方法,包括:获取目标系统的代码中与待修改内容信息集关联的第一代码信息集;其中,所述待修改内容信息集表示在第一时刻需要修改的代码内容;按照预设时间间隔获取第二代码信息集;其中,所述第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息,所述第二时刻在所述第一时刻之后;基于所述第一代码信息集和第二代码信息集,确定第三代码信息集;其中,所述第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息;将所述第三代码信息集反馈给所述目标系统对应的处理对象。
本说明书实施例还提供了一种代码同步变更的确认装置,包括:第一获取模块,用于获取目标系统的代码中与待修改内容信息集关联的第一代码信息集;其中,所述待修改内容信息集表示在第一时刻需要修改的代码内容;第二获取模块,用于按照预设时间间隔获取第二代码信息集;其中,所述第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息,所述第二时刻在所述第一时刻之后;确定模块,用于基于所述第一代码信息集和第二代码信息集,确定第三代码信息集;其中,所述第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息;反馈模块,用于将所述第三代码信息集反馈给所述目标系统对应的处理对象。
本说明书实施例还提供了一种代码同步变更的确认设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现所述代码同步变更的确认方法的步骤。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述代码同步变更的确认方法的步骤。
本说明书实施例提供了一种代码同步变更的确认方法,可以通过获取目标系统的代码中与待修改内容信息集关联的第一代码信息集,从而确定出理论上需要修改的代码。可以按照预设时间间隔获取第二代码信息集,得到第二时刻相较于第一时刻发生变更的代码的特征信息,从而可以确定在第二时刻实际修改的代码。进一步的,可以通过比较第一代码信息集和第二代码信息集,得到出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息,从而确定出第三代码信息集。为了避免代码的同步更改发生遗漏,可以将所述第三代码信息集反馈给所述目标系统对应的处理对象,以便处理对象可以及时进行代码的同步变更,同时有效节省了人力和时间,提高了代码同步变更确认的效率和准确性。
附图说明
此处所说明的附图用来提供对本说明书实施例的进一步理解,构成本说明书实施例的一部分,并不构成对本说明书实施例的限定。在附图中:
图1是根据本说明书实施例提供的代码同步变更的确认方法的步骤示意图;
图2是根据本说明书实施例提供的代码同步变更的确认装置的结构示意图;
图3是根据本说明书实施例提供的代码同步变更的确认设备的结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本说明书实施例的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本说明书实施例,而并非以任何方式限制本说明书实施例的范围。相反,提供这些实施方式是为了使本说明书实施例公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本说明书实施例的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本说明书实施例公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
虽然下文描述流程包括以特定顺序出现的多个操作,但是应该清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
请参阅图1,本实施方式可以提供一种代码同步变更的确认方法。该代码同步变更的确认方法可以用于高效、准确地确认是否完成代码的同步变更。上述代码同步变更的确认方法可以包括以下步骤。
S101:获取目标系统的代码中与待修改内容信息集关联的第一代码信息集;其中,待修改内容信息集表示在第一时刻需要修改的代码内容。
在本实施方式中,可以获取目标系统的代码中与待修改内容信息集关联的第一代码信息集。其中,上述目标系统可以为需要进行代码修改的应用,上述待修改内容信息集可以用于表示目标系统在第一时刻需要修改的代码内容。
在本实施方式中,上述待修改内容信息集中可以包含确定需要修改的代码内容的描述,例如:待修改内容信息集中的信息为表名称发生变更,原来表名为tablename1,现在表名为tablename2,与待修改内容信息集关联的第一代码信息集中则可以包含目标系统在第一时刻的代码中涉及调用到tablename1表名的代码的特征信息。当然,待修改内容信息集不限于上述举例,所属领域技术人员在本说明书实施例技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本说明书实施例相同或相似,均应涵盖于本说明书实施例保护范围内。
在本实施方式中,上述第一时刻可以为在确定出待修改内容信息集时刻与修改代码的时刻之间的任意时刻,上述第一时刻可以为确定出待修改内容信息集的时刻,也可以为在确定出待修改内容信息集的时刻之后修改代码之前的任意时刻,具体的可以根据实际情况确定,本说明书实施例对此不作限定。
在本实施方式中,上述第一代码信息集可以用于表征需要修改的代码,第一代码信息集中可以包含根据待修改内容信息集确定的需要修改的代码的特征信息,根据一组特征信息可以唯一确定一个代码。上述特征信息中可以包含:代码的文件名、代码的版本快照等,当然可以理解的是,还可以包含其它可能的信息,例如:代码的位置等,具体的可以根据实际情况确定,本说明书实施例对此不作限定。
在本实施方式中,由于代码可能随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布多次,此时则需要利用版本快照来区分不同版本的代码,上述版本快照可以用于表征不同版本代码的版本号。
在本实施方式中,大型软件产品公共模块或表调用场景较多,代码接口历史维护人员的变更,难以找到历史代码维护人,现维护人不熟悉历史代码,可能导致确认出现偏差。而本实施例中可以通过待修改内容信息集自动搜索确定关联的第一代码信息集,有效节省了人力和时间,并提高了确定的第一代码信息集的准确性。
S102:按照预设时间间隔获取第二代码信息集;其中,第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息,第二时刻在第一时刻之后。
在本实施方式中,在获取到根据待修改内容信息集确定的第一代码信息集之后,为了确定是否玩代码同步变更,可以按照预设时间间隔获取第二代码信息集。其中,上述第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息,第二时刻在第一时刻之后。
在本实施方式中,上述预设时间间隔可以为6小时、24小时或者2天等,优选的上述第二时刻可以设置在晚上服务器空闲时间。在一些实施例中,上述第二时刻可以为检测到版本更新的时刻,具体的可以根据实际情况确定,本说明书实施例对此不作限定。
在本实施方式中,在接收到代码的维护人员发送的待修改内容信息集后可以直接触发代码同步变更的确认流程,从而可以在确定出第一代码信息集后可以按照预设时间间隔执行更新代码命令,进入Git本地开发代码主分支路径,将从远程仓库获取的当前最新的代码更新到服务器本地,并记录在第二时刻获取的代码的版本快照。其中,上述Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
在本实施方式中,可以通过比较第一时刻的代码和第二时刻的代码,从而可以确定出第二时刻相较于第一时刻发生变更的代码。进而可以获取发生变更的代码的特征信息,得到第二代码信息集。由此可见,第一代码信息集中包含的代码是根据待修改内容信息集确定的理论上需要修改的代码,而第二代码信息集中包含的代码是实际修改的代码。
在本实施方式中,上述特征信息中可以包含:代码的文件名、代码的版本快照等,当然可以理解的是,还可以包含其它可能的信息,例如:代码的位置等,具体的可以根据实际情况确定,本说明书实施例对此不作限定。
S103:基于第一代码信息集和第二代码信息集,确定第三代码信息集;其中,第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息。
在本实施方式中,为了确定代码的更改是否存在遗漏,可以通过对比第一代码信息集和第二代码信息集确定第三代码信息集。其中,上述第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息,第三代码信息集中包含在第二时刻仍未修改的代码的特征信息。
在本实施方式中,上述特征信息中可以包含:代码的文件名、代码的版本快照等,当然可以理解的是,还可以包含其它可能的信息,例如:代码的位置等,具体的可以根据实际情况确定,本说明书实施例对此不作限定。
在本实施方式中,如果上述第三代码信息集为空,则说明代码均已修改,则可以结束代码同步变更的确认流程。如果上述第三代码信息集不为空,则可以执行步骤S104。
S104:将第三代码信息集反馈给目标系统对应的处理对象。
在本实施方式中,为了避免代码的更改遗漏,可以将第三代码信息集反馈给目标系统对应的处理对象,以便处理对象可以及时进行代码的同步变更。其中,上述目标系统对应的处理对象可以为代码的维护人员,当然也可以为其它人员,具体的可以根据实际情况确定,本说明书实施例对此不作限定。
在本实施方式中,为了进一步确定更改是否存在遗漏,可以重复执行上述步骤S102-S103,直至确定第三代码信息集为空。
在本实施方式中,反馈第三代码信息集可以为邮件提醒,或者将第三代码信息集显示在处理对象的用户界面上。当然,反馈第三代码信息集的方式不限于上述举例,所属领域技术人员在本说明书实施例技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本说明书实施例相同或相似,均应涵盖于本说明书实施例保护范围内。
从以上的描述中,可以看出,本说明书实施例实现了如下技术效果:可以通过获取目标系统的代码中与待修改内容信息集关联的第一代码信息集,从而确定出理论上需要修改的代码。可以按照预设时间间隔获取第二代码信息集,得到第二时刻相较于第一时刻发生变更的代码的特征信息,从而可以确定在第二时刻实际修改的代码。进一步的,可以通过比较第一代码信息集和第二代码信息集,得到出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息,从而确定出第三代码信息集。为了避免代码的同步更改发生遗漏,可以将第三代码信息集反馈给目标系统对应的处理对象,以便处理对象可以及时进行代码的同步变更,同时有效节省了人力和时间,提高了代码同步变更确认的效率和准确性。
在一个实施方式中,在按照预设时间间隔获取第二代码信息集之后,还可以包括:确定第四代码信息集;其中,第四代码信息集中包含同时出现在第一代码信息集和第二代码信息集中并且状态为未验证的代码的特征信息;根据第四代码信息集进行回归验证。
在本实施方式中,由于在代码进行同步变更后需要进行回归验证,以确保代码的更改不会破坏应用中其它代码的现有功能。因此,可以进一步通过比较第一代码信息集和第二代码信息集确定第四代码信息集,得到已修改未验证的代码清单。其中,上述第四代码信息集中可以包含同时出现在第一代码信息集和第二代码信息集中并且状态为未验证的代码的特征信息,上述第四代码信息集可以作为待验证代码信息集。
在本实施方式中,可以对各个代码的验证状态进行标记,已进行回归验证的可以标记为已验证,未进行回归验证的可以标记为未验证,并且可以按照一定的时间间隔对各个代码的验证状态进行更新,从而确保准确性。
在本实施方式中,可以根据第四代码信息集确定回归验证的范围,对确认完成更改和回归验证的代码后续不再进行回归验证。相较于现有技术需要对所有代码进行上下游迭代回归测试的方式,本实施例可以有效降低运行时间,并大大节省人工测试工作量和时间。
在一个实施方式中,代码的特征信息包括:代码的文件名和版本快照,根据第四代码信息集进行回归验证,可以包括:根据第四代码信息集中各个代码的文件名,确定至少一个受影响的功能模块的名称。进一步的,可以调用受影响的功能模块的名称对应的测试用例集,并利用测试用例集对至少一个受影响的功能模块进行回归验证。
在本实施方式中,可以根据第四代码信息集中各个代码的文件名,确定受影响的功能模块。一个代码文件可能和系统多个功能相关,一个系统功能可能和多个代码文件相关,代码的文件名和相关联功能模块可能是一对一、一对多、多对一、多对多这四种情况其中之一。
在本实施方式中,可以预先配置并存储代码的文件名与影响的功能模块之间的对应关系,在需要确定受影响的功能模块的名称时可以直接调用。确定的结果可以以文件功能对应表的形式展示,文件功能对应表的直接对应关系为“文件名:影响功能”。例如,一对一关系:Filename1:功能A;一对多关系:Filename2:功能B、功能C;多对一关系:Filename3:功能D,Filename4:功能D;多对多关系:Filename5:功能E、功能F,Filename6:功能E、功能F,Filename7:功能E、功能F。其中,上述Filename为代码的文件名。
在本实施方式中,可以确定出所有受影响的功能模块的名称,并将受影响的功能模块作为回归验证的范围。
在本实施方式中,可以调用系统中预先存储的功能模块与测试用例的对应关系,根据受影响的功能模块的名称生成对应的测试用例集。例如:功能A:测试用例A;功能B:测试用例B、测试用例C;功能C、功能D:测试用例C。当然,测试用例集不限于上述举例,所属领域技术人员在本说明书实施例技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本说明书实施例相同或相似,均应涵盖于本说明书实施例保护范围内。
在本实施方式中,可以通过脚本工具,实现自动查找各个受影响的功能模块对应的测试用例,生成回归验证的测试用例列集,可以通过测试用例列集来筛选、触发自动化回归测试用例。
在一个实施方式中,在根据第四代码信息集中各个代码的文件名,确定至少一个受影响的功能模块的名称之前,还可以包括:获取同步变更信息集;其中,同步变更信息集中包含在第一时刻第一代码信息集中各个代码的文件名、修改前内容、修改后内容、是否已修改、是否验证通过、回归验证时间。进一步的,可以根据第四代码信息集中各个代码的文件名,确定第一时刻的代码和第二时刻的代码是否分别与同步变更信息集中修改前内容、修改后内容匹配。在确定匹配的情况下,将第四代码信息集作为待验证代码信息集。在确定存在不匹配代码的情况下,将不匹配的代码对应的特征信息从第四代码信息集中删除,并将不匹配的代码对应的特征信息反馈给处理对象。
在本实施方式中,可以在第一时刻确定出第一代码信息集时,生成同步变更信息集,同步变更信息集中可以包含在第一时刻第一代码信息集中各个代码的文件名、修改前内容、修改后内容、是否已修改、是否验证通过、回归验证时间。在第一时刻,同步变更信息集中“是否已修改”的状态均为未修改,“是否验证通过”的状态均为未验证,“修改前内容、修改后内容”可以根据待修改内容信息集确定,“回归验证时间”的值可以为空。
在本实施方式中,在进行回归验证之前,可以先确定代码更改是否正确。由于同步变更信息集中记录了各个代码的文件名对应的修改前内容、修改后内容,因此,可以根据第四代码信息集中各个代码的文件名,确定第一时刻的代码和第二时刻的代码是否分别与同步变更信息集中修改前内容、修改后内容匹配。即第一时刻的代码与同步变更信息集中修改前内容匹配,第二时刻的代码与同步变更信息集中修改后内容匹配。
在本实施方式中,匹配则说明该代码更改正确可以保留在第四代码信息集中,如果不匹配则说明代码更改不正确,则说明该代码需要重新确认如何修改暂时不能进行回归验证,因此可以将不匹配的代码对应的特征信息从第四代码信息集中删除。进一步的,可以将筛选后的第四代码信息集作为待验证代码信息集,并将作为待验证代码信息集作为回归验证的范围。
在本实施方式中,为了避免代码修改错误情况的发生,可以将不匹配的代码对应的特征信息反馈给处理对象,以便处理对象可以及时处理,从而可以对代码的同步更改进行有效的检测,以确保代码同步更改的准确性。
在一个实施方式中,在利用测试用例集对至少一个受影响的功能模块进行回归验证之后,还可以包括:获取回归验证结果,并根据回归验证结果更新同步变更信息集。
在本实施方式中,可以执行测试用例集中的测试用例进行回归验证,并获取回归验证结果。其中,上述回归验证结果可以用于表征回归验证是否通过。
在本实施方式中,可以根据回归验证结果更新同步变更信息集,具体的,可以更新同步变更信息集中“是否验证通过、回归验证时间”的值,从而确保同步变更信息集中数据有效性。对于验证未通过的测试用例可以将其反馈给处理对象,以便及时确定原因进行改进,对于验证通过的后续无需再进行回归验证。
在一个实施方式中,获取目标系统的代码中与待修改内容信息集关联的第一代码信息集,可以包括:获取目标系统在第一时刻的代码,获取待修改内容信息集。进一步的,可以确定目标系统在第一时刻的代码中涉及待修改内容信息集的代码,得到与待修改内容信息集关联的第一代码信息集;其中,第一代码信息集中包含在第一时刻需要修改的代码的特征信息。
在本实施方式中,可以获取目标系统在第一时刻最新版本对应的代码。上述待修改内容信息集可以是维护人员提供的,也可以是系统自动检测确定的,具体的可以根据实际情况确定,本说明书实施例对此不作限定。
在本实施方式中,可以通过Git开发代码主线上代码,将远程代码仓库中在第一时刻最新的代码复制到服务器本地,并根据待修改内容信息集搜索第一时刻最新的代码中涉及待修改内容信息集的代码清单,得到待修改代码的文件名、版本快照(basetag)。
在一个实施方式中,代码的特征信息可以包括:代码的文件名和版本快照,按照预设时间间隔获取第二代码信息集,可以包括:按照预设时间间隔获取目标系统在第二时刻的代码,并确定第二时刻的代码的版本快照。进一步的,可以根据第一代码信息集中的版本快照和第二时刻的代码的版本快照,利用Git代码管理工具命令确定两个版本快照对应的代码之间发生变更的代码,并根据发生变更的代码的特征信息生成第二代码信息集。
在本实施方式中,为了便于将第一时刻和第二时刻的代码进行比较,可以确定第二时刻的最新代码的版本快照。并根据第一代码信息集中的版本快照和第二时刻的代码的版本快照,使用Git代码管理工具命令git diff,得到两个版本快照对应的代码之间有变动的代码,得到发生变更的代码的特征信息。其中,git diff用来比较文件之间的不同。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本说明书实施例,并不构成对本说明书实施例的不当限定。
本发明实施提供了一种代码同步变更的确认方法,可以包括:
作业1:用于首次下载开发代码,在同一个构建节点上作业1只运行一次,作为查找涉及对应变更内容的版本基线,目的是找到涉及待修改内容信息集的联动变更的代码清单changefilelist1。
作业2:根据待修改内容信息集,例如某个表名称发生变更,原来表名为tablename1,现在表名为tablename2,在第一时刻下载的代码库里面查找涉及调用到tablename1名称的代码文件,得到包含文件名、版本快照basetag的changefilelist1。对应生成同步变更表(包括文件名、修改前内容、修改后内容、是否已修改、是否通过、检测时间),然后将同步变更表内容导入系统保存。
作业3:根据设置的触发时间(第二时刻),进入Git本地开发代码主分支路径,获取远程代码仓库中的最新代码并更新代码到本地,版本快照记为newtag。不需要下载存量代码,每次只是更新代码,节约后续运行时间。
作业4:根据版本快照basetag和newtage,使用Git代码管理工具命令git diff,得到两个版本快照之间有变动的代码,进而得到变更文件名清单changefilelist2。
作业5:将changefilelist2和changefilelist1进行比较,得到需要修改但未完成修改的文件名清单和已修改且未通过验证的文件清单filelistchanged,将需要修改但未完成修改的文件名清单反馈给维护人员。需要执行回归测试的文件名清单,对已修改且未通过验证的文件清单查找,检查修改前和修改后的内容是否匹配同步变更表。如果匹配(符合修改后内容),则保留在filelistchanged;如果不匹配(没有符合修改后的内容),则从filelistchanged清除该文件,得到待验证文件清单。
作业6:对于需要执行回归测试的文件,根据待验证文件清单中记录的代码的文件名确定受影响的功能模块列表。
作业7:确定受影响的功能模块列表对应的回归验证的测试用例列表,通过测试用例列表筛选触发自动化回归用例。
作业8:执行测试用例列表中对应的测试用例,得到回归验证结果,并更新同步变更表(包括文件名、修改前内容、修改后内容、是否已修改、是否通过、检测时间)。进一步的,可以将更新后的同步变更表反馈给维护人员。
作业1在同一构建节点上只需要运行一次,而作业2、作业3、作业4、作业5、作业6、作业7、作业8可多次重复按固定顺序运行,可以通过在Jenkins平台上通过设置关联任务,将这些任务串联起来。在作业2执行成功时可以自动触发后续作业串行运行,这样就可以将所有任务操作集成起来,减低人工干预,提高效率。其中,上述Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
基于同一发明构思,本说明书实施例中还提供了一种代码同步变更的确认装置,如下面的实施例。由于代码同步变更的确认装置解决问题的原理与代码同步变更的确认方法相似,因此代码同步变更的确认装置的实施可以参见代码同步变更的确认方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图2是本说明书实施例的代码同步变更的确认装置的一种结构框图,如图2所示,可以包括:第一获取模块201、第二获取模块202、确定模块203、反馈模块204,下面对该结构进行说明。
第一获取模块201,可以用于获取目标系统的代码中与待修改内容信息集关联的第一代码信息集;其中,待修改内容信息集表示在第一时刻需要修改的代码内容;
第二获取模块202,可以用于按照预设时间间隔获取第二代码信息集;其中,第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息,第二时刻在第一时刻之后;
确定模块203,可以用于基于第一代码信息集和第二代码信息集,确定第三代码信息集;其中,第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息;
反馈模块204,可以用于将第三代码信息集反馈给目标系统对应的处理对象。
本说明书实施例实施方式还提供了一种电子设备,具体可以参阅图3示的基于本说明书实施例提供的代码同步变更的确认方法的电子设备组成结构示意图,电子设备具体可以包括输入设备31、处理器32、存储器33。其中,输入设备31具体可以用于输入目标系统的代码中与待修改内容信息集关联的第一代码信息集。处理器32具体可以用于获取目标系统的代码中与待修改内容信息集关联的第一代码信息集;其中,待修改内容信息集表示在第一时刻需要修改的代码内容;按照预设时间间隔获取第二代码信息集;其中,第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息,第二时刻在第一时刻之后;基于第一代码信息集和第二代码信息集,确定第三代码信息集;其中,第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息;将第三代码信息集反馈给目标系统对应的处理对象。存储器33具体可以用于存储第三代码信息集等数据。
在本实施方式中,输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。输入设备还可以获取接收其他模块、单元、设备传输过来的数据。处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。存储器具体可以是现代信息技术中用于保存信息的记忆设备。存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该电子设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本说明书实施例实施方式中还提供了一种基于代码同步变更的确认方法的计算机存储介质,计算机存储介质存储有计算机程序指令,在计算机程序指令被执行时可以实现:获取目标系统的代码中与待修改内容信息集关联的第一代码信息集;其中,待修改内容信息集表示在第一时刻需要修改的代码内容;按照预设时间间隔获取第二代码信息集;其中,第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息,第二时刻在第一时刻之后;基于第一代码信息集和第二代码信息集,确定第三代码信息集;其中,第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息;将第三代码信息集反馈给目标系统对应的处理对象。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本说明书实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本说明书实施例不限制于任何特定的硬件和软件结合。
虽然本说明书实施例提供了如上述实施例或流程图所述的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本说明书实施例提供的执行顺序。所述的方法的在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本说明书实施例的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本说明书实施例的优选实施例而已,并不用于限制本说明书实施例,对于本领域的技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的保护范围之内。
Claims (7)
1.一种代码同步变更的确认方法,其特征在于,包括:
获取目标系统的代码中与待修改内容信息集关联的第一代码信息集;其中,所述待修改内容信息集表示在第一时刻需要修改的代码内容;
按照预设时间间隔获取第二代码信息集;其中,所述第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息,所述第二时刻在所述第一时刻之后;
基于所述第一代码信息集和第二代码信息集,确定第三代码信息集;其中,所述第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息;
将所述第三代码信息集反馈给所述目标系统对应的处理对象;
其中,在按照预设时间间隔获取第二代码信息集之后,还包括:
确定第四代码信息集;其中,所述第四代码信息集中包含同时出现在第一代码信息集和第二代码信息集中并且状态为未验证的代码的特征信息;
根据所述第四代码信息集进行回归验证;
其中,所述代码的特征信息包括:代码的文件名和版本快照,根据所述第四代码信息集进行回归验证,包括:
根据所述第四代码信息集中各个代码的文件名,确定至少一个受影响的功能模块的名称;
调用所述受影响的功能模块的名称对应的测试用例集;
利用所述测试用例集对所述至少一个受影响的功能模块进行回归验证;
其中,在根据所述第四代码信息集中各个代码的文件名,确定至少一个受影响的功能模块的名称之前,还包括:
获取同步变更信息集;其中,所述同步变更信息集中包含在所述第一时刻所述第一代码信息集中各个代码的文件名、修改前内容、修改后内容、是否已修改、是否验证通过、回归验证时间;
根据所述第四代码信息集中各个代码的文件名,确定所述第一时刻的代码和第二时刻的代码是否分别与同步变更信息集中修改前内容、修改后内容匹配;
在确定匹配的情况下,将所述第四代码信息集作为待验证代码信息集;
在确定存在不匹配代码的情况下,将不匹配的代码对应的特征信息从所述第四代码信息集中删除;
将所述不匹配的代码对应的特征信息反馈给所述处理对象。
2.根据权利要求1所述的方法,其特征在于,在利用所述测试用例集对所述至少一个受影响的功能模块进行回归验证之后,还包括:
获取回归验证结果;
根据所述回归验证结果更新所述同步变更信息集。
3.根据权利要求1所述的方法,其特征在于,获取目标系统的代码中与待修改内容信息集关联的第一代码信息集,包括:
获取所述目标系统在第一时刻的代码;
获取待修改内容信息集;
确定所述目标系统在第一时刻的代码中涉及所述待修改内容信息集的代码,得到与所述待修改内容信息集关联的第一代码信息集;其中,所述第一代码信息集中包含在所述第一时刻需要修改的代码的特征信息。
4.根据权利要求1所述的方法,其特征在于,所述代码的特征信息包括:代码的文件名和版本快照,按照预设时间间隔获取第二代码信息集,包括:
按照所述预设时间间隔获取所述目标系统在所述第二时刻的代码;
确定所述第二时刻的代码的版本快照;
根据所述第一代码信息集中的版本快照和所述第二时刻的代码的版本快照,利用Git代码管理工具命令确定两个版本快照对应的代码之间发生变更的代码;
根据所述发生变更的代码的特征信息生成所述第二代码信息集。
5.一种代码同步变更的确认装置,其特征在于,包括:
第一获取模块,用于获取目标系统的代码中与待修改内容信息集关联的第一代码信息集;其中,所述待修改内容信息集表示在第一时刻需要修改的代码内容;
第二获取模块,用于按照预设时间间隔获取第二代码信息集;其中,所述第二代码信息集中包含第二时刻相较于第一时刻发生变更的代码的特征信息,所述第二时刻在所述第一时刻之后;
确定模块,用于基于所述第一代码信息集和第二代码信息集,确定第三代码信息集;其中,所述第三代码信息集中包含出现在第一代码信息集中但未出现在第二代码信息集中的代码的特征信息;
反馈模块,用于将所述第三代码信息集反馈给所述目标系统对应的处理对象;
其中,在按照预设时间间隔获取第二代码信息集之后,还包括:
确定第四代码信息集;其中,所述第四代码信息集中包含同时出现在第一代码信息集和第二代码信息集中并且状态为未验证的代码的特征信息;
根据所述第四代码信息集进行回归验证;
其中,所述代码的特征信息包括:代码的文件名和版本快照,根据所述第四代码信息集进行回归验证,包括:
根据所述第四代码信息集中各个代码的文件名,确定至少一个受影响的功能模块的名称;
调用所述受影响的功能模块的名称对应的测试用例集;
利用所述测试用例集对所述至少一个受影响的功能模块进行回归验证;
其中,在根据所述第四代码信息集中各个代码的文件名,确定至少一个受影响的功能模块的名称之前,还包括:
获取同步变更信息集;其中,所述同步变更信息集中包含在所述第一时刻所述第一代码信息集中各个代码的文件名、修改前内容、修改后内容、是否已修改、是否验证通过、回归验证时间;
根据所述第四代码信息集中各个代码的文件名,确定所述第一时刻的代码和第二时刻的代码是否分别与同步变更信息集中修改前内容、修改后内容匹配;
在确定匹配的情况下,将所述第四代码信息集作为待验证代码信息集;
在确定存在不匹配代码的情况下,将不匹配的代码对应的特征信息从所述第四代码信息集中删除;
将所述不匹配的代码对应的特征信息反馈给所述处理对象。
6.一种代码同步变更的确认设备,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至4中任一项所述方法的步骤。
7.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被计算机执行时实现权利要求1至4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110313419.2A CN113050926B (zh) | 2021-03-24 | 2021-03-24 | 一种代码同步变更的确认方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110313419.2A CN113050926B (zh) | 2021-03-24 | 2021-03-24 | 一种代码同步变更的确认方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113050926A CN113050926A (zh) | 2021-06-29 |
CN113050926B true CN113050926B (zh) | 2024-03-05 |
Family
ID=76514941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110313419.2A Active CN113050926B (zh) | 2021-03-24 | 2021-03-24 | 一种代码同步变更的确认方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113050926B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591531B (zh) * | 2024-01-18 | 2024-03-22 | 北京快立方科技有限公司 | 一种数据库的远程数据同步方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780076A (zh) * | 2015-03-19 | 2015-07-15 | 杭州华三通信技术有限公司 | 一种代码检查方法和设备 |
CN105893259A (zh) * | 2016-03-31 | 2016-08-24 | 广州华多网络科技有限公司 | 代码检测系统、方法及装置 |
CN107368313A (zh) * | 2017-07-18 | 2017-11-21 | 腾讯科技(深圳)有限公司 | 代码检测方法、装置及电子设备 |
CN111045944A (zh) * | 2019-12-11 | 2020-04-21 | 广州品唯软件有限公司 | 回归测试方法、装置、系统及计算机可读存储介质 |
-
2021
- 2021-03-24 CN CN202110313419.2A patent/CN113050926B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780076A (zh) * | 2015-03-19 | 2015-07-15 | 杭州华三通信技术有限公司 | 一种代码检查方法和设备 |
CN105893259A (zh) * | 2016-03-31 | 2016-08-24 | 广州华多网络科技有限公司 | 代码检测系统、方法及装置 |
CN107368313A (zh) * | 2017-07-18 | 2017-11-21 | 腾讯科技(深圳)有限公司 | 代码检测方法、装置及电子设备 |
CN111045944A (zh) * | 2019-12-11 | 2020-04-21 | 广州品唯软件有限公司 | 回归测试方法、装置、系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113050926A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107315689B (zh) | 基于Git代码文件检索粒度的自动化回归测试方法 | |
CN108196878B (zh) | 应用程序安装包的生成方法、装置、电子设备及存储介质 | |
CN107533504A (zh) | 用于软件分发的异常分析 | |
US9830376B2 (en) | Language tag management on international data storage | |
CN110851308A (zh) | 一种测试方法、装置、电子设备及存储介质 | |
US20130041900A1 (en) | Script Reuse and Duplicate Detection | |
CN108776643B (zh) | 一种基于版本控制流程的目标代码合并控制方法及系统 | |
US10048978B2 (en) | Apparatus and method for identifying a virtual machine having changeable settings | |
US10552242B2 (en) | Runtime failure detection and correction | |
US20210042216A1 (en) | Detecting problematic code changes | |
CN111949607B (zh) | 一种udt文件的监控方法、系统和装置 | |
US10846212B2 (en) | Evidence gathering system and method | |
CN105045617A (zh) | 一种Android系统的应用恢复方法及系统 | |
CN111694612A (zh) | 配置检查方法、装置、计算机系统及存储介质 | |
CN113050926B (zh) | 一种代码同步变更的确认方法、装置和设备 | |
WO2019030698A1 (en) | METHOD, SYSTEM AND APPARATUS FOR PROCESSING DATABASE UPDATES | |
CN110716804A (zh) | 无用资源的自动删除方法、装置、存储介质及电子设备 | |
CN108241543B (zh) | 业务操作断点执行的方法、业务服务器及系统 | |
CN116578497A (zh) | 一种接口自动化测试方法、系统、计算机设备及存储介质 | |
CN108737184B (zh) | 一种容灾系统的管理方法和装置 | |
CN108804239B (zh) | 平台整合的方法、装置、计算机设备和存储介质 | |
US9396239B2 (en) | Compiling method, storage medium and compiling apparatus | |
CN112765188B (zh) | 配置信息处理方法、配置管理系统、电子设备及存储介质 | |
CN114416163A (zh) | 一种制品管理方法、系统、存储介质和电子设备 | |
CN113127027A (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 |