CN109508203B - 版本一致性确定方法、装置及系统 - Google Patents

版本一致性确定方法、装置及系统 Download PDF

Info

Publication number
CN109508203B
CN109508203B CN201811417127.8A CN201811417127A CN109508203B CN 109508203 B CN109508203 B CN 109508203B CN 201811417127 A CN201811417127 A CN 201811417127A CN 109508203 B CN109508203 B CN 109508203B
Authority
CN
China
Prior art keywords
file
execution code
code
incremental
increment
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
Application number
CN201811417127.8A
Other languages
English (en)
Other versions
CN109508203A (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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201811417127.8A priority Critical patent/CN109508203B/zh
Publication of CN109508203A publication Critical patent/CN109508203A/zh
Application granted granted Critical
Publication of CN109508203B publication Critical patent/CN109508203B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种版本一致性确定方法、装置及系统,系统包括:配置库设备存储多个重开发时间点一一对应的多个增量执行码,确定重开发时间点位于预设修改时间段内的增量执行码,并组成第一增量执行码集;预设修改时间段包括起始时间点和结束时间点;配置库设备从测试库设备获取由起始时间点至当前时间点之间执行测试操作的增量执行码,并组成第二增量执行码集;配置库设备计算第一增量执行码集和第二增量执行码集的并集,对并集执行融合操作获得融合增量执行码;配置库设备获取由起始时间段至当前时间点之间的正式增量执行码;配置库设备对比融合增量执行码和正式增量执行码,获得一致性对比结果。本申请可以提高执行一致性检查工作的效率和准确率。

Description

版本一致性确定方法、装置及系统
技术领域
本申请涉及软件技术领域,尤其涉及版本一致性确定方法、装置及系统。
背景技术
在一软件程序使用一段时间后,通常会对软件程序进行重开发操作。开发库设备可以从配置库设备获取源代码,并对源代码执行重开发操作获得更新后源代码(后续称为全量源码),在全量源码于构建库设备经过编译获得全量执行码后,可于测试库设备中对全量执行码进行测试,测试通过后存储全量源码和全量执行码至配置库设备,完整一次重开发操作。
再次执行重开发操作时仍从配置库设备获取源代码,获取的源代码即为上一次重开发操作后的源代码。以此类推,在经过多次重开发操作之后,配置库设备中最新全量执行码,即为经过多次重开发操作后的全量执行码。
理论上,配置库设备中最新的全量执行码应该包含多次重开发操作中修改且经过测试的软件代码。但是,实际情况下由于开发人员的一些违规操作,导致全量执行码缺失修改后的一些软件代码,或,全量执行码中一些软件代码并未于测试库设备中测试。
例如,开发人员违规直接在测试库设备的测试环境里修改代码,使得一些修改后的软件代码未添加至配置库设备中;以及,开发人员未经过测试库设备中经过测试便提交至配置库设备,一些修改后的软件代码未在测试库设备中经过测试。
目前在将配置库设备中最新的全量执行码发布至用户设备之前,通常需要人工来执行一致性检查工作,但是人工执行一致性检查工作的效率较低且错误率高。
发明内容
鉴于此,本申请提供版本一致性确定方法、装置及系统,可以方便快捷的执行一致性检查工作,以提高执行一致性检查工作的效率和准确率。
为了实现上述目的,提供了下述技术特征:
一种版本一致性确定系统,包括:
配置库设备存储多个重开发时间点一一对应的多个增量执行码,确定重开发时间点位于预设修改时间段内的增量执行码,并组成第一增量执行码集;其中,所述预设修改时间段包括起始时间点和结束时间点;
配置库设备从测试库设备获取由所述起始时间点至当前时间点之间执行测试操作的增量执行码,并组成第二增量执行码集;
配置库设备计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码;
配置库设备获取由所述起始时间段至所述当前时间点之间的正式增量执行码;
配置库设备对比所述融合增量执行码和所述正式增量执行码,获得一致性对比结果。
可选的,不同增量执行码对应不同的节点标识,每个增量执行码包括一个或多个编译文件,不同编译文件的文件名称不同;
则配置库设备计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码,包括:
配置库设备对于所述第一增量执行码集和所述第二增量执行码集中相同节点标识的增量执行码保留一份,对于不同节点标识的增量执行码均保留,获得所述第一增量执行码集和所述第二增量执行码集的并集;
配置库设备对于所述并集中各个增量执行码中的多个编译文件,若两个编译文件的文件名称一致则保留一份,若两个编译文件的文件名称不一致则均保留,获得融合并集中各个增量执行码的融合增量执行码。
可选的,所述配置库设备获取由所述起始时间段至所述当前时间点之间的正式增量执行码,包括:
配置库设备获取最新全量执行码,从所述全量执行码中确定所述起始时间段和所述当前时间点之间的多个编译文件,将所述多个编译文件组成正式增量执行码。
可选的,所述配置库设备对比所述融合增量执行码和所述正式增量执行码,获得一致性对比结果,包括:
配置库设备依据过滤规则过滤所述融合增量执行码和所述正式增量执行码中无需对比的编译文件,获得过滤后融合增量执行码和过滤后正式增量执行码;
依据对比规则中文件级别的文件名称集,从所述过滤后融合增量执行码中筛选出第一文件级别编译文件集,以及,从所述过滤后正式增量执行码中筛选出第二文件级别编译文件集;
按照文件级别对比规则,对比所述第一文件级别编译文件集和所述第二文件级别编译文件集,获得文件级别对比结果;
依据对比规则中的文件内容级别的文件名称集,从所述过滤后融合增量执行码中筛选出第一文件内容级别编译文件集,以及,从所述过滤后正式增量执行码中筛选出第二文件内容级别编译文件集;
按照文件内容级别对比规则,对比所述第一文件内容级别编译文件集和所述第二文件内容级别编译文件集,获得文件内容级别对比结果;
所述文件级别对比结果以及文件内容级别对比结果,作为一致性对比结果。
可选的,所述文件级别对比规则包括:对比相同目录下文件名称是否一致,对比相同目录下相同文件名称的文件大小是否一致;
所述文件内容级别对比规则包括:对比相同目录下文件名称是否一致,对比相同目录下相同文件名称的文件大小是否一致,对比相同目录下相同文件名称的文件中每一行内容是否相同,对比相同目录下相同文件名称的文件的编码格式是否一致。
可选的,还包括:
分析所述一致性对比结果,确定所述融合增量执行码和所述正式增量执行码的不一致代码集;
若所述正式增量执行码包含不一致代码且所述融合增量执行码不包含所述不一致代码,则确定为第一异常类型,第一异常类型表示开发人员于预设修改时间段之后提交未经测试软件代码至配置库设备;
若所述融合增量执行码包含所述不一致代码且所述正式增量执行码不包含不一致代码,则:
在不一致代码仅来源于所述第一增量代码集的情况下,确定为第二异常类型,第二异常类型表示开发人员忘记将不一致代码于测试库设备中测试便提交至配置库设备;
在不一致代码仅来源于所述第二增量代码集的情况下,确定为第三异常类型,第三异常类型表示开发人员于测试环境中修改代码,忘记将不一致代码提交至测试库设备。
可选的,所述配置库设备存储多个重开发时间点一一对应的多个增量执行码,包括:
配置库设备和构建库设备执行多次下述操作:
配置库设备,用于获取开发库设备对源代码中一个或多个程序文件执行更新操作后发送的当前全量源码,从所述当前全量源码确定该次更新操作对应的增量源码;
构建库设备,用于从所述配置库设备中提取当前全量源码,以及,由所述增量源码中各个程序文件的文件标识组成的文件标识集,对所述当前全量源码执行编译操作获得全量执行码,从所述全量执行码中提取包含所述文件标识集中文件标识的一个或多个编译文件,将该一个或多个编译文件确定为增量执行码,发送所述增量执行码至配置库设备。
可选的,配置库设备获取开发库设备对源代码中一个或多个程序文件执行更新操作后发送的当前全量源码,从所述当前全量源码确定该次更新操作对应的增量源码,具体包括:
开发库设备从配置库设备获取源代码,其中所述源代码包括多个程序文件,在对所述源代码中一个或多个程序文件执行更新操作获得当前全量源码的过程中,记录所述更新操作涉及一个或多个程序文件的文件名称,生成唯一表示该次更新操作的当前节点号码,向所述更新操作涉及一个或多个程序文件的文件名称中添加所述当前节点号码,发送所述当前全量源码至所述配置库设备;
配置库设备接收并存储所述开发库设备发送的所述当前全量源码,确定由所述当前节点号码和历史节点号码组成的查询范围,将所述当前全量源码中节点号码位于所述查询范围内的一个或多个程序文件确定为增量源码。
一种版本一致性确定方法,应用于配置库设备,所述方法包括:
确定配置库设备中重开发时间点位于预设修改时间段内的增量执行码,并组成第一增量执行码集;其中,所述预设修改时间段包括起始时间点和结束时间点;
获取由所述起始时间点至当前时间点之间,于测试库设备中执行测试操作的增量执行码,并组成第二增量执行码集;
计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码
获取由所述起始时间段至所述当前时间点之间的正式增量执行码;
对比所述融合增量执行码和所述正式增量执行码,获得一致性对比结果。
一种版本一致性确定装置,集成于配置库设备,所述装置包括:
第一组成单元,用于确定配置库设备中重开发时间点位于预设修改时间段内的增量执行码,并组成第一增量执行码集;其中,所述预设修改时间段包括起始时间点和结束时间点;
第二组成单元,用于获取由所述起始时间点至当前时间点之间,于测试库设备中执行测试操作的增量执行码,并组成第二增量执行码集;
计算单元,用于计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码
获取单元,用于获取由所述起始时间段至所述当前时间点之间的正式增量执行码;
对比单元,用于对比所述融合增量执行码和所述正式增量执行码,获得一致性对比结果。
通过以上技术手段,可以实现以下有益效果:
本申请可以从配置库设备中获取部分增量执行码也即第一增量执行码集,从测试库设备中获取部分增量执行码也即第二增量执行码集,对第一增量执行码集和第二增量执行码集取并集后,可以获得融合增量执行码;从配置库设备中获取正式增量执行码。
理论上来讲,融合增量执行码和正式增量执行码应该是一致的,所以对比融合增量执行码和正式增量执行码,从而获得一致性对比结果。本申请中自动执行一致性检查工作,从而可以提高执行一致性检查工作的效率和准确率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种版本一致性确定系统的结构示意图;
图2为本申请实施例公开的一种增量代码确定方法的流程图;
图3为本申请实施例公开的一种增量代码确定方法的流程图;
图4为本申请实施例公开的一种版本一致性确定方法的流程图;
图5为本申请实施例公开的一种版本一致性确定装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种版本一致性确定系统,参见图1,包括:
开发库设备100;
与开发库设备100相连的配置库设备200;其中,配置库设备200存储有源代码。
与配置库设备200相连的构建库设备300;
与配置库设备200相连的测试库设备400;
与配置库设备200相连的产品库设备500。
在介绍版本一致性方法之前,先介绍自动确定增量源码和增量执行码,首先介绍增量源码的执行过程,详见图2所示的实施例。
本申请提供了增量代码确定方法的实施例一,应用于图1所示的版本一致性确定系统。参见图2,包括以下步骤:
步骤S201:开发库设备从配置库设备获取源代码,其中所述源代码包括多个程序文件。
由于源代码存储于配置库设备中,所以在需要更新源代码前,需要开发库设备需要从配置库设备中获取源代码。源代码包括多个程序文件,每个程序文件的文件名称包括区分于其它程序文件的文件标识。
步骤S202:开发库设备在对所述源代码中一个或多个程序文件执行更新操作获得全量源码的过程中,记录所述更新操作涉及一个或多个程序文件的文件名称。
可以理解的是并不需要对每个程序文件进行更新,开发人员可以根据源代码的实际应用场景来确定需要更新的一个或多个程序文件,并借助于开发库设备对本次需要修改的一个或多个程序文件执行更新操作。
开发库设备在更新源代码过程中,记录本次更新操作所修改的一个或多个程序文件的文件名称;其它未被修改多个程序文件则无需记录文件名称。
步骤S203:开发库设备生成唯一表示该次更新操作的当前节点号码;
本步骤可以具体包括以下步骤:
步骤S1:获取表示执行该次更新操作的用户标识,以及,表示执行该次更新操作的时间标识。
可以理解的是,每个开发人员均有其用户标识,在登录开发库设备时,开发库设备会记录开发人员的用户标识。开发库设备会获取本次更新操作中登录开发库设备的用户标识,以及,当前的时间标识。
本实施例中,时间标识以日期为单位,即一个日期对应一个时间标识。例如,9-3号内所有时间段均对应一个时间标识1,9-10号内所有时间段均对应一个时间标识2。
步骤S2:判断该次更新操作的用户标识与上次更新操作的用户标识是否一致,以及,判断该次更新操作的时间标识与上次更新操作的时间标识是否一致;
步骤S3:若该次更新操作的用户标识与上次更新操作的用户标识不一致,或者,该次更新操作的时间标识与上次更新操作的时间标识不一致,则在上次更新操作的历史节点号码基础上递增生成当前节点号码。
在用户标识或时间标识不一致的情况下,说明本次为不同用户或者不同时间执行的更新操作,所以需生成不同的节点号码,为了保证节点号码的连续性,可以在上一更新操作对应的历史节点号码的基础上,以递增加一方式生成当前节点号码。
例如,初始记录的节点号码为1,在用户B对程序文件进行修改完成后保存,则生成节点号码为2;在用户C对程序文件进行修改完成后保存,则生成节点号码为3。
步骤S4:若该次更新操作的用户标识与上次更新操作的用户标识一致,且,该次更新操作的时间标识与上次更新操作的时间标识一致,则将上次更新操作的历史节点号码作为当前节点号码。
在同一用户在同一时间标识内执行更新操作,则可以延续使用上次更新操作的历史节点号码,即默认同一用户在同一天对应一个节点号码。
接步骤S203进入步骤S204:开发库设备向所述更新操作涉及一个或多个程序文件的文件名称中,添加所述当前节点号码。
一个程序文件的文件名称包括用于区分其它程序文件的文件标识,还包括上次更新操作时添加的历史节点号码。
开发库设备对于本次更新操作所涉及的一个或多个程序文件执行:将一个或多个程序文件的文件名称中的历史节点号码,替换为所述当前节点号码。
可以理解的是,本次更新操作涉及的一个或多个程序文件即为增量源码,本实施例中,为了便于后续筛选出该一个或多个程序文件,向该一个或多个程序文件的文件名称中添加当前节点号码,以便后续利用当前节点号码来确定出增量源码。
步骤S205:开发库设备发送所述当前全量源码至所述配置库设备,以供所述配置库设备基于所述当前全量源码的当前节点号码来确定增量源码。
开发库设备对源代码中一个或多个程序文件执行更新操作后可以获得当前全量源码;当前全量源码包括源代码中未被修改的程序文件,以及,本次更新操作后的一个或多个程序文件。
每个程序文件还包括文件信息,文件信息包括用于执行本次更新操作的用户标识,还可以包括本次更新操作的时间标识。
可以理解的是,多个用户可以同时登录开发库设备,并均对源代码执行更新操作,所以开发库设备可以多次执行步骤S201~步骤S205。
步骤S206:配置库设备接收并存储所述开发库设备发送的所述当前全量源码。
配置库设备可以多次接收并存储开发库设备发送的全量源码,但在确定增量源码的过程中,使用最新接收的当前全量源码。因为,当前全量源码中的各个程序文件是经过多次更新操作后的最新程序文件。
当前全量源码中该次更新操作涉及一个或多个程序文件的文件名称包括唯一表示该次更新操作的当前节点号码。
步骤S207:配置库设备确定由所述当前节点号码和历史节点号码组成的查询范围。
开发库设备可以存储多次更新操作对应的全量源码,用户可以基于实际情况来确定历史节点号码,也即,查询增量源码的起始节点号码;然后,由定由所述当前节点号码和历史节点号码组成的查询范围。
可选的,多个全量源码中的节点号码成递增顺序生成,则本步骤确定由所述当前节点号码和历史节点号码组成的查询范围,包括:获取所述历史节点号码和所述当前节点号码,并将大于所述历史节点号码且小于等于所述当前节点号码的范围,确定所述查询范围。
例如在历史节点号码为1,当前节点号码为3的情况下,查询范围为(1,3]。
步骤S208:配置库设备将所述当前全量源码中节点号码位于所述查询范围内的一个或多个程序文件,确定为增量源码。
配置库设备针对所述当前全量源码中每个程序文件执行下述步骤:
判断程序文件的文件名称中的节点号码是否位于所述查询范围内;
若是,则确定该程序文件为所述增量源码中一程序文件;
若否,则确定该程序文件非所述增量源码。
步骤S209:配置库设备基于增量源码确定并展示开发人员的开发效率以及开发效率的排序结果。
配置库设备在确定增量源码后,还可以执行进一步操作:
每个程序文件包括文件信息,文件信息包括表示执行更新操作的用户标识;则基于增量源码确定开发人员的开发效率包括:
依据用户标识对所述增量源码中各个程序文件执行分类操作,确定各个用户标识对应的增量源码子集;
利用所述各个用户标识对应的增量源码子集,计算各个用户的开发效率;
对所述各个用户的开发效率执行排序操作,获得排序结果;
展示各个用户的开发效率以及所述排序结果。
通过上述实施例,可以得知本申请具有如下有益效果:
第一,本实施例提供了增量源码确定方法,本实施例中在用户对源代码中一个或多个程序文件执行更新操作后,对该次更新操作涉及的一个或多个程序文件的文件名称中,添加唯一表示该次更新操作的当前节点号码。
此后,可以确定一个由当前节点号码和历史节点号码组成的查询范围,通过当前全量源码中各个程序文件的文件名称中节点号码,便可以搜索到节点号码符合查询范围的一个或多个程序文件。该一个或多个程序文件便是查询范围内的更新操作对应的增量源码。
本申请可以自动从当前全量源码中确定出增量源码,所以可以简单方便的确定出增量源码,从而提高产品库中软件程序的更新效率和准确率。
第二,本实施例可以持续提取增量源码,把开发人员每天开发的代码进行增量提取,在基于用户标识对增量源码进行分类操作后,可以获得各个开发人员的开发效率以及排序结果,可以方便管理人员基于开发效率对开发人员进行工作任务分配。
本实施例适用于Java类型的执行码,由于Java类型的执行码为根据增量Java源码获取的,Java类型执行码有一个共同的特点,每个Java源码可以编译为相同文件标识的.class文件(或者.class文件和$1.class文件),根据这个文件标识的共性,本实施例提供依据增量Java源码查找增量Java执行码的方案。
下面介绍确定增量执行码的执行过程,详见图3所示的实施例。
本申请提供了增量代码确定方法的实施例二,应用于图1所示的版本一致性确定系统。参见图3,包括以下步骤:
步骤S301:构建库设备从所述配置库设备中提取当前全量源码,以及,由所述增量源码中各个程序文件的文件标识组成的文件标识集。
在编译操作时需要依据全量源码执行编译操作,所以构建库设备可以从配置库设备中获取当前全量源码。
配置库设备中增量源码中包括一个或多个程序文件,每个程序文件均具有区别于其他程序文件的文件名称。构建库设备可以从配置库中获取增量源码中各个程序文件的文件标识,为了便于描述,将各个文件标识称为文件标识集。
步骤S302:构建库设备对所述当前全量源码执行编译操作获得全量执行码。
构建库设备对当前全量源码执行编译操作,获得全量执行码。编译过程已为成熟技术,在此不再赘述。
需要指出的是,当前全量源码中每个程序文件在编译后会对应一个或多个编译文件,在编译操作后节点号码会消失,但是,程序文件和该程序文件对应的一个或多个编译文件的文件标识是一致的。
例如,一个程序文件的程序文件的文件名称为wsw.java,其编译后获得的编译文件的文件名称wsw.class,或者,wsw.class和wsw$1.class由此可见,其中的文件标识www均是一致的。
步骤S303:构建库设备从所述全量执行码中提取包含所述文件标识集中文件标识的一个或多个编译文件,将该一个或多个编译文件确定为增量执行码。
由于步骤S301中获取的文件标识集为增量源码中各个程序文件的文件标识,所以可以在全量执行码中查找文件标识集中的文件标识即可,也即,将全量执行码中各个编译文件与文件标识集进行匹配操作。若一个编译文件的文件标识存在于文件标识集中,则确定该编译文件归属于增量执行码。
在对全量执行码中各个编译文件均与文件标识集进行匹配操作后,将匹配成功的一个或多个编译文件,确定为增量执行码。
步骤S304:构建库设备发送所述增量执行码至配置库设备。
构建库设备在确定增量执行码后,发送增量执行码至配置库设备。
步骤S305:配置库设备发送增量执行码至测试库设备。
为了验证增量执行码是否正确,需要对增量执行码进行测试操作,可以发送增量执行码至测试库设备,以供测试库设备进行测试操作。
步骤S306:测试库设备对增量执行码进行测试获得测试结果,发送测试结果至配置库设备。
步骤S307:配置库设备基于增量执行码确定并展示开发人员的正确率和出错率,以及,正确率和出错率排序结果。
配置库设备还用于依据用户标识对所述增量源码中各个程序文件执行分类操作,确定各个用户标识对应的增量源码子集,利用所述各个用户标识对应的增量源码子集,计算各个用户的开发效率,对所述各个用户的开发效率执行排序操作,获得排序结果,展示各个用户的开发效率以及所述排序结果。
当然,配置库还可以存储其它的预设计算方式和报告模板,依据预设计算方式来计算参数,并获得计算结果,并按照报告模板的方式生成分析报告,并展示分析报告至用户,以供用户查看分析报告。
通过上述实施例可以得知,本申请具有如下有益效果:
第一,本实施例提供了增量执行码确定方法,本实施例在确定增量源码后,依据增量源码和增量执行码的文件名称一致的关键点,来依据增量源码的文件名称查找到增量执行码,从而可以简单方便的确定出增量执行码,提高产品库中软件程序的更新效率和准确率。
第二,本实施例在确定出增量执行码后,可以针对增量执行码重点进行针对性的测试和检查,以便迅速确定出故障位置和故障原因,从而快速的进行修正,及时规避存在的风险。
第三,本实施例可以持续提取增量源码,把开发人员每天开发的代码进行增量提取,在基于用户标识对增量源码进行分类操作后,可以获得各个开发人员的开发效率以及排序结果,可以方便管理人员基于开发效率对开发人员进行工作任务分配。
在上述图2和图3的更新操作(也即重开发操作)被多次执行后,配置库设备便获取多次重开发操作对应的增量执行码,可以理解的是,每个增量执行码对应一个重开发时间点(通常而言重开发时间点为一个日期)。配置库设备还可以存储最新的增量执行码。
可以理解的是,测试库设备会存储在其上经过测试的增量执行码。
下面提供一种版本一致性确定方法,应用于图1所示的版本一致性确定系统。参见图4,包括以下步骤:
步骤S401:配置库设备确定重开发时间点位于预设修改时间段内的增量执行码,并组成第一增量执行码集;其中,所述预设修改时间段包括起始时间点和结束时间点。
配置库设备为一个软件版本设置有修改版本时间段,例如,10.1号~10.15号,该修改版本的时间段称为预设修改时间段。在此时间段内开发人员被允许重开发软件程序,并上传修改后的全量源码至配置库设备,以供配置库设备按照图2和图3所示的实施例来确定增量执行码。
配置库设备将其存储的若干增量执行码的重开发时间点与预设修改时间段进行比对,从而确定位于预设修改时间段内的多个增量执行码,多个增量执行码组成第一增量执行码集。
本步骤可以获取在预设修改时间段内经过测试库设备测试以及未经过测试库设备测试的所有增量执行码,以便于方便后续识别出未经过测试库设备执行测试操作的增量执行码。
步骤S402:配置库设备从测试库设备获取由所述起始时间点至当前时间点之间执行测试操作的增量执行码,并组成第二增量执行码集。
通常情况下预设修改时间段为重开发时间段,但是,在重开发时间段之后至生成正式增量执行码之前,通常还有一些时间。一些开发人员通常会在此期间仍会在修改软件代码。例如,预设修改时间段为10.1号-10.15号,生成正式增量执行码的时间为10.20号。
为此,配置库设备从测试库设备中,获取起始时间点至当前时间点之间的执行测试操作的增量执行码,并组成第二增量执行码集。当前时间点为生成正式增量执行码后,发布正式增量执行码至用户设备之前的某一时间点。
本步骤可以获取在大于起始时间点之后所有经过测试的增量执行码,以便后续可以识别出一些经过测试但是未添加至配置库中的增量执行码。
步骤S403:配置库设备计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码。
不同增量执行码对应不同的节点标识,每个增量执行码包括一个或多个编译文件,不同编译文件的文件名称不同;
则配置库设备计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码,包括:
配置库设备对于所述第一增量执行码集和所述第二增量执行码集中相同节点标识的增量执行码保留一份,对于不同节点标识的增量执行码均保留,获得所述第一增量执行码集和所述第二增量执行码集的并集;
配置库设备对于所述并集中各个增量执行码中的多个编译文件,若两个编译文件的文件名称一致则保留一份,若两个编译文件的文件名称不一致则均保留,获得融合并集中各个增量执行码的融合增量执行码。
例如,以并集包括按修改日期的先后顺序排列的增量执行码B01,增量执行码B02和增量执行码B03例,首先,合并增量执行码B01和增量执行码B02获得更新后并集1,然后再合并并集1和增量执行码B03。
合并过程是一致的,以合并增量执行码B01和增量执行码B02为例,对合并规则进行解释说明:
对于增量执行码B01和增量执行码B02均具有一文件标识的程序文件的情况,则不对增量执行码B01执行任何操作;
对于增量执行码B01具有某一文件标识的程序文件,而增量执行码B02不具有该文件标识的程序文件的情况下,则保持增量执行码B01具有该文件标识。
对于增强执行码B01不具有某一文件标识,而增量执行码B02具有该文件标识的程序文件的情况下,增加该文件标识对应的一个或多个编译文件至增量执行码B01中,从而获得合并B01和B02后的并集1。
步骤S404:配置库设备获取由所述起始时间段至所述当前时间点之间的正式增量执行码。
配置库设备获取最新全量执行码,从所述全量执行码中确定所述起始时间段和所述当前时间点之间的多个编译文件,将所述多个编译文件组成正式增量执行码。
步骤S405:配置库设备对比所述融合增量执行码和所述正式增量执行码,获得一致性对比结果。
在对比过程中可对比的文件类型包括.sql、.sh、.properties、.class、.exe、.xml、.pro、.pak、.text等,可以根据实际情况来确定预先设置过滤规则和对比规则。
S1:配置库设备设置有过滤规则和对比规则,对比规则包括:文件级别的文件名称集和文件级别对比规则,以及,文件内容级别的文件名称集和文件内容级别对比规则。
S2:按照文件级别对比规则,对比所述第一文件级别编译文件集和所述第二文件级别编译文件集,获得文件级别对比结果。
所述文件级别对比规则包括:对比相同目录下文件名称是否一致,对比相同目录下相同文件名称的文件大小是否一致。
S3:依据对比规则中的文件内容级别的文件名称集,从所述过滤后融合增量执行码中筛选出第一文件内容级别编译文件集,以及,从所述过滤后正式增量执行码中筛选出第二文件内容级别编译文件集。
S4:按照文件内容级别对比规则,对比所述第一文件内容级别编译文件集和所述第二文件内容级别编译文件集,获得文件内容级别对比结果。
所述文件内容级别对比规则包括:对比相同目录下文件名称是否一致,对比相同目录下相同文件名称的文件大小是否一致,对比相同目录下相同文件名称的文件中每一行内容是否相同,对比相同目录下相同文件名称的文件的编码格式是否一致。
S5:所述文件级别对比结果以及文件内容级别对比结果,作为一致性对比结果。
步骤S406:分析所述不一致结果确定不一致代码集以及异常类型。
分析所述一致性对比结果,确定所述融合增量执行码和所述正式增量执行码的不一致代码集;
若所述正式增量执行码包含不一致代码且所述融合增量执行码不包含所述不一致代码,则确定为第一异常类型,第一异常类型表示开发人员于预设修改时间段之后提交未经测试软件代码至配置库设备;
若所述融合增量执行码包含所述不一致代码且所述正式增量执行码不包含不一致代码,则:
在不一致代码仅来源于所述第一增量代码集的情况下,确定为第二异常类型,第二异常类型表示开发人员忘记将不一致代码于测试库设备中测试便提交至配置库设备;
在不一致代码仅来源于所述第二增量代码集的情况下,确定为第三异常类型,第三异常类型表示开发人员于测试环境中修改代码,忘记将不一致代码提交至测试库设备。
步骤S407:配置库设备展示所述不一致执行码集以及异常类型,以供技术人员选择性执行同步操作。
技术人员查看不一致代码和异常类型,经过人工判断后,以决定哪些不一致代码是正确的,若正式增量执行码中不一致代码是正确的,则保持正式增量执行码不变,若融合增量执行码中不一致代码是正确的,则同步不一致代码至正式增量执行码中。
步骤S408:配置库设备发送正式增量执行码至产品库设备。
在步骤S407中由人工对不一致代码同步结束后,可以获得更新后的正式增量执行码,可以将更新后的正式增量执行码发送至产品库设备中,以供产品库设备发布至用户设备。
通过上述技术特征,可以发现本申请具有下述有益效果:
本实施例可以从配置库设备中获取部分增量执行码也即第一增量执行码集,从测试库设备中获取部分增量执行码也即第二增量执行码集,对第一增量执行码集和第二增量执行码集取并集后,可以获得融合增量执行码;从配置库设备中获取正式增量执行码。
理论上来讲,融合增量执行码和正式增量执行码应该是一致的,所以对比融合增量执行码和正式增量执行码,从而获得一致性对比结果。本申请中自动执行一致性检查工作,从而可以提高执行一致性检查工作的效率和准确率。
参见图5,本申请还提供了一种版本一致性确定装置,集成于配置库设备,所述装置包括:
第一组成单元51,用于确定配置库设备中重开发时间点位于预设修改时间段内的增量执行码,并组成第一增量执行码集;其中,所述预设修改时间段包括起始时间点和结束时间点;
第二组成单元52,用于获取由所述起始时间点至当前时间点之间,于测试库设备中执行测试操作的增量执行码,并组成第二增量执行码集;
计算单元53,用于计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码
获取单元54,用于获取由所述起始时间段至所述当前时间点之间的正式增量执行码;
对比单元55,用于对比所述融合增量执行码和所述正式增量执行码,获得一致性对比结果。
关于版本一致性确定装置的执行过程,可以详见图4所示的实施例,在此不再赘述。
本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种版本一致性确定系统,其特征在于,包括:
配置库设备存储多个重开发时间点一一对应的多个增量执行码,确定重开发时间点位于预设修改时间段内的增量执行码,并组成第一增量执行码集;其中,所述预设修改时间段包括起始时间点和结束时间点;
配置库设备从测试库设备获取由所述起始时间点至当前时间点之间执行测试操作的增量执行码,并组成第二增量执行码集;
配置库设备计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码;
配置库设备获取由所述起始时间点至所述当前时间点之间的正式增量执行码;
配置库设备依据过滤规则过滤所述融合增量执行码和所述正式增量执行码中无需对比的编译文件,获得过滤后融合增量执行码和过滤后正式增量执行码;
依据对比规则中文件级别的文件名称集,从所述过滤后融合增量执行码中筛选出第一文件级别编译文件集,以及,从所述过滤后正式增量执行码中筛选出第二文件级别编译文件集;
按照文件级别对比规则,对比所述第一文件级别编译文件集和所述第二文件级别编译文件集,获得文件级别对比结果;
依据对比规则中的文件内容级别的文件名称集,从所述过滤后融合增量执行码中筛选出第一文件内容级别编译文件集,以及,从所述过滤后正式增量执行码中筛选出第二文件内容级别编译文件集;
按照文件内容级别对比规则,对比所述第一文件内容级别编译文件集和所述第二文件内容级别编译文件集,获得文件内容级别对比结果;
所述文件级别对比结果以及文件内容级别对比结果,作为一致性对比结果。
2.如权利要求1所述的系统,其特征在于,不同增量执行码对应不同的节点标识,每个增量执行码包括一个或多个编译文件,不同编译文件的文件名称不同;
则配置库设备计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码,包括:
配置库设备对于所述第一增量执行码集和所述第二增量执行码集中相同节点标识的增量执行码保留一份,对于不同节点标识的增量执行码均保留,获得所述第一增量执行码集和所述第二增量执行码集的并集;
配置库设备对于所述并集中各个增量执行码中的多个编译文件,若两个编译文件的文件名称一致则保留一份,若两个编译文件的文件名称不一致则均保留,获得融合并集中各个增量执行码的融合增量执行码。
3.如权利要求1所述的系统,其特征在于,所述配置库设备获取由所述起始时间点至所述当前时间点之间的正式增量执行码,包括:
配置库设备获取最新全量执行码,从所述全量执行码中确定所述起始时间点和所述当前时间点之间的多个编译文件,将所述多个编译文件组成正式增量执行码。
4.如权利要求1所述的系统,其特征在于,
所述文件级别对比规则包括:对比相同目录下文件名称是否一致,对比相同目录下相同文件名称的文件大小是否一致;
所述文件内容级别对比规则包括:对比相同目录下文件名称是否一致,对比相同目录下相同文件名称的文件大小是否一致,对比相同目录下相同文件名称的文件中每一行内容是否相同,对比相同目录下相同文件名称的文件的编码格式是否一致。
5.如权利要求1所述的系统,其特征在于,还包括:
分析所述一致性对比结果,确定所述融合增量执行码和所述正式增量执行码的不一致代码集;
若所述正式增量执行码包含不一致代码且所述融合增量执行码不包含所述不一致代码,则确定为第一异常类型,第一异常类型表示开发人员于预设修改时间段之后提交未经测试软件代码至配置库设备;
若所述融合增量执行码包含所述不一致代码且所述正式增量执行码不包含不一致代码,则:
在不一致代码仅来源于所述第一增量执行码集的情况下,确定为第二异常类型,第二异常类型表示开发人员忘记将不一致代码于测试库设备中测试便提交至配置库设备;
在不一致代码仅来源于所述第二增量执行码集的情况下,确定为第三异常类型,第三异常类型表示开发人员于测试环境中修改代码,忘记将不一致代码提交至测试库设备。
6.如权利要求1所述的系统,其特征在于,所述配置库设备存储多个重开发时间点一一对应的多个增量执行码,包括:
配置库设备和构建库设备执行多次下述操作:
配置库设备,用于获取开发库设备对源代码中一个或多个程序文件执行更新操作后发送的当前全量源码,从所述当前全量源码确定该次更新操作对应的增量源码;
构建库设备,用于从所述配置库设备中提取当前全量源码,以及,由所述增量源码中各个程序文件的文件标识组成的文件标识集,对所述当前全量源码执行编译操作获得全量执行码,从所述全量执行码中提取包含所述文件标识集中文件标识的一个或多个编译文件,将该一个或多个编译文件确定为增量执行码,发送所述增量执行码至配置库设备。
7.如权利要求6所述的系统,其特征在于,配置库设备获取开发库设备对源代码中一个或多个程序文件执行更新操作后发送的当前全量源码,从所述当前全量源码确定该次更新操作对应的增量源码,具体包括:
开发库设备从配置库设备获取源代码,其中所述源代码包括多个程序文件,在对所述源代码中一个或多个程序文件执行更新操作获得当前全量源码的过程中,记录所述更新操作涉及一个或多个程序文件的文件名称,生成唯一表示该次更新操作的当前节点号码,向所述更新操作涉及一个或多个程序文件的文件名称中添加所述当前节点号码,发送所述当前全量源码至所述配置库设备;
配置库设备接收并存储所述开发库设备发送的所述当前全量源码,确定由所述当前节点号码和历史节点号码组成的查询范围,将所述当前全量源码中节点号码位于所述查询范围内的一个或多个程序文件确定为增量源码。
8.一种版本一致性确定方法,其特征在于,应用于配置库设备,所述方法包括:
确定配置库设备中重开发时间点位于预设修改时间段内的增量执行码,并组成第一增量执行码集;其中,所述预设修改时间段包括起始时间点和结束时间点;
获取由所述起始时间点至当前时间点之间,于测试库设备中执行测试操作的增量执行码,并组成第二增量执行码集;
计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码;
获取由所述起始时间点至所述当前时间点之间的正式增量执行码;
依据过滤规则过滤所述融合增量执行码和所述正式增量执行码中无需对比的编译文件,获得过滤后融合增量执行码和过滤后正式增量执行码;
依据对比规则中文件级别的文件名称集,从所述过滤后融合增量执行码中筛选出第一文件级别编译文件集,以及,从所述过滤后正式增量执行码中筛选出第二文件级别编译文件集;
按照文件级别对比规则,对比所述第一文件级别编译文件集和所述第二文件级别编译文件集,获得文件级别对比结果;
依据对比规则中的文件内容级别的文件名称集,从所述过滤后融合增量执行码中筛选出第一文件内容级别编译文件集,以及,从所述过滤后正式增量执行码中筛选出第二文件内容级别编译文件集;
按照文件内容级别对比规则,对比所述第一文件内容级别编译文件集和所述第二文件内容级别编译文件集,获得文件内容级别对比结果;
所述文件级别对比结果以及文件内容级别对比结果,作为一致性对比结果。
9.一种版本一致性确定装置,其特征在于,集成于配置库设备,所述装置包括:
第一组成单元,用于确定配置库设备中重开发时间点位于预设修改时间段内的增量执行码,并组成第一增量执行码集;其中,所述预设修改时间段包括起始时间点和结束时间点;
第二组成单元,用于获取由所述起始时间点至当前时间点之间,于测试库设备中执行测试操作的增量执行码,并组成第二增量执行码集;
计算单元,用于计算所述第一增量执行码集和所述第二增量执行码集的并集,对所述并集执行融合操作获得融合增量执行码;
获取单元,用于获取由所述起始时间点至所述当前时间点之间的正式增量执行码;
对比单元,用于依据过滤规则过滤所述融合增量执行码和所述正式增量执行码中无需对比的编译文件,获得过滤后融合增量执行码和过滤后正式增量执行码;依据对比规则中文件级别的文件名称集,从所述过滤后融合增量执行码中筛选出第一文件级别编译文件集,以及,从所述过滤后正式增量执行码中筛选出第二文件级别编译文件集;按照文件级别对比规则,对比所述第一文件级别编译文件集和所述第二文件级别编译文件集,获得文件级别对比结果;依据对比规则中的文件内容级别的文件名称集,从所述过滤后融合增量执行码中筛选出第一文件内容级别编译文件集,以及,从所述过滤后正式增量执行码中筛选出第二文件内容级别编译文件集;按照文件内容级别对比规则,对比所述第一文件内容级别编译文件集和所述第二文件内容级别编译文件集,获得文件内容级别对比结果;所述文件级别对比结果以及文件内容级别对比结果,作为一致性对比结果。
CN201811417127.8A 2018-11-26 2018-11-26 版本一致性确定方法、装置及系统 Active CN109508203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811417127.8A CN109508203B (zh) 2018-11-26 2018-11-26 版本一致性确定方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811417127.8A CN109508203B (zh) 2018-11-26 2018-11-26 版本一致性确定方法、装置及系统

Publications (2)

Publication Number Publication Date
CN109508203A CN109508203A (zh) 2019-03-22
CN109508203B true CN109508203B (zh) 2022-01-21

Family

ID=65750579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811417127.8A Active CN109508203B (zh) 2018-11-26 2018-11-26 版本一致性确定方法、装置及系统

Country Status (1)

Country Link
CN (1) CN109508203B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377665B (zh) * 2019-07-24 2020-10-30 华云数据控股集团有限公司 数据同步方法、装置、电子设备及存储介质
CN112667520B (zh) * 2021-01-18 2024-05-14 中国民航信息网络股份有限公司 一种依赖包的处理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035800A (zh) * 2014-06-19 2014-09-10 广州金山网络科技有限公司 一种增量包生成方法、版本升级方法、装置以及系统
CN105404519A (zh) * 2015-12-07 2016-03-16 青岛海信电器股份有限公司 一种版本控制方法、代码测试方法及系统
CN106445485A (zh) * 2016-03-28 2017-02-22 中国电力科学研究院 一种软件版本一致性检测系统及其检测方法
EP3282355A1 (en) * 2016-08-11 2018-02-14 Empear AB Method for identifying critical parts in software code
CN108509200A (zh) * 2018-03-13 2018-09-07 中国银行股份有限公司 一种建立软件源代码与执行码之间关联的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035800A (zh) * 2014-06-19 2014-09-10 广州金山网络科技有限公司 一种增量包生成方法、版本升级方法、装置以及系统
CN105404519A (zh) * 2015-12-07 2016-03-16 青岛海信电器股份有限公司 一种版本控制方法、代码测试方法及系统
CN106445485A (zh) * 2016-03-28 2017-02-22 中国电力科学研究院 一种软件版本一致性检测系统及其检测方法
EP3282355A1 (en) * 2016-08-11 2018-02-14 Empear AB Method for identifying critical parts in software code
CN108509200A (zh) * 2018-03-13 2018-09-07 中国银行股份有限公司 一种建立软件源代码与执行码之间关联的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于SVN的代码自助增量在持续交付中的应用;刘壮飞;《中国新通信》;20160520(第10期);全文 *

Also Published As

Publication number Publication date
CN109508203A (zh) 2019-03-22

Similar Documents

Publication Publication Date Title
CN109271326B (zh) 云数据库的测试方法及其装置、设备和存储介质
CN109902016B (zh) 一种Web的测试方法及测试平台
US8079018B2 (en) Test impact feedback system for software developers
US7707559B2 (en) Analysis of errors within computer code
WO2017214364A1 (en) Systems and methods for flaw attribution and correlation
US8311794B2 (en) Testing executable logic
CN112241360B (zh) 一种测试用例生成方法、装置、设备及存储介质
CN110088744B (zh) 一种数据库维护方法及其系统
CN109753289B (zh) 一种美术资源合并方法、装置、电子设备和存储介质
CN108228190B (zh) 持续集成和交付方法、系统、设备及计算机可读存储介质
CN109508203B (zh) 版本一致性确定方法、装置及系统
CN106557419B (zh) 程序的测试方法及装置
CN112540924A (zh) 接口自动化测试方法、装置、设备及存储介质
CN112069073A (zh) 测试用例的管理方法、终端和存储介质
CN109542496B (zh) 增量代码确定方法、装置及系统
CN111258876B (zh) 一种微服务架构下的精确回归测试方法及装置
CN109558153B (zh) 版本一致性确定方法、装置及系统
CN116662197A (zh) 一种接口自动化测试方法、系统、计算机和可读存储介质
CN109684205B (zh) 系统测试方法、装置、电子设备及存储介质
CN115981718A (zh) 一种代码发布方法、装置、计算机设备和存储介质
CN115543816A (zh) 软件回归测试结果验证方法、装置、设备及存储介质
JP2005276040A (ja) デグレード確認検査方法、デグレード確認検査システム、およびそのためのプログラム
CN113656318A (zh) 软件版本测试方法、装置及计算机设备
CN113282504A (zh) 一种增量代码覆盖率检测方法及业务开发方法、装置
CN109491696B (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