CN111831554B - 一种代码检查方法及装置 - Google Patents

一种代码检查方法及装置 Download PDF

Info

Publication number
CN111831554B
CN111831554B CN202010517675.9A CN202010517675A CN111831554B CN 111831554 B CN111831554 B CN 111831554B CN 202010517675 A CN202010517675 A CN 202010517675A CN 111831554 B CN111831554 B CN 111831554B
Authority
CN
China
Prior art keywords
code
branch
information
checked
version information
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
CN202010517675.9A
Other languages
English (en)
Other versions
CN111831554A (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.)
Shishi Tongyun Technology Chengdu Co ltd
Original Assignee
Shishi Tongyun Technology Chengdu 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 Shishi Tongyun Technology Chengdu Co ltd filed Critical Shishi Tongyun Technology Chengdu Co ltd
Priority to CN202010517675.9A priority Critical patent/CN111831554B/zh
Publication of CN111831554A publication Critical patent/CN111831554A/zh
Application granted granted Critical
Publication of CN111831554B publication Critical patent/CN111831554B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/3672Test 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/3664Environments for testing or debugging software
    • 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
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请公开了一种代码检查方法,包括:将当前服务的远程代码拉取到特定目录;所述远程代码包括已合入分支代码的主线代码,以及需要检查是否已正确合入到主线代码的待检查分支代码;针对所述待检查分支代码和所述主线代码进行比对;获取分支比对结果,根据所述分支比对结果进行代码处理。采用所述方法,解决了多分支代码合并中可能出现的代码疏漏问题。

Description

