CN118057335A - 业务代码的管理方法、装置、服务器及存储介质 - Google Patents
业务代码的管理方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN118057335A CN118057335A CN202211457565.3A CN202211457565A CN118057335A CN 118057335 A CN118057335 A CN 118057335A CN 202211457565 A CN202211457565 A CN 202211457565A CN 118057335 A CN118057335 A CN 118057335A
- Authority
- CN
- China
- Prior art keywords
- service code
- target service
- test result
- preset
- code
- 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
Links
- 238000007726 management method Methods 0.000 title abstract description 23
- 238000012360 testing method Methods 0.000 claims abstract description 221
- 238000000034 method Methods 0.000 claims abstract description 67
- 230000006870 function Effects 0.000 claims description 45
- 238000013522 software testing Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000010348 incorporation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种业务代码的管理方法、装置、服务器及存储介质,涉及软件测试技术领域。该方法应用于第一服务器,包括:获取电子设备上传的目标业务代码以及针对所述目标业务代码的测试结果;若所述测试结果以及所述目标业务代码满足预设入库条件,将所述目标业务代码合并入业务代码库。如此,将符合预设入库条件的目标业务代码合并入业务代码库,即以统一的入库标准来衡量所有的业务代码,可以更好地维护业务代码库中的代码质量,同时,也方便后续对业务代码库中的业务代码进行维护、测试以及迭代更新。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种业务代码的管理方法、装置、服务器及存储介质。
背景技术
软件测试是一种实际输出与预期输出之间的审核或者比较过程。
在相关技术中,由测试人员使用自定义的测试用例下对业务代码进行测试,以衡量业务代码是否能满足业务需求;然后,再由测试人员对测试结果进行分析评判,将自认为符合评判要求的业务代码上传至业务代码库。如此,会耗费大量的人力资源,并且,由于测试人员的评判要求存在一定的主观性,会导致上传的业务代码仍存在一定的质量问题。
发明内容
本申请提出了一种业务代码的管理方法、装置、服务器及存储介质,以维护业务代码库中业务代码的代码质量。
第一方面,本申请实施例提供了一种业务代码的管理方法,应用于第一服务器,所述方法包括:获取电子设备上传的目标业务代码以及针对所述目标业务代码的测试结果;若所述测试结果以及所述目标业务代码满足预设入库条件,将所述目标业务代码合并入业务代码库。
第二方面,本申请实施例提供了一种业务代码的管理装置,应用于第一服务器,所述装置包括:测试结果获取模块和代码合入模块。测试结果获取模块,用于获取电子设备上传的目标业务代码以及针对所述目标业务代码的测试结果;代码合入模块,用于若所述测试结果以及所述目标业务代码满足预设入库条件,将所述目标业务代码合并入业务代码库。
第三方面,本申请实施例提供了一种服务器,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述的方法。
本申请提供的方案中,第一服务器获取电子设备上传的目标业务代码以及针对目标业务代码的测试结果;若测试结果以及所述目标业务代码满足预设入库条件,将目标业务代码合并入业务代码库。如此,将符合预设入库条件的目标业务代码合并入业务代码库,即以统一的入库标准来衡量所有的业务代码,可以更好地维护业务代码库中的代码质量,同时,也方便后续对业务代码库中的业务代码进行维护、测试以及迭代更新。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提供的业务代码的管理系统的架构示意图。
图2示出了本申请一实施例提供的业务代码的管理方法的流程示意图。
图3示出了本申请另一实施例提供的业务代码的管理方法的流程示意图。
图4示出了本申请实施例提供的目标业务代码的测试流程示意图。
图5示出了本申请又一实施例提供的业务代码的管理方法的流程示意图。
图6示出了图5中步骤S420在一种实施方式中的子步骤的流程示意图。
图7示出了本申请再一实施例提供的业务代码的管理方法的流程示意图。
图8是根据本申请一实施例提供的一种业务代码的管理装置的框图。
图9是本申请实施例的用于执行根据本申请实施例的业务代码的管理方法的服务器的框图。
图10是本申请实施例的用于保存或者携带实现根据本申请实施例的业务代码的管理方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如S210、S220等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。以及,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或子模块的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或子模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或子模块。
发明人提出一种业务代码的管理方法、装置、服务器及存储介质,若确定针对目标业务代码的测试结果以及目标业务代码满足预设入库条件,将目标业务代码合并入业务代码库。下面对该内容进行详细描述。
请参照图1,图1为本申请一实施例提供的一种业务代码的管理系统的的架构示意图,业务代理的管理方法应用与该系统,下面将结合图1对本申请实施例提供的业务代码的管理方法进行详细阐述。
在本实施例中,业务代码的管理系统10可以包括电子设备101、第一服务器102以及第二服务器103。其中,电子设备101包括但不限于笔记本电脑、台式电脑、智能手机以及平板电脑等设备,第一服务器102以及第二服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本实施例对此不作限制。
在一些实施方式中,第一服务器102可以是Jenkins服务器,第二服务器103可以是Git服务器,业务代码库可以部署于Git服务器中。基于此,测试人员可以在电子设备101上对目标业务代码进行测试,电子设备101在测试完成后,可以自动将目标业务代码以及针对该目标业务代码的测试结果上传至第一服务器102。对应地,第一服务器102获取电子设备上传的目标业务代码以及针对目标业务代码的测试结果,若确定测试结果以及目标业务代码满足预设入库条件,将目标业务代码合并入业务代码库,即将目标业务代码合并入第二服务器103中。
在另一些实施方式中,业务代码的管理系统10还可以仅包括有电子设备101和第一服务器102,此时,业务代码库可以直接部署于第一服务器102中。基于此,第一服务器102获取电子设备上传的目标业务代码以及针对目标业务代码的测试结果,若确定测试结果以及目标业务代码满足预设入库条件,将目标业务代码合并入自身的业务代码库中。
请参照图2,图2为本申请一实施例提供的一种业务代码的管理方法的流程示意图,应用于第一服务器。下面将结合图2对本申请实施例提供的业务代码的管理方法进行详细阐述。该业务代码的管理方法可以包括以下步骤:
步骤S210:获取电子设备上传的目标业务代码以及针对所述目标业务代码的测试结果。
在本实施例中,目标业务代码可以是用于实现预设功能的代码,其中,预设功能包括但不限于拍照功能、视频通话功能、音乐播放功能、计算功能以及闹钟功能等,由于业务开发人员在撰写实现不同预设功能的业务代码时,可能会存在考虑不全或者逻辑错误等问题,导致在运行业务代码时,无法实现预设功能,或者,仅能实现部分的预设功能等问题的发生。因此,需要测试人员对业务开发人员所撰写好的业务代码进行测试,以检查该业务代码是否能实现预设功能。
基于此,测试人员可以在电子设备上通过测试用例数据,对目标业务代码进行测试,进而可以得到针对目标业务代码的测试结果。其中,测试用例数据是用以验证业务代码逻辑及功能的数据,由测试人员根据测试的用途及目的设立或利用的数据。进一步地,电子设备在完成针对目标业务代码的测试之后,则会将目标业务代码以及针对目标业务代码的测试结果上传至第一服务器,对应地,第一服务器则可以判断目标业务代码以及针对目标业务代码的测试结果是否满足预设入库条件,以确定是否要将目标业务代码合并入业务代码库进行保存。
步骤S220:若所述测试结果以及所述目标业务代码满足预设入库条件,将所述目标业务代码合并入业务代码库。
在本实施例中,预设入库条件为测试结果与预设测试结果相匹配同时目标业务代码的代码形式满足预设代码形式。也就是说,若测试结果与预设测试结果相匹配,且目标业务代码的代码形式满足预设代码形式,表征测试结果以及目标业务代码满足预设入库条件,则将目标业务代码合并入业务代码库。其中,预设测试结果可以理解为业务开发人员撰写该目标业务代码时希望该目标业务代码所能实现的功能。预设代码形式可以理解为目标业务代码中的函数和变量的命名形式,也就是说,由第一服务器统一制定命名形式,并基于该命名形式对所待合并入库的业务代码进行代码形式的检查,防止由不同业务开发人员所撰写的目标业务代码针对同一函数或同一变量的命名形式不同,导致业务代码入库后,由其他业务开发人员进行代码版本的迭代更新时,无法及时理解业务代码以及定位到待更新的代码段等问题的发生。如此,便于后续对业务代码库中的业务代码的维护、测试以及迭代更新。
在另一些实施方式中,若测试结果与预设测试结果不匹配,和/或,目标业务代码的代码形式不满足预设代码形式,表征测试结果以及目标业务代码不满足所述预设入库条件,则向电子设备发送提示信息,提示信息用于提示测试人员对目标业务代码进行修改。进一步地,测试人员通过提示信息可以获知到目标业务代码需要进行修改,可自行评评估修改范围,若仅是代码形式上的校正,测试人员可直接对目标业务代码进行修改;若存在逻辑或功能部分的业务代码需要修改,测试人员则可以将提示信息反馈至业务开发人员对应的终端,以提示业务开发人员对目标业务代码进行逻辑或功能部分的修改。然后,再将修改后的目标业务代码于电子设备中进行测试,直至修改后的目标业务代码以及针对修改后的目标业务代码的测试结果满足预设入库条件,再将修改后的目标业务代码合并入业务代码库。如此,在目标业务代码不符合预设入库条件的情况下,提示测试人员或业务开发人员对该目标业务代码进行及时修改,防止了将存在形式问题或存在逻辑问题的目标业务代码合并入业务代码库,实现了对不符合预设入库条件的业务代码的拦截,维护了业务代码库中的代码质量。
在本实施例中,在将目标业务代码合并入业务代码库之前,由第一服务器判断该目标业务代码的代码形式以及测试结果是否符合预设入库条件,将不符合预设入库条件的目标业务代码进行拦截,将符合预设入库条件的目标业务代码合并入业务代码库。如此,可以更好地维护业务代码库中的代码质量,同时,也方便后续对业务代码库中的业务代码进行维护、测试以及迭代更新。
请参照图3,图3为本申请另一实施例提供的一种业务代码的管理方法的流程示意图。下面将结合图3对本申请实施例提供的业务代码的管理方法进行详细阐述。该业务代码的管理方法可以包括以下步骤:
步骤S310:获取电子设备上传的目标业务代码以及针对所述目标业务代码的测试结果,所述测试结果包括单元测试结果以及系统测试结果。
在本实施例中,步骤S310的具体实施方式可以参阅前述实施例中的内容,在此不再赘述。
步骤S320:若所述单元测试结果与预设单元测试结果相匹配且所述系统测试结果均与预设系统测试结果相匹配,确定所述测试结果与所述预设测试结果相匹配。
在本实施例中,测试结果包括单元测试结果以及系统测试结果。系统测试结果是针对目标业务代码进行系统测试得到的结果,系统测试是指针对系统中各个组成部分进行的综合性检验,包括对功能、性能进行测试,该阶段主要对系统的准确性及完整性等方面进行测试。也就是说,测试运行目标业务代码是否能实现预设功能,以及在运行该目标业务代码过程中对电子设备的性能进行测试,即系统测试结果包括功能测试结果以及性能测试结果,功能测试结果符合预设功能且性能测试结果符合预设性能要求,则表征系统测试结果与预设系统测试结果相匹配。
单元测试结果是指针对目标业务代码进行单元测试得到的结果,单元测试是指对业务代码中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类,单元测试的目的就是检测目标函数在所有可能的输入下,函数的执行过程和输出是否符合预期。也就是说,目标业务代码中的最小可测试单元的输出符合预期,此时,即为单元测试结果与预设单元测试结果相匹配。
基于此,若单元测试结果与预设单元测试结果相匹配且系统测试结果均与预设系统测试结果相匹配,表征单元测试以及系统测试均符合预期,此时,则可以确定测试结果与预设测试结果相匹配。
在一些实施方式中,针对上述目标业务代码进行系统测试以及单元测试的测试流程图可以参阅图4。可以通过图4中的测试套件对目标业务代码进行系统测试以及单元测试,其中,测试套件包括有测试框架、打桩工具以及代码覆盖率工具;测试框架可以使用JUnit、TestNG、gtest以及unittest中的任一种框架;打桩工具可以使用Easymock、jMock、Mockito、Unitils Mock、gmock以及Mockcpp中的任一种,代码覆盖率工具也可以使用emma、cobertura、gcov+lcov中的任一种,本实施例对此不作限制。
在本实施例中,目标业务代码可以按照功能和层级进行模块划分,用模块1、模块2和模块3表示,使其形成划分清晰并有明确输入输出定义的业务模块,这样按照模块划分后业务代码具有高内聚低耦合的特点,增加模块和层级间的独立程度,便于后续的维护和测试。基于此,仍参阅图4,测试套件可以对明确了输入输出的模块进行单元测试,如图4中的模块1,模块2,模块3,在每个模块的单元测试点处对该模块进行打桩,以实现对该模块的单元测试,例如,在单元测试点1处打桩,实现对模块1的单元测试,在单元测试点2处打桩,实现对模块2的单元测试,在单元测试点3处打桩,实现对模块3的单元测试。并且,可以在目标业务代码的接口处打桩,即在图4中的系统测试点进行整套业务代码的系统测试。如此,测试框架满足了对目标业务代码的系统测试结果是否符合预设系统测试结果,打桩工具满足了单元测试的输出是否符合预设单元测试结果,代码覆盖率工具满足了验证目标业务代码测试过程中被执行的源代码占全部源代码的比例的需求,进而实现了测试、打桩、覆盖率一体化。
步骤S330:若所述测试结果与预设测试结果相匹配,且所述目标业务代码的代码形式满足预设代码形式,将所述目标业务代码合并入所述业务代码库。
在本实施例中,步骤S330的具体实施方式可以参阅前述实施例中的内容,在此不再赘述。
在一些实施方式中,若所述单元测试结果与预设单元测试结果相匹配、所述系统测试结果均与预设系统测试结果相匹配,且所述代码覆盖率大于预设覆盖率,确定所述测试结果与所述预设测试结果相匹配。其中,代码覆盖率用于描述程序中业务代码被测试的比例和程度,用于是检查业务代码是否冗余。代码覆盖率可以包括行覆盖率、分支覆盖率、路径覆盖率、条件覆盖率翻转覆盖率以及有线状态机覆盖率中的至少一种。也就是说,在检测到单元测试结果与预设单元测试结果相匹配、所述系统测试结果均与预设系统测试结果相匹配的情况下,进一步判断代码覆盖率是否大于预设覆盖率(例如,95%),若目标业务代码的代码覆盖率大于预设覆盖率,表征目标业务代码的冗余代码较少或没有,此时,则可以将目标业务代码合并入业务代码库。如此,通过将代码覆盖率大于预设覆盖率的业务代码才进行合并入库,即将冗余代码更少且代码质量更高的业务代码进行合并入库,同时,若目标业务代码的代码覆盖率不大于预设覆盖率,可以输出目标提示信息,以提示业务开发人员对目标业务代码的逻辑关系进行重新梳理,并基于新的逻辑关系对目标业务代码进行更新,以减少冗余代码,提升代码质量。
在本实施例中,第一服务器可以对目标业务代码的单元测试结果以及系统测试结果均进行检查,若确定单元测试结果与系统测试结果均符合预期,则确定针对目标业务代码的测试结果与预设测试结果相匹配;进而再判断代码覆盖率是否大于预设覆盖率,在代码覆盖率大于预设覆盖率的情况下,即在确定目标业务代码的无较多冗余代码且代码质量较好的情况下,再将目标业务代码合并入业务代码库。如此,可以进一步提高业务代码库中的业务代码的代码质量。
请参照图5,图5为本申请又一实施例提供的一种业务代码的管理方法的流程示意图。下面将结合图5对本申请实施例提供的业务代码的管理方法进行详细阐述。该业务代码的管理方法可以包括以下步骤:
步骤S410:获取电子设备上传的目标业务代码以及针对所述目标业务代码的测试结果,所述测试结果包括单元测试结果以及系统测试结果。
在本实施例中,步骤S410的具体实施方式可以参阅前述实施例中的内容,在此不再赘述。
步骤S420:若所述测试结果以及所述目标业务代码满足预设入库条件,且通过预设编译器成功编译并运行所述目标业务代码,则将所述目标业务代码合并入业务代码库。
在本实施例中,在针对目标业务代码的测试结果以及目标业务代码均满足预设入库条件的情况下,第一服务器还会通过预设编译器对目标业务代码进行编译,若编译成功并且成功运行成功编译后的目标业务代码,则可以将目标业务代码合并入业务代码库。其中,由于目标业务代码是由业务开发人员在自身所使用的终端的本地编译器上撰写、编译并运行,但目标业务代码最终应用在实际电子设备上的预设编译器,因此,可以在第一服务器中也部署有预设编译器,并通过该预设编译器编译并运行目标业务代码,在成功编译并成功运行的基础上,再将目标业务代码合并入业务代码库。如此,可以保证目标业务代码最终被应用在实际的电子设备上可以成功被编译以及运行。
在一些实施方式中,所述目标业务代码用于实现所述电子设备的预设功能,请参阅图6,步骤S420可以包括以下步骤S421至步骤S422的内容:
步骤S421:若所述测试结果以及所述目标业务代码满足预设入库条件,且通过预设编译器成功编译并运行所述目标业务代码,则获取运行所述目标业务代码过程中的所述预设功能相关的预设接口输出的接口数据。
在本实施例中,在电子设备运行目标业务代码实现预设功能时,可能需要用到预设功能相关的预设接口,例如,预设功能与图像采集相关,此时,则需要用到电子设备的摄像头,则需要检查在运行该目标业务代码的过程中,摄像头的是否能正常使用。因此,则可以在测试结果以及目标业务代码满足预设入库条件,且通过预设编译器成功编译并运行目标业务代码的情况下,获取在运行目标业务代码的过程中,与预设功能相关的预设接口输出的接口数据,例如,摄像头接口。
步骤S422:若所述接口数据与预设接口数据相匹配,将所述目标业务代码合并入业务代码库。
进一步地,将获取到的接口数据与预设接口数据进行匹配,若接口数据与预设接口数据相同,则表征接口数据与预设接口数据相匹配,即在运行目标业务代码的过程中,预设接口可以正常使用,例如,在运行目标业务代码的过程中电子设备的摄像头可以正常使用。此时,再将目标业务代码合并入业务代码库。
在本实施例中,第一服务器在确定针对目标业务的测试结果以及目标业务代码满足预设入库条件的前提下,还要检测是否能通过预设编译器成功编译并运行目标业务代码,防止业务代码库中存在无法被在实际电子设备中部署的预设编译器所编译及运行的业务代码,进而无法完成业务代码所实现的业务功能等问题的发生;并且,还可以进一步检测运行目标业务代码过程中的预设功能相关的预设接口输出的接口数据是否与预设接口数据相匹配,进而检测该预设接口是否能在目标业务代码的运行过程中正常运行,如此,防止业务代码库中存在会在运行过程中会影响相关预设接口正常运行的业务代码,进而导致影响业务代码所实现的业务功能等问题的发生。也就是说,进一步提高了业务代码库中的业务代码的代码质量。
在本实施例中,在将目标业务代码合并入业务代码库之前,由第一服务器判断该目标业务代码的代码形式以及测试结果是否符合预设入库条件,将不符合预设入库条件的目标业务代码进行拦截,将符合预设入库条件的目标业务代码合并入业务代码库。如此,可以更好地维护业务代码库中的代码质量,同时,也方便后续对业务代码库中的业务代码进行维护、测试以及迭代更新。并且是基于Jenkins环境,自动构建和运行TestSuite中测试用例集,实现了测试用例的一键式构建,运行和拦截功能,从而维护版本质量。
请参照图7,图7为本申请再一实施例提供的一种业务代码的管理方法的流程示意图。下面将结合图7对本申请实施例提供的业务代码的管理方法进行详细阐述。该业务代码的管理方法可以包括以下内容:
在本实施例中,jenkins服务器能够监控持续性重复的工作,可以实现全自动部署+测试,是一个可扩展的持续集成引擎,自动完成测试,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量。jenkins服务器中可以部署有形式检查项、测试结果检查项、相机检查项以及版本编译检查。若目标测试代码通过jenkins服务器中所有检查项,则将该目标代码合并入git服务器中的业务代码库,未通过check项的代码拒接合入git服务器中的业务代码库。
其中,形式检查项用于检查目标业务代码的代码形式是否符合预设代码形式,测试结果检查项用于检查单元测试结果是否与预设单元测试结果相匹配以及系统测试结果是否与预设系统测试结果相匹配,版本编译检查用于检查是否能通过预设编译器成功编译并运行目标业务代码,其中,预设编译器可以是手机Android版本编译器,相机检查项用于通过预设编译器编译并运行目标业务代码过程中的预设功能相关的预设接口输出的接口数据,判断接口数据是否与预设接口数据相匹配,即判断相机功能是否可用。
在一些实施方式中,业务开发人员还可以从Git服务器中获取需要进行迭代更新的业务代码,并对获取到的业务代码进行更新,再提交至测试人员对更新后的业务代码进行测试,并由jenkins服务器对更新后的业务代码进行检查,在所有检查项均通过的情况下,再将更新后的业务代码合并入Git服务器中的业务代码库中,以实现对业务代码的迭代更新。
在另一些实施方式中,测试人员还可以对已合并入Git服务器中的业务代码再次进行测试,此时,测试人员则可以通过自身使用的电子设备从Git服务器中获取目标业务代码,并利用测试用例数据对目标业务代码进行测试。然后,电子设备自动将目标业务代码以及针对目标业务代码的测试结果上传至jenkins服务器,由jenkins服务器检查目标业务代码是否通过部署的所有检查项,若通过,则保持该目标业务代码存储与Git服务器中,若未通过,则将该目标业务代码从Git服务器中移除,并提示业务开发人员对该目标业务代码进行修改。
请参照图8,其中示出了本申请一实施例提供的一种业务代码的管理装置500的结构框图,应用于第一服务器。该装置500可以包括:测试结果获取模块510和代码合入模块520。
测试结果获取模块510用于获取电子设备上传的目标业务代码以及针对所述目标业务代码的测试结果。
代码合入模块520用于若所述测试结果以及所述目标业务代码满足预设入库条件,将所述目标业务代码合并入业务代码库。
在一些实施方式中,代码合入模块520可以具体用于若所述测试结果与预设测试结果相匹配,且所述目标业务代码的代码形式满足预设代码形式,将所述目标业务代码合并入所述业务代码库。
在该方式下,所述测试结果包括单元测试结果以及系统测试结果,业务代码的管理装置500还可以包括:匹配模块。其中,匹配模块可以用于在所述若所述测试结果与预设测试结果相匹配,且所述目标业务代码的代码形式满足预设代码形式,将所述目标业务代码合并入所述业务代码库之前,若所述单元测试结果与预设单元测试结果相匹配且所述系统测试结果均与预设系统测试结果相匹配,确定所述测试结果与所述预设测试结果相匹配。
在该方式下,所述测试结果还包括所述目标业务代码的代码覆盖率,匹配模块可以具体用于:若所述单元测试结果与预设单元测试结果相匹配、所述系统测试结果均与预设系统测试结果相匹配,且所述代码覆盖率大于预设覆盖率,确定所述测试结果与所述预设测试结果相匹配。
在一些实施方式中,业务代码的管理装置500还可以包括:提示模块。其中,提示模块可以用于在所述获取电子设备上传的目标业务代码以及所述目标业务代码的测试结果之后,若所述测试结果以及所述目标业务代码不满足所述预设入库条件,向所述电子设备发送提示信息,所述提示信息用于提示测试人员对所述目标业务代码进行修改。
在另一些实施方式中,代码合入模块520可以具体用于:若所述测试结果以及所述目标业务代码满足预设入库条件,且通过预设编译器成功编译并运行所述目标业务代码,则将所述目标业务代码合并入业务代码库。
在该方式下去,所述目标业务代码用于实现所述电子设备的预设功能,代码合入模块520可以包括:接口数据获取单元以及代码合入单元。其中,接口数据获取单元可以具体用于若所述测试结果以及所述目标业务代码满足预设入库条件,且通过预设编译器成功编译并运行所述目标业务代码,则获取运行所述目标业务代码过程中的所述预设功能相关的预设接口输出的接口数据。代码合入单元可以用于若所述接口数据与预设接口数据相匹配,将所述目标业务代码合并入业务代码库。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
综上所述,在将目标业务代码合并入业务代码库之前,由第一服务器判断该目标业务代码的代码形式以及测试结果是否符合预设入库条件,将不符合预设入库条件的目标业务代码进行拦截,将符合预设入库条件的目标业务代码合并入业务代码库。如此,可以更好地维护业务代码库中的代码质量,同时,也方便后续对业务代码库中的业务代码进行维护、测试以及迭代更新。
下面将结合图9对本申请提供的一种服务器进行说明。
参照图9,图9示出了本申请实施例提供的一种服务器600的结构框图,本申请实施例提供的上述方法可以由该服务器600执行。该计算机设备包括但不限于笔记本电脑、台式电脑、智能手机、平板电脑以及服务器等设备。
本申请实施例中的服务器600可以包括一个或多个如下部件:处理器601、存储器602、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器602中并被配置为由一个或多个处理器601执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器601可以包括一个或者多个处理核。处理器601利用各种接口和线路连接整个服务器600内的各个部分,通过运行或执行存储在存储器602内的指令、程序、代码集或指令集,以及调用存储在存储器602内的数据,执行服务器600的各种功能和处理数据。可选地,处理器601可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器601可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以集成到处理器601中,单独通过一块通信芯片进行实现。
存储器602可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器602可用于存储指令、程序、代码、代码集或指令集。存储器602可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储服务器600在使用中所创建的数据(比如上述的各种对应关系)等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图10,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质700中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质700可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质700包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质700具有执行上述方法中的任何方法步骤的程序代码710的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码710可以例如以适当形式进行压缩。
在一些实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述各方法实施例中的步骤。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种业务代码的管理方法,其特征在于,应用于第一服务器,所述方法包括:
获取电子设备上传的目标业务代码以及针对所述目标业务代码的测试结果;
若所述测试结果以及所述目标业务代码满足预设入库条件,将所述目标业务代码合并入业务代码库。
2.根据权利要求1所述的方法,其特征在于,所述若所述测试结果以及所述目标业务代码满足预设入库条件,将所述目标业务代码合并入业务代码库,包括:
若所述测试结果与预设测试结果相匹配,且所述目标业务代码的代码形式满足预设代码形式,将所述目标业务代码合并入所述业务代码库。
3.根据权利要求2所述的方法,其特征在于,所述测试结果包括单元测试结果以及系统测试结果,在所述若所述测试结果与预设测试结果相匹配,且所述目标业务代码的代码形式满足预设代码形式,将所述目标业务代码合并入所述业务代码库之前,所述方法还包括:
若所述单元测试结果与预设单元测试结果相匹配且所述系统测试结果均与预设系统测试结果相匹配,确定所述测试结果与所述预设测试结果相匹配。
4.根据权利要求3所述的方法,其特征在于,所述测试结果还包括所述目标业务代码的代码覆盖率,所述若所述单元测试结果与预设单元测试结果相匹配且所述系统测试结果均与预设系统测试结果相匹配,确定所述测试结果与所述预设测试结果相匹配,包括:
若所述单元测试结果与预设单元测试结果相匹配、所述系统测试结果均与预设系统测试结果相匹配,且所述代码覆盖率大于预设覆盖率,确定所述测试结果与所述预设测试结果相匹配。
5.根据权利要求1所述的方法,其特征在于,在所述获取电子设备上传的目标业务代码以及所述目标业务代码的测试结果之后,所述方法还包括:
若所述测试结果以及所述目标业务代码不满足所述预设入库条件,向所述电子设备发送提示信息,所述提示信息用于提示测试人员对所述目标业务代码进行修改。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述若所述测试结果以及所述目标业务代码满足预设入库条件,将所述目标业务代码合并入业务代码库,包括:
若所述测试结果以及所述目标业务代码满足预设入库条件,且通过预设编译器成功编译并运行所述目标业务代码,则将所述目标业务代码合并入业务代码库。
7.根据权利要求6所述的方法,其特征在于,所述目标业务代码用于实现所述电子设备的预设功能,所述若所述测试结果以及所述目标业务代码满足预设入库条件,且通过预设编译器成功编译并运行所述目标业务代码,则将所述目标业务代码合并入业务代码库,包括:
若所述测试结果以及所述目标业务代码满足预设入库条件,且通过预设编译器成功编译并运行所述目标业务代码,则获取运行所述目标业务代码过程中的所述预设功能相关的预设接口输出的接口数据;
若所述接口数据与预设接口数据相匹配,将所述目标业务代码合并入业务代码库。
8.一种业务代码的管理装置,其特征在于,应用于第一服务器,所述装置包括:
测试结果获取模块,用于获取电子设备上传的目标业务代码以及针对所述目标业务代码的测试结果;
代码合入模块,用于若所述测试结果以及所述目标业务代码满足预设入库条件,将所述目标业务代码合并入业务代码库。
9.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-7中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211457565.3A CN118057335A (zh) | 2022-11-21 | 2022-11-21 | 业务代码的管理方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211457565.3A CN118057335A (zh) | 2022-11-21 | 2022-11-21 | 业务代码的管理方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118057335A true CN118057335A (zh) | 2024-05-21 |
Family
ID=91069380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211457565.3A Pending CN118057335A (zh) | 2022-11-21 | 2022-11-21 | 业务代码的管理方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118057335A (zh) |
-
2022
- 2022-11-21 CN CN202211457565.3A patent/CN118057335A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
US20210042217A1 (en) | Dynamic Automation of DevOps Pipeline Vulnerability Detecting and Testing | |
CN102231131B (zh) | 测试电子设备内的软件 | |
CN107896244B (zh) | 一种版本文件的分发方法、客户端及服务器 | |
CN111897724B (zh) | 一种适用于云平台的自动化测试方法及装置 | |
US10169203B2 (en) | Test simulation for software defined networking environments | |
CN113568839A (zh) | 软件测试和统计测试覆盖率的方法、装置、设备及介质 | |
CN115454869A (zh) | 界面自动化测试方法、装置、设备及存储介质 | |
CN111782266A (zh) | 软件性能基准确定方法及装置 | |
CN112650689A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN115599683A (zh) | 自动化测试方法、装置、设备及存储介质 | |
CN116107885A (zh) | 一种接口测试方法、装置、设备、存储介质 | |
CN118057335A (zh) | 业务代码的管理方法、装置、服务器及存储介质 | |
CN112463188B (zh) | 网卡固件自动化升级方法、装置及计算机可读存储介质 | |
CN111949510B (zh) | 测试处理方法、装置、电子设备及可读存储介质 | |
KR100775102B1 (ko) | 임베디드 디바이스상에서 플랫폼 기반 어플리케이션의 품질테스트 결과 예측 시스템 및 그 방법 | |
CN110618943A (zh) | 安防服务测试方法、装置、电子设备及可读存储介质 | |
CN112650679B (zh) | 一种测试校验方法、装置及计算机系统 | |
CN112948254B (zh) | 一种渠道包检测方法、装置、设备及存储介质 | |
CN114064484A (zh) | 接口测试方法、装置、电子设备及可读存储介质 | |
US20230068602A1 (en) | Automated Performance Measurement Over Software Lifecycle | |
CN116974910A (zh) | 区块链sdk的持续交付方法、装置、存储介质以及电子设备 | |
CN115599697A (zh) | 单元测试方法及装置、存储介质、计算机设备 | |
CN117056211A (zh) | 低代码自动化测试方法、装置、电子设备及存储介质 | |
CN114637272A (zh) | 一种设备接入方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |