首页> 中国专利> 基于区块链的软件版本管理系统及方法

基于区块链的软件版本管理系统及方法

摘要

本发明提供了一种基于区块链的软件版本管理系统及方法,可用于区块链领域,该系统包括:软件开发组节点、多个第一任务节点、软件测试组节点、多个第二任务节点,软件开发组节点,用于对第一任务节点上的软件产品版本进行更新;将更新后的软件产品版本发送到区块链网络上;将软件产品版本更新通知发送至区块链网络;通过区块链网络获得测试结果;软件测试组节点,用于在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本;基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;对第二任务节点上的软件产品版本进行测试;将测试结果发送至区块链网络。本发明可以实现软件版本的及时同步。

著录项

  • 公开/公告号CN113050971A

    专利类型发明专利

  • 公开/公告日2021-06-29

    原文格式PDF

  • 申请/专利权人 中国银行股份有限公司;

    申请/专利号CN202110482539.5

  • 发明设计人 晏焱;

    申请日2021-04-30

  • 分类号G06F8/65(20180101);G06F8/71(20180101);G06F11/36(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人王天尧;谷敬丽

  • 地址 100818 北京市西城区复兴门内大街1号

  • 入库时间 2023-06-19 11:39:06

说明书

技术领域

本发明涉及区块链领域,尤其涉及一种基于区块链的软件版本管理系统及方法。

背景技术

随着各公司软件项目的数量和复杂度不断增加,软件版本发布过程的复杂度也不断提升。版本打包人员拿错源文件,开发人员修改版本后忘记通知测试人员进行测试,代码坐车等问题导致功能测试版本与最终的生产版本不一致出现的版本问题时常发生,因此,目前需要一种软件版本管理方法以解决软件版本不能及时同步的问题。

发明内容

本发明实施例提出一种基于区块链的软件版本管理系统,用以实现软件版本的及时同步,该系统包括:

软件开发组节点、多个第一任务节点、软件测试组节点、多个第二任务节点,其中,软件开发组节点、第一任务节点、软件测试组节点、第二任务节点是区块链网络中的节点;第一任务节点是软件开发组节点的分支节点,第二任务节点是软件测试组节点的分支节点;

软件开发组节点,用于对第一任务节点上的软件产品版本进行更新;将更新后的软件产品版本发送到区块链网络上;将软件产品版本更新通知发送至区块链网络;通过区块链网络获得测试结果;

第一任务节点,用于存储软件产品版本;

软件测试组节点,用于在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本;基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;对第二任务节点上的软件产品版本进行测试;将测试结果发送至区块链网络;

第二任务节点,用于存储软件产品版本。

本发明实施例提出一种软件开发组节点,用以实现软件版本的及时同步,该节点包括:

第一更新模块,用于对第一任务节点上的软件产品版本进行更新;

版本发送模块,用于将更新后的软件产品版本发送到区块链网络上;

通知发送模块,用于将软件产品版本更新通知发送至区块链网络;

测试结果获得模块,用于通过区块链网络获得测试结果;所述测试结果是软件测试组节点对第二任务节点上的软件产品版本进行测试并发送至区块链网络的;所述软件测试组节点在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本,并基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;

其中,软件开发组节点、第一任务节点、软件测试组节点、第二任务节点是区块链网络中的节点;第一任务节点是软件开发组节点的分支节点,第二任务节点是软件测试组节点的分支节点。

本发明实施例提出一种基于区块链的软件版本管理方法,用以实现软件版本的及时同步,该方法应用于前述的软件开发组节点,包括:

对第一任务节点上的软件产品版本进行更新;

将更新后的软件产品版本发送到区块链网络上;

将软件产品版本更新通知发送至区块链网络;

通过区块链网络获得测试结果;所述测试结果是软件测试组节点对第二任务节点上的软件产品版本进行测试并发送至区块链网络的;所述软件测试组节点在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本,并基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;

其中,软件开发组节点、第一任务节点、软件测试组节点、第二任务节点是区块链网络中的节点;第一任务节点是软件开发组节点的分支节点,第二任务节点是软件测试组节点的分支节点。

本发明实施例提出一种软件测试组节点,用以实现软件版本的及时同步,该节点包括:

版本获得模块,用于在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本;所述软件产品版本更新通知是软件开发组节点对第一任务节点上的软件产品版本进行更新,并将更新后的软件产品版本发送到区块链网络上之后,发送至区块链网络的;

第二更新模块,用于基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;

测试模块,用于对第二任务节点上的软件产品版本进行测试;

测试结果发送模块,用于将测试结果发送至区块链网络;所述软件开发组节点通过区块链网络获得测试结果;

其中,软件开发组节点、第一任务节点、软件测试组节点、第二任务节点是区块链网络中的节点;第一任务节点是软件开发组节点的分支节点,第二任务节点是软件测试组节点的分支节点。

本发明实施例提出一种基于区块链的软件版本管理方法,用以实现软件版本的及时同步,该方法应用于前述的软件测试组节点,包括:

在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本;所述软件产品版本更新通知是软件开发组节点对第一任务节点上的软件产品版本进行更新,并将更新后的软件产品版本发送到区块链网络上之后,发送至区块链网络的;

基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;

对第二任务节点上的软件产品版本进行测试;

将测试结果发送至区块链网络;所述软件开发组节点通过区块链网络获得测试结果;

其中,软件开发组节点、第一任务节点、软件测试组节点、第二任务节点是区块链网络中的节点;第一任务节点是软件开发组节点的分支节点,第二任务节点是软件测试组节点的分支节点。

本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的软件版本管理方法。

本发明实施例还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于区块链的软件版本管理方法的计算机程序。

在本发明实施例中,软件开发组节点,用于对第一任务节点上的软件产品版本进行更新;将更新后的软件产品版本发送到区块链网络上;将软件产品版本更新通知发送至区块链网络;通过区块链网络获得测试结果;第一任务节点,用于存储软件产品版本;软件测试组节点,用于在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本;基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;对第二任务节点上的软件产品版本进行测试;将测试结果发送至区块链网络;第二任务节点,用于存储软件产品版本。在上述实施例中,通过区块链网络,实现了软件开发组和软件测试组中软件产品版本的同步更新,从而避免了代码坐车、打包错误等问题的发生。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中基于区块链的软件版本管理系统的示意图;

图2为本发明实施例中基于区块链的软件版本管理系统的另一示意图;

图3为本发明实施例中基于区块链的软件版本管理系统的一个示例;

图4为本发明实施例中软件开发组节点的示意图;

图5为本发明实施例中基于区块链的软件版本管理方法的流程图;

图6为本发明实施例中软件测试组节点的示意图;

图7为本发明实施例中基于区块链的软件版本管理方法的另一流程图;

图8为本发明实施例中计算机设备的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。

图1为本发明实施例中基于区块链的软件版本管理系统的示意图,如图1所示,该系统包括:

软件开发组节点101、多个第一任务节点102、软件测试组节点201、多个第二任务节点202,其中,软件开发组节点101、第一任务节点102、软件测试组节点201、第二任务节点202是区块链网络中的节点;第一任务节点102是软件开发组节点101的分支节点,第二任务节点202是软件测试组节点201的分支节点;

软件开发组节点101,用于对第一任务节点102上的软件产品版本进行更新;将更新后的软件产品版本发送到区块链网络上;将软件产品版本更新通知发送至区块链网络;通过区块链网络获得测试结果;

第一任务节点102,用于存储软件产品版本;

软件测试组节点201,用于在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本;基于通过区块链网络获得的软件产品版本更新第二任务节点202上的软件产品版本;对第二任务节点202上的软件产品版本进行测试;将测试结果发送至区块链网络;

第二任务节点202,用于存储软件产品版本。

在本发明实施例中,通过区块链网络,实现了软件开发组和软件测试组中软件产品版本的同步更新,从而避免了代码坐车、打包错误等问题的发生。

具体实施时,区块链技术具有去中心化、可追溯的、不可篡改等优点、能够保证数据安全可靠。软件产品版本的更新是基于区块链的账本机制,软件产品版本更新通知的传递则是基于区块链的消息同步机制。

图2为本发明实施例中基于区块链的软件版本管理系统的另一示意图,在一实施例中,所述系统还包括版本发布节点12,版本发布节点12是区块链网络上的节点;

软件测试组节点具体用于:对第二任务节点中通过测试的软件产品版本添加测试通过标记和测试团队签名;

版本发布节点用于:将含有测试通过标记和测试团队签名的软件产品版本进行打包并发布到区块链网络上。

在上述实施例中,可以在产品发布周期,选择软件测试组节点->第二产品节点->第二批次节点->第二任务节点上含有测试通过标记和测试团队签名的软件产品版本进行打包并在区块链网络进行发布,形成生产版本。另外,测试结果除了问题单外,还可以包括测试日期、测试人员等信息。

如图2所示,在一实施例中,所述系统还包括多个第一产品节点103、多个第一批次节点104、多个第二产品节点203、多个第二批次节点204;

其中,第一产品节点103是软件开发组节点101的分支节点,第一批次节点104是第一产品节点103的分支节点,第一任务节点102是第一批次节点104的分支节点,第二产品节点203是软件测试组节点201的分支节点,第二批次节点204是第二产品节点203的分支节点,第二任务节点202是第二批次节点204的分支节点;

第一产品节点103,用于存储分支信息;

第一批次节点104,用于存储分支信息;

第二产品节点203,用于存储分支信息;

第二批次节点204,用于存储分支信息;

软件开发组节点101还用于:对第一产品节点和第一批次节点上的分支信息进行更新;将更新后的分支信息发送到区块链网络上;

软件测试组节点201还用于:在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的分支信息;基于通过区块链网络获得的分支信息更新第二产品节点和第二批次节点的分支信息;对于每个第二批次节点,在该第二批次节点下的所有第二任务节点上的软件产品版本通过测试后,对该第二批次节点进行回归测试;对于每个第二产品节点,在该第二产品节点下的所有第二批次节点上的回归测试通过后,对该第二产品节点进行回归测试。

具体实施时,上述软件开发组节点和软件测试组节点为1级节点,第一产品节点和第二产品节点为2级节点,第一批次节点和第二批次节点为3级节点,第一任务节点和第二任务节点为4级节点,图3为本发明实施例中基于区块链的软件版本管理系统的一个示例,可以看到软件一组为软件开发组节点,分支包括产品A和产品B,产品A的分支包括P2101批次和P2102批次,P2101批次包括任务1和任务2,测试一组为软件测试组节点,与开发一组的结构一样。

在一实施中,所述测试结果包括问题单,所述问题单包括多个测试问题;

软件开发组节点还用于:基于问题单,修改第一任务节点上的软件产品版本,更新第一产品节点和第一批次节点上的分支信息,将修改后的软件产品版本添加修改通过标记和开发团队签名,并发送至区块链网络上;将软件产品版本修改通知发送至区块链网络;

软件测试组节点还用于:在通过区块链网络接收软件产品版本修改通知后,获得区块链网络上的软件产品版本和分支信息;基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;基于通过区块链网络获得的分支信息更新第二产品节点和第二批次节点的分支信息;对第二任务节点上的添加有修改通过标记和开发团队签名的软件产品版本进行测试;对于每个第二批次节点,在该第二批次节点下的所有第二任务节点上的软件产品版本通过测试后,对该第二批次节点进行回归测试;对于每个第二产品节点,在该第二产品节点下的所有第二批次节点上的回归测试通过后,对该第二产品节点进行回归测试。

在一实施例中,软件测试组节点还用于:

在对第二任务节点上的添加有修改通过标记和开发团队签名的软件产品版本进行测试后,若新生成的测试单上的测试问题数超过设定阈值,或前一个测试单上的测试问题重复出现,或出现了新的测试问题,生成软件产品版本告警信息,将所述软件产品版本告警信息发送至区块链网络上;

软件开发组节点还用于:在通过区块链网络接收到软件产品版本告警信息后,进行版本回退。

综上所述,在本发明实施例提出的系统中,通过区块链网络,实现了软件开发组和软件测试组中软件产品版本的同步更新,从而避免了代码坐车、打包错误等问题的发生。

本发明实施例还提出一种软件开发组节点,图4为本发明实施例中软件开发组节点的示意图,包括:

第一更新模块401,用于对第一任务节点上的软件产品版本进行更新;

版本发送模块402,用于将更新后的软件产品版本发送到区块链网络上;

通知发送模块403,用于将软件产品版本更新通知发送至区块链网络;

测试结果获得模块404,用于通过区块链网络获得测试结果;所述测试结果是软件测试组节点对第二任务节点上的软件产品版本进行测试并发送至区块链网络的;所述软件测试组节点在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本,并基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;

其中,软件开发组节点、第一任务节点、软件测试组节点、第二任务节点是区块链网络中的节点;第一任务节点是软件开发组节点的分支节点,第二任务节点是软件测试组节点的分支节点。

可见,在通过区块链网络,实现了软件开发组和软件测试组中软件产品版本的同步更新,从而避免了代码坐车、打包错误等问题的发生。

本发明实施例还提出一种基于区块链的软件版本管理方法,其原理与上述软件开发组节点类似,这里不再赘述。

图5为本发明实施例中基于区块链的软件版本管理方法的流程图,该方法应用于前述软件开发组节点,包括:

步骤501,对第一任务节点上的软件产品版本进行更新;

步骤502,将更新后的软件产品版本发送到区块链网络上;

步骤503,将软件产品版本更新通知发送至区块链网络;

步骤504,通过区块链网络获得测试结果;所述测试结果是软件测试组节点对第二任务节点上的软件产品版本进行测试并发送至区块链网络的;所述软件测试组节点在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本,并基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;

其中,软件开发组节点、第一任务节点、软件测试组节点、第二任务节点是区块链网络中的节点;第一任务节点是软件开发组节点的分支节点,第二任务节点是软件测试组节点的分支节点。

可见,在通过区块链网络,实现了软件开发组和软件测试组中软件产品版本的同步更新,从而避免了代码坐车、打包错误等问题的发生。

本发明实施例还提出一种软件测试组节点,如图6所示为本发明实施例中软件测试组节点的示意图,包括:

版本获得模块601,用于在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本;所述软件产品版本更新通知是软件开发组节点对第一任务节点上的软件产品版本进行更新,并将更新后的软件产品版本发送到区块链网络上之后,发送至区块链网络的;

第二更新模块602,用于基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;

测试模块603,用于对第二任务节点上的软件产品版本进行测试;

测试结果发送模块604,用于将测试结果发送至区块链网络;所述软件开发组节点通过区块链网络获得测试结果;

其中,软件开发组节点、第一任务节点、软件测试组节点、第二任务节点是区块链网络中的节点;第一任务节点是软件开发组节点的分支节点,第二任务节点是软件测试组节点的分支节点。

可见,在通过区块链网络,实现了软件开发组和软件测试组中软件产品版本的同步更新,从而避免了代码坐车、打包错误等问题的发生。

图7为本发明实施例中基于区块链的软件版本管理方法的另一流程图,该方法应用于前述软件测试组节点,包括:

步骤701,在通过区块链网络接收软件产品版本更新通知后,获得区块链网络上的软件产品版本;所述软件产品版本更新通知是软件开发组节点对第一任务节点上的软件产品版本进行更新,并将更新后的软件产品版本发送到区块链网络上之后,发送至区块链网络的;

步骤702,基于通过区块链网络获得的软件产品版本更新第二任务节点上的软件产品版本;

步骤703,对第二任务节点上的软件产品版本进行测试;

步骤704,将测试结果发送至区块链网络;所述软件开发组节点通过区块链网络获得测试结果;

其中,软件开发组节点、第一任务节点、软件测试组节点、第二任务节点是区块链网络中的节点;第一任务节点是软件开发组节点的分支节点,第二任务节点是软件测试组节点的分支节点。

可见,在通过区块链网络,实现了软件开发组和软件测试组中软件产品版本的同步更新,从而避免了代码坐车、打包错误等问题的发生。

本申请的实施例还提供一种计算机设备,图8为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的基于区块链的软件版本管理方法中全部步骤,所述计算机设备具体包括如下内容:

处理器(processor)801、存储器(memory)802、通信接口(CommunicationsInterface)803和通信总线804;

其中,所述处理器801、存储器802、通信接口803通过所述通信总线804完成相互间的通信;所述通信接口803用于实现服务器端设备、检测设备以及用户端设备等相关设备之间的信息传输;

所述处理器801用于调用所述存储器802中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的基于区块链的软件版本管理方法中的全部步骤。

本申请的实施例还提供一种计算机可读存储介质,能够实现上述实施例中的基于区块链的软件版本管理方法中全部步骤,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于区块链的软件版本管理方法的全部步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号