CN111767209A - 代码测试方法、装置、存储介质以及终端 - Google Patents
代码测试方法、装置、存储介质以及终端 Download PDFInfo
- Publication number
- CN111767209A CN111767209A CN202010532376.2A CN202010532376A CN111767209A CN 111767209 A CN111767209 A CN 111767209A CN 202010532376 A CN202010532376 A CN 202010532376A CN 111767209 A CN111767209 A CN 111767209A
- Authority
- CN
- China
- Prior art keywords
- code
- test
- branch
- server
- script
- 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.)
- Withdrawn
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 429
- 238000013515 script Methods 0.000 claims abstract description 162
- 238000000034 method Methods 0.000 claims description 28
- 230000003068 static effect Effects 0.000 claims description 12
- 230000008439 repair process Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012827 research and development Methods 0.000 abstract description 26
- 238000012795 verification Methods 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007474 system interaction Effects 0.000 description 3
- 238000012552 review Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
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)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种代码测试方法、装置、存储介质以及终端,一种代码测试方法包括:获取待测试的分支代码以及分支代码对应的父节点代码;对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果;若测试结果符合测试要求,则将分支代码合入父节点代码中。由于是在分支代码合入父节点代码之前对分支代码进行测试,也即实现了在分支代码未合入之前的验证,保证了分支代码合入后的质量,也便于研发人员及时发现代码问题,提高研发效率。
Description
技术领域
本申请涉及软件技术领域,尤其涉及一种代码测试方法、装置、存储介质以及终端。
背景技术
随着科学技术的发展,电子设备中的各种软件丰富着我们的生活,而代码的是否正确关系着软件是否可以正常运行,因此关于代码的测试方法成为本领域人员研究的重点之一。
发明内容
本申请提供一种代码测试方法、装置、存储介质以及终端,可以上述相关技术中的技术问题。
第一方面,本申请实施例提供一种代码测试方法,该方法包括:
获取待测试的分支代码以及所述分支代码对应的父节点代码;
对所述父节点代码和所述分支代码进行编译得到测试脚本,获取所述测试脚本对应的测试结果;
若所述测试结果符合测试要求,则将所述分支代码合入所述父节点代码中。
第二方面,本申请实施例提供一种代码测试装置,该装置包括:
代码获取模块,用于获取待测试的分支代码以及所述分支代码对应的父节点代码;
代码测试模块,用于对所述父节点代码和所述分支代码进行编译得到测试脚本,获取所述测试脚本对应的测试结果;
代码合入模块,用于若所述测试结果符合测试要求,则将所述分支代码合入所述父节点代码中。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法的步骤。
第四方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的方法的步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供一种代码测试方法、装置、存储介质以及终端,一种代码测试方法包括:获取待测试的分支代码以及分支代码对应的父节点代码;对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果;若测试结果符合测试要求,则将分支代码合入父节点代码中。由于是在分支代码合入父节点代码之前对分支代码进行测试,也即实现了在分支代码未合入之前的验证,保证了分支代码合入后的质量,也便于研发人员及时发现代码问题,提高研发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种代码测试方法的示例性系统架构;
图2为本申请实施例提供的一种代码测试方法的系统交互图;
图3为本申请实施例提供的一种代码测试方法的流程示意图;
图4为本申请另一实施例提供的一种代码测试方法的流程示意图;
图5为本申请另一实施例提供的一种代码测试装置的结构示意图;
图6为本申请另一实施例提供的一种代码测试装置的结构示意图;
图7为本申请实施例提供了一种终端的结构示意图。
具体实施方式
为使得本申请的特征和优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在相关技术中,一个项目的代码的开发工作通常并不是由一个人独立完成的,需要多个研发人员的共同协作,也即每个研发人员负责一部分的工作,每个研发人员负责一部分的分支代码的编写,然后多个研发人员将各自编写的分支代码分别合入父节点代码中,最后将合入的代码提交给测试人员进行测试。但是在上述相关技术中,由于必须要等到多个研发人员将各自编写的分支代码分别合入父节点代码之后,才能对代码进行测试,导致分子代码的问题不能及时发现,代码的整体测试效率较低,因此有必要研发一种新的代码测试方法。
图1示出了可以应用于本申请实施例的一种代码测试方法的示例性系统架构。
如图1所示,系统架构可以包括终端101、网络102和服务器103。网络102用于在终端101和服务器103之间提供通信链路的介质。网络102可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(Wireless-Fidelity,Wi-Fi)通信链路或微波通信链路等。
终端101可以通过网络102与服务器103交互,以接收来自服务器103的消息或向服务器103发送消息。终端101可以是硬件,也可以是软件。当终端101为硬件时,可以是各种电子设备,包括但不限于智能手表、智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当终端101为软件时,可以是安装在上述所列举的电子设备中,其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
服务器103可以是提供各种服务的业务服务器。需要说明的是,服务器103可以是硬件,也可以是软件。当服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器103为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
应理解,图1中的原始终端、当前终端、网络和服务器的数目仅是示意性的。根据实现需要,可以是任意数量的原始终端、当前终端、网络和服务器。
请参阅图2,图2为本申请实施例提供的一种代码测试方法的系统交互图,下面将结合图1和图2介绍代码测试方法中系统交互过程。
S201、终端向第一服务器拉取待测试的分支代码。
S202、第一服务器基于分支代码在本地多个版本的父节点代码中读取距离当前时间最近的父节点代码,并基于距离当前时间最近的父节点代码回滚至分支代码对应的父节点代码。
S203、终端向第一服务器拉取父节点代码。
S204、终端对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果。
具体的,对父节点代码和分支代码进行静态代码检查;若静态代码检查通过,则对父节点代码和分支代码依次进行模型编译、库编译以及脚本编译,得到测试脚本。
获取测试脚本对应的测试结果,包括:将测试脚本发送至第二服务器,以使得第二服务器运行测试脚本并生成测试脚本对应的测试结果;向第二服务器获取测试结果;和/或,将测试脚本发送至测试终端,以使得测试终端运行测试脚本并生成测试脚本对应的测试结果;向测试终端获取测试结果。
其中,将测试脚本发送至第二服务器,以使得第二服务器运行测试脚本并生成测试脚本对应的测试结果,包括:将测试脚本发送至第二服务器,以使得第二服务器构建虚拟硬件平台,基于虚拟硬件平台运行测试脚本并生成测试脚本对应的测试结果;将测试脚本发送至测试终端,以使得测试终端运行测试脚本并生成测试脚本对应的测试结果,包括:将测试脚本发送至测试终端,以使得测试终端调用硬件接口,基于调用的硬件接口运行测试脚本并生成测试脚本对应的测试结果。
S205、终端若测试结果符合测试要求,则将分支代码合入父节点代码中。
具体的,获取分支代码对应的测试要求;若测试结果符合测试要求,则生成第一测试信息,并将分支代码合入父节点代码中;若测试结果不符合测试要求,则生成第二测试信息。
其中,生成第一测试信息之后,还包括:将第一测试信息对应的第一执行日志发送至第一服务器,以使得第一服务器显示第一执行日志;生成第二测试信息之后,还包括:将第二测试信息对应的第二执行日志发送至第一服务器,以使得第一服务器显示第二执行日志并基于第二执行日志对分支代码进行修复。
在本申请实施例中,一种代码测试方法包括:获取待测试的分支代码以及分支代码对应的父节点代码;对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果;若测试结果符合测试要求,则将分支代码合入父节点代码中。由于是在分支代码合入父节点代码之前对分支代码进行测试,也即实现了在分支代码未合入之前的验证,保证了分支代码合入后的质量,也便于研发人员及时发现代码问题,提高研发效率。
请参阅图3,图3为本申请实施例提供的一种代码测试方法的流程示意图。
如图3所示,一种代码测试方法包括:
S301、获取待测试的分支代码以及分支代码对应的父节点代码。
在上述相关技术中介绍了,一个项目的开发工作可以是由多个研发人员共同完成的,因此可以将每个研发人员所编写的项目分支或者项目代码称为分支代码,而整个项目或者项目代码成为父节点代码。研发人员每次分支代码的编写都是基于分支代码时对应的父节点代码之上进行编写的,那么待测试的分支代码也是基于待测试的分支代码对应的父节点代码进行编写的,也即待测试的分支代码是基于父节点代码才能运行,因此当获取待测的分支代码之后,为了便于后续对待测试的分支代码的编译以及测试,还需要获取待测试的分支代码对应的父节点代码,父节点代码也即研发人员编写待测试的分支代码之前获取的父节点代码。
其中,研发人员编写完成后的待测试的分支代码可以提交至服务器或者终端本地,当研发人员将编写完成后的待测试的分支代码可以提交至服务器后,那么终端可以向服务器中拉取研发人员提交的待测试的分支代码,以及向服务器中拉取待测试的分支代码对应的父节点代码;当研发人员将编写完成后的待测试的分支代码可以提交至终端本地或者保存至终端本地后,终端本地可以直接拉取待测试的分支代码以及父节点代码。
S302、对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果。
可以理解的,研发人员编写代码时所使用的语言为高级编程语言,而终端或者计算机可以识别的语言为机器语言,因此分支代码不能直接被终端或者计算机识别,因此在对待测试的分支代码进行测试之前,还需要对分支代码进行编译,以使得将分支代码编译成机器语言,也即得到分支代码对应的测试脚本。
其中,由于分支代码对应的项目可以是某个具体类型的终端或者电子设备,而分支代码在编写时会考虑到终端或者电子设备中的硬件接口,因此对测试脚本进行测试时,需要考虑分支代码对应的测试脚本可能需要调用硬件接口才可以运行,因此在对测试脚本进行测试时,可以在服务器中模拟出硬件接口,并将测试脚本发送至服务器,以使得服务器可以对测试脚本进行测试,并得到测试脚本对应的测试结果;还可以将分支代码对应的测试脚本发送至测试终端或者测试电子设备,以使得终端或者电子设备对测试脚本进行测试,并得到测试脚本对应的测试结果。
S303、若测试结果符合测试要求,则将分支代码合入父节点代码中。
可以理解的,研发人员在编写分支代码时一般是根据项目的需求或者需要实现的功能进行编写的,因此分支代码对应的测试结果可以具有一定的要求,例如,要求分支代码对应的测试结果实现某一功能或者实现某一需求,因此可以根据具体的分支代码对应的需求或者需要实现的功能,设置测试结果对应的测试要求。当分支代码对应的测试结果符合测试要求,代表分支代码编写无误,则可以将分支代码合入父节点代码中,还可以将多个研发人员经过测试后的分支代码再次合并至父节点代码中,再对合并后的父节点代码进行测试,此时由于各分支代码在合并之前已经经过研发人员的测试,因此大大提高了合并后的父节点代码的编写质量,也便于研发人员及时发现代码问题,提高研发效率。
在本申请实施例中,一种代码测试方法包括:获取待测试的分支代码以及分支代码对应的父节点代码;对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果;若测试结果符合测试要求,则将分支代码合入父节点代码中。由于是在分支代码合入父节点代码之前对分支代码进行测试,也即实现了在分支代码未合入之前的验证,保证了分支代码合入后的质量,也便于研发人员及时发现代码问题,提高研发效率。
请参阅图4,图4为本申请另一实施例提供的一种代码测试方法的流程示意图。
如图4所示,一种代码测试方法包括:
S401、向第一服务器拉取待测试的分支代码,以使得第一服务器基于分支代码在本地多个版本的父节点代码中读取距离当前时间最近的父节点代码,并基于距离当前时间最近的父节点代码回滚至分支代码对应的父节点代码。
为了边方便研发人员对分支代码进行测试,且减少终端本地的数据处理压力,研发人员在编写完待测试的分支代码后,可以将分支代码上传至第一服务器,第一服务器可以一种代码审查平台,例如,第一服务器可以是Gerrit,Gerrit为一种免费、开放源代码的代码审查软件,使用网页界面,研发人员可以通过与Gerrit的交互实现上传待测试的分支代码。
本地终端可以实时监测第一服务器,当监测到第一服务器中存在新上传的、未测试的分支代码时,就可以向第一服务器拉取待测试的分支代码,若终端成功向第一服务器拉取待测试的分支代码之后,终端的拉取动作还会触发第一服务器获取分支代码对应的父节点代码,其中第一服务器获取父节点代码的原因是,待测试的分支代码是基于研发人员获取的父节点代码进行编写的,当研发人员将编写完毕后的分支代码上传至第一服务器后,此时距离研发人员获取父节点代码已经过了一段时间,此时其他研发人员可能已经对父节点代码进行了修改或者合入得到了当前的父节点代码,因此第一服务器不能直接获取当前的父节点代码进行测试,而是需要获取研发人员对分支代码进行编写时的父节点代码。
可选地,第一服务器可以基于分支代码在本地多个版本的父节点代码中读取距离当前时间最近的父节点代码,并基于距离当前时间最近的父节点代码回滚至分支代码对应的父节点代码,并获取分支代码对应的父节点代码。
S402、向第一服务器拉取父节点代码。
当第一服务器成功获取分支代码对应的父节点代码之后,可以向第一服务器拉取父节点代码,若向第一服务器成功拉取父节点代码,那么此时终端已经获取了待测试的分支代码以及父节点代码。
S403、对父节点代码和分支代码进行静态代码检查。
可以理解的,待测试的分支代码和父节点代码都可以基于一定语言进行编写,而每种编程语言都具有一定的编写规则,因此基于编写语言对应的规则对父节点代码和分支代码进行静态代码检查,以便检查出父节点代码和分支代码的代码形式错误。
S404、若静态代码检查通过,则对父节点代码和分支代码依次进行模型编译、库编译以及脚本编译,得到测试脚本。
当父节点代码和分支代码静态代码检查通过之后,那么可以对父节点代码和分支代码进行编译,其中对代码进行编译的过程,可以根据父节点代码和分支代码的编写语言,或者根据父节点代码和分支代码的应用对象具体设置代码的编译过程,例如,可以将父节点代码和分支代码依次进行模型编译、库编译以及脚本编译,并得到父节点代码和分支代码编译后对应的测试脚本,测试脚本可以认为是机器语言,因此测试脚本可以直接在模拟环境或者实体机器中运行。
S405、将测试脚本发送至第二服务器,以使得第二服务器运行测试脚本并生成测试脚本对应的测试结果。
当根据分支代码的实际应用环境,需要将分支代码对应的测试脚本在虚拟环境中测试时,可以将测试脚本发送至第二服务器,以使得第二服务器运行该测试脚本并生成该测试脚本对应的测试结果。
其中,将测试脚本发送至第二服务器,以使得第二服务器运行测试脚本并生成测试脚本对应的测试结果可以包括:将测试脚本发送至第二服务器,以使得第二服务器根据测试脚本构建虚拟硬件平台,第二服务器可以基于分支代码使用的需要开发的一种持续集成工具,例如,第二服务器可以是Jenkins,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,用于提供一个开放易用的软件平台。其中第二服务器构建的虚拟硬件平台可以包括了测试脚本进行测试需要的硬件接口或者硬件条件,因此第二服务器可以基于虚拟硬件平台运行测试脚本并生成测试脚本对应的测试结果。
S406、向第二服务器获取测试结果。
当第二服务器成功生成测试脚本对应的测试结果后,则可以向第二服务器获取该测试结果。
S407、将测试脚本发送至测试终端,以使得测试终端运行测试脚本并生成测试脚本对应的测试结果;
当根据分支代码的实际应用环境,需要将分支代码对应的测试脚本在实体终端中进行测试时,可以将分支代码对应的测试脚本发送至测试终端,以使得测试终端运行该测试脚本并生成该测试脚本对应的测试结果。
其中,将测试脚本发送至测试终端,以使得测试终端运行测试脚本并生成测试脚本对应的测试结果可以包括:将测试脚本发送至测试终端,测试终端为分支代码对应的测试终端,也即分支代码需要实现的需求或者实现的功能都是基于测试终端进行编写的,以使得测试终端调用硬件接口,基于调用的硬件接口运行测试脚本并生成测试脚本对应的测试结果。
S408、向测试终端获取测试结果。
当测试终端成功生成测试脚本对应的测试结果后,则可以向测试终端获取该测试结果。
S409、获取分支代码对应的测试要求。
研发人员在编写分支代码时一般是根据项目的需求或者需要实现的功能进行编写的,因此分支代码对应的测试结果可以具有一定的要求,例如,要求分支代码对应的测试结果实现某一功能或者实现某一需求,因此可以根据具体的分支代码对应的需求或者需要实现的功能,设置测试结果对应的测试要求。
S4010、若测试结果符合测试要求,则生成第一测试信息,并将分支代码合入父节点代码中;
当测试结果符合测试要求时,代表分支代码的编写符合要求,则可以生成第一测试信息,第一测试信息也就可以记录分支代码测试成功的测试情况,例如,可以第一测试信息可以是code review+1。可以将分支代码合入父节点代码中,还可以将多个研发人员经过测试后的分支代码再次合并至父节点代码中,再对合并后的父节点代码进行测试,此时由于各分支代码在合并之前已经经过研发人员的测试,因此大大提高了合并后的父节点代码的编写质量,也便于研发人员及时发现代码问题,提高研发效率。
S4011、将第一测试信息对应的第一执行日志发送至第一服务器,以使得第一服务器显示第一执行日志。
当生成第一测试信息之后,还可以将获取保存的上述拉取分支代码成功、对分支代码进行编译成功以及对测试脚本进行测试成功的各步骤对应的日志,根据各日志生成第一测试信息对应的第一执行日志,以及将第一执行日志发送至第一服务器,以使得第一服务器显示第一执行日志,例如,第一服务器可以基于第一执行日志生成第一日志链接,研发人员可以从都第一服务器中的相关交互选项查看第一执行日志,例如,点击第一日志链接,以便于了解分支代码进行测试时,各步骤的详细情况,以改进分支代码的编写。
S4012、若测试结果不符合测试要求,则生成第二测试信息。
当测试结果不符合测试要求时,代表分支代码的编写不符合要求,则可以生成第二测试信息,第二测试信息也就可以记录分支代码测试失败的测试情况,例如,可以第二测试信息可以是code review-1,此时可以不将分支代码合入父节点代码中。
S4013、将第二测试信息对应的第二执行日志发送至第一服务器,以使得第一服务器显示第二执行日志并基于第二执行日志对分支代码进行修复。
当生成第二测试信息之后,还可以将获取保存的上述拉取分支代码失败、对分支代码进行编译失败以及对测试脚本进行测试失败的各步骤对应的日志,根据各日志生成第二测试信息对应的第二执行日志,以及将第二执行日志发送至第一服务器,以使得第一服务器显示第二执行日志,例如,第一服务器可以基于第二执行日志生成第二日志链接,研发人员可以从都第一服务器中的相关交互选项查看第二执行日志,例如,点击第二日志链接,以便于了解分支代码进行测试时,各步骤的详细情况,以基于第二执行日志对分支代码进行修复。
在本申请实施例中,一种代码测试方法包括:获取待测试的分支代码以及分支代码对应的父节点代码;对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果;若测试结果符合测试要求,则将分支代码合入父节点代码中。由于是在分支代码合入父节点代码之前对分支代码进行测试,也即实现了在分支代码未合入之前的验证,保证了分支代码合入后的质量,也便于研发人员及时发现代码问题,提高研发效率。
请参阅图5,图5为本申请另一实施例提供的一种代码测试装置的结构示意图。
如图5所示,一种代码测试装置500包括:
代码获取模块510,用于获取待测试的分支代码以及分支代码对应的父节点代码。
代码测试模块520,用于对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果。
代码合入模块530,用于若测试结果符合测试要求,则将分支代码合入父节点代码中。
请参阅图6,图6为本申请另一实施例提供的一种代码测试装置的结构示意图。
如图6所示,一种代码测试装置600包括:
第一拉取模块610,用于向第一服务器拉取待测试的分支代码,以使得第一服务器基于分支代码在本地多个版本的父节点代码中读取距离当前时间最近的父节点代码,并基于距离当前时间最近的父节点代码回滚至分支代码对应的父节点代码。
第二拉取模块620,用于向第一服务器拉取父节点代码。
代码检查模块630,用于对父节点代码和分支代码进行静态代码检查。
脚本获取模块640,用于若静态代码检查通过,则对父节点代码和分支代码依次进行模型编译、库编译以及脚本编译,得到测试脚本。
第一代码测试模块650,用于将测试脚本发送至第二服务器,以使得第二服务器运行测试脚本并生成测试脚本对应的测试结果。
其中,将测试脚本发送至第二服务器,以使得第二服务器运行测试脚本并生成测试脚本对应的测试结果,包括:将测试脚本发送至第二服务器,以使得第二服务器构建虚拟硬件平台,基于虚拟硬件平台运行测试脚本并生成测试脚本对应的测试结果。
第一结果获取模块660,用于向第二服务器获取测试结果。
第二代码测试模块670,用于将测试脚本发送至测试终端,以使得测试终端运行测试脚本并生成测试脚本对应的测试结果。
其中,将测试脚本发送至测试终端,以使得测试终端运行测试脚本并生成测试脚本对应的测试结果,包括:将测试脚本发送至测试终端,以使得测试终端调用硬件接口,基于调用的硬件接口运行测试脚本并生成测试脚本对应的测试结果。
第二结果获取模块680,用于向测试终端获取测试结果。
测试要求获取模块690,用于获取分支代码对应的测试要求。
测试成功模块6100,用于若测试结果符合测试要求,则生成第一测试信息,并将分支代码合入父节点代码中。
第一显示模块6110,用于将第一测试信息对应的第一执行日志发送至第一服务器,以使得第一服务器显示第一执行日志。
测试失败模块6120,用于若测试结果不符合测试要求,则生成第二测试信息。
第二显示模块6130,用于将第二测试信息对应的第二执行日志发送至第一服务器,以使得第一服务器显示第二执行日志并基于第二执行日志对分支代码进行修复。
在本申请实施例中,一种代码测试装置,包括:代码获取模块,用于获取待测试的分支代码以及分支代码对应的父节点代码;代码测试模块,用于对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果;代码合入模块,用于若测试结果符合测试要求,则将分支代码合入父节点代码中。由于是在分支代码合入父节点代码之前对分支代码进行测试,也即实现了在分支代码未合入之前的验证,保证了分支代码合入后的质量,也便于研发人员及时发现代码问题,提高研发效率。
本申请实施例还提供了一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行如上述实施例中的任一项的方法的步骤。
进一步地,请参见图7,图7为本申请实施例提供了一种终端的结构示意图。如图7所示,终端700可以包括:至少一个中央处理器701,至少一个网络接口704,用户接口703,存储器705,至少一个通信总线702。
其中,通信总线702用于实现这些组件之间的连接通信。
其中,用户接口703可以包括显示屏(Display)、摄像头(Camera),可选用户接口703还可以包括标准的有线接口、无线接口。
其中,网络接口704可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,中央处理器701可以包括一个或者多个处理核心。中央处理器701利用各种接口和线路连接整个终端700内的各个部分,通过运行或执行存储在存储器705内的指令、程序、代码集或指令集,以及调用存储在存储器705内的数据,执行终端700的各种功能和处理数据。可选的,中央处理器701可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。中央处理器701可集成中央中央处理器(Central Processing Unit,CPU)、图像中央处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到中央处理器701中,单独通过一块芯片进行实现。
其中,存储器705可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器705包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器705可用于存储指令、程序、代码、代码集或指令集。存储器705可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器705可选的还可以是至少一个位于远离前述中央处理器701的存储装置。如图7所示,作为一种计算机存储介质的存储器705中可以包括操作系统、网络通信模块、用户接口模块以及代码测试程序。
在图7所示的终端700中,用户接口703主要用于为用户提供输入的接口,获取用户输入的数据;而中央处理器701可以用于调用存储器705中存储的代码测试程序,并具体执行以下操作:
获取待测试的分支代码以及分支代码对应的父节点代码;
对父节点代码和分支代码进行编译得到测试脚本,获取测试脚本对应的测试结果;
若测试结果符合测试要求,则将分支代码合入父节点代码中。
中央处理器701在执行获取待测试的分支代码以及分支代码对应的父节点代码时,具体执行以下步骤:
向第一服务器拉取待测试的分支代码,以使得第一服务器基于分支代码在本地多个版本的父节点代码中读取距离当前时间最近的父节点代码,并基于距离当前时间最近的父节点代码回滚至分支代码对应的父节点代码;向第一服务器拉取父节点代码。
中央处理器701在执行对父节点代码和分支代码进行编译得到测试脚本时,具体执行以下步骤:
对父节点代码和分支代码进行静态代码检查;若静态代码检查通过,则对父节点代码和分支代码依次进行模型编译、库编译以及脚本编译,得到测试脚本。
中央处理器701在执行获取测试脚本对应的测试结果时,具体执行以下步骤:将测试脚本发送至第二服务器,以使得第二服务器运行测试脚本并生成测试脚本对应的测试结果;向第二服务器获取测试结果;和/或,将测试脚本发送至测试终端,以使得测试终端运行测试脚本并生成测试脚本对应的测试结果;向测试终端获取测试结果。
中央处理器701在执行将测试脚本发送至第二服务器,以使得第二服务器运行测试脚本并生成测试脚本对应的测试结果时,具体执行以下步骤:将测试脚本发送至第二服务器,以使得第二服务器构建虚拟硬件平台,基于虚拟硬件平台运行测试脚本并生成测试脚本对应的测试结果。
中央处理器701在执行将测试脚本发送至测试终端,以使得测试终端运行测试脚本并生成测试脚本对应的测试结果时,具体执行以下步骤:将测试脚本发送至测试终端,以使得测试终端调用硬件接口,基于调用的硬件接口运行测试脚本并生成测试脚本对应的测试结果。
中央处理器701在执行若测试结果符合测试要求,则将分支代码合入父节点代码中时,具体执行以下步骤:获取分支代码对应的测试要求;若测试结果符合测试要求,则生成第一测试信息,并将分支代码合入父节点代码中;若测试结果不符合测试要求,则生成第二测试信息。
中央处理器701在执行生成第一测试信息之后,还具体执行以下步骤:
将第一测试信息对应的第一执行日志发送至第一服务器,以使得第一服务器显示第一执行日志;
中央处理器701在执行生成第二测试信息之后,还具体执行以下步骤:
将第二测试信息对应的第二执行日志发送至第一服务器,以使得第一服务器显示第二执行日志并基于第二执行日志对分支代码进行修复。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的一种代码测试方法、装置、存储介质以及终端的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种代码测试方法,其特征在于,所述方法包括:
获取待测试的分支代码以及所述分支代码对应的父节点代码;
对所述父节点代码和所述分支代码进行编译得到测试脚本,获取所述测试脚本对应的测试结果;
若所述测试结果符合测试要求,则将所述分支代码合入所述父节点代码中。
2.根据权利要求1所述的方法,其特征在于,所述获取待测试的分支代码以及所述分支代码对应的父节点代码,包括:
向第一服务器拉取待测试的分支代码,以使得所述第一服务器基于所述分支代码在本地多个版本的父节点代码中读取距离当前时间最近的父节点代码,并基于所述距离当前时间最近的父节点代码回滚至所述分支代码对应的父节点代码;
向所述第一服务器拉取所述分支代码对应的父节点代码。
3.根据权利要求2所述的方法,其特征在于,所述对所述父节点代码和所述分支代码进行编译得到测试脚本,包括:
对所述父节点代码和所述分支代码进行静态代码检查;
若所述静态代码检查通过,则对所述父节点代码和所述分支代码依次进行模型编译、库编译以及脚本编译,得到测试脚本。
4.根据权利要求1所述的方法,其特征在于,所述获取所述测试脚本对应的测试结果,包括:
将所述测试脚本发送至第二服务器,以使得所述第二服务器运行所述测试脚本并生成所述测试脚本对应的测试结果;
向所述第二服务器获取所述测试结果;
和/或,
将所述测试脚本发送至测试终端,以使得所述测试终端运行所述测试脚本并生成所述测试脚本对应的测试结果;
向所述测试终端获取所述测试结果。
5.根据权利要求4所述的方法,其特征在于,所述将所述测试脚本发送至第二服务器,以使得所述第二服务器运行所述测试脚本并生成所述测试脚本对应的测试结果,包括:
将所述测试脚本发送至第二服务器,以使得所述第二服务器构建虚拟硬件平台,基于所述虚拟硬件平台运行所述测试脚本并生成所述测试脚本对应的测试结果;
所述将所述测试脚本发送至测试终端,以使得所述测试终端运行所述测试脚本并生成所述测试脚本对应的测试结果,包括:
将所述测试脚本发送至测试终端,以使得所述测试终端调用硬件接口,基于调用的所述硬件接口运行所述测试脚本并生成所述测试脚本对应的测试结果。
6.根据权利要求2所述的方法,其特征在于,所述若所述测试结果符合测试要求,则将所述分支代码合入所述父节点代码中,包括:
获取所述分支代码对应的测试要求;
若所述测试结果符合所述测试要求,则生成第一测试信息,并将所述分支代码合入所述父节点代码中;
若所述测试结果不符合所述测试要求,则生成第二测试信息。
7.根据权利要求6所述的方法,其特征在于,所述生成第一测试信息之后,还包括:
将所述第一测试信息对应的第一执行日志发送至所述第一服务器,以使得所述第一服务器显示所述第一执行日志;
所述生成第二测试信息之后,还包括:
将所述第二测试信息对应的第二执行日志发送至所述第一服务器,以使得所述第一服务器显示所述第二执行日志并基于所述第二执行日志对所述分支代码进行修复。
8.一种代码测试装置,其特征在于,所述装置包括:
代码获取模块,用于获取待测试的分支代码以及所述分支代码对应的父节点代码;
代码测试模块,用于对所述父节点代码和所述分支代码进行编译得到测试脚本,获取所述测试脚本对应的测试结果;
代码合入模块,用于若所述测试结果符合测试要求,则将所述分支代码合入所述父节点代码中。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的所述方法的步骤。
10.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1~7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010532376.2A CN111767209A (zh) | 2020-06-11 | 2020-06-11 | 代码测试方法、装置、存储介质以及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010532376.2A CN111767209A (zh) | 2020-06-11 | 2020-06-11 | 代码测试方法、装置、存储介质以及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111767209A true CN111767209A (zh) | 2020-10-13 |
Family
ID=72720780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010532376.2A Withdrawn CN111767209A (zh) | 2020-06-11 | 2020-06-11 | 代码测试方法、装置、存储介质以及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767209A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463585A (zh) * | 2020-10-29 | 2021-03-09 | 至誉科技(武汉)有限公司 | 固态硬盘代码的测试方法、系统、存储介质及电子设备 |
CN112817849A (zh) * | 2021-01-28 | 2021-05-18 | 北京达佳互联信息技术有限公司 | 测试数据处理方法、装置、设备及存储介质 |
CN114189546A (zh) * | 2021-12-08 | 2022-03-15 | 浙江吉利控股集团有限公司 | 一种热加载远程测试方法、系统、设备及存储介质 |
CN112817849B (zh) * | 2021-01-28 | 2024-06-04 | 北京达佳互联信息技术有限公司 | 测试数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450933A (zh) * | 2017-08-18 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种软件持续集成方法和系统 |
CN109960643A (zh) * | 2017-12-22 | 2019-07-02 | 网宿科技股份有限公司 | 一种代码测试方法和装置 |
CN110597717A (zh) * | 2019-08-29 | 2019-12-20 | 凡普数字技术有限公司 | 代码测试方法、装置以及存储介质 |
-
2020
- 2020-06-11 CN CN202010532376.2A patent/CN111767209A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450933A (zh) * | 2017-08-18 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种软件持续集成方法和系统 |
CN109960643A (zh) * | 2017-12-22 | 2019-07-02 | 网宿科技股份有限公司 | 一种代码测试方法和装置 |
CN110597717A (zh) * | 2019-08-29 | 2019-12-20 | 凡普数字技术有限公司 | 代码测试方法、装置以及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463585A (zh) * | 2020-10-29 | 2021-03-09 | 至誉科技(武汉)有限公司 | 固态硬盘代码的测试方法、系统、存储介质及电子设备 |
CN112817849A (zh) * | 2021-01-28 | 2021-05-18 | 北京达佳互联信息技术有限公司 | 测试数据处理方法、装置、设备及存储介质 |
CN112817849B (zh) * | 2021-01-28 | 2024-06-04 | 北京达佳互联信息技术有限公司 | 测试数据处理方法、装置、设备及存储介质 |
CN114189546A (zh) * | 2021-12-08 | 2022-03-15 | 浙江吉利控股集团有限公司 | 一种热加载远程测试方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
CN111309343B (zh) | 一种开发部署方法及装置 | |
CN111651366A (zh) | Sdk测试方法、装置、设备及存储介质 | |
CN110674047B (zh) | 软件测试方法、装置及电子设备 | |
CN107562637B (zh) | 一种用于软件测试的方法、设备、系统及存储介质 | |
CN112187585A (zh) | 网络协议测试方法及装置 | |
CN109977012B (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN115454869A (zh) | 界面自动化测试方法、装置、设备及存储介质 | |
CN111767209A (zh) | 代码测试方法、装置、存储介质以及终端 | |
CN112527382A (zh) | 部署流水线引擎系统的方法、持续集成的方法及装置 | |
CN112306857A (zh) | 用于测试应用的方法和装置 | |
CN112988588B (zh) | 客户端软件调试方法、装置、存储介质及电子设备 | |
CN112416746A (zh) | 一种测试用例生成方法、装置、设备及介质 | |
CN114546850A (zh) | 一种埋点的自动化测试方法、系统、装置及存储介质 | |
CN112380118A (zh) | 单元测试方法、装置、介质及电子设备 | |
CN111367791B (zh) | 一种生成测试用例的方法、装置、介质和电子设备 | |
CN113885841A (zh) | 脚本生成的方法、装置、电子设备和可读介质 | |
CN112765018A (zh) | 一种仪器仪表调试系统及方法 | |
WO2024001594A1 (zh) | 算子开发、处理方法、装置、电子设备、系统及存储介质 | |
CN113238930B (zh) | 软件系统的测试方法、装置、终端设备和存储介质 | |
CN109800155B (zh) | 一种基于Probe的QTE联锁应用软件测试方法及装置 | |
CN116302045A (zh) | 信息应用系统的上线方法、装置、存储介质及配置服务器 | |
Bronkhorst et al. | Design Report VEmulate | |
CN115543807A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201013 |
|
WW01 | Invention patent application withdrawn after publication |