一种代码检查方法及装置
技术领域
本申请涉及测试技术领域,具体涉及一种代码检查方法、装置及设备。
背景技术
目前,软件规模化及复杂程度越来越高,往往由多人或者多个项目组进行开发,多分支开发是常见的提升效率的开发模式。多分支开发中,各分支之间互不影响,主线分支(master)是稳定的代码版本,为代码的迭代开发提供稳定可靠的代码基础,其他修改代码的分支用于进行新功能开发、bug(缺陷)修复等,例如开发分支(develop)、临时分支等。代码上线(或代码发布)之前往往需要将多个分支的代码进行合并。所谓代码上线是指将代码部署到或编译后部署到互联网服务器上对外提供web服务的过程。持续集成(或持续交付)是经常采用的软件开发实践。所谓持续集成是指开发人员提交代码后,自动编译、测试、打包、发布。这种开发实践中,代码集成测试往往发生在编译之后。因此,对于采用多分支开发模式的持续集成开发实践,在代码编译上线部署之前,如何避免人为疏忽漏合入代码或者未及时将临时上线代码合入主线分支而引起代码缺失,显得非常重要。
现有技术中,多分支代码合并的正确性往往在代码的集成测试阶段进行验证。由测试工程师人工分析代码修改的影响范围,根据影响范围人工确定与代码修改相关的测试用例或脚本。由于相关用例数量可能比较多,并且优先级、重要程度不同,因此,需要结合人工经验筛选出尽可能有效的测试用例,手动执行测试用例验证代码合并的正确性。另外,多分支开发中代码合并场景较多且比较复杂,例如,开发分支合并、单独分支上线后合并、卡片独立分支开发后合并等。因此,目前代码合并中存在以下问题:依赖人工能力和经验;如何筛选出合适的用例集也存在难度;手动执行用例效率较低。从而导致多分支代码合并在场景复杂的情况下可能出现疏漏。
因此,在多分支代码编译部署前如何自动化测试代码合并的正确性以避免出现代码缺失是需要解决的问题。
发明内容
本申请实施例提供的代码检查方法,用以在多分支代码编译部署前对代码合并的正确性进行自动化测试,解决了多分支代码合并中可能出现的代码疏漏问题。
本申请实施例提供一种代码检查方法,包括:将当前服务的远程代码拉取到特定目录;所述远程代码包括已合入分支代码的主线代码,以及需要检查是否已正确合入到主线代码的待检查分支代码;针对所述待检查分支代码和所述主线代码进行比对;获取分支比对结果,根据所述分支比对结果进行代码处理。
可选的,所述针对所述待检查分支代码和所述主线代码进行比对,包括:通过Git命令获取已合入所述主线代码的已合入分支信息,根据所述已合入分支信息确定所述待检查分支代码的合入状态;所述获取分支比对结果,根据所述分支比对结果进行代码处理,包括:根据所述合入状态进行代码处理。
可选的,所述根据所述已合入分支信息确定所述待检查分支代码的合入状态,包括:如果判断所述已合入分支信息中包含与所述待检查分支代码的分支信息匹配的信息,则确定所述合入状态为已正确合入状态;否则,确定所述合入状态为未正确合入状态。
可选的,所述如果判断所述已合入分支信息中包含与所述待检查分支代码的分支信息匹配的信息,则确定所述合入状态为已正确合入状态,包括:获得所述已合入分支信息中包含的分支标识,如果所述分支标识与所述待检查分支代码的分支标识一致,则确定所述合入状态为已正确合入状态。
可选的,还包括:获取所述服务器上当前在线的应用版本信息以及环境版本信息;所述应用版本信息为当前提供特定服务的应用的版本信息,所述环境版本信息为所述应用的运行环境的版本信息;所述根据所述已合入分支信息确定所述待检查分支代码的合入状态,包括:根据所述应用版本信息、所述环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态。
可选的,所述根据所述应用版本信息、所述环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态,包括:根据所述应用版本信息以及所述环境版本信息,获取与所述应用及所述应用的运行环境对应的代码;获取与所述应用及所述应用的运行环境对应的代码的第一提交日志,获取所述主线代码的第二提交日志;根据所述第一提交日志以及第二提交日志,确定与所述应用及所述应用的运行环境对应的代码是否已合入所述主线代码;如果与所述应用及所述应用的运行环境对应的代码已合入所述主线代码,并且所述已合入分支信息中包含与所述待检查分支代码的分支信息匹配的信息,则确定所述合入状态为已正确合入状态;否则,确定所述合入状态为未正确合入状态。
可选的,还包括:获得所述主线代码部署或编译后部署的服务运行区域;所述服务运行区域为根据特定服务运行环境的影响广度确定的区域;所述获取所述服务器上当前在线的应用版本信息以及环境版本信息,包括:根据所述服务运行区域确定需要获取的应用版本信息以及环境版本信息。
可选的,还包括:如果所述服务运行区域为体验区,则获取体验区的第一应用版本信息以及第一环境版本信息,和稳定区的第二应用版本信息以及第二环境版本信息;根据第一应用版本信息、第一环境版本信息、第二应用版本信息、第二环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态;如果所述服务运行区域为稳定区,则获取稳定区的应用版本信息以及环境版本信息;根据所述应用版本信息、所述环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态。
可选的,所述获取所述服务器上当前在线的应用版本信息以及环境版本信息,包括:使用所述特定服务的标识和所述运行环境的标识作为专有接口的输入参数信息,获取所述应用的应用版本信息以及所述应用的运行环境的环境版本信息。
可选的,所述根据所述合入状态进行代码处理,包括:如果所述合入状态为正确合入的状态,则触发针对所述主线代码的编译或部署操作;否则,阻断针对所述主线代码的编译或部署操作。
可选的,所述根据所述合入状态进行代码处理,包括:如果每个待检查分支代码的合入状态为已正确合入状态,则确定针对所述主线代码进行持续集成的工作管道的状态为检查正常状态;否则,确定所述工作管道的状态为检查异常状态;如果所述工作管道的状态为检查正常状态,则触发针对所述主线代码的编译或部署操作;否则,阻断针对所述主线代码的编译或部署操作。
可选的,所述将当前服务的远程代码拉取到特定目录,包括:检测到显示界面检查代码合并的控件被触发;获取所述触发对应的检查项输入信息;根据所述检查项输入信息拉取待检查分支代码。
可选的,所述根据所述检查项输入信息拉取待检查分支代码,包括:如果所述检查项输入信息指示需要检查的分支信息对应开发分支、独立分支以及临时分支中的至少一个分支,则拉取所述至少一个分支的代码,作为所述待检查分支代码;如果所述检查项输入信息包含有指示公共仓库分支的信息,则确定存储有所述待检查分支代码的公共仓库,拉取所述公共仓库中对应的分支代码,作为所述待检查分支代码。
可选的,所述根据所述检查项输入信息拉取待检查分支代码,包括:提取至预设时间为止针对需要检查的分支提交代码修改后的代码,作为所述待检查分支代码;提取至所述预设时间为止针对所述主线分支提交代码修改后的代码,作为所述主线代码。
可选的,所述针对所述待检查分支代码和所述主线代码进行比对,包括:获得用于检查所述待检查分支代码是否已正确合入到主线代码的指令;所述指令包含Git命令,用于在针对所述主线代码进行编译之前被执行,以确定所述待检查分支代码的合入状态。
可选的,还包括:在针对所述主线代码进行编译之前,执行下述步骤确定所述合入状态:针对所述待检查分支代码和所述主线代码进行比对,得到已合入所述主线分支的已合入分支信息;根据所述已合入分支信息确定所述待检查分支代码的合入状态。
本申请实施例还提供一种代码检查装置,包括:远程代码拉取单元,用于将当前服务的远程代码拉取到特定目录;所述远程代码包括已合入分支代码的主线代码,以及需要检查是否已正确合入到主线代码的待检查分支代码;分支比对单元,用于针对所述待检查分支代码和所述主线代码进行比对;处理单元,用于获取分支比对结果,根据所述分支比对结果进行代码处理。
本申请实施例还提供一种电子设备,包括:存储器,以及处理器;所述存储器用于存储计算机程序,所述计算机程序被所述处理器运行后,执行本申请实施例提供的所述的代码检查方法。
本申请实施例还提供一种存储设备,存储有计算机程序,所述计算机程序被处理器运行后,执行本申请实施例提供的所述的代码检查方法。
与现有技术相比,本申请具有以下优点:
本申请实施例提供的代码检查方法、装置、设备,将当前服务的远程代码拉取到特定目录;所述远程代码包括已合入分支代码的主线代码,以及需要检查是否已正确合入到主线代码的待检查分支代码;针对所述待检查分支代码和所述主线代码进行比对;获取分支比对结果,根据所述分支比对结果进行代码处理。能够比对应合入主线分支的待检查分支代码是否正确合入了主线代码,使用代码层面的自动化检查替代人工黑盒检查,降低对人工能力与经验的依赖程度,避免人工疏漏引发的代码缺失,提高测试质量。进一步,在将所述主线代码编译为可部署应用之前进行上述代码合并检查,能够保证每次迭代后上线的代码是正确合并的。避免了代码上线前合并可能引入的代码缺失,解决了代码合并错误导致的缺陷泄露问题。
附图说明
图1是本申请第一实施例提供的代码检查方法的处理流程图;
图2是本申请第一实施例提供的一种代码检查流程图;
图3是本申请第二实施例提供的代码检查装置示意图;
图4是本申请提供的电子设备示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请实施例提供一种代码检查方法、装置、电子设备及存储设备。在下面的实施例中逐一进行详细说明。为便于理解,首先给出一种代码检查方法的相关概念及分析。软件的多分支开发中,代码合并是代码上线前的重要环节。所谓多分支是软件开发中的版本控制形式,其中,主线分支是稳定的代码版本,一般为代码库初始化时的默认创建的分支。主线分支的名称可以是master,也可以是其他指定名称。在代码库上可以创建多个支线,将代码开发工作从主线上分离,分离后进行的代码修改不影响主线分支,各分支之间互不影响。例如创建开发分支、卡片独立分支、临时分支等。所谓代码合并是指将不同分支的代码进行合并。例如,将支线开发更新或修改的代码合入主线分支代码(下称主线代码)中,基于合入后的主线代码编译生成提供特定服务的应用包,将应用包部署到服务器上提供特定服务,例如,对外提供web服务。实际应用中,代码正式发布前的上线环境按照上线代码版本的稳定程度分为体验区上线和稳定区上线。所谓体验区上线,是指代码在仿真环境上线并进行调试。这又可以分迭代上线和临时上线。迭代上线分支包括develop(开发分支)、卡片独立分支和已上线临时分支。开发分支、卡片独立分支的每个迭代可能不同,因此,需要保证在版本封版前的最新提交的迭代代码合入到待上线的主线分支中。对于已上线临时分支,需要保证线上运行的应用的版本被合入到待上线的主线分支代码中。所谓稳定区上线,是指将调试后的代码在生产环境上线并测试。又可以分为体验区推包和临时上线。体验区推包是指在体验区经过测试的应用包推送到稳定区上线。对应临时上线的分支,需要保证线上运行的应用的版本被合入到待上线的主线分支代码中。因此,针对待上线的主线分支中是否已合入相应的分支代码的检查点为:在基于待上线的主线分支迭代上线确认包时,对主线分支代码合并情况检查,具体的,在编译前对合入了新代码的待上线主线代码进行检查,保证分支代码未漏合,待上线代码不缺失。
以下结合图1和图2对本申请第一实施例提供的代码检查方法进行说明。
图1所示的代码检查方法,包括:步骤S101至步骤S103。
步骤S101,将当前服务的远程代码拉取到特定目录;所述远程代码包括已合入分支代码的主线代码,以及需要检查是否已正确合入到主线代码的待检查分支代码。
所谓正确合入,是代码合并的正确性,具体为:应合入主线分支的待检查分支已合入,未出现漏合的情况。检查点为在针对主线代码上线编译之前检查所述待检查分支合入的正确性。一个实施场景为:使用Jenkins工具对软件代码进行持续集成,并使用Git版本控制工具管理软件代码的多分支开发。在持续集成过程中,在对待上线主线版本进行build(编译)之前,通过在Jenkins pipeline(Jenkins工作流管道)加入的代码合并检查指令对待检查分支合入的正确性进行检查。所述代码合并检查指令,可以为使用脚本语言编写的测试脚本,例如具体为使用python编写的自动化测试脚本。所述检查指令中包括使用Git命令验证代码合并的正确性。从而保证每次上线的代码是完整合入的,不存在缺失情况。具体的,在针对所述主线代码进行编译之前,执行下述步骤确定所述合入状态:针对所述待检查分支代码和所述主线代码进行比对,得到已合入所述主线分支的已合入分支信息;根据所述已合入分支信息确定所述待检查分支代码的合入状态。一个实施方式中,提供代码检查界面,通过代码检查界面接收指定的待检查分支代码的分支信息,根据所述分支信息拉取远程代码。具体包括下述处理:检测到显示界面检查代码合并的控件被触发;获取所述触发对应的检查项输入信息;根据所述检查项输入信息拉取待检查分支代码。例如,提供代码合并检查的参数选项;根据所述参数选项拉取需要检查的待检查分支代码以及主线代码;使用Git命令比对所述参数选项指示的待检查分支是否已合入主线分支;根据比对结果判断合入状态是否为正确合入;将合入状态提供给Jenkins,Jenkins工作流管道根据合入状态确定继续后续的编译或部署步骤,还是阻断后续的编译或部署步骤。进一步,如果所述检查项输入信息指示需要检查的分支信息对应开发分支、独立分支以及临时分支中的至少一个分支,则拉取所述至少一个分支的代码,作为所述待检查分支代码;如果所述检查项输入信息包含有指示公共仓库分支的信息,则确定存储有所述待检查分支代码的公共仓库,拉取所述公共仓库中对应的分支代码,作为所述待检查分支代码。具体的,提取至预设时间为止针对需要检查的分支提交代码修改后的代码,作为所述待检查分支代码;提取至所述预设时间为止针对所述主线分支提交代码修改后的代码,作为所述主线代码。
本实施例中,在执行分支比对之前,还包括:获得用于检查所述待检查分支代码是否已正确合入到主线代码的指令;所述指令包含Git命令,用于在针对所述主线代码进行编译之前被执行,以确定所述待检查分支代码的合入状态。所述指令即为代码合并检查指令。本实施例中,根据指定参数确定需要检查是否已合入主线分支的待检查分支。具体的,通过显示页面提供参数选项。例如,提供MergeCheck、CheckBranch控件,MergeCheck为选择控件,勾选后则CheckBranch控件生效,CheckBranch控件为参数输入控件,用于输入待检查分支的名称或标识。本实施例中支持针对多分支合并正确性进行检查,CheckBranch控件可以接收多个值以英文逗号间隔输入。例如,输入develop、卡片独立分支,或者,输入commons-${branchName}检查公共代码改动后是否合入主线分支。通过选择控件可以灵活控制是否启用代码合并检查功能。例如,日常测试或临时上线不需要对主线分支的完整性检查,则不用勾选该选择控件。当需要检查特定分支是否合入了主线分支,则勾选该选择控件,并在代码合并检查功能生效后,输入需要检查的特定分支信息。本实施例中包括:检测到显示界面检查代码合并的控件被触发;获取所述触发对应的检查项输入信息;根据所述检查项输入信息确定所述待检查分支的信息;根据所述待检查分支的信息提取所述分支代码。具体可以提取至预设时间为止针对所述待检查分支提交代码修改后的代码,作为所述分支代码。例如,提取最新代码进行检查。其中,所谓提取所述分支代码,是指从代码库中checkout(检出)分支代码。实际应用中,提供特定服务的代码一般为远程代码,因此在比对分支前通过Jenkins拉取远程代码到临时目录,以便进行分支比对。比对前可以使用git pull命令提取代码,以获取最新代码。本实施例中,由于在后续步骤中针对公共分支的检查与其他分支的处理不同,因此包括下述处理:如果所述检查项输入信息包含有指示公共仓库分支的信息,则确定所述待检查分支为公共仓库分支。例如,如果检查项输入信息包含“commons-”字段,则识别为公共仓库分支。如果所述待检查分支代码为公共仓库的分支代码,则确定存储有所述待检查分支代码的公共仓库,拉取所述公共仓库对应的分支代码,作为所述待检查分支代码。
本实施例中,可以提取至预设时间为止针对需要检查的分支提交代码修改后的代码,作为所述待检查分支代码;相应的,可以提取至所述预设时间为止针对所述主线分支提交代码修改后的代码,作为所述主线代码。例如,通过Jenkins拉取远程代码到临时目录后,先提取待检查分支最新代码后,再使用git pull命令提取最新主线代码。后续步骤中比对待检查分支与主线分支。
步骤S102,针对所述待检查分支代码和所述主线代码进行比对。
本步骤为进行分支比对,具体通过Git命令获取已合入所述主线代码的已合入分支信息,根据所述已合入分支信息确定所述待检查分支代码的合入状态;进一步,根据所述合入状态进行代码处理。例如可以使用下述Git命令比对:git branch--merged master。本实施例中,针对开发分支(develop)、卡片独立分支以及临时分支执行上述命令进行主线分支的比对。针对公共分支,即名称格式匹配commons-${branchName}的分支,则需要先拉取公共仓库代码,再执行上述Git命令进行比对。使用Git命令比对待检查分支与主线分支后产生的比对结果包含已合入主线分支的已合入分支信息,具体包含合入主线分支的分支名。后续根据已合入分支信息判断待检查分支代码的合入状态。
本实施例中,通过下述处理确定所述待检查分支的合入状态:如果判断所述已合入分支信息中包含与所述待检查分支代码的分支信息匹配的信息,则确定所述合入状态为已正确合入状态;否则,确定所述合入状态为未正确合入状态。具体的,获得所述已合入分支信息中包含的分支标识,如果所述分支标识与所述待检查分支代码的分支标识一致,则确定所述合入状态为已正确合入状态。如果所述待检查分支为单个分支,则当所述已合入分支信息出现了所述待检查分支的分支名,则为已正确合入状态。如果所述待检查分支包含多个分支,则每个分支的检查结果为已正确合入,则判断为已正确合入状态。本实施例中,还包括针对当前线上的特定服务对应的代码,检查是否已合入主线代码中。可以使用git log命令获得提交日志,由于提交日志是连续的,因此只需要判断最新提交包含在主线分支的提交日志中,则确认待检查分支代码已合入了主线代码。具体包括下述处理:获取所述服务器上当前在线的应用版本信息以及环境版本信息;所述应用版本信息为当前提供特定服务的应用的版本信息,所述环境版本信息为所述应用的运行环境的版本信息;根据所述应用版本信息、所述环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态。其中,根据所述应用版本信息以及所述环境版本信息,获取与所述应用及所述应用的运行环境对应的代码;获取与所述应用及所述应用的运行环境对应的代码的第一提交日志,获取所述主线代码的第二提交日志;根据所述第一提交日志以及第二提交日志,确定与所述应用及所述应用的运行环境对应的代码是否已合入所述主线代码;如果与所述应用及所述应用的运行环境对应的代码已合入所述主线代码,并且所述已合入分支信息中包含与所述待检查分支的分支信息匹配的信息,则确定所述合入状态为已正确合入状态;否则,确定所述合入状态为未正确合入状态。
本实施例中,体验区上线时的代码合并检查为了能覆盖稳定区临时上线后合入master体验区上线的情况,需要同时获取体验区版本信息和稳定区版本进行比对,例如比对版本号(tag)。而对于稳定区上线时,比对稳定区最新版本信息。由于每次迭代的最新tag应该包含在当前上线代码中,因此针对体验区上线与稳定区上线每次执行此版本号检查。进一步,还包括:获得所述主线代码部署或编译后部署的服务运行区域;所述服务运行区域为根据特定服务运行环境的影响广度确定的区域;根据所述服务运行区域确定需要获取的应用版本信息以及环境版本信息。具体的,如果所述服务运行区域为体验区,则获取体验区的第一应用版本信息以及第一环境版本信息,和稳定区的第二应用版本信息以及第二环境版本信息;根据第一应用版本信息、第一环境版本信息、第二应用版本信息、第二环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态;如果所述服务运行区域为稳定区,则获取稳定区的应用版本信息以及环境版本信息;根据所述应用版本信息、所述环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态。
本实施例中,使用所述特定服务的标识和所述运行环境的标识作为专有接口的输入参数信息,获取所述应用的应用版本信息以及所述应用的运行环境的环境版本信息。所谓专有接口可以为RESTful接口。所谓RESTful接口是一种基于HTTP,可以使用XML格式定义或JSON格式定义的网络业务使能接口。所谓输入参数信息具体为服务名和运行环境名。
步骤S103,获取分支比对结果,根据所述分支比对结果进行代码处理。
本实施例中,根据所述合入状态进行代码处理,具体的,如果所述合入状态为正确合入的状态,则触发针对所述主线代码的编译或部署操作;否则,阻断针对所述主线代码的编译或部署操作。当需要检查的分支包含多个代码分支时,如果每个待检查分支代码的合入状态为已正确合入状态,则确定针对所述主线代码进行持续集成的工作管道的状态为检查正常状态;否则,确定所述工作管道的状态为检查异常状态;如果所述工作管道的状态为检查正常状态,则触发针对所述主线代码的编译或部署操作;否则,阻断针对所述主线代码的编译或部署操作。举例如下,进行代码合并检查的脚本为python脚本语言编写的测试脚本,因此如果合入状态为未正确合入状态,则可以采用eval("check failed")抛出错误,Jenkins工作流管道标记Job(工作)失败,从而阻断工作流管道的后续步骤。如果合入状态为已正确合入状态,则print("check success"),不影响Job状态,继续执行工作流管道的后续步骤。请参考图2,图中所示的代码检查流程包括:S201,提供参数选项用于指定待检查分支。待检查分支可以包含多个分支。S202,Jenkins拉取待上线代码后,在编译之前插入检查点。S203,拉取代码合并检查脚本,执行python脚本。S204,遍历每个待检查分支。S205,判断是否公共仓库。如果是,执行S207,否则,转入S206。S206,直接比对待检查分支和主线分支。S207,拉取公共仓库的分支代码。S208,比对待检查分支和主线分支。S209,收集比对结果。S210,针对比对结果进行断言。S211,断言所述比对结果中是否发现错误?如果是,转入S212,否则,转入S213。S212,代码合并检查失败,job fail。S213,代码检查结果为合并成功,继续编译。S214,同步合入状态检查至Jenkins。由Jenkins根据断言阻断后续步骤(如果job fail),或者继续编译(如果检查结果为合并成功)。
至此,对本实施例提供的代码检查方法进行了详细说明,所述方法通过针对待检查分支代码和主线代码进行比对,根据比对结果进行代码处理。能够比对应合入主线分支的待检查分支的代码是否正确合入了主线分支,使用代码层面的自动化检查替代人工黑盒检查,降低对人工能力与经验的依赖程度,避免人工疏漏引发的代码缺失,提高测试质量。进一步,在将所述主线代码编译为可部署应用之前进行上述代码合并检查,能够保证每次迭代后上线的代码是正确合并的。避免了代码上线前合并可能引入的代码缺失,解决了代码合并错误导致的缺陷泄露问题。
以上述实施例为基础,本申请第二实施例提供一种代码检查装置。以下结合图3对第二实施例提供的装置进行说明,相关部分请参见上述实施例对应部分的说明。图3所示的代码检查装置,包括:
远程代码拉取单元301,用于将当前服务的远程代码拉取到特定目录;所述远程代码包括已合入分支代码的主线代码,以及需要检查是否已正确合入到主线代码的待检查分支代码;
分支比对单元302,用于针对所述待检查分支代码和所述主线代码进行比对;
处理单元303,用于获取分支比对结果,根据所述分支比对结果进行代码处理。
可选的,所述分支比对单元302具体用于:通过Git命令获取已合入所述主线代码的已合入分支信息,根据所述已合入分支信息确定所述待检查分支代码的合入状态;所述处理单元303具体用于:根据所述合入状态进行代码处理。
可选的,所述分支比对单元302具体用于:如果判断所述已合入分支信息中包含与所述待检查分支代码的分支信息匹配的信息,则确定所述合入状态为已正确合入状态;否则,确定所述合入状态为未正确合入状态。
可选的,所述分支比对单元302具体用于:获得所述已合入分支信息中包含的分支标识,如果所述分支标识与所述待检查分支代码的分支标识一致,则确定所述合入状态为已正确合入状态。
可选的,所述分支比对单元302具体用于:获取所述服务器上当前在线的应用版本信息以及环境版本信息;所述应用版本信息为当前提供特定服务的应用的版本信息,所述环境版本信息为所述应用的运行环境的版本信息;根据所述应用版本信息、所述环境版本信息以及所述已合入分支信息确定所述待检查分支的合入状态。
可选的,所述分支比对单元302具体用于:根据所述应用版本信息以及所述环境版本信息,获取与所述应用及所述应用的运行环境对应的代码;获取与所述应用及所述应用的运行环境对应的代码的第一提交日志,获取所述主线代码的第二提交日志;根据所述第一提交日志以及第二提交日志,确定与所述应用及所述应用的运行环境对应的代码是否已合入所述主线代码;如果与所述应用及所述应用的运行环境对应的代码已合入所述主线代码,并且所述已合入分支信息中包含与所述待检查分支代码的分支信息匹配的信息,则确定所述合入状态为已正确合入状态;否则,确定所述合入状态为未正确合入状态。
可选的,所述分支比对单元302具体用于:获得所述主线代码部署或编译后部署的服务运行区域;所述服务运行区域为根据特定服务运行环境的影响广度确定的区域;根据所述服务运行区域确定需要获取的应用版本信息以及环境版本信息。
可选的,所述分支比对单元302具体用于:如果所述服务运行区域为体验区,则获取体验区的第一应用版本信息以及第一环境版本信息,和稳定区的第二应用版本信息以及第二环境版本信息;根据第一应用版本信息、第一环境版本信息、第二应用版本信息、第二环境版本信息以及所述已合入分支信息确定所述待检查分支的合入状态;如果所述服务运行区域为稳定区,则获取稳定区的应用版本信息以及环境版本信息;根据所述应用版本信息、所述环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态。
可选的,所述分支比对单元302具体用于:使用所述特定服务的标识和所述运行环境的标识作为专有接口的输入参数信息,获取所述应用的应用版本信息以及所述应用的运行环境的环境版本信息。
可选的,所述处理单元303具体用于:如果所述合入状态为正确合入的状态,则触发针对所述主线代码的编译或部署操作;否则,阻断针对所述主线代码的编译或部署操作。
可选的,所述处理单元303具体用于:如果每个待检查分支代码的合入状态为已正确合入状态,则确定针对所述主线代码进行持续集成的工作管道的状态为检查正常状态;否则,确定所述工作管道的状态为检查异常状态;如果所述工作管道的状态为检查正常状态,则触发针对所述主线代码的编译或部署操作;否则,阻断针对所述主线代码的编译或部署操作。
可选的,所述远程代码拉取单元301具体用于:检测到显示界面检查代码合并的控件被触发;获取所述触发对应的检查项输入信息;根据所述检查项输入信息拉取所述待检查分支代码。
可选的,所述远程代码拉取单元301具体用于:如果所述检查项输入信息指示需要检查的分支信息对应开发分支、独立分支以及临时分支中的至少一个分支,则拉取所述至少一个分支的代码,作为所述待检查分支代码;如果所述检查项输入信息包含有指示公共仓库分支的信息,则确定存储有所述待检查分支代码的公共仓库,拉取所述公共仓库中对应的分支代码,作为所述待检查分支代码。
可选的,所述远程代码拉取单元301具体用于:提取至预设时间为止针对需要检查的分支提交代码修改后的代码,作为所述待检查分支代码;提取至所述预设时间为止针对所述主线分支提交代码修改后的代码,作为所述主线代码。
可选的,所述分支比对单元302具体用于:获得用于检查所述待检查分支代码是否已正确合入到主线代码的指令;所述指令包含Git命令,用于在针对所述主线代码进行编译之前被执行,以确定所述待检查分支代码的合入状态。
可选的,所述分支比对单元302还用于:在针对所述主线代码进行编译之前,执行下述步骤确定所述合入状态:针对所述待检查分支代码和所述主线代码进行比对,得到已合入所述主线分支的已合入分支信息;根据所述已合入分支信息确定所述待检查分支代码的合入状态。
至此,对本实施例提供的代码检查装置进行了说明,所述装置通过针对待检查分支代码和主线代码进行比对,根据比对结果进行代码处理。能够比对应合入主线分支的待检查分支的代码是否正确合入了主线分支,使用代码层面的自动化检查替代人工黑盒检查,降低对人工能力与经验的依赖程度,避免人工疏漏引发的代码缺失,提高测试质量。进一步,在将所述主线代码编译为可部署应用之前进行上述代码合并检查,能够保证每次迭代后上线的代码是正确合并的。避免了代码上线前合并可能引入的代码缺失,解决了代码合并错误导致的缺陷泄露问题。
与第一实施例相对应,本申请第三实施例提供一种电子设备。图4为所述电子设备的示意图,所述电子设备,包括:存储器401,以及处理器402;所述存储器用于存储计算机程序,所述计算机程序被所述处理器运行后,执行本申请实施例提供的所述代码检查方法。
至此,对本实施例提供的电子设备进行了说明,所述电子设备执行指令,通过针对待检查分支代码和主线代码进行比对,根据比对结果进行代码处理。能够比对应合入主线分支的待检查分支的代码是否正确合入了主线分支,使用代码层面的自动化检查替代人工黑盒检查,降低对人工能力与经验的依赖程度,避免人工疏漏引发的代码缺失,提高测试质量。进一步,在将所述主线代码编译为可部署应用之前进行上述代码合并检查,能够保证每次迭代后上线的代码是正确合并的。避免了代码上线前合并可能引入的代码缺失,解决了代码合并错误导致的缺陷泄露问题。
与第一实施例对应,本申请第四实施例提供一种存储设备,相关的部分请参见上述实施例的对应说明即可。所述存储设备的示意图类似图4。所述存储设备存储有计算机程序,所述计算机程序被处理器运行后,执行本申请实施例提供的所述代码检查方法。
至此,对本实施例提供的存储设备进行了说明,所述设备存储有指令,所述指令被执行,通过针对待检查分支代码和主线代码进行比对,根据比对结果进行代码处理。能够比对应合入主线分支的待检查分支的代码是否正确合入了主线分支,使用代码层面的自动化检查替代人工黑盒检查,降低对人工能力与经验的依赖程度,避免人工疏漏引发的代码缺失,提高测试质量。进一步,在将所述主线代码编译为可部署应用之前进行上述代码合并检查,能够保证每次迭代后上线的代码是正确合并的。避免了代码上线前合并可能引入的代码缺失,解决了代码合并错误导致的缺陷泄露问题。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

