CN113626325A - 一种代码迭代更新中的接口测试方法、装置及设备 - Google Patents
一种代码迭代更新中的接口测试方法、装置及设备 Download PDFInfo
- Publication number
- CN113626325A CN113626325A CN202110896748.4A CN202110896748A CN113626325A CN 113626325 A CN113626325 A CN 113626325A CN 202110896748 A CN202110896748 A CN 202110896748A CN 113626325 A CN113626325 A CN 113626325A
- Authority
- CN
- China
- Prior art keywords
- interface
- tested
- file
- code
- test
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 259
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000013507 mapping Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 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/3684—Test management for test design, e.g. generating new test cases
-
- 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
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
技术领域
本申请涉及计算机技术领域,特别涉及一种代码迭代更新中的接口测试方法、装置、设备及可读存储介质。
背景技术
回归测试是指代码迭代更新后,重新进行测试以确认本次修改没有引入错误或导致其他代码产生错误。项目/服务每次迭代更新后,会导致测试范围边界不清晰,测试时要么执行全量测试,要么依赖人工判断哪些代码需要测试哪些代码不需要测试,所以成本高且效率低。
如何提供一种自动化测试方案,在代码迭代更新中实现自动化测试,避免上述缺点,是亟待本领域技术人员解决的问题。
发明内容
本申请的目的是提供一种代码迭代更新中的接口测试方法、装置、设备及可读存储介质,用以解决目前的测试方案在代码迭代更新后,要么执行全量测试,要么依赖人工确定测试范围,导致测试效率较低的问题。其具体方案如下:
第一方面,本申请提供了一种代码迭代更新中的接口测试方法,包括:
在测试过程中,利用代码覆盖率工具对被测服务的可执行文件进行插桩;收集插桩记录,得到插桩文件;
在所述被测服务的代码迭代更新后,获取所述被测服务的增量源代码文件,并生成所述增量源代码文件与所述可执行文件的差异文件;
根据所述插桩文件和所述差异文件,生成增量代码覆盖率报告;根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;
根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试。
可选的,在所述根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试之前,还包括:
生成所述被测服务的各个接口的自动化测试用例,并存储至数据库中;在所述数据库中,通过项目名称和接口地址创建接口与自动化测试用例的映射关系。
可选的,所述根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试,包括:
根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口的接口地址;
获取所述被测服务所属项目的项目名称;根据所述项目名称、所述接口地址以及所述接口与自动化测试用例的映射关系,确定目标自动化测试用例并调用所述目标自动化测试用例对所述未被测试的接口进行测试。
可选的,所述生成所述增量源代码文件与所述可执行文件的差异文件,包括:
通过git的diff功能,生成所述增量源代码文件与所述可执行文件的差异文件。
可选的,所述未被测试的接口包括未被完全测试的接口,所述根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试,包括:
根据所述增量代码覆盖率报告,确定所述被测服务中未被完全测试的接口;
根据所述增量代码覆盖率报告和预先设置的接口与自动化测试用例的映射关系,确定与所述未被完全测试的接口相关联的且未被执行的自动化测试用例,以作为目标自动化测试用例;
调用所述目标自动化测试用例对所述未被完全测试的接口进行测试。
可选的,所述未被测试的接口包括完全未被测试的接口,所述根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试,包括:
根据所述增量代码覆盖率报告,确定所述被测服务中完全未被测试的接口;
根据预先设置的接口与自动化测试用例的映射关系,确定与所述完全未被测试的接口相关联的全部自动化测试用例,以作为目标自动化测试用例;
调用所述目标自动化测试用例对所述完全未被测试的接口进行测试。
可选的,所述在所述被测服务的代码迭代更新后,获取所述被测服务的增量源代码文件,并生成所述增量源代码文件与所述可执行文件的差异文件,包括:
在所述被测服务的代码迭代更新后,判断本次迭代更新是否满足测试条件,其中所述测试条件包括以下任意一项或多项:本次迭代更新的操作包括非删除操作,本次迭代更新的内容包括java代码或非测试代码,本次迭代更新的内容包括关键接口;
若满足,获取所述被测服务的增量源代码文件,并生成所述增量源代码文件与所述可执行文件的差异文件。
第二方面,本申请提供了一种代码迭代更新中的接口测试装置,包括:
插桩模块,用于在测试过程中,利用代码覆盖率工具对被测服务的可执行文件进行插桩;收集插桩记录,得到插桩文件;
差异确定模块,用于在所述被测服务的代码迭代更新后,获取所述被测服务的增量源代码文件,并生成所述增量源代码文件与所述可执行文件的差异文件;
接口确定模块,用于根据所述插桩文件和所述差异文件,生成增量代码覆盖率报告;根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;
测试模块,用于根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试。
第三方面,本申请提供了一种代码迭代更新中的接口测试设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的代码迭代更新中的接口测试方法。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的代码迭代更新中的接口测试方法。
本申请所提供的一种代码迭代更新中的接口测试方法,包括:在测试过程中,利用代码覆盖率工具对被测服务的可执行文件进行插桩;收集插桩记录,得到插桩文件;在被测服务的代码迭代更新后,获取被测服务的增量源代码文件,并生成增量源代码文件与可执行文件的差异文件;根据插桩文件和差异文件,生成增量代码覆盖率报告;根据增量代码覆盖率报告,确定被测服务中未被测试的接口;根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对未被测试的接口进行测试。
可见,该方法在执行测试时利用代码覆盖率工具记录测试进度,得到插桩文件,从插桩文件中可以得知哪些代码已被测试,哪些代码还未测试。在代码迭代更新后,先获取被测服务的增量源代码文件,确定代码变更范围,再根据代码变更范围和插桩文件确定测试范围,从而确定在本次迭代更新后哪些代码有待测试,据此执行自动化测试流程,因此无需进行全量测试也无需人工确定测试范围,提高自动化测试覆盖率。
此外,本申请还提供了一种代码迭代更新中的接口测试装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的代码迭代更新中的接口测试方法实施例一的流程图;
图2为本申请所提供的代码迭代更新中的接口测试方法实施例二的整体流程图;
图3为本申请所提供的代码迭代更新中的接口测试方法实施例二的细化流程图;
图4为本申请所提供的代码迭代更新中的接口测试装置实施例的示意图;
图5为本申请所提供的代码迭代更新中的接口测试设备实施例的示意图。
具体实施方式
本申请的核心是提供一种代码迭代更新中的接口测试方法、装置、设备及可读存储介质,能够在代码迭代更新中自动确定测试范围,无需进行全量测试也无需人工确定测试范围,提高自动化测试覆盖率。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面对本申请提供的代码迭代更新中的接口测试方法实施例一进行介绍,参见图1,实施例一包括:
S11、在测试过程中,利用代码覆盖率工具对被测服务的可执行文件进行插桩;收集插桩记录,得到插桩文件;
具体的,可以选用Jacoco作为代码覆盖率工具,class格式的可执行文件是一种字节码指令集合,可以在java虚拟机上执行,jacoco通过修改可执行文件的字节码来进行代码覆盖率统计。本实施例中,插桩文件记录被测服务的可执行文件的测试进度,如哪些代码行完成测试,哪些代码行还未测试。
S12、在被测服务的代码迭代更新后,获取被测服务的增量源代码文件,并生成增量源代码文件与可执行文件的差异文件;
通过对比增量源代码文件和可执行文件,即可确定本次迭代更新中哪些代码行发生了变更。作为一种具体的实施方式,可以通过git的diff功能,生成增量源代码文件与可执行文件的差异文件
S13、根据插桩文件和所述差异文件,生成增量代码覆盖率报告;根据增量代码覆盖率报告,确定被测服务中未被测试的接口;
增量代码覆盖率报告用于记录经过本次迭代更新后,哪些代码行还有待测试。通过分析增量代码覆盖率报告,即可确定被测服务中还需要进行测试的接口,即上述未被测试的接口。可以理解的是,如果一个接口在本次迭代更新前已经完成测试,且在本次迭代更新中该接口的代码发生了变更,那么该接口属于还需要进行测试的接口。
S14、根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对未被测试的接口进行测试。
本实施例预先建立接口与自动化测试用例的映射关系。具体的,生成被测服务的各个接口的自动化测试用例,并存储至数据库中;在数据库中,通过项目名称和接口地址创建接口与自动化测试用例的映射关系。在确定未被测试的接口之后,即可调用与该接口对应的自动化测试用例(即上述目标自动化测试用例)进行测试。
本实施例提供一种代码迭代更新中的接口测试方法,该方法在执行测试时利用代码覆盖率工具记录测试进度,得到插桩文件,从插桩文件中可以得知哪些代码已被测试,哪些代码还未测试。在代码迭代更新后,先获取被测服务的增量源代码文件,确定代码变更范围,再根据代码变更范围和插桩文件确定测试范围,从而确定在本次迭代更新后哪些代码有待测试,据此执行自动化测试流程,因此无需进行全量测试也无需人工确定测试范围,提高自动化测试覆盖率。
下面开始详细介绍本申请提供的代码迭代更新中的接口测试方法实施例二,实施例二基于前述实施例一实现,并在实施例一的基础上进行了一定程度上的拓展。
具体的,本实施例设置了代码迭代更新的测试条件,只有达到测试条件,才执行后续流程确定经过本次迭代更新后的测试范围。此外,本实施例中,未被测试的接口具体包括完全未被测试的接口和未被完全测试的接口,本实施例对二者做相应的处理。
参见图2,实施例二具体包括:
S21、生成所述被测服务的各个接口的自动化测试用例,并存储至数据库中;在数据库中,通过项目名称和接口地址创建接口与自动化测试用例的映射关系。
S22、在测试过程中,利用代码覆盖率工具对被测服务的可执行文件进行插桩;收集插桩记录,得到插桩文件。
S23在被测服务的代码迭代更新后,判断本次迭代更新是否满足测试条件,若满足,进入S24。其中测试条件包括以下任意一项或多项:本次迭代更新的操作包括非删除操作,本次迭代更新的内容包括java代码或非测试代码,本次迭代更新的内容包括关键接口。
S24、获取被测服务的增量源代码文件,并通过git的diff功能生成增量源代码文件与可执行文件的差异文件。
S25、根据插桩文件和所述差异文件,生成增量代码覆盖率报告;根据增量代码覆盖率报告,确定被测服务中未被测试的接口。
S26、根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对未被测试的接口进行测试。
具体的,确定未被测试的接口的接口地址,确定被测服务所属项目的项目名称。根据项目名称、接口地址以及接口与自动化测试用例的映射关系,调用目标自动化测试用例对未被测试的接口进行测试。
如图3所示,上述S25和S26具体包括以下步骤:
S31、根据增量代码覆盖率报告,确定被测服务中未被测试的接口,其中未被测试的接口包括未被完全测试的接口和完全未被测试的接口;
S32、对于未被完全测试的接口,根据增量代码覆盖率报告和预先设置的接口与自动化测试用例的映射关系,确定与未被完全测试的接口相关联的且未被执行的自动化测试用例,以作为目标自动化测试用例;
S33、对于完全未被测试的接口,根据预先设置的接口与自动化测试用例的映射关系,确定与完全未被测试的接口相关联的全部自动化测试用例,以作为目标自动化测试用例;
S34、调用目标自动化测试用例对未被测试的接口进行测试。
基于上述实施例,下面对实际应用中的具体实施过程进行说明。主要包括三部分:创建自动化用例库,获取代码覆盖率,承接自动化测试。
一、创建自动化用例库
所有自动化用例均保存在数据库中,包括请求头、参数、断言、项目名称、接口地址等。在数据库中,记录接口与自动化测试用例的映射关系,具体通过项目名称和接口地址进行映射,每个接口对应多个自动化测试用例。
二、获取代码覆盖率
步骤1、将代码覆盖率工具部署至被测服务,具体将jacoco的jacocoagent.jar包部署至被测服务上。在测试过程中动态收集插桩记录,并保存于exec格式的插桩文件中,插桩文件用于记录被测服务的可执行文件的测试进度。
步骤2、在代码迭代更新时,获取增量源代码文件(.java文件),比对增量源代码文件和被测服务部署的可执行文件(.class)文件,得到到差异文件,差异文件用于记录相较于可执行文件本次迭代更新中哪些代码发生变更。
具体的,拉取主干代码并合并至分支,通过git的diff功能找出前后两个版本代码的差异点,并分析差异点形成可量化的差异范围,得到差异文件。实际应用中,可以通过python代码实现找出差异,在本实施例中主要关心接口代码。
值得一提的是,不是每次迭代更新都有必要重新测试。例如,如果本次迭代更新只有删除操作,也就是对源代码的变更仅仅是删除操作,那么测试的必要性较低;如果源代码中发生变更的内容为非java代码或者测试代码,如变更的内容是代码注释,则测试的必要性较低;如果源代码中发生变化的内容为特定的接口或模块,如预先指定的不关心的接口,则测试的必要性较低。
步骤3、将差异文件与插桩文件做对比,得到增量代码覆盖率报告,该报告表明本次迭代更新后哪些代码行未被测试。通过分析该报告,确定未被测试的接口。
实际应用中,一个接口可能对应多个自动化测试用例,而在测试过程中,可能存在以下情况:某个接口的部分自动化测试用例已经执行,但另一部分自动化测试用例还未执行,本实施例将这种接口称为未被完全测试的接口,相应的,如果一个接口的全部自动化测试用例均未执行,则称为完全未被测试的接口。本实施例中,根据增量代码覆盖率报告确定的未被测试的接口包括未被完全测试的接口和完全未被测试的接口。
对于未被完全测试的接口,可以根据增量代码覆盖率报告确定该接口对应的自动化测试用例中,哪些自动化测试用例已经执行,哪些自动化测试用例未被执行,本实施例将未被执行的自动化测试用例称为目标自动化测试用例。
步骤4、判断未被测试的接口地址是否存在,若存在则通知自动化框架从测试脚本库(以接口地址为键进行存储)中加载脚本并执行,不存在则提示接口不存在。
具体的,本实施例中未测试的接口包括完全未被测试的接口和未被完全测试的接口,对于完全未被测试的接口,在测试过程中,直接调用该接口对应的全部自动化测试用例进行测试接口;对于未被完全测试的接口,还需要进一步确定该接口的哪些自动化测试用例还未执行,然后调用这些自动化测试用例进行测试。
三、承接自动化测试
测试框架判断本次推送的未被测试的接口地址是否存在于测试用例库中,存在则继续下一步,不存在则提示测试用例已全部执行。测试框架根据项目名称和接口地址去获取设置测试用例库中的用例进行组装执行。执行完成后重新调用jacoco获取代码覆盖率,循环往复,直至用例库中的用例被调用完或覆盖率达到预设标准。
下面对本申请实施例提供的代码迭代更新中的接口测试装置进行介绍,下文描述的代码迭代更新中的接口测试装置与上文描述的代码迭代更新中的接口测试方法可相互对应参照。
如图4所示,本实施例的代码迭代更新中的接口测试装置,包括:
插桩模块41,用于在测试过程中,利用代码覆盖率工具对被测服务的可执行文件进行插桩;收集插桩记录,得到插桩文件;
差异确定模块42,用于在被测服务的代码迭代更新后,获取被测服务的增量源代码文件,并生成增量源代码文件与可执行文件的差异文件;
接口确定模块43,用于根据插桩文件和差异文件,生成增量代码覆盖率报告;根据增量代码覆盖率报告,确定被测服务中未被测试的接口;
测试模块44,用于根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对未被测试的接口进行测试。
本实施例的代码迭代更新中的接口测试装置用于实现前述的代码迭代更新中的接口测试方法,因此该装置的具体实施方式可见前文中的代码迭代更新中的接口测试方法的实施例部分,这里不再赘述。
此外,本申请还提供了一种代码迭代更新中的接口测试设备,如图5所示,包括:
存储器100:用于存储计算机程序;
处理器200:用于执行所述计算机程序,以实现如上文所述的代码迭代更新中的接口测试方法。
最后,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的代码迭代更新中的接口测试方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种代码迭代更新中的接口测试方法,其特征在于,包括:
在测试过程中,利用代码覆盖率工具对被测服务的可执行文件进行插桩;收集插桩记录,得到插桩文件;
在所述被测服务的代码迭代更新后,获取所述被测服务的增量源代码文件,并生成所述增量源代码文件与所述可执行文件的差异文件;
根据所述插桩文件和所述差异文件,生成增量代码覆盖率报告;根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;
根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试。
2.如权利要求1所述的方法,其特征在于,在所述根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试之前,还包括:
生成所述被测服务的各个接口的自动化测试用例,并存储至数据库中;在所述数据库中,通过项目名称和接口地址创建接口与自动化测试用例的映射关系。
3.如权利要求2所述的方法,其特征在于,所述根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试,包括:
根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口的接口地址;
获取所述被测服务所属项目的项目名称;根据所述项目名称、所述接口地址以及所述接口与自动化测试用例的映射关系,确定目标自动化测试用例并调用所述目标自动化测试用例对所述未被测试的接口进行测试。
4.如权利要求1所述的方法,其特征在于,所述生成所述增量源代码文件与所述可执行文件的差异文件,包括:
通过git的diff功能,生成所述增量源代码文件与所述可执行文件的差异文件。
5.如权利要求1所述的方法,其特征在于,所述未被测试的接口包括未被完全测试的接口,所述根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试,包括:
根据所述增量代码覆盖率报告,确定所述被测服务中未被完全测试的接口;
根据所述增量代码覆盖率报告和预先设置的接口与自动化测试用例的映射关系,确定与所述未被完全测试的接口相关联的且未被执行的自动化测试用例,以作为目标自动化测试用例;
调用所述目标自动化测试用例对所述未被完全测试的接口进行测试。
6.如权利要求1所述的方法,其特征在于,所述未被测试的接口包括完全未被测试的接口,所述根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试,包括:
根据所述增量代码覆盖率报告,确定所述被测服务中完全未被测试的接口;
根据预先设置的接口与自动化测试用例的映射关系,确定与所述完全未被测试的接口相关联的全部自动化测试用例,以作为目标自动化测试用例;
调用所述目标自动化测试用例对所述完全未被测试的接口进行测试。
7.如权利要求1至6任意一项所述的方法,其特征在于,所述在所述被测服务的代码迭代更新后,获取所述被测服务的增量源代码文件,并生成所述增量源代码文件与所述可执行文件的差异文件,包括:
在所述被测服务的代码迭代更新后,判断本次迭代更新是否满足测试条件,其中所述测试条件包括以下任意一项或多项:本次迭代更新的操作包括非删除操作,本次迭代更新的内容包括java代码或非测试代码,本次迭代更新的内容包括关键接口;
若满足,获取所述被测服务的增量源代码文件,并生成所述增量源代码文件与所述可执行文件的差异文件。
8.一种代码迭代更新中的接口测试装置,其特征在于,包括:
插桩模块,用于在测试过程中,利用代码覆盖率工具对被测服务的可执行文件进行插桩;收集插桩记录,得到插桩文件;
差异确定模块,用于在所述被测服务的代码迭代更新后,获取所述被测服务的增量源代码文件,并生成所述增量源代码文件与所述可执行文件的差异文件;
接口确定模块,用于根据所述插桩文件和所述差异文件,生成增量代码覆盖率报告;根据所述增量代码覆盖率报告,确定所述被测服务中未被测试的接口;
测试模块,用于根据预先设置的接口与自动化测试用例的映射关系,调用目标自动化测试用例对所述未被测试的接口进行测试。
9.一种代码迭代更新中的接口测试设备,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如权利要求1至7任意一项所述的代码迭代更新中的接口测试方法。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1至7任意一项所述的代码迭代更新中的接口测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110896748.4A CN113626325B (zh) | 2021-08-05 | 2021-08-05 | 一种代码迭代更新中的接口测试方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110896748.4A CN113626325B (zh) | 2021-08-05 | 2021-08-05 | 一种代码迭代更新中的接口测试方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626325A true CN113626325A (zh) | 2021-11-09 |
CN113626325B CN113626325B (zh) | 2024-06-21 |
Family
ID=78382969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110896748.4A Active CN113626325B (zh) | 2021-08-05 | 2021-08-05 | 一种代码迭代更新中的接口测试方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626325B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676068A (zh) * | 2022-05-30 | 2022-06-28 | 云账户技术(天津)有限公司 | 代码覆盖率统计方法、系统、网络设备和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023580A (en) * | 1996-07-03 | 2000-02-08 | Objectswitch Corporation | Apparatus and method for testing computer systems |
CN103699385A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种代码持续集成的方法 |
CN106528399A (zh) * | 2015-09-15 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种测试用例确定方法及装置 |
CN106557413A (zh) * | 2015-09-25 | 2017-04-05 | 伊姆西公司 | 基于代码覆盖率获取测试用例的方法和设备 |
CN109240911A (zh) * | 2018-08-13 | 2019-01-18 | 腾讯科技(北京)有限公司 | 精准测试方法、装置和计算机设备 |
US20190196952A1 (en) * | 2017-12-21 | 2019-06-27 | Verizon Patent And Licensing Inc. | Systems and methods using artificial intelligence to identify, test, and verify system modifications |
CN110147317A (zh) * | 2019-04-19 | 2019-08-20 | 平安普惠企业管理有限公司 | 代码测试方法及装置、电子设备和存储介质 |
CN111209217A (zh) * | 2020-03-12 | 2020-05-29 | 苏州浪潮智能科技有限公司 | 系统软件功能测试方法、装置、设备及存储介质 |
CN111831564A (zh) * | 2020-07-09 | 2020-10-27 | 北京齐尔布莱特科技有限公司 | 一种回归测试方法、装置及计算设备 |
CN112579475A (zh) * | 2020-12-31 | 2021-03-30 | 平安银行股份有限公司 | 代码测试方法、装置、设备及可读存储介质 |
CN112817865A (zh) * | 2021-02-24 | 2021-05-18 | 福建天泉教育科技有限公司 | 一种基于组件化分布式系统的覆盖精准测试方法及其系统 |
-
2021
- 2021-08-05 CN CN202110896748.4A patent/CN113626325B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6023580A (en) * | 1996-07-03 | 2000-02-08 | Objectswitch Corporation | Apparatus and method for testing computer systems |
CN103699385A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种代码持续集成的方法 |
CN106528399A (zh) * | 2015-09-15 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种测试用例确定方法及装置 |
CN106557413A (zh) * | 2015-09-25 | 2017-04-05 | 伊姆西公司 | 基于代码覆盖率获取测试用例的方法和设备 |
US20190196952A1 (en) * | 2017-12-21 | 2019-06-27 | Verizon Patent And Licensing Inc. | Systems and methods using artificial intelligence to identify, test, and verify system modifications |
CN109240911A (zh) * | 2018-08-13 | 2019-01-18 | 腾讯科技(北京)有限公司 | 精准测试方法、装置和计算机设备 |
CN110147317A (zh) * | 2019-04-19 | 2019-08-20 | 平安普惠企业管理有限公司 | 代码测试方法及装置、电子设备和存储介质 |
CN111209217A (zh) * | 2020-03-12 | 2020-05-29 | 苏州浪潮智能科技有限公司 | 系统软件功能测试方法、装置、设备及存储介质 |
CN111831564A (zh) * | 2020-07-09 | 2020-10-27 | 北京齐尔布莱特科技有限公司 | 一种回归测试方法、装置及计算设备 |
CN112579475A (zh) * | 2020-12-31 | 2021-03-30 | 平安银行股份有限公司 | 代码测试方法、装置、设备及可读存储介质 |
CN112817865A (zh) * | 2021-02-24 | 2021-05-18 | 福建天泉教育科技有限公司 | 一种基于组件化分布式系统的覆盖精准测试方法及其系统 |
Non-Patent Citations (6)
Title |
---|
FRECHETTE N等: "Regression test reduction for object-oriented software: A control call graph based technique and associated tool", 《ISRN SOTWARE ENGINEERING》, pages 1 - 11 * |
ZHWADEZH: "代码覆盖率", pages 1 - 7, Retrieved from the Internet <URL:https:/blog.csdn.net/zhwadezh/article/details/79309941> * |
ZNI.FENG: ""代码变更覆盖率"在后端测试中的实践", pages 1 - 5, Retrieved from the Internet <URL:https://www.cnblogs.com/znicy/p/9948607.html> * |
冯文亮: "精准测试在商业银行的研究与实践", 《金融电子化》, pages 74 - 76 * |
周海旭;: "面向回归测试的代码变更影响度量模型", 《计算机系统应用》, no. 05, pages 270 - 274 * |
贾鑫等: "基于版本变更的Android自动化白盒测试", 《陕西省通信学会2016年学术年会论文集》, pages 187 - 191 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676068A (zh) * | 2022-05-30 | 2022-06-28 | 云账户技术(天津)有限公司 | 代码覆盖率统计方法、系统、网络设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113626325B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102736978B (zh) | 一种检测应用程序的安装状态的方法及装置 | |
JP5213671B2 (ja) | テストケースの選択方法及び選択システム | |
CN107577597B (zh) | 安装包自动化测试方法、装置、设备和存储介质 | |
CN110688358B (zh) | 一种日志收集方法、装置、设备及可读存储介质 | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN113568839A (zh) | 软件测试和统计测试覆盖率的方法、装置、设备及介质 | |
CN111858292A (zh) | 测试用例的筛选方法、筛选系统、计算机设备及存储介质 | |
US8327189B1 (en) | Diagnosing an incident on a computer system using a diagnostics analyzer database | |
CN105095074A (zh) | 配置文件的升级测试方法和装置 | |
CN113626325A (zh) | 一种代码迭代更新中的接口测试方法、装置及设备 | |
CN110096442B (zh) | 代码调试方法、用户设备、存储介质及装置 | |
CN111400171B (zh) | 一种接口测试方法、系统、装置及可读存储介质 | |
CN110147313B (zh) | 一种日志输出方法及装置 | |
CN107273745B (zh) | 一种动态链接库形式的恶意代码的动态分析方法 | |
CN107102938B (zh) | 测试脚本的更新方法及装置 | |
JP7318704B2 (ja) | テスト装置、テスト方法及びプログラム | |
CN111666200A (zh) | 一种pc软件冷启动耗时的测试方法及终端 | |
CN107357701B (zh) | 一种分布式场景下sas信号测试方法及装置 | |
CN115269443A (zh) | 软件缺陷自动定位测试方法及系统 | |
CN110795338B (zh) | 一种基于前后端交互的自动化测试方法、装置及电子设备 | |
CN114138662A (zh) | 一种基于上下文的移动应用执行序列约减方法 | |
CN114237976A (zh) | 一种数据获取方法及装置 | |
CN113010431A (zh) | Java单元测试用例生成方法及装置 | |
CN111143229A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |