首页> 中国专利> 利用Jenkins发布固态硬盘固件代码的方法和系统

利用Jenkins发布固态硬盘固件代码的方法和系统

摘要

本发明公开了利用Jenkins发布固态硬盘固件代码的方法及系统,方法包括以下步骤:当获取固态硬盘固件代码发布需求时,控制在Jenkins页面填写固态硬盘固件代码发布信息;当在Jenkins页面完成填写发布信息时,控制执行启动固态硬盘固件代码发布流程指令;当获取到启动固态硬盘固件代码发布流程指令时,控制Jenkins自动化框架执行对固态硬盘固件代码的多机测试流程,并获取多机测试结果;根据多机测试结果,控制执行固态硬盘固件代码发布。本发明提供的利用Jenkins发布固态硬盘固件代码的方法通过利用通用的Jenkins自动化框架,基于该框架统一测试平台和标准,将固态硬盘固件代码发布流程标准化和自动化。

著录项

  • 公开/公告号CN113254326A

    专利类型发明专利

  • 公开/公告日2021-08-13

    原文格式PDF

  • 申请/专利权人 至誉科技(武汉)有限公司;

    申请/专利号CN202110368706.3

  • 申请日2021-04-06

  • 分类号G06F11/36(20060101);

  • 代理机构42225 武汉智权专利代理事务所(特殊普通合伙);

  • 代理人张凯

  • 地址 430000 湖北省武汉市东湖新技术开发区高新二路特一号关南工业园2号厂房2-3楼西面

  • 入库时间 2023-06-19 12:13:22

说明书

技术领域

本发明涉及固态硬盘固件代码测试发布技术领域,具体是涉及一种利用Jenkins发布固态硬盘固件代码的方法和系统。

背景技术

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。

NVMe(Non-Volatile Memory Express),是一种基于PCIe(PCI Express)数据传输的SSD接口协议,SATA(Serial ATA)一种硬盘数据传输接口,最高传输速率为6Gb/s)。

由于SSD(Solid State Drive固态硬盘)产品根据市场或客户需求的变化,需要有新功能的支持,从而导致固态硬盘固件代码需要进行更新升级,例如新增或优化等,待固态硬盘固件功能开发完毕并通过基本测试后,再进行正式发布。用户再根据实际需求,将所使用的SSD产品更新到正式发布的固件版本,再继续使用。

为了最大限度地缩短开发周期,现有的固态硬盘固件代码的发布方法的方法流程请参考图1所示:S100A、将多个不同的功能模块并行安排开发,即将不同的功能模块分配给不同的固件开发人员。S200A、待对应的功能模块开发完成后,再进行测试;S300A、将测试完成的功能模块提交到主固件代码库或目标固件代码库中。此时,主固件代码库或目标固件代码库中包含有完整的功能固件代码,S400A、固态硬盘固件代码发布是通过将最终的固件代码从该主固件代码库或目标固件代码库中进行发布。

现有的开发人员将分支固件代码提交到主固件代码库的过程,开发人员的开发与验证均主要关心自己负责模块的功能。该模块开发人员可能并不熟悉其他模块,或是不知该模块与其他模块的关联性。这样导致的结果是:测试本模块功能通过了,但在更新和使用正式发布固件后,存在极大缺陷与问题的风险,导致后续时间与资源的浪费;

由于分支固件代码库是以某个时期的主固件代码库的固件代码作为基准进行开发,待一段时间完成开发后,与主分支固件代码会有一定的差异,在新模块提交到主分支后,可能由于其他模块的接口、使用前提条件、逻辑等发生变化,导致从主分支发布固件版本后,再使用存在缺陷与问题;

主分支固件代码库的发布没有经过标准测试用例的测试,在固件版本发布之后,不能清晰反映测试的覆盖率与测试结果,在后续的实际使用中存在缺陷与问题的概率极大;

固件代码发布的管理,需要人为统筹安排所有的步骤和测试细节,不便于管理人员的统一安排与规划,增加固件代码发布的管理人员负担与成本。

发明内容

本发明的目的是为了克服上述背景技术的不足,提供一种利用Jenkins发布固态硬盘固件代码的方法及系统。

第一方面,本发明提供了一种利用Jenkins发布固态硬盘固件代码的方法,包括以下步骤:

当获取固态硬盘固件代码发布需求时,控制在Jenkins页面填写固态硬盘固件代码发布信息;

当在Jenkins页面完成填写发布信息时,控制执行启动固态硬盘固件代码发布流程指令;