Claims (17)

1.一种代码检查方法,其特征在于,包括:
将当前服务的远程代码拉取到特定目录;所述远程代码包括已合入分支代码的主线代码,以及需要检查是否已正确合入到主线代码的待检查分支代码;
针对所述待检查分支代码和所述主线代码进行比对;
获取分支比对结果,根据所述分支比对结果进行代码处理;
其中,所述针对所述待检查分支代码和所述主线代码进行比对,包括:
获取服务器上当前在线的应用版本信息以及环境版本信息;所述应用版本信息为当前提供特定服务的应用的版本信息,所述环境版本信息为所述应用的运行环境的版本信息;
根据所述应用版本信息、所述环境版本信息以及所述主线代码的已合入分支信息确定所述待检查分支代码的合入状态;
其中,所述获取服务器上当前在线的应用版本信息以及环境版本信息,包括:获得所述主线代码部署或编译后部署的服务运行区域;所述服务运行区域为根据特定服务运行环境的影响广度确定的区域;根据所述服务运行区域确定需要获取的应用版本信息以及环境版本信息。
2.根据权利要求1所述的方法,其特征在于,还包括:
通过Git命令获取已合入所述主线代码的已合入分支信息,所述已合入分支信息用于确定所述待检查分支代码的合入状态;
所述获取分支比对结果,根据所述分支比对结果进行代码处理,包括:
根据所述合入状态进行代码处理。
3.根据权利要求1所述的方法,其特征在于,所述根据所述应用版本信息、所述环境版本信息以及所述主线代码的已合入分支信息确定所述待检查分支代码的合入状态,包括:
如果判断所述已合入分支信息中包含与所述待检查分支代码的分支信息匹配的信息,则确定所述合入状态为已正确合入状态;否则,确定所述合入状态为未正确合入状态。
4.根据权利要求3所述的方法,其特征在于,所述如果判断所述已合入分支信息中包含与所述待检查分支代码的分支信息匹配的信息,则确定所述合入状态为已正确合入状态,包括:
获得所述已合入分支信息中包含的分支标识,如果所述分支标识与所述待检查分支代码的分支标识一致,则确定所述合入状态为已正确合入状态。
5.根据权利要求1所述的方法,其特征在于,所述根据所述应用版本信息、所述环境版本信息以及所述主线代码的已合入分支信息确定所述待检查分支代码的合入状态,包括:
根据所述应用版本信息以及所述环境版本信息,获取与所述应用及所述应用的运行环境对应的代码;
获取与所述应用及所述应用的运行环境对应的代码的第一提交日志,获取所述主线代码的第二提交日志;
根据所述第一提交日志以及第二提交日志,确定与所述应用及所述应用的运行环境对应的代码是否已合入所述主线代码;
如果与所述应用及所述应用的运行环境对应的代码已合入所述主线代码,并且所述已合入分支信息中包含与所述待检查分支代码的分支信息匹配的信息,则确定所述合入状态为已正确合入状态;否则,确定所述合入状态为未正确合入状态。
6.根据权利要求1所述的方法,其特征在于,还包括:
如果所述服务运行区域为体验区,则获取体验区的第一应用版本信息以及第一环境版本信息,和稳定区的第二应用版本信息以及第二环境版本信息;根据第一应用版本信息、第一环境版本信息、第二应用版本信息、第二环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态;
如果所述服务运行区域为稳定区,则获取稳定区的应用版本信息以及环境版本信息;根据所述应用版本信息、所述环境版本信息以及所述已合入分支信息确定所述待检查分支代码的合入状态。
7.根据权利要求1所述的方法,其特征在于,所述获取服务器上当前在线的应用版本信息以及环境版本信息,包括:
使用所述特定服务的标识和所述运行环境的标识作为专有接口的输入参数信息,获取所述应用的应用版本信息以及所述应用的运行环境的环境版本信息。
8.根据权利要求2所述的方法,其特征在于,所述根据所述合入状态进行代码处理,包括:
如果所述合入状态为正确合入的状态,则触发针对所述主线代码的编译或部署操作;否则,阻断针对所述主线代码的编译或部署操作。
9.根据权利要求2所述的方法,其特征在于,所述根据所述合入状态进行代码处理,包括:如果每个待检查分支代码的合入状态为已正确合入状态,则确定针对所述主线代码进行持续集成的工作管道的状态为检查正常状态;否则,确定所述工作管道的状态为检查异常状态;
如果所述工作管道的状态为检查正常状态,则触发针对所述主线代码的编译或部署操作;否则,阻断针对所述主线代码的编译或部署操作。
10.根据权利要求1所述的方法,其特征在于,所述将当前服务的远程代码拉取到特定目录,包括:
检测到显示界面检查代码合并的控件被触发;
获取所述触发对应的检查项输入信息;
根据所述检查项输入信息拉取待检查分支代码。
11.根据权利要求10所述的方法,其特征在于,所述根据所述检查项输入信息拉取待检查分支代码,包括:
如果所述检查项输入信息指示需要检查的分支信息对应开发分支、独立分支以及临时分支中的至少一个分支,则拉取所述至少一个分支的代码,作为所述待检查分支代码;
如果所述检查项输入信息包含有指示公共仓库分支的信息,则确定存储有所述待检查分支代码的公共仓库,拉取所述公共仓库中对应的分支代码,作为所述待检查分支代码。
12.根据权利要求10所述的方法,其特征在于,所述根据所述检查项输入信息拉取待检查分支代码,包括:
提取至预设时间为止针对需要检查的分支提交代码修改后的代码,作为所述待检查分支代码;
提取至所述预设时间为止针对所述主线分支提交代码修改后的代码,作为所述主线代码。
13.根据权利要求2所述的方法,其特征在于,所述通过Git命令获取已合入所述主线代码的已合入分支信息,包括:
获得用于检查所述待检查分支代码是否已正确合入到主线代码的指令;所述指令包含Git命令,用于在针对所述主线代码进行编译之前被执行,以确定所述待检查分支代码的合入状态。
14.根据权利要求2所述的方法,其特征在于,还包括:
在针对所述主线代码进行编译之前,执行下述步骤确定所述合入状态:
针对所述待检查分支代码和所述主线代码进行比对,得到已合入所述主线分支的已合入分支信息;
根据所述已合入分支信息确定所述待检查分支代码的合入状态。
15.一种代码检查装置,其特征在于,包括:
远程代码拉取单元,用于将当前服务的远程代码拉取到特定目录;所述远程代码包括已合入分支代码的主线代码,以及需要检查是否已正确合入到主线代码的待检查分支代码;
分支比对单元,用于针对所述待检查分支代码和所述主线代码进行比对;其中,所述针对所述待检查分支代码和所述主线代码进行比对,包括:获取服务器上当前在线的应用版本信息以及环境版本信息;所述应用版本信息为当前提供特定服务的应用的版本信息,所述环境版本信息为所述应用的运行环境的版本信息;根据所述应用版本信息、所述环境版本信息以及所述主线代码的已合入分支信息确定所述待检查分支代码的合入状态;其中,所述获取服务器上当前在线的应用版本信息以及环境版本信息,包括:获得所述主线代码部署或编译后部署的服务运行区域;所述服务运行区域为根据特定服务运行环境的影响广度确定的区域;根据所述服务运行区域确定需要获取的应用版本信息以及环境版本信息;
处理单元,用于获取分支比对结果,根据所述分支比对结果进行代码处理。
16.一种电子设备,其特征在于,包括:
存储器,以及处理器;所述存储器用于存储计算机程序,所述计算机程序被所述处理器运行后,执行权利要求1-14任意一项所述的代码检查方法。
17.一种存储设备,其特征在于,存储有计算机程序,所述计算机程序被处理器运行后,执行权利要求1-14任意一项所述的代码检查方法。
CN202010517675.9A 2020-06-09 2020-06-09 一种代码检查方法及装置 Active CN111831554B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010517675.9A CN111831554B (zh) 2020-06-09 2020-06-09 一种代码检查方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010517675.9A CN111831554B (zh) 2020-06-09 2020-06-09 一种代码检查方法及装置

