CN113157315A - 一种软件不同版本的差异信息识别方法、装置、设备及介质 - Google Patents

一种软件不同版本的差异信息识别方法、装置、设备及介质 Download PDF

Info

Publication number
CN113157315A
CN113157315A CN202110482701.3A CN202110482701A CN113157315A CN 113157315 A CN113157315 A CN 113157315A CN 202110482701 A CN202110482701 A CN 202110482701A CN 113157315 A CN113157315 A CN 113157315A
Authority
CN
China
Prior art keywords
code
version
monitored
software
generate
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.)
Pending
Application number
CN202110482701.3A
Other languages
English (en)
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.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202110482701.3A priority Critical patent/CN113157315A/zh
Publication of CN113157315A publication Critical patent/CN113157315A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

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

Abstract

本发明公开了一种软件不同版本的差异信息识别方法、装置、设备及介质,该方法包括:读取待监测软件系统的基础数据;根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包;将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据;将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。因此,采用本申请实施例,通过从Git平台获取当前软件版本以及历史软件版本进行自动化版本差异分析,从而可以自动的系统梳理出当前待监测软件系统版本中源码中的改动点,并根据改动点生成监测报告发送至监管部门进行实时查看,减少了被篡改的可能,从而提升了软件系统上线后的安全性。

Description