当获取到启动固态硬盘固件代码发布流程指令时,控制Jenkins自动化框架执行对固态硬盘固件代码的多机测试流程,并获取多机测试结果;

根据所述多机测试结果,控制执行固态硬盘固件代码发布。

根据第一方面,在第一方面的第一种可能的实现方式中,所述“控制执行启动固态硬盘固件代码发布流程指令”步骤,具体包括以下步骤:

控制执行启动固态硬盘固件代码发布流程指令;

控制计算生成固件硬盘固件代码发布版本编码。

根据第一方面,在第一方面的第二种可能的实现方式中,所述“当获取到启动固态硬盘固件代码发布流程指令时,控制Jenkins自动化框架执行对固态硬盘固件代码的多机测试流程”步骤,具体包括以下步骤:

当获取到启动固态硬盘固件代码发布流程指令时:

控制Jenkins自动化框架执行登录编译机器进行固件代码编译测试;和/或,

登录固件代码模拟测试机器进行固件代码模拟测试;和/或,

登录专用烧录机器进行固件代码烧录测试;和/或,

登录基本测试机器进行预定标准测试用例测试;和/或,

登录功能测试机器进行预设功能测试。

根据第一方面,在第一方面的第三种可能的实现方式中,所述“控制Jenkins自动化框架执行对固态硬盘固件代码的多机测试流程”步骤之后,还包括以下步骤:

控制Jenkins自动化框架并行执行多个测试机器的登录操作;

控制Jenkins自动化框架同时执行多个测试机器的测试操作。

根据第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述“控制Jenkins自动化框架同时执行多个测试机器的测试操作。”步骤之后,还包括以下步骤:

控制Jenkins自动化框架执行检查各测试机器的测试状态和测试结果;

获取各测试机器的测试状态和测试结果。

根据第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述“获取各测试机器的测试状态和测试结果”步骤之后,还包括以下步骤:

当Jenkins自动化框架多机测试失败时,执行记录测试失败记录。

根据第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述“Jenkins自动化框架多机测试失败”包括多机测试操作中一个或多个机器操作失败,所述“当Jenkins自动化框架多机测试失败时,执行测试失败记录”步骤之后,还包括以下步骤:

当Jenkins自动化框架多机测试失败时,发送出测试失败记录;

根据接收到的测试失败记录,分析、调试固件代码缺陷;

控制再次启动固态硬盘固件代码发布流程。

根据第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述“获取各测试机器的测试状态和测试结果”步骤之后,还包括以下步骤:

当Jenkins自动化框架多机测试通过时,执行固态硬盘固件代码发布。

根据第一方面的第五种可能的实现方式,在第一方面的第七种可能的实现方式中,所述“获取各测试机器的测试状态和测试结果”步骤之后,还包括以下步骤:

控制生成多机测试报告,所述多机测试报告包括测试覆盖率、测试通过率、失败测试用例、测试失败原因;

控制多机测试报告上传数据库。

第二方面,本发明提供了一种利用Jenkins发布固态硬盘固件代码的系统,包括:

发布信息填写控制单元,用于当获取固态硬盘固件代码发布需求时,控制在Jenkins页面填写固态硬盘固件代码发布信息;

发布流程启动控制单元,与所述发布信息填写控制单元通信连接,用于当在Jenkins页面完成填写发布信息时,控制执行启动固态硬盘固件代码发布流程指令;

多机测试控制单元,与所述发布流程启动控制单元通信连接,用于当获取到启动固态硬盘固件代码发布流程指令时,控制Jenkins自动化框架执行对固态硬盘固件代码的多机测试流程,并获取多机测试结果;

固件代码发布控制单元,与所述多机测试控制单元通信连接,用于根据所述多机测试结果,控制执行固态硬盘固件代码发布。

与现有技术相比,本发明的优点如下:

本发明提供的利用Jenkins发布固态硬盘固件代码的方法通过利用通用的Jenkins自动化框架,基于该框架实现自动固态硬盘固件代码发布和测试功能,统一固态硬盘固件代码发布的测试硬件和软件,统一固态硬盘固件代码的测试环境和测试标准,将固态硬盘固件代码发布流程标准化和自动化;

通过通用的Jenkins自动化框架实现对固态硬盘固件代码的自动化发布和测试,减少开发人员、产品管理人员的操作,从而降低在对固态硬盘固件代码测试过程中引发的不确定性和测试错误;并且该测试发布流程对固态硬盘固件管理人员透明化,管理人员无需过多关注测试流程,有利于管理人员更多地关注固态硬盘固件代码的质量与稳定性;