Publications (2)

Publication Number Publication Date
CN111831554A CN111831554A (zh) 2020-10-27
CN111831554B true CN111831554B (zh) 2023-07-04

Family

ID=72898469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010517675.9A Active CN111831554B (zh) 2020-06-09 2020-06-09 一种代码检查方法及装置

Country Status (1)

Country Link
CN (1) CN111831554B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363930A (zh) * 2020-11-10 2021-02-12 平安普惠企业管理有限公司 软件开发测试方法、装置、设备及介质
CN113590182A (zh) * 2021-08-11 2021-11-02 广州九尾信息科技有限公司 一种基于Git的版本风险管理把控方法、系统及存储介质
CN115543394A (zh) * 2022-12-01 2022-12-30 云账户技术(天津)有限公司 App动态更新管理方法、系统、电子设备和可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107656873A (zh) * 2017-10-23 2018-02-02 扬州航盛科技有限公司 基于Linux车载软件的自动化测试系统及测试方法
CN108762803A (zh) * 2018-04-17 2018-11-06 平安科技(深圳)有限公司 一种配置管理方法、装置、终端设备及存储介质
CN109117139A (zh) * 2018-07-05 2019-01-01 珠海市魅族科技有限公司 一种软件构建方法及装置、服务器和可读存储介质
US10430319B1 (en) * 2018-05-04 2019-10-01 Fmr Llc Systems and methods for automatic software testing
CN110413309A (zh) * 2019-08-02 2019-11-05 浪潮云信息技术有限公司 一种基于gitlab的项目代码分支管理方法及系统
CN110750252A (zh) * 2019-09-30 2020-02-04 上海紫金信息技术有限公司 一种软件开发控制方法、软件开发设备及存储介质
CN110865806A (zh) * 2019-11-20 2020-03-06 腾讯科技(深圳)有限公司 代码处理方法、装置、服务器及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2950842C (en) * 2015-12-14 2022-10-04 Apartsw Consulting Inc. Continuous integration software development platform and system, and implementation method therefor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107656873A (zh) * 2017-10-23 2018-02-02 扬州航盛科技有限公司 基于Linux车载软件的自动化测试系统及测试方法
CN108762803A (zh) * 2018-04-17 2018-11-06 平安科技(深圳)有限公司 一种配置管理方法、装置、终端设备及存储介质
US10430319B1 (en) * 2018-05-04 2019-10-01 Fmr Llc Systems and methods for automatic software testing
CN109117139A (zh) * 2018-07-05 2019-01-01 珠海市魅族科技有限公司 一种软件构建方法及装置、服务器和可读存储介质
CN110413309A (zh) * 2019-08-02 2019-11-05 浪潮云信息技术有限公司 一种基于gitlab的项目代码分支管理方法及系统
CN110750252A (zh) * 2019-09-30 2020-02-04 上海紫金信息技术有限公司 一种软件开发控制方法、软件开发设备及存储介质
CN110865806A (zh) * 2019-11-20 2020-03-06 腾讯科技(深圳)有限公司 代码处理方法、装置、服务器及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DevOps之持续集成实践之路;商永巧;《通讯世界》;266-267 *