一种软件不同版本的差异信息识别方法、装置、设备及介质
技术领域
本发明涉及数据一致性测试技术领域,特别涉及一种软件不同版本的差异信息识别方法、装置、设备及介质。
背景技术
近年来,随着软件技术的不断发展以及系统需求的不断变化,使得软件版本的更新频率大大提升。例如,针对软件系统优化完某个功能时需要重新发布新版本,或者软件系统中增加了新需求时需要重新发布新版本。统一规范的针对发布的新版本进行监管,可以防止人为操作失误、擅自升级甚至恶意篡改导致的软件系统非正常运行。在进行监管时,通常需要针对当前上线的新版本与前一次的历史版本进行对比来发现改动点。
在现有的版本对比方案中,待开发版本需求制定后,开发负责人将待开发版本需求进行拆分,并将拆分后的具体待开发功能分配到多个软件开发者处,多个软件开发者进行研发,研发后进行评审并移交测试环境,测试完成后进行新版本上线,上线后需要将新版本内的新增功能设计过程编写详细的设计文档,详细的设计文档编写与整合需要参与新版本开发者共同编写,并由开发统筹者进行统一整合后生成相对于上一版本的具体改进内容。由于现有技术中这个过程是由项目研发者共同合作完成,大多采取人工比对,仅比对与前一版本中软件的名称及大小,即使是软件大小和名称完全相同,也不能保证软件内容和版本完全一致,存在被篡改的可能,从而导致降低了软件系统上线后的安全性。
发明内容
基于此,有必要针对软件系统上线后的安全性低的问题,提供一种软件不同版本的差异信息识别方法、装置、设备及介质。
一种软件不同版本的差异信息识别方法,方法包括:读取待监测软件系统的基础数据;根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包;将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据;将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。
在其中一个实施例中,读取待监测软件系统的基础数据,包括:获取待监测软件系统的身份标识;根据身份标识连接待监测软件系统的文档库;初始化文档库;从初始化后的文档库中读取待监测软件系统的生命周期数据;将生命周期数据确定为监测软件系统的基础数据。
在其中一个实施例中,从初始化后的文档库中读取待监测软件系统的生命周期数据,包括:接收针对客户端输入的多个主题标签;获取文档库中存在的摘要标签集合;将摘要标签集合中的各摘要标签构建成目标节点树;将多个主题标签内的每个主题标签作为目标节点;从目标节点树中遍历与目标节点所类似的摘要标签;将遍历的摘要标签所包含的全部信息反馈至与其对应的主题标签上,生成待监测软件系统的生命周期数据。
在其中一个实施例中,根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包,包括:从基础数据中遍历获取待监测软件系统的多个版本排列日期;计算多个版本排列日期中各版本日期与当前时刻的时长,生成多个时长;从多个时长中确定出时长最短的版本日期;从各版本日期中确定出时长最短的版本日期所对应的上一个版本日期;将时长最短的版本日期与上一个版本日期为目标参数;基于目标参数从Git代码管理平台中获取待监测软件的当前版本代码数据包以及上个历史版本代码数据包。
在其中一个实施例中,将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据,包括:提取当前版本代码数据包中每个源文件的路径生成第一路径集合;提取上个历史版本代码数据包中每个源文件的路径生成第二路径集合;从第一路径集合中确定起始路径;采用模式匹配算法从第二路径集合中匹配起始路径对应的相同路径生成目标路径;获取起始路径下的源代码进行二进制编码后生成第一码流;获取目标路径下的源代码进行二进制编码后生成第二码流;采用代码位匹配校验算法判断第一码流与第二码流是否存在差异;当存在差异时,定位差异位置并获取差异位置的源码数据进行标注后生成差异化数据;从第一路径集合中删除起始路径,并判断第一路径集合中是否存在路径;若存在,继续执行从第一路径集合中确定起始路径的步骤。
在其中一个实施例中,采用代码位匹配校验算法判断第一码流与第二码流是否存在差异,包括:采用代码位匹配校验算法针对第一码流中的每个字符增加校验码字段生成标记后的第一码流;采用代码位匹配校验算法针对第二码流中的每个字符增加校验码字段生成标记后的第二码流;其中,校验码字段是每个码流的特征值;将标记后的第一码流划分为多个第一片区;将标记后的第二码流划分为多个第二片区;计算多个第一片区中码流的特征均值生成第一特征均值;计算多个第二片区中码流的特征均值生成第二特征均值;当第一特征均值与第二特征均值不相等时,确定第一码流与第二码流存在差异。
在其中一个实施例中,将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档,包括:初始化预设文档模板;当初始化成功时,将差异化数据转换为xml格式的文本;将所述转换后的文本填充至所述预设文档模板中,生成待监测软件系统的差异信息识别文档;将所述待监测软件系统的差异信息识别文档发送至相关的监测部门。
一种设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述软件不同版本的差异信息识别方法的步骤。
一种存储有计算机可读指令的介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述软件不同版本的差异信息识别方法的步骤。
上述软件不同版本的差异信息识别方法、装置、设备和介质,软件不同版本的差异信息识别装置首先读取待监测软件系统的基础数据,然后根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包,其次将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据,最后将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。因此,采用本申请实施例,由于通过从Git平台获取当前软件版本以及历史软件版本进行自动化版本差异分析,从而可以自动的系统梳理出当前待监测软件系统版本中源码中的改动点,并根据改动点生成监测报告发送至监管部门进行实时查看,减少了被篡改的可能,从而提升了软件系统上线后的安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本申请一个实施例中提供的软件不同版本的差异信息识别方法的实施环境图;
图2为本申请一个实施例中设备的内部结构示意图;
图3为本申请一个实施例中提供的软件不同版本的差异信息识别方法的方法示意图;
图4为本申请另一个实施例中提供的软件不同版本的差异信息识别方法的方法示意图;
图5是本申请实施例提供的一种软件不同版本的差异信息识别装置的装置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
图1为一个实施例中提供的软件不同版本的差异信息识别方法的实施环境图,如图1所示,在该实施环境中,包括设备110以及客户端120。
设备110可以为服务器设备,例如为缓存待监测软件基础数据的服务器设备、还可以是用来运行Git代码管理平台的服务器设备。客户端120上安装有软件不同版本的差异信息识别工具,当需要进行软件不同版本的差异信息识别时,客户端120从设备110中读取待监测软件系统的基础数据,客户端120根据基础数据从设备110上运行的Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包、客户端120将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据,客户端120将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。
需要说明的是,客户端120可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。设备110以及客户端120可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
图2为一个实施例中设备的内部结构示意图。如图2所示,该设备包括通过系统总线连接的处理器、介质、存储器和网络接口。其中,该设备的介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种软件不同版本的差异信息识别方法。该设备的处理器用于提供计算和控制能力,支撑整个设备的运行。该设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种软件不同版本的差异信息识别方法。该设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,介质为一种可读的存储介质。
下面将结合附图3-附图4,对本申请实施例提供的软件不同版本的差异信息识别方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的软件不同版本的差异信息识别装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
请参见图3,为本申请实施例提供了一种软件不同版本的差异信息识别方法的流程示意图。如图3所示,本申请实施例的方法可以包括以下步骤:
S101,读取待监测软件系统的基础数据;
其中,待监测软件系统为用户需要进行版本监管以及版本一致性检查的软件平台。基础数据为该软件平台的生命周期数据,生命周期数据例如软件平台的多个版本排列日期、功能接口相关文档、平台全部需求、用户界面设计图等。
通常,每个软件系统所关联的基础数据保存在文档库中,在读取数据时,通过待监测软件系统的固定标识进行数据读取。
需要说明的是,在读取数据时,可以根据设定的标识读取,也可以根据数据类型进行读取。
在一种可能的实现方式中,当需要对待监测软件进行版本的一致性分析时,首先需要获取待监测软件系统的唯一身份标识,然后根据该身份标识连接待监测软件系统的文档库,再初始化连接后的待监测软件系统的文档库来激活文档库中所存在的数据信息,最后在初始化后的文档库中读取待监测软件系统的生命周期数据,生命周期数据例如软件平台的多个版本排列日期、功能接口相关文档、平台全部需求、用户界面设计图等。
具体地,在初始化后的文档库中读取数据时,首先接收用户针对客户端输入的多个主题标签,再接收到多个主题标签后,然后获取文档库中存在的摘要标签集合,再采用摘要标签集合中的各摘要标签构建一颗节点树,其次以多个主题标签内的每个主题标签为目标节点,利用深度优先算法和/或广度优先算法从节点树中遍历每个主题标签所类似的一个或多个摘要标签,最后将遍历到的一个或多个摘要标签所包含的全部信息反馈至与其对应的主题标签上,从而得到了待监测软件系统的基础数据。
进一步地,在从节点树中遍历时,采用语义模糊匹配遍历法进行遍历。例如用户输入的一个主题标签为版本排期,而节点数中某个节点的摘要标签为软件系统版本排列周期,可将“软件系统版本排列周期”看作“版本排期”。
S102,根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包;
其中,Git代码管理平台是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,可以理解为保存代码的仓库。在进行软件系统的功能开发中,一个开发团队可以将各自完成的功能代码托管保存至Git代码管理平台上,从而使得Git代码管理平台上保存了每个软件系统每个开发周期的版本代码数据。当前版本代码数据包为当前正在运行中的待监测软件系统在Git代码管理平台上所对应的一版代码数据。上个历史版本代码数据包是当前版本代码数据包对应的上一个下线的版本代码数据包。
通常,从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包是通过从基础数据中确定出当前版本日期与上一版本日期进行加载的,在从基础数据中的版本排列日期内确定当前版本日期时,可通过计算各版本日期距离当前时刻的时长进行确定,时长越短说明越符合当前版本的版本日期。
在一种可能的实现方式中,在读取到待监测软件系统的基础数据后,首先从基础数据中遍历获取待监测软件系统的版本排列日期,然后计算版本排列日期中各版本日期与当前时刻的时长后生成多个时长,再从多个时长中确定出最短时长的版本日期,并从各版本日期中确定出最短时长的版本日期所对应的上一个版本日期,最后以最短时长的版本日期与上一个版本日期为参数,从Git代码管理平台中获取当前版本代码数据包以及上一个版本代码数据包。
进一步地,从Git代码管理平台中获取当前版本代码数据包以及上一个版本代码数据包时通过爬虫技术实现。
S103,将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据;
通常,由于代码逻辑开发过程中代码的编写遵循分层开发思想,因此一个项目的代码数据包中包括多个一级文件夹、在每个一级文件夹中包括多个二级文件夹、依次类推,每个代码源文件都是有一个具体的文件路径。例如系统登录源码文件的文件路径可能为src/java/control/denglu.jsp。
在本申请实施例中,在通过爬虫技术爬取到当前版本代码数据包与上个历史版本代码数据包后,首先提取当前版本代码数据包中每个源文件的路径生成第一路径集合,再提取上个历史版本代码数据包中每个源文件的路径生成第二路径集合,然后从第一路径集合中提取出起始路径,再采用模式匹配算法从第二路径集合中匹配起始路径对应的相同路径生成目标路径,其次获取起始路径下的源代码进行二进制编码生成第一码流,再获取目标路径下的源代码进行二进制编码生成第二码流,采用代码位匹配校验算法判断第一码流与第二码流是否存在差异,当存在差异时,获取出现差异位置的源码数据进行标注记录出现的改动点,具体记录改动了那个目录下的那个类以及修改的参数信息。从第一路径集合中删除起始路径,并判断第一路径集合中是否存在路径;若存在,继续执行从第一路径集合中确定起始路径的步骤。
例如,基于不同代码路径下,分类记录改动点,常规情况下分四类:第一类是业务功能代码:代码路径在src/java文件夹下,业务逻辑处理。第二类是单元测试案例:代码路径在src/test文件夹下,对业务逻辑进行案例测试。第三类是脚本:代码路径在db文件夹下,配置DML、DDL等数据库执行脚本。第四类是配置:代码路径在config、deploy_desc文件夹下,记录部署及配置改动点。
进一步地,判断第一路径集合中是否存在路径,当存在时继续执行从第一路径集合中提取出起始路径的步骤,直到第一路径集合中不存在路径时停止执行,并拆分读取全部改动点后得到差异化数据。
进一步地,在采用代码位匹配校验算法判断第一码流与第二码流是否存在差异时,首先采用代码位匹配校验算法针对第一码流中的每个字符增加校验码字段生成标记后的第一码流,再采用代码位匹配校验算法针对第二码流中的每个字符增加校验码字段生成标记后的第二码流,其中,校验码字段是每个码流的特征值;然后将标记后的第一码流划分为多个第一片区,并将标记后的第二码流划分为多个第二片区,其次计算多个第一片区中码流的特征均值生成第一特征均值,并计算多个第二片区中码流的特征均值生成第二特征均值,判断第一特征均值与第二特征均值是否相等,若不相等,确定第一码流与第二码流存在差异。
S104,将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。
其中,预设文档模板是用户预先设计的可填充内容的样本文档。
在一种可能的实现方式中,在生成差异化数据后,首先初始化用户预先设定的文档模板,当初始化失败时,说明用户未设定文档模板,并生成文档模板未设定的提示信息,然后将该提示信息发送至用户终端进行显示。当文档模板初始化成功时,将差异化数据转换为xml格式的文本,最后将转换后的文本信息填充至预先设定的文档模板中,并将填充后的模板报告发送至监测部门。
在本申请实施例中,软件不同版本的差异信息识别装置首先读取待监测软件系统的基础数据,然后根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包,其次将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据,最后将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。因此,采用本申请实施例,由于通过从Git平台获取当前软件版本以及历史软件版本进行自动化版本差异分析,从而可以自动的系统梳理出当前待监测软件系统版本中源码中的改动点,并根据改动点生成监测报告发送至监管部门进行实时查看,减少了被篡改的可能,从而提升了软件系统上线后的安全性。
为了便于理解本申请实施例提供的软件不同版本的差异信息识别方法,下面结合附图5进行说明。如图4所示,一种软件不同版本的差异信息识别方法,包括:
S201,读取待监测软件系统的基础数据;
S202,根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包;
S203,提取当前版本代码数据包中每个源文件的路径生成第一路径集合;
S204,提取上个历史版本代码数据包中每个源文件的路径生成第二路径集合;
S205,从第一路径集合中确定起始路径;
S206,采用模式匹配算法从第二路径集合中匹配起始路径对应的相同路径生成目标路径;
S207,获取起始路径下的源代码进行二进制编码后生成第一码流,并获取目标路径下的源代码进行二进制编码后生成第二码流;
S208,采用代码位匹配校验算法针对第一码流中的每个字符增加校验码字段生成标记后的第一码流;
S209,采用代码位匹配校验算法针对第二码流中的每个字符增加校验码字段生成标记后的第二码流;其中,校验码字段是每个码流的特征值;
S210,将标记后的第一码流划分为多个第一片区,并将标记后的第二码流划分为多个第二片区;
S211,计算多个第一片区中码流的特征均值生成第一特征均值,计算多个第二片区中码流的特征均值生成第二特征均值;
S212,当第一特征均值与第二特征均值不相等时,确定第一码流与第二码流存在差异;
S213,当存在差异时,定位差异位置并获取差异位置的源码数据进行标注后生成差异化数据;
S214,从第一路径集合中删除起始路径,并判断第一路径集合中是否存在路径;
S215,若存在,继续执行从第一路径集合中确定起始路径的步骤;
S216,将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。
在本申请实施例中,软件不同版本的差异信息识别装置首先读取待监测软件系统的基础数据,然后根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包,其次将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据,最后将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。因此,采用本申请实施例,由于通过从Git平台获取当前软件版本以及历史软件版本进行自动化版本差异分析,从而可以自动的系统梳理出当前待监测软件系统版本中源码中的改动点,并根据改动点生成监测报告发送至监管部门进行实时查看,减少了被篡改的可能,从而提升了软件系统上线后的安全性。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参见图5,其示出了本发明一个示例性实施例提供的软件不同版本的差异信息识别装置的结构示意图,应用于服务器。该软件不同版本的差异信息识别系统可以通过软件、硬件或者两者的结合实现成为设备的全部或一部分。该装置1包括数据读取模块10、代码数据包加载模块20、差异化数据生成模块30、监测文档生成模块40。
数据读取模块10,用于读取待监测软件系统的基础数据;
代码数据包加载模块20,用于根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包;
差异化数据生成模块30,用于将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据;
监测文档生成模块40,用于将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,软件不同版本的差异信息识别装置首先读取待监测软件系统的基础数据,然后根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包,其次将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据,最后将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。因此,采用本申请实施例,由于通过从Git平台获取当前软件版本以及历史软件版本进行自动化版本差异分析,从而可以自动的系统梳理出当前待监测软件系统版本中源码中的改动点,并根据改动点生成监测报告发送至监管部门进行实时查看,减少了被篡改的可能,从而提升了软件系统上线后的安全性。
在一个实施例中,提出了一种设备,设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:读取待监测软件系统的基础数据;根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包;将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据;将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。
在一个实施例中,处理器执行读取待监测软件系统的基础数据时,具体执行以下操作:获取待监测软件系统的身份标识;根据身份标识连接待监测软件系统的文档库;初始化文档库;从初始化后的文档库中读取待监测软件系统的生命周期数据;将生命周期数据确定为监测软件系统的基础数据。
在一个实施例中,处理器执行从初始化后的文档库中读取待监测软件系统的生命周期数据时,具体执行以下操作:接收针对客户端输入的多个主题标签;获取文档库中存在的摘要标签集合;将摘要标签集合中的各摘要标签构建成目标节点树;将多个主题标签内的每个主题标签作为目标节点;从目标节点树中遍历与目标节点所类似的摘要标签;将遍历的摘要标签所包含的全部信息反馈至与其对应的主题标签上,生成待监测软件系统的生命周期数据。
在一个实施例中,处理器执行根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包时,具体执行以下操作:从基础数据中遍历获取待监测软件系统的多个版本排列日期;计算多个版本排列日期中各版本日期与当前时刻的时长,生成多个时长;从多个时长中确定出时长最短的版本日期;从各版本日期中确定出时长最短的版本日期所对应的上一个版本日期;将时长最短的版本日期与上一个版本日期为目标参数;基于目标参数从Git代码管理平台中获取待监测软件的当前版本代码数据包以及上个历史版本代码数据包。
在一个实施例中,处理器将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据时,具体执行以下操作:提取当前版本代码数据包中每个源文件的路径生成第一路径集合;提取上个历史版本代码数据包中每个源文件的路径生成第二路径集合;从第一路径集合中确定起始路径;采用模式匹配算法从第二路径集合中匹配起始路径对应的相同路径生成目标路径;获取起始路径下的源代码进行二进制编码后生成第一码流;获取目标路径下的源代码进行二进制编码后生成第二码流;采用代码位匹配校验算法判断第一码流与第二码流是否存在差异;当存在差异时,定位差异位置并获取差异位置的源码数据进行标注后生成差异化数据;从第一路径集合中删除起始路径,并判断第一路径集合中是否存在路径;若存在,继续执行从第一路径集合中确定起始路径的步骤。
在一个实施例中,处理器执行采用代码位匹配校验算法判断第一码流与第二码流是否存在差异时,具体执行以下操作:采用代码位匹配校验算法针对第一码流中的每个字符增加校验码字段生成标记后的第一码流;采用代码位匹配校验算法针对第二码流中的每个字符增加校验码字段生成标记后的第二码流;其中,校验码字段是每个码流的特征值;将标记后的第一码流划分为多个第一片区;将标记后的第二码流划分为多个第二片区;计算多个第一片区中码流的特征均值生成第一特征均值;计算多个第二片区中码流的特征均值生成第二特征均值;当第一特征均值与第二特征均值不相等时,确定第一码流与第二码流存在差异。
在一个实施例中,处理器执行将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档时,具体执行以下操作:初始化预设文档模板;当初始化成功时,将差异化数据转换为xml格式的文本;将所述转换后的文本填充至所述预设文档模板中,生成待监测软件系统的差异信息识别文档;将所述待监测软件系统的差异信息识别文档发送至相关的监测部门。
在本申请实施例中,软件不同版本的差异信息识别装置首先读取待监测软件系统的基础数据,然后根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包,其次将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据,最后将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。因此,采用本申请实施例,由于通过从Git平台获取当前软件版本以及历史软件版本进行自动化版本差异分析,从而可以自动的系统梳理出当前待监测软件系统版本中源码中的改动点,并根据改动点生成监测报告发送至监管部门进行实时查看,减少了被篡改的可能,从而提升了软件系统上线后的安全性。
在一个实施例中,提出了一种存储有计算机可读指令的介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:读取待监测软件系统的基础数据;根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包;将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据;将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。
在一个实施例中,处理器执行读取待监测软件系统的基础数据时,具体执行以下操作:获取待监测软件系统的身份标识;根据身份标识连接待监测软件系统的文档库;初始化文档库;从初始化后的文档库中读取待监测软件系统的生命周期数据;将生命周期数据确定为监测软件系统的基础数据。
在一个实施例中,处理器执行从初始化后的文档库中读取待监测软件系统的生命周期数据时,具体执行以下操作:接收针对客户端输入的多个主题标签;获取文档库中存在的摘要标签集合;将摘要标签集合中的各摘要标签构建成目标节点树;将多个主题标签内的每个主题标签作为目标节点;从目标节点树中遍历与目标节点所类似的摘要标签;将遍历的摘要标签所包含的全部信息反馈至与其对应的主题标签上,生成待监测软件系统的生命周期数据。
在一个实施例中,处理器执行根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包时,具体执行以下操作:从基础数据中遍历获取待监测软件系统的多个版本排列日期;计算多个版本排列日期中各版本日期与当前时刻的时长,生成多个时长;从多个时长中确定出时长最短的版本日期;从各版本日期中确定出时长最短的版本日期所对应的上一个版本日期;将时长最短的版本日期与上一个版本日期为目标参数;基于目标参数从Git代码管理平台中获取待监测软件的当前版本代码数据包以及上个历史版本代码数据包。
在一个实施例中,处理器将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据时,具体执行以下操作:提取当前版本代码数据包中每个源文件的路径生成第一路径集合;提取上个历史版本代码数据包中每个源文件的路径生成第二路径集合;从第一路径集合中确定起始路径;采用模式匹配算法从第二路径集合中匹配起始路径对应的相同路径生成目标路径;获取起始路径下的源代码进行二进制编码后生成第一码流;获取目标路径下的源代码进行二进制编码后生成第二码流;采用代码位匹配校验算法判断第一码流与第二码流是否存在差异;当存在差异时,定位差异位置并获取差异位置的源码数据进行标注后生成差异化数据;从第一路径集合中删除起始路径,并判断第一路径集合中是否存在路径;若存在,继续执行从第一路径集合中确定起始路径的步骤。
在一个实施例中,处理器执行采用代码位匹配校验算法判断第一码流与第二码流是否存在差异时,具体执行以下操作:采用代码位匹配校验算法针对第一码流中的每个字符增加校验码字段生成标记后的第一码流;采用代码位匹配校验算法针对第二码流中的每个字符增加校验码字段生成标记后的第二码流;其中,校验码字段是每个码流的特征值;将标记后的第一码流划分为多个第一片区;将标记后的第二码流划分为多个第二片区;计算多个第一片区中码流的特征均值生成第一特征均值;计算多个第二片区中码流的特征均值生成第二特征均值;当第一特征均值与第二特征均值不相等时,确定第一码流与第二码流存在差异。
在一个实施例中,处理器执行将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档时,具体执行以下操作:初始化预设文档模板;当初始化成功时,将差异化数据转换为xml格式的文本;将所述转换后的文本填充至所述预设文档模板中,生成待监测软件系统的差异信息识别文档;将所述待监测软件系统的差异信息识别文档发送至相关的监测部门。
在本申请实施例中,软件不同版本的差异信息识别装置首先读取待监测软件系统的基础数据,然后根据基础数据从Git代码管理平台中加载待监测软件的当前版本代码数据包以及上个历史版本代码数据包,其次将当前版本代码数据包与上个历史版本代码数据包进行差异识别,生成差异化数据,最后将差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。因此,采用本申请实施例,由于通过从Git平台获取当前软件版本以及历史软件版本进行自动化版本差异分析,从而可以自动的系统梳理出当前待监测软件系统版本中源码中的改动点,并根据改动点生成监测报告发送至监管部门进行实时查看,减少了被篡改的可能,从而提升了软件系统上线后的安全性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性介质,或随机存储记忆体(RandomAccess Memory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种软件不同版本的差异信息识别方法,其特征在于,所述方法包括:
读取待监测软件系统的基础数据;
根据所述基础数据从Git代码管理平台中加载所述待监测软件的当前版本代码数据包以及上个历史版本代码数据包;
将所述当前版本代码数据包与所述上个历史版本代码数据包进行差异识别,生成差异化数据;
将所述差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。
2.根据权利要求1所述的方法,其特征在于,所述读取待监测软件系统的基础数据,包括:
获取待监测软件系统的身份标识;
根据所述身份标识连接所述待监测软件系统的文档库;
初始化所述文档库;
从所述初始化后的文档库中读取所述待监测软件系统的生命周期数据;
将所述生命周期数据确定为所述监测软件系统的基础数据。
3.根据权利要求2所述的方法,其特征在于,所述从所述初始化后的文档库中读取所述待监测软件系统的生命周期数据,包括:
接收针对客户端输入的多个主题标签;
获取所述文档库中存在的摘要标签集合;
将所述摘要标签集合中的各摘要标签构建成目标节点树;
将所述多个主题标签内的每个主题标签作为目标节点;
从所述目标节点树中遍历与所述目标节点所类似的摘要标签;
将所述遍历的摘要标签所包含的全部信息反馈至与其对应的主题标签上,生成待监测软件系统的生命周期数据。
4.根据权利要求1所述的方法,其特征在于,所述根据所述基础数据从Git代码管理平台中加载所述待监测软件的当前版本代码数据包以及上个历史版本代码数据包,包括:
从所述基础数据中遍历获取所述待监测软件系统的多个版本排列日期;
计算所述多个版本排列日期中各版本日期与当前时刻的时长,生成多个时长;
从所述多个时长中确定出时长最短的版本日期;
从所述各版本日期中确定出所述时长最短的版本日期所对应的上一个版本日期;
将所述时长最短的版本日期与所述上一个版本日期为目标参数;
基于所述目标参数从Git代码管理平台中获取所述待监测软件的当前版本代码数据包以及上个历史版本代码数据包。
5.根据权利要求1所述的方法,其特征在于,所述将所述当前版本代码数据包与所述上个历史版本代码数据包进行差异识别,生成差异化数据,包括:
提取所述当前版本代码数据包中每个源文件的路径生成第一路径集合;
提取所述上个历史版本代码数据包中每个源文件的路径生成第二路径集合;
从所述第一路径集合中确定起始路径;
采用模式匹配算法从所述第二路径集合中匹配所述起始路径对应的相同路径生成目标路径;
获取所述起始路径下的源代码进行二进制编码后生成第一码流;
获取所述目标路径下的源代码进行二进制编码后生成第二码流;
采用代码位匹配校验算法判断所述第一码流与所述第二码流是否存在差异;
当存在差异时,定位差异位置并获取所述差异位置的源码数据进行标注后生成差异化数据;
从所述第一路径集合中删除所述起始路径,并判断所述第一路径集合中是否存在路径;
若存在,继续执行所述从所述第一路径集合中确定起始路径的步骤。
6.根据权利要求5所述的方法,其特征在于,所述采用代码位匹配校验算法判断所述第一码流与所述第二码流是否存在差异,包括:
采用代码位匹配校验算法针对所述第一码流中的每个字符增加校验码字段生成标记后的第一码流;
采用代码位匹配校验算法针对所述第二码流中的每个字符增加校验码字段生成标记后的第二码流;其中,所述校验码字段是每个码流的特征值;
将所述标记后的第一码流划分为多个第一片区;
将所述标记后的第二码流划分为多个第二片区;
计算所述多个第一片区中码流的特征均值生成第一特征均值;
计算所述多个第二片区中码流的特征均值生成第二特征均值;
当所述第一特征均值与所述第二特征均值不相等时,确定所述第一码流与所述第二码流存在差异。
7.根据权利要求1所述的方法,其特征在于,所述将所述差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档,包括:
初始化预设文档模板;
当初始化成功时,将所述差异化数据转换为xml格式的文本;
将所述转换后的文本填充至所述预设文档模板中,生成待监测软件系统的差异信息识别文档;
将所述待监测软件系统的差异信息识别文档发送至相关的监测部门。
8.一种软件不同版本的差异信息识别装置,其特征在于,所述装置包括:
数据读取模块,用于读取待监测软件系统的基础数据;
代码数据包加载模块,用于根据所述基础数据从Git代码管理平台中加载所述待监测软件的当前版本代码数据包以及上个历史版本代码数据包;
差异化数据生成模块,用于将所述当前版本代码数据包与所述上个历史版本代码数据包进行差异识别,生成差异化数据;
监测文档生成模块,用于将所述差异化数据填充至预设文档模板中,生成待监测软件系统的差异信息识别文档。
9.一种设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述软件不同版本的差异信息识别方法的步骤。
10.一种存储有计算机可读指令的介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述软件不同版本的差异信息识别的步骤。
CN202110482701.3A 2021-04-30 2021-04-30 一种软件不同版本的差异信息识别方法、装置、设备及介质 Pending CN113157315A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110482701.3A CN113157315A (zh) 2021-04-30 2021-04-30 一种软件不同版本的差异信息识别方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110482701.3A CN113157315A (zh) 2021-04-30 2021-04-30 一种软件不同版本的差异信息识别方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN113157315A true CN113157315A (zh) 2021-07-23

Family

ID=76872862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110482701.3A Pending CN113157315A (zh) 2021-04-30 2021-04-30 一种软件不同版本的差异信息识别方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113157315A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505080A (zh) * 2021-07-28 2021-10-15 中国工商银行股份有限公司 文档处理方法及装置
CN113793130A (zh) * 2021-09-18 2021-12-14 上海中通吉网络技术有限公司 差异化的软件过程审计方法
CN114547085A (zh) * 2022-03-22 2022-05-27 中国铁塔股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN114564934A (zh) * 2022-02-08 2022-05-31 北京时代正邦科技股份有限公司 一种软件程序版本差异分析方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120159434A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Code clone notification and architectural change visualization
CN103984554A (zh) * 2014-05-26 2014-08-13 中国工商银行股份有限公司 软件设计文档的生成方法及装置
CN110109840A (zh) * 2019-05-10 2019-08-09 重庆八戒电子商务有限公司 基于版本号比较的代码审计方法、审计装置及介质
CN111638908A (zh) * 2020-05-29 2020-09-08 深圳壹账通智能科技有限公司 接口文档生成方法、装置、电子设备及介质
CN111813412A (zh) * 2020-06-28 2020-10-23 中国科学院计算机网络信息中心 构建评测二进制代码比对工具的测试数据集的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120159434A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Code clone notification and architectural change visualization
CN103984554A (zh) * 2014-05-26 2014-08-13 中国工商银行股份有限公司 软件设计文档的生成方法及装置
CN110109840A (zh) * 2019-05-10 2019-08-09 重庆八戒电子商务有限公司 基于版本号比较的代码审计方法、审计装置及介质
CN111638908A (zh) * 2020-05-29 2020-09-08 深圳壹账通智能科技有限公司 接口文档生成方法、装置、电子设备及介质
CN111813412A (zh) * 2020-06-28 2020-10-23 中国科学院计算机网络信息中心 构建评测二进制代码比对工具的测试数据集的方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505080A (zh) * 2021-07-28 2021-10-15 中国工商银行股份有限公司 文档处理方法及装置
CN113793130A (zh) * 2021-09-18 2021-12-14 上海中通吉网络技术有限公司 差异化的软件过程审计方法
CN114564934A (zh) * 2022-02-08 2022-05-31 北京时代正邦科技股份有限公司 一种软件程序版本差异分析方法、装置、设备及存储介质
CN114564934B (zh) * 2022-02-08 2024-03-22 北京时代正邦科技股份有限公司 一种软件程序版本差异分析方法、装置、设备及存储介质
CN114547085A (zh) * 2022-03-22 2022-05-27 中国铁塔股份有限公司 一种数据处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108876121B (zh) 工单处理方法、装置、计算机设备和存储介质
CN113157315A (zh) 一种软件不同版本的差异信息识别方法、装置、设备及介质
CN110188135B (zh) 文件生成方法及设备
CN111078507A (zh) 数据监控方法、系统、计算机设备和存储介质
CN114968754A (zh) 一种应用程序接口api测试方法以及装置
CN114327374A (zh) 业务流程的生成方法、装置及计算机设备
CN110362479B (zh) 系统升级测试方法和系统
CN114244611B (zh) 异常攻击检测方法、装置、设备及存储介质
CN111988429A (zh) 算法调度方法以及系统
CN115757054A (zh) 一种日志记录方法、系统、计算机设备及介质
CN115544050A (zh) 操作日志记录方法、装置、设备及存储介质
CN108460116B (zh) 搜索方法、装置、计算机设备、存储介质及搜索系统
CN106529281A (zh) 一种可执行文件处理方法及装置
CN112364022B (zh) 信息推导管理方法、装置、计算机设备及可读存储介质
CN111191235A (zh) 可疑文件分析方法、装置和计算机可读存储介质
CN114281688A (zh) 一种无码或低码的自动化用例管理方法和装置
CN111736848B (zh) 包冲突定位方法、装置、电子设备及可读存储介质
CN113419738A (zh) 接口文档的生成方法、装置及接口管理设备
CN112988193B (zh) 代码更新识别方法、装置、计算机设备及可读存储介质
CN115052035B (zh) 消息推送方法、设备及存储介质
CN113806372B (zh) 新数据信息构建方法、装置、计算机设备及存储介质
CN113177157B (zh) 标签分离方法、装置、设备及存储介质
CN113031883B (zh) 标牌数据打印方法、装置、计算机设备和存储介质
CN118778975A (zh) 应用处理方法、装置、计算机设备、存储介质和程序产品
CN116069861A (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