CN116737552A - 一种代码覆盖率测试方法、服务器和系统 - Google Patents
一种代码覆盖率测试方法、服务器和系统 Download PDFInfo
- Publication number
- CN116737552A CN116737552A CN202310600884.3A CN202310600884A CN116737552A CN 116737552 A CN116737552 A CN 116737552A CN 202310600884 A CN202310600884 A CN 202310600884A CN 116737552 A CN116737552 A CN 116737552A
- Authority
- CN
- China
- Prior art keywords
- coverage rate
- coverage
- files
- application program
- server
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 154
- 238000000034 method Methods 0.000 claims abstract description 60
- 239000004973 liquid crystal related substance Substances 0.000 claims description 12
- 238000010998 test method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/3676—Test management for coverage analysis
-
- 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/368—Test management for test version control, e.g. updating test cases to a new software version
Abstract
本申请提供一种代码覆盖率测试方法,所述方法包括:测试终端对待测应用程序进行测试,并在测试过程中通过覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将所述覆盖率文件上报给服务器;所述服务器检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;所述服务器将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;所述服务器获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。本申请提供的代码覆盖率测试方法、服务器和系统,可实现对移动端lua应用程序进行代码覆盖率测试,且成本较低。
Description
技术领域
本申请涉及覆盖率测试领域,尤其涉及一种代码覆盖率测试方法、服务器和系统。
背景技术
现有技术中,移动端lua应用程序并无对应的覆盖率测试方案。PC端lua应用程序可以通过在PC端安装luaCov工具来完成覆盖率的采集,luaCov工具的接入仅适用于PC端lua应用程序的覆盖率采集,无法适用于移动端lua应用程序。
随着lua语言在各产品业务上的使用越来越多,为了提升移动端lua应用程序的测试质量及效率,如何在移动端进行lua应用程序的代码覆盖率测试成为必须解决的问题。
发明内容
有鉴于此,本申请提供一种代码覆盖率测试方法,用以对移动端lua应用程序进行代码覆盖率测试。
本申请第一方面提供一种代码覆盖率测试方法,所述方法应用于代码覆盖率测试系统,所述系统包括服务器和至少一个测试终端;每个所述测试终端预先接入有覆盖率工具;所述方法包括:
所述测试终端对待测应用程序进行测试,并在测试过程中通过所述覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将所述覆盖率文件上报给所述服务器;
所述服务器检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;
所述服务器将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
所述服务器获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
可选的,所述将所述N个覆盖率文件进行合并,包括:
针对每个覆盖率文件,将该覆盖率文件转换为指定格式的中间文件;
合并所述中间文件,得到合并后的覆盖率文件。
可选的,所述方法还包括:
所述服务器检测到针对指定内容的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述指定内容对应的M个覆盖率文件;其中,所述指定内容包括指定测试人员或指定团队;
所述服务器基于所述M个覆盖率文件,生成所述指定内容对应的覆盖率结果报告。
可选的,所述基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告,包括:
对比分析所述源码和所述合并后的覆盖率文件,得到代码覆盖率的统计结果;
按照预设生成格式,对所述统计结果进行格式处理,生成所述覆盖率结果报告。
可选的,所述统计结果至少包括:行覆盖率和方法覆盖率。
可选的,所述生成所述目标应用程序的覆盖率结果报告之后,所述方法还包括:
将所述覆盖率结果报告展示给测试人员。
本申请第二方面提供一种代码覆盖率测试方法,所述方法应用于服务器,所述方法包括:
检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;其中,所述覆盖率文件是测试终端对待测应用程序进行测试后获取并上报给本设备的;所述测试终端通过预先接入的覆盖率工具采集并上报所述目标应用程序对应的覆盖率文件;
将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
本申请第三方面提供一种服务器,所述服务器包括获取模块、合并模块和生成模块;其中,
所述获取模块,用于在检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;其中,所述覆盖率文件是测试终端对待测应用程序进行测试后获取并上报给本设备的;所述测试终端通过预先接入的覆盖率工具采集并上报所述目标应用程序对应的覆盖率文件;
所述合并模块,用于将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
所述生成模块,用于获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
本申请第四方面提供一种代码覆盖率测试系统,所述系统包括服务器和至少一个测试终端;每个所述测试终端预先接入有覆盖率工具;其中,
所述测试终端,用于对待测应用程序进行测试,并在测试过程中通过所述覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将所述覆盖率文件上报给所述服务器;
所述服务器,用于在检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;
所述服务器,还用于将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
所述服务器,还用于获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
本申请提供的代码覆盖率测试方法、服务器和系统,测试终端通过对待测应用程序进行测试,并在测试过程中通过覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将采集到的覆盖率文件上报给服务器,并在服务器检测到针对目标应用程序的覆盖率报告生成指令后,服务器通过从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件,并将N个覆盖率文件进行合并,得到合并后的覆盖率文件,进而获取目标应用程序的源码,并基于源码和合并后的覆盖率文件,生成目标应用程序对应的覆盖率结果报告。这样,通过预先接入的覆盖率工具可实现覆盖率文件的采集和上报,通过服务器可基于覆盖率文件生成覆盖率结果报告,实现了对移动端lua应用程序的覆盖率测试,且成本较低。
附图说明
图1为本申请提供的代码覆盖率测试方法实施例一的流程图;
图2为本申请提供的代码覆盖率测试方法实施例二的流程图;
图3为本申请提供的代码覆盖率测试方法实施例三的流程图;
图4为本申请提供的代码覆盖率测试方法实施例四的流程图;
图5为本申请提供的服务器实施例一的结构示意图;
图6为本申请提供的代码覆盖率测试系统实施例一的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请提供一种代码覆盖率测试方法、服务器和系统,用以对移动端lua应用程序进行代码覆盖率测试。
本实施例提供的代码覆盖率测试方法、服务器和系统,测试终端通过待测应用程序进行测试,并在测试过程中通过覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将采集到的覆盖率文件上报给服务器,并在服务器检测到针对目标应用程序的覆盖率报告生成指令后,通过从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件,并将N个覆盖率文件进行合并,得到合并后的覆盖率文件,进而获取目标应用程序的源码,并基于源码和合并后的覆盖率文件,生成目标应用程序对应的覆盖率结果报告。这样,通过预先接入的覆盖率工具可实现覆盖率文件的采集和上报,通过服务器可基于覆盖率文件生成覆盖率结果报告,可实现对移动端lua应用程序的代码覆盖率测试,且成本较低。
图1为本申请提供的代码覆盖率测试方法实施例一的流程图。本实施例提供的方法,应用于代码覆盖率测试系统,所述系统包括服务器和至少一个测试终端,每个所述测试终端预先接入有覆盖率工具。请参照图1,本实施例提供的方法,可以包括:
S101、测试终端对待测应用程序进行测试,并在测试过程中通过所述覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将所述覆盖率文件上报给服务器。
具体的,代码覆盖率测试系统包括服务器和至少一个测试终端;其中,测试终端预先接入有覆盖率工具,任一个测试终端,用于对待测应用程序进行代码覆盖率测试,并在测试过程中,基于预先接入的覆盖率工具采集并上报覆盖率文件。例如,一实施例中,代码覆盖率测试系统可以包括服务器A、测试终端B1、测试终端B2、测试终端B3。其中,测试终端为移动终端,例如,可以是安卓移动终端,也可以是ios移动终端。进一步地,测试终端B1用于对应用程序1进行测试,测试终端B2用于对应用程序2进行测试,测试终端B3用于对应用程序3进行测试,每个测试终端用于对其上的应用程序进行代码覆盖率测试。
需要说明的是,本申请中,待测应用程序可以是基于lua语言编写的应用程序。
进一步地,参见前面的描述,覆盖率工具是预先接入到测试终端的,其用来在测试过程中采集覆盖率文件并且将采集得到的覆盖率文件上报给服务器。具体实现时,覆盖率工具可以包含两部分,一部分是数据采集部分,另一部分是数据上报部分。其中,数据采集部分集成在应用程序对应的源码中,例如,集成在lua应用程序对应的源码中。数据上报部分集成在待测应用程序对应的客户端代码中(客户端代码具体指的是源码编译后,与平台对应的代码。例如,其可以是适用于安卓系统的代码)。例如,结合上面的例子,数据上报部分集成在该lua应用程序对应的安卓客户端中。
需要说明的是,例如,当应用程序为lua应用程序时,可通过lua标准中的debug库提供的sethook方法实现数据采集部分。具体的,sethook方法可以获取当前执行的代码行数,即可以精准定位出错的代码在哪一行。进一步地,在具体实现时,在将数据采集部分接入到lua应用程序对应的源码中时,可配置接入开关,只需要打开开关就可以自动完成数据采集部分的接入。进一步地,在将数据上报部分接入到应用程序对应的客户端代码中时,也可配置接入开关,只需要打开开关就可以自动完成数据上报部分的接入。进一步地,lua应用程序的源码与该lua应用程序对应的客户端代码基于mln桥接,实现覆盖率文件的传输。
需要说明的是,覆盖率文件可以包括如下信息:被测试应用程序的名称、测试的版本号、被测试应用程序中被执行覆盖的代码的行号。
进一步地,测试终端可在一次测试结束后、应用程序冷启动或应用程序压入后台时将覆盖率文件上报给服务器,本实施例中,不对此进行限定。
S102、所述服务器检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件。
具体的,覆盖率报告生成指令是测试人员根据实际需要触发的,进一步地,针对应用程序的覆盖率报告生成指令,用于指示生成该应用程序对应的覆盖率报告。例如,当测试人员执行完某应用程序一整套的测试流程后,该应用程序对应的测试任务已经完成,此时,测试人员会触发针对该应用程序的覆盖率生成指令,以基于该覆盖率生成指令,生成对应该应用程序的覆盖率报告。
结合上面的例子,当覆盖率测试系统包括3个测试终端时,此时,服务器上存储有应用程序1、应用程序2和应用程序3对应的覆盖率文件。例如,一实施例中,服务器检测到针对应用程序1的覆盖率生成指令时,此时,服务器就从已保存的所有覆盖率文件中,找到应用程序1对应的覆盖率文件。
需要说明的是,覆盖率生成指令携带目标应用程序的名称。参见前面的描述,覆盖率文件可以包括被测试应用程序的名称。本步骤中,服务器检测到针对目标应用程序的覆盖率报告生成指令后,可基于该覆盖率报告生成指令携带的目标应用程序名称,从多个覆盖率文件中找到携带该目标应用程序名称的覆盖率文件,进而将查找到的覆盖率文件确定为该目标应用程序对应的覆盖率文件。
需要说明的是,目标应用程序对应的多个覆盖率文件是该应用程序在不同版本下对应的覆盖率文件,是该应用程序在代码迭代的情况下测试得到的覆盖率文件。
S103、所述服务器将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件。
具体的,一实施例中,合并的过程可以是,将在第i测试阶段时收集得到的第i阶段的覆盖率文件与第i-1测试阶段收集得到的覆盖率文件进行合并,直到完成所有测试阶段收集得到的覆盖率文件。
此外,另一实施例中,为合并不同测试阶段收集得到的覆盖率文件,在代码迭代改变的情况下,需要将不同测试阶段收集得到的覆盖率文件与最后一个测试阶段收集得到的覆盖率文件进行比对,重新计算已执行覆盖的代码的行号,再进行合并。有关重新计算已执行覆盖的代码的行号的具体实现原理和实现过程可以参见相关技术中的描述,此处不再赘述。
S104、所述服务器获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
具体的,可从服务器本地或测试终端处获取目标应用程序对应的源码。进一步地,服务器基于所述源码和所述合并后的覆盖率文件生成覆盖率结果报告时,可基于Diff算法实现。有关Diff算法的具体实现原理和实现过程可以参见相关技术中的描述,此处不再赘述。
例如,一实施例中,该步骤的具体实现过程,可以包括:
(1)对比分析所述源码和所述合并后的覆盖率文件,得到代码覆盖率的统计结果。
(2)按照预设生成格式,对所述统计结果进行格式处理,生成所述覆盖率结果报告。
具体的,统计结果可以包括行覆盖率和方法覆盖率。有关计算行覆盖率和方法覆盖率的具体实现原理和实现过程可以参见相关技术中的描述,此处不再赘述。
进一步地,预设生成格式是根据实际需要设定的,本实施例中,不对预设生成格式的具体内容进行限定。有关预设生成格式的具体内容可以参见相关技术中的描述,此处不再赘述。
本实施例提供的代码覆盖率测试方法,测试终端通过待测应用程序进行测试,并在测试过程中通过覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将采集到的覆盖率文件上报给服务器,并在服务器检测到针对目标应用程序的覆盖率报告生成指令后,服务器通过从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件,并将N个覆盖率文件进行合并,得到合并后的覆盖率文件,进而获取目标应用程序的源码,并基于源码和合并后的覆盖率文件,生成目标应用程序对应的覆盖率结果报告。这样,通过预先接入的覆盖率工具可实现覆盖率文件的采集和上报,通过服务器可基于覆盖率文件生成覆盖率结果报告,可实现对移动端lua应用程序的代码覆盖率测试,且成本较低。
图2为本申请提供的代码覆盖率测试方式实施例二的流程图。本实施例提供的方法,应用于代码覆盖率测试系统,所述系统包括服务器和至少一个测试终端,每个所述测试终端预先接入有覆盖率工具。请参照图2,本实施例提供的方法,可以包括:
S201、测试终端对待测应用程序进行测试,并在测试过程中通过所述覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将所述覆盖率文件上报给服务器。
S202、所述服务器检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件。
具体的,有关步骤S201和S202的具体实现过程和实现原理可以参见前面的描述,此处不再赘述。
S203、针对每个覆盖率文件,将该覆盖率文件转换为指定格式的中间文件。
具体的,指定格式是根据实际需要设定的,本实施例中,不对指定格式的具体内容进行限定。例如,一实施例中,指定格式可以是一种预设的标准格式。
本步骤中,通过将覆盖率文件都转换为指定格式,可适用多种语言栈,进而实现多种语言栈后端生成覆盖率结果报告,方便了覆盖率文件的合并与对比。
S204、合并所述中间文件,得到合并后的覆盖率文件。
S205、所述服务器获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
具体的,有关步骤S204和S205的具体实现过程和实现原理可以参见前面的描述,此处不再赘述。
S206、将所述覆盖率结果报告覆盖率结果报告展示给测试人员。
具体的,服务器生成目标应用程序对应的覆盖率结果报告后,可将覆盖率结果报告展示给测试人员,例如,可在本地展示,发送到web端展示,或发送到测试终端展示。本实施例中,不对此进行限定。例如,一实施例中,得到应用程序1的覆盖率结果报告后,可将该覆盖率报告发送到web端进行展示。
本实施例提供的代码覆盖率测试方法,针对每个覆盖率文件,通过将该覆盖率文件转换为指定格式的中间文件,进而合并所述中间文件,得到合并后的覆盖率文件,这样,可实现多种语言栈后端生成覆盖率结果报告,方便了覆盖率文件的合并与对比,进一步地,通过将覆盖率结果报告展示给测试人员,可使得测试人员基于展示的覆盖率结果报告快速了解应用程序测试情况,快速定位应用程序中的错误代码。
图3为本申请提供的代码覆盖率测试方法实施例三的流程图。请参照图3,本实施例提供的方法,在上述实施例的基础上,所述方法包括:
S301、所述服务器检测到针对指定内容的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述指定内容对应的M个覆盖率文件;其中,所述指定内容包括指定测试人员或指定团队。
具体的,指定内容包括指定测试人员或指定团队,这样,可按测试人员、按团队来计算覆盖率结果报告。例如,通过触发针对指定内容的覆盖率报告生成指令,可以指示生成测试人员A对应的覆盖率结果报告,也可以指示生成测试团队B对应的覆盖率结果报告。
需要说明的是,覆盖率文件携带测试人员和/或测试团队的标识。例如,应用程序1是测试人员1开发的,此时,应用程序1对应的覆盖率文件携带测试人员1的标识。再例如,应用程序2是测试团队2开发的,此时,应用程序2对应的覆盖率文件携带测试团队2的标识。
进一步地,覆盖率报告生成指令携带指定内容的标识,此时,可基于指定内容的标识找到该指定内容对应的覆盖率文件。例如,覆盖率报告生成指令用于指示生成测试人员1对应的覆盖率结果报告时,此时,可基于测试人员1的标识,从服务器已保存的所有覆盖率文件中,找到测试人员1对应的覆盖率文件。
S302、所述服务器基于所述M个覆盖率文件,生成所述指定内容对应的覆盖率结果报告。
具体的,有关步骤S302的具体实现过程和实现原理可以参见前面的描述,此处不再赘述。
本实施例提供的代码覆盖率测试方法,服务器检测到针对指定内容的覆盖率报告生成指令后,通过从已接收到的覆盖率文件中获取所述指定内容对应的M个覆盖率文件,进而基于所述M个覆盖率文件,生成所述指定内容对应的覆盖率结果报告。这样,可实现覆盖率测试按测试人员、按团队进行质量评估的能力,可提高分析的全面性。
图4为本申请提供的代码覆盖率测试方法实施例四的流程图。请参照图4,本实施例提供的方法,可以包括:
S401、检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;其中,所述覆盖率文件是测试终端对待测应用程序进行测试后获取并上报给本设备的;所述测试终端通过预先接入的覆盖率工具采集并上报所述目标应用程序对应的覆盖率文件。
S402、将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件。
S403、获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
本实施例提供的方法,应用于服务器,有关步骤S401到S403的具体实现原理和实现过程参见前面的描述,此处不再赘述。
可选的,所述将所述N个覆盖率文件进行合并,包括:
针对每个覆盖率文件,将该覆盖率文件转换为指定格式的中间文件;
合并所述中间文件,得到合并后的覆盖率文件。
可选的,所述方法还包括:
检测到针对指定内容的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述指定内容对应的M个覆盖率文件;其中,所述指定内容包括指定测试人员或指定团队;
基于所述M个覆盖率文件,生成所述指定内容对应的覆盖率结果报告。
可选的,所述基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告,包括:
对比分析所述源码和所述合并后的覆盖率文件,得到代码覆盖率的统计结果;
按照预设生成格式,对所述统计结果进行格式处理,生成所述覆盖率结果报告。
可选的,所述统计结果至少包括:行覆盖率和方法覆盖率。
可选的,所述生成所述目标应用程序的覆盖率结果报告之后,所述方法还包括:
将所述覆盖率结果报告展示给测试人员。
与前述代码覆盖率测试方法的实施例相对应,本申请还提供了服务器和代码覆盖率测试系统的实施例。
图5为本申请提供的服务器实施例一的结构示意图。请参照图5,本实施例提供的服务器,可以包括获取模块510、合并模块520和生成模块530;其中,
所述获取模块510,用于在检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;其中,所述覆盖率文件是测试终端对待测应用程序进行测试后获取并上报给本设备的;所述测试终端通过预先接入的覆盖率工具采集并上报所述目标应用程序对应的覆盖率文件;
所述合并模块520,用于将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
所述生成模块530,用于获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
可选的,所述合并模块520,具体用于针对每个覆盖率文件,将该覆盖率文件转换为指定格式的中间文件,并合并所述中间文件,得到合并后的覆盖率文件。
可选的,所述获取模块510,还用于在检测到针对指定内容的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述指定内容对应的M个覆盖率文件;其中,所述指定内容包括指定测试人员或指定团队;
所述生成模块530,还用于基于所述M个覆盖率文件,生成所述指定内容对应的覆盖率结果报告。
可选的,所述生成模块530,具体用于对比分析所述源码和所述合并后的覆盖率文件,得到代码覆盖率的统计结果,并按照预设生成格式,对所述统计结果进行格式处理,生成所述覆盖率结果报告。
可选的,所述统计结果至少包括:行覆盖率和方法覆盖率。
可选的,所述生成模块530还用于在生成所述目标应用程序的覆盖率结果报告之后,将所述覆盖率结果报告展示给测试人员。
图6为本申请提供的代码覆盖率测试系统实施例一的示意图。请参照图6,本实施例提供的代码覆盖率测试系统,所述系统包括服务器1和至少一个测试终端2;每个所述测试终端2预先接入有覆盖率工具;其中,
测试终端2,用于对待测应用程序进行测试,并在测试过程中通过所述覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将所述覆盖率文件上报给所述服务器;
所述服务器1,用于在检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;
所述服务器1,还用于将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
所述服务器1,还用于获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
可选的,所述服务器1,具体用于针对每个覆盖率文件,将该覆盖率文件转换为指定格式的中间文件,并合并所述中间文件,得到合并后的覆盖率文件;
可选的,所述服务器1,还用于在检测到针对指定内容的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述指定内容对应的M个覆盖率文件;其中,所述指定内容包括指定测试人员或指定团队;
所述服务器1,还用于基于所述M个覆盖率文件,生成所述指定内容对应的覆盖率结果报告。
可选的,所述服务器1,还用于对比分析所述源码和所述合并后的覆盖率文件,得到代码覆盖率的统计结果,并按照预设生成格式,对所述统计结果进行格式处理,生成所述覆盖率结果报告。
可选的,所述统计结果至少包括:行覆盖率和方法覆盖率。
可选的,所述服务器1,还用于在生成所述目标应用程序的覆盖率结果报告之后,将所述覆盖率结果报告展示给测试人员。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种代码覆盖率测试方法,其特征在于,所述方法应用于代码覆盖率测试系统,所述系统包括服务器和至少一个测试终端;每个所述测试终端预先接入有覆盖率工具;所述方法包括:
所述测试终端对待测应用程序进行测试,并在测试过程中通过所述覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将所述覆盖率文件上报给所述服务器;
所述服务器检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;
所述服务器将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
所述服务器获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
2.根据权利要求1所述的方法,其特征在于,所述将所述N个覆盖率文件进行合并,包括:
针对每个覆盖率文件,将该覆盖率文件转换为指定格式的中间文件;
合并所述中间文件,得到合并后的覆盖率文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述服务器检测到针对指定内容的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述指定内容对应的M个覆盖率文件;其中,所述指定内容包括指定测试人员或指定团队;
所述服务器基于所述M个覆盖率文件,生成所述指定内容对应的覆盖率结果报告。
4.根据权利要求1所述的方法,其特征在于,所述基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告,包括:
对比分析所述源码和所述合并后的覆盖率文件,得到代码覆盖率的统计结果;
按照预设生成格式,对所述统计结果进行格式处理,生成所述覆盖率结果报告。
5.根据权利要求4所述的方法,其特征在于,所述统计结果至少包括:行覆盖率和方法覆盖率。
6.根据权利要求1所述的方法,所述生成所述目标应用程序的覆盖率结果报告之后,所述方法还包括:
将所述覆盖率结果报告展示给测试人员。
7.一种代码覆盖率测试方法,其特征在于,所述方法应用于服务器,所述方法包括:
检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;其中,所述覆盖率文件是测试终端对待测应用程序进行测试后获取并上报给本设备的;所述测试终端通过预先接入的覆盖率工具采集并上报所述目标应用程序对应的覆盖率文件;
将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
8.一种服务器,其特征在于,所述服务器包括获取模块、合并模块和生成模块;其中,
所述获取模块,用于在检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;其中,所述覆盖率文件是测试终端对待测应用程序进行测试后获取并上报给本设备的;所述测试终端通过预先接入的覆盖率工具采集并上报所述目标应用程序对应的覆盖率文件;
所述合并模块,用于将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
所述生成模块,用于获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
9.一种代码覆盖率测试系统,其特征在于,所述系统包括服务器和至少一个测试终端;每个所述测试终端预先接入有覆盖率工具;其中,
所述测试终端,用于对待测应用程序进行测试,并在测试过程中通过所述覆盖率工具采集覆盖率文件,以及通过所述覆盖率工具将所述覆盖率文件上报给所述服务器;
所述服务器,用于在检测到针对目标应用程序的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述目标应用程序对应的N个覆盖率文件;
所述服务器,还用于将所述N个覆盖率文件进行合并,得到合并后的覆盖率文件;
所述服务器,还用于获取所述目标应用程序的源码,并基于所述源码和所述合并后的覆盖率文件,生成所述目标应用程序对应的覆盖率结果报告。
10.根据权利要求9所述的系统,其特征在于,所述服务器,还用于在检测到针对指定内容的覆盖率报告生成指令后,从已接收到的覆盖率文件中获取所述指定内容对应的M个覆盖率文件;其中,所述指定内容包括指定测试人员或指定团队;
所述服务器,还用于基于所述M个覆盖率文件,生成所述指定内容对应的覆盖率结果报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310600884.3A CN116737552A (zh) | 2023-05-25 | 2023-05-25 | 一种代码覆盖率测试方法、服务器和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310600884.3A CN116737552A (zh) | 2023-05-25 | 2023-05-25 | 一种代码覆盖率测试方法、服务器和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737552A true CN116737552A (zh) | 2023-09-12 |
Family
ID=87914316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310600884.3A Pending CN116737552A (zh) | 2023-05-25 | 2023-05-25 | 一种代码覆盖率测试方法、服务器和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737552A (zh) |
-
2023
- 2023-05-25 CN CN202310600884.3A patent/CN116737552A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7522884B2 (en) | Apparatus and method for analyzing drive test data for communications system | |
US9064055B2 (en) | Software development assistant method and system | |
WO2011060655A1 (zh) | 软件业务功能覆盖率的统计方法及系统 | |
CN102053906A (zh) | 用于收集程序运行时信息的系统和方法 | |
CN110674048B (zh) | 一种埋点测试特征获取方法及相关装置 | |
KR20070080313A (ko) | 클라이언트 단말로 제공되는 서비스 성능 분석 방법 및시스템 | |
US10467590B2 (en) | Business process optimization and problem resolution | |
CN101706749A (zh) | 基于软件安全缺陷检测的综合处理方法及其功能模块构架 | |
KR102269286B1 (ko) | 어노테이션 자동 진단 시스템 | |
CN106294109B (zh) | 获取缺陷代码的方法及装置 | |
CN116737552A (zh) | 一种代码覆盖率测试方法、服务器和系统 | |
CN113535538A (zh) | 应用全链路自动化测试方法、装置、电子设备和存储介质 | |
CN110688173A (zh) | 一种跨平台界面框架中组件的定位方法、装置及电子设备 | |
KR20170123389A (ko) | 원자력발전소의 인적오류확률 산출 시스템 및 그 방법 | |
US11507495B2 (en) | System and method for test impact analysis of computer programs | |
CN112235145B (zh) | 流量状态检测方法和装置 | |
CN111061644B (zh) | 一种检测并定位异常抛出处理缺陷的方法和装置 | |
CN111737143B (zh) | 一种网页ab测试故障排查方法及系统 | |
CN111104325B (zh) | 压力测试的数据采集分析方法及装置和可读存储介质 | |
CN113282496A (zh) | 接口自动测试方法、装置、设备及存储介质 | |
JP2000056825A (ja) | プラント監視装置 | |
CN111831535A (zh) | 一种测试用例的代码定位方法、装置及计算机存储介质 | |
US20010024489A1 (en) | Testing of telecommunication facilities | |
CN111400193A (zh) | 测试用例生成方法、装置、设备及存储介质 | |
CN116841863A (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 |