Also Published As

Publication number Publication date
CN111831554A (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
CN111831554B (zh) 一种代码检查方法及装置
Tomassi et al. Bugswarm: Mining and continuously growing a dataset of reproducible failures and fixes
EP3769223B1 (en) Unified test automation system
EP3557423B1 (en) System and method for testing electronic visual user interface outputs
US6986125B2 (en) Method and apparatus for testing and evaluating a software component using an abstraction matrix
US10509693B2 (en) Method for identifying a cause for a failure of a test
US9032371B2 (en) Method and apparatus for automatic diagnosis of software failures
US20170090883A1 (en) Methods and systems for uploading a program based on a target network platform
US10067858B2 (en) Cloud-based software testing
US9292416B2 (en) Software development kit testing
US9684587B2 (en) Test creation with execution
US9256417B2 (en) Automatic quality assurance for software installers
US9069902B2 (en) Software test automation
CN109902005B (zh) 一种自动化测试的方法和系统
US9959199B2 (en) Diagnosis of test failures in software programs
CN109840194B (zh) 一种配置文件的检测方法及系统
CN110851351A (zh) 部署环境测试方法、装置、计算机设备及存储介质
US20030088810A1 (en) Methods and apparatus for determining software component sizes associated with errors
US9317254B1 (en) Fault tolerance model, methods, and apparatuses and their validation techniques
CN106681783A (zh) 一种svn代码检测方法及其系统
CN113742215B (zh) 一种自动配置和调用测试工具进行测试分析的方法及系统
US10387294B2 (en) Altering a test
US20230131643A1 (en) System and method for reference-aware application identification in container deployment environments
US9292422B2 (en) Scheduled software item testing
Quan et al. Towards understanding the faults of javascript-based deep learning systems

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