本发明提供的利用Jenkins发布固态硬盘固件代码的方法,不仅适用于NVMe SSD的固件代码发布的测试,同样适用于SATA SSD的固件代码发布测试,只需将测试用例和测试资源根据不同的固态硬盘固件进行规划调整即可。

附图说明

图1是现有的固态硬盘固件代码的发布方法的方法流程示意图;

图2是本发明提供的固态硬盘固件代码的发布方法的方法流程示意图;

图3是本发明提供的固态硬盘固件代码发布方法的另一方法流程示意图;

图4是本发明提供的固态硬盘固件代码发布系统的功能模块框图。

图中,100、发布信息填写控制单元;200、发布流程启动控制单元;300、多机测试控制单元;400、固件代码发布控制单元。

具体实施方式

现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于所述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。

为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。

注意:接下来要介绍的示例仅是一个具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。

参见图2所示,本发明提供一种利用Jenkins发布固态硬盘固件代码的方法,包括以下步骤:

S100、当获取固态硬盘固件代码发布需求时,控制在Jenkins页面填写固态硬盘固件代码发布信息,例如固件代码的发布分支名称、特定的发布版本配置信息、遇到测试错误后是否继续后续测试等;

S200、当在Jenkins页面完成填写发布信息时,控制执行启动固态硬盘固件代码发布流程指令;

S300、当获取到启动固态硬盘固件代码发布流程指令时,控制Jenkins自动化框架执行对固态硬盘固件代码的多机测试流程,并获取多机测试结果;

S400、根据所述多机测试结果,控制执行固态硬盘固件代码发布,用以确保从固件代码库中发布的固件代码的质量和功能符合需求预期。

本发明提供的利用Jenkins发布固态硬盘固件代码的方法通过利用通用的Jenkins自动化框架,基于该框架实现自动固态硬盘固件代码发布和测试功能,统一测试硬件、软件、测试环境和测试标准,将固态硬盘固件代码发布流程标准化和自动化;

通过通用的Jenkins自动化框架实现对固态硬盘固件代码的自动化发布和测试,减少开发人员、产品管理人员的操作,从而降低在对固态硬盘固件代码测试过程中引发的不确定性和测试错误;并且该测试发布流程对固态硬盘固件管理人员透明化,管理人员无需过多关注测试流程,有利于管理人员更多地关注固态硬盘固件代码的质量与稳定性;

本发明提供的利用Jenkins发布固态硬盘固件代码的方法,不仅适用于NVMe SSD的固件代码发布的测试,同样适用于SATA SSD的固件代码发布测试,只需将测试用例和测试资源根据不同的固态硬盘固件进行规划调整即可。

在一实施例中,“控制执行启动固态硬盘固件代码发布流程指令”步骤,具体包括以下步骤:

S210、控制执行启动固态硬盘固件代码发布流程指令;

S220、控制计算生成固件硬盘固件代码发布版本编码,以便于后期对固件代码发布版本统一的历史查询与版本维护。通过Jenkins自动化框架实现对固态硬盘固件代码发布的统一测试环境和测试标准,便于产品管理人员对固态硬盘固件代码发布的统一管理,对已发布固态硬盘固件代码进行备份和查询测试历史等,提供统一的接口对固态硬盘发布版本的管理。

在一实施例中,所述“S300、当获取到启动固态硬盘固件代码发布流程指令时,控制Jenkins自动化框架执行对固态硬盘固件代码的多机测试流程”步骤,具体包括以下步骤:

S300a、当获取到启动固态硬盘固件代码发布流程指令时,执行对应的测试用例,由自动化框架实现登录到多台机器上,分别启动对应的测试项目:

S300b、控制Jenkins自动化框架执行登录编译机器进行固件代码编译测试;和/或,

S300c、登录固件代码模拟测试机器进行固件代码模拟测试;和/或,

S300d、登录专用烧录机器进行固件代码烧录测试;和/或,

S300e、登录基本测试机器进行预定标准测试用例测试;和/或,S300f、登录功能测试机器进行预设功能测试;和/或,

S300g、其他后续可以扩展的测试机器与测试项目。

在本申请的其他实施例中,如果需要增加测试用例,该测试流程也极具可维护修改性,只要在分配好测试机器资源的前提下,在测试流程中添加对应的测试用例到测试流程中,维护统一的测试流程即可;通过不断完善和增加的测试用例,能快速测试出发布固件测试流程的稳定性与健康程度,将一些缺陷以及问题及早通过各项测试暴露出来,减少并降低固态硬盘固件代码终端用户错误率。

在一实施例中,所述“控制Jenkins自动化框架执行对固态硬盘固件代码的多机测试流程”步骤之后,还包括以下步骤:

控制Jenkins自动化框架并行执行多个测试机器的登录操作;

控制Jenkins自动化框架同时执行多个测试机器的测试操作。控制Jenkins自动化框架同时登录上述机器的操作均为并行,且测试可以同时进行,以便于最大程度地节省对固态硬盘固件代码的测试时间。

如上所述,根据本申请,在本发明利用Jenkins发布固态硬盘固件代码的方法提供的测试流程中,每个测试用例项目的测试时间从1小时到72小时不等,在具体测试过程中,可根据测试用例的需求和定义以及不同阶段的测试重点,例如增加、减少或加强测试用例等,对测试用例进行调整,便于对测试用例统一维护。

在一实施例中,所述“Jenkins自动化框架同时执行多个测试机器的测试操作”步骤之后,还包括以下步骤:

控制Jenkins自动化框架执行检查各测试机器的测试状态和测试结果;

获取各测试机器的测试状态和测试结果。

在一实施例中,所述“获取各测试机器的测试状态和测试结果。”步骤之后,还包括以下步骤:

当Jenkins自动化框架多机测试失败时,执行记录测试失败记录。

在一实施例中,所述“Jenkins自动化框架多机测试失败”包括多机测试操作中一个或多个机器操作失败,所述“当Jenkins自动化框架多机测试失败时,执行测试失败记录”步骤之后,还包括以下步骤:

当Jenkins自动化框架多机测试失败时,控制发送测试失败记录;

根据测试失败记录,控制分析、调试固件代码缺陷;

待解决固件代码缺陷后,或经对固件代码缺陷的分析、检查和评估后判定该固件代码缺陷为可忽略问题后,控制再次启动固态硬盘固件代码发布流程。

在一实施例中,经对固件代码缺陷的分析、检查和评估后判定该固件代码缺陷为可忽略问题后,记录该固件代码缺陷以备检查。

在一实施例中,所述“获取各测试机器的测试状态和测试结果”步骤之后,还包括以下步骤:

当Jenkins自动化框架多机测试通过时,执行固态硬盘固件代码发布。

在一实施例中,所述“获取各测试机器的测试状态和测试结果。”步骤之后,还包括以下步骤:

控制生成多机测试报告,所述多机测试报告包括测试覆盖率、测试通过率、失败测试用例、测试失败原因;

控制多机测试报告上传数据库,以备后续查找测试用例的执行过程和结果日志,为固态硬盘固件代码统一接口发布的管理和统一规划提供基础理论支持。

根据本申请,当有多个固件版本需要发布时,根据以上方法提供的测试流程,可实现为一次进行固件版本发布,或者根据测试资源,进行合理规划,在测试资源足够时并行执行多个固件版本发布。

基于同一发明构思,请参考图4,本发明提供了一种利用Jenkins发布固态硬盘固件代码的系统,包括:

发布信息填写控制单元100,用于当获取固态硬盘固件代码发布需求时,控制在Jenkins页面填写固态硬盘固件代码发布信息;

发布流程启动控制单元200,与所述发布信息填写控制单元100通信连接,用于当在Jenkins页面完成填写发布信息时,控制执行启动固态硬盘固件代码发布流程指令;

多机测试控制单元300,与所述发布流程启动控制单元200通信连接,用于当获取到启动固态硬盘固件代码发布流程指令时,控制Jenkins自动化框架执行对固态硬盘固件代码的多机测试流程,并获取多机测试结果;

固件代码发布控制单元400,与所述多机测试控制单元通信300连接,用于根据所述多机测试结果,控制执行固态硬盘固件代码发布。

基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的所有方法步骤或部分方法步骤。

本发明实现上述方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序固件代码,计算机程序固件代码可以为源固件代码形式、对象固件代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序固件代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

基于同一发明构思,本申请实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法中的所有方法步骤或部分方法步骤。

所称处理器可以是中央处理单元(Central Processing Unit,CP U),还可以是其他通用处理器、数字信号处理器(Digital Signal Pr ocessor,DSP)、专用集成电路(Application Specific Integrated Circ uit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。

存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如声音播放功能、图像播放功能等);存储数据区可存储根据手机的使用所创建的数据(例如音频数据、视频数据等)。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Fl ash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

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

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

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

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

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号