CN110888817B - 代码覆盖率报告的生成方法、装置和可读存储介质 - Google Patents
代码覆盖率报告的生成方法、装置和可读存储介质 Download PDFInfo
- Publication number
- CN110888817B CN110888817B CN201911314143.9A CN201911314143A CN110888817B CN 110888817 B CN110888817 B CN 110888817B CN 201911314143 A CN201911314143 A CN 201911314143A CN 110888817 B CN110888817 B CN 110888817B
- Authority
- CN
- China
- Prior art keywords
- code coverage
- coverage rate
- code
- report
- generating
- 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
Links
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/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)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种代码覆盖率报告的生成方法、装置和可读存储介质,所述代码覆盖率报告的生成方法包括如下步骤:服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件,并缓存应用程序的源码数据以及二进制文件,从而根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告,即本方案通过缓存的源码数据以及二进制文件结合代码覆盖率数据文件生成代码覆盖率报告,不需要从庞大的代码库中拉取当前应用程序的源码数据和二进制文件,以提高报告生成效率。
Description
技术领域
本发明涉及软件领域,特别涉及一种代码覆盖率报告的生成方法、装置和可读存储介质。
背景技术
代码覆盖率(code coverage)是反映测试用例对被测程序覆盖程度的重要指标,也是衡量测试完整性的一个参考值。无论是单元测试、API(ApplicationProgramInterface,应用程序接口)测试还是功能性测试,最终都是调用了程序的代码。测试结束后,通过代码覆盖率数据,可以知道测试是否充分或者哪部分代码没有被执行,进而可以指导开发者或测试者设计能够增加覆盖率的测试用例。
然而,目前生成覆盖率报告需要将Jacoco集成到第三方构建工具,在项目构建中做相应的环境配置。对于庞大的项目来说,在生成代码覆盖率报告时,一般直接拉取代码库中该项目的源码和代码,由于代码库中源码和代码的数据比较大,导致拉取的速度慢且时间长,从而使得代码覆盖率报告生成效率较低,针对这部分的优化可以加速覆盖率数据统计速度。
发明内容
本发明的主要目的是提供一种代码覆盖率报告的生成方法、装置和可读存储介质,旨在提高覆盖率报告生成效率。
为实现上述目的,本发明提供一种代码覆盖率报告的生成方法,所述代码覆盖率报告的生成方法包括:
服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件,并缓存应用程序的源码数据以及二进制文件;
根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告。
进一步地,所述服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件的步骤之前,还包括:
在接收到代码覆盖率报告的生成指令时,所述服务器向所述应用端发送连接请求指令;
接收到所述应用端的连接请求指令的响应信息后,执行所述服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件的步骤。
进一步地,在得到代码覆盖率数据文件之后,所述代码覆盖率报告的生成方法还包括:
将所述代码覆盖率数据文件存储至预设存储位置。
进一步地,所述缓存应用程序的源码数据以及二进制文件的步骤之后,所述代码覆盖率报告的生成方法还包括:
遍历所述二进制文件中所有类的信息;
在所述类的信息满足预设条件时,执行根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告的步骤。
进一步地,所述遍历所述二进制文件中所有类的信息的步骤之后,所述代码覆盖率报告的生成方法还包括:
在所述类的信息满足所述预设条件时,在所述源码数据中获取所述类的信息;
在所述源码数据中存在所述类的信息时,执行根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告的步骤。
进一步地,所述遍历所述二进制文件中所有类的信息的步骤之后,还包括:
在所述类的信息不满足预设条件时,所述代码覆盖率报告不展示所述类的信息。
进一步地,所述代码覆盖率包括下列至少之一:指令覆盖率、分支覆盖率、行覆盖率、方法覆盖率以及类覆盖率。
此外,为实现上述目的,本发明还提出一种代码覆盖率报告的生成装置,所述代码覆盖率报告的生成装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码覆盖率报告的生成程序,所述代码覆盖率报告的生成程序被所述处理器执行时实现如以上所述的代码覆盖率报告的生成方法的步骤。
此外,为实现上述目的,本发明还提出一种可读存储介质,所述可读存储介质上存储有代码覆盖率报告的生成程序,所述代码覆盖率报告的生成程序被处理器执行时实现如以上所述的代码覆盖率报告的生成方法的步骤。
本发明提出的代码覆盖率报告的生成方法、装置和可读存储介质,所述代码覆盖率报告的生成方法包括如下步骤:服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件,并缓存应用程序的源码数据以及二进制文件,从而根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告,即本方案通过缓存的源码数据以及二进制文件结合代码覆盖率数据文件生成代码覆盖率报告,不需要从庞大的代码库中拉取当前应用程序的源码数据和二进制文件,以提高报告生成效率。
附图说明
为了更清楚地说明本发明实施例或示例性中的技术方案,下面将对实施例或示例性描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以按照这些附图示出的获得其他的附图。
图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明代码覆盖率报告的生成方法第一实施例的流程示意图;
图3为本发明代码覆盖率报告的生成方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的终端的硬件运行环境示意图。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard)、遥控器,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如存储器(non-volatile memory)),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
上述通信总线1002可以是外设部件互连标准(PCI,PeripheralComponentInterconnect)总线或扩展工业标准结构(EISA,Extended IndustryStandardArchitecture)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信总线1002用于上述电子设备与其他设备之间的通信。
存储器1005可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器1005还可以是至少一个位于远离前述处理器1001的存储装置。
上述的处理器1001可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(ApplicationSpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本领域技术人员可以理解,图1中示出的终端的结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及代码覆盖率报告的生成程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的代码覆盖率报告的生成程序,并执行以下操作:
服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件,并缓存应用程序的源码数据以及二进制文件;
根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告。
进一步地,处理器1001可以调用存储器1005中存储的代码覆盖率报告的生成程序,还执行以下操作:
在接收到代码覆盖率报告的生成指令时,所述服务器向所述应用端发送连接请求指令;
接收到所述应用端的连接请求指令的响应信息后,执行所述服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件的步骤。
进一步地,处理器1001可以调用存储器1005中存储的代码覆盖率报告的生成程序,还执行以下操作:
将所述代码覆盖率数据文件存储至预设存储位置。
进一步地,处理器1001可以调用存储器1005中存储的代码覆盖率报告的生成程序,还执行以下操作:
遍历所述二进制文件中所有类的信息;
在所述类的信息满足预设条件时,执行根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告的步骤。
进一步地,处理器1001可以调用存储器1005中存储的代码覆盖率报告的生成程序,还执行以下操作:
在所述类的信息满足所述预设条件时,在所述源码数据中获取所述类的信息;
在所述源码数据中存在所述类的信息时,执行根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告的步骤。
进一步地,处理器1001可以调用存储器1005中存储的代码覆盖率报告的生成程序,还执行以下操作:
在所述类的信息不满足预设条件时,所述代码覆盖率报告不展示所述类的信息。
进一步地,处理器1001可以调用存储器1005中存储的代码覆盖率报告的生成程序,还执行以下操作:
所述代码覆盖率包括下列至少之一:指令覆盖率、分支覆盖率、行覆盖率、方法覆盖率以及类覆盖率。
本发明提供一种代码覆盖率报告的生成方法。
参照图2,图2为本发明代码覆盖率报告的生成方法第一实施例的流程示意图。
本实施例提出一种代码覆盖率报告的生成方法,该代码覆盖率报告的生成方法包括:
S10、服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件,并缓存应用程序的源码数据以及二进制文件;
S20、根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告。
在一实施例中,服务器提供了一种代码覆盖率工具,上述代码覆盖率工具可选为Jacoco工具。其中,上述Jacoco工具集成有代码覆盖率数据合并功能和代码覆盖率报告生成功能,即服务器通过Jacoco工具获取应用端在应用程序的运行过程中的代码覆盖率数据文件,本发明实施例提供了一种可选的方案,在该方案中,可以获取资源路径配置文件,从资源路径配置文件中查找应用端在应用程序的运行过程中的代码覆盖率数据文件的路径信息,随后根据查找到的路径信息,对应获取代码覆盖率数据文件。可选地,本实施例通过Jacoco工具的代码覆盖率报告生成功能生成应用程序的代码覆盖率报告。
可选地,所述代码覆盖率数据文件为为运行时覆盖率数据文件,即为exec文件,用于jacoco工具获取探针信息。
进一步地,在获取到代码覆盖率数据文件后,服务器判断存储器中是否存储当前运行的应用程序的源码数据以及二进制文件,若没有存储当前运行的应用程序的源码数据以及二进制文件,则缓存当前运行的应用程序的源码数据以及二进制文件并保存至存储器中,以便下次可以直接使用;若储当前运行的应用程序的源码数据以及二进制文件,从存储器中拉取当前运行的应用程序的源码数据以及二进制文件,此时,不需要从代码库中拉取应用程序的源码数据以及二进制文件,以加快服务器的处理速度。其中,源码数据为应用程序的源代码,二进制文件为应用程序的.class文件。可选地,所述二进制文件用于配合代码覆盖率数据文件,并对所述代码覆盖率数据文件中被覆盖代码进行定位;所述源码数据为用于在生成代码覆盖率报告时,对代码进行着色。
进一步地,在得到代码覆盖率数据文件之后,将所述代码覆盖率数据文件存储至预设存储位置,以便后续生成代码覆盖率报告时读取代码覆盖率数据文件,其中,预设存储位置位于存储器中,且可以在代码覆盖率工具的相关函数中进行设置,从而省去这些不必要的配置,简化了配置流程。其中,本实施例的存储器可以为服务器的磁盘。
进一步地,由于代码覆盖率工具具有代码覆盖率报告生成功能,即本实施例在获取所述代码覆盖率数据文件后,查找存储器中是否已经缓存当前运行应用程序的所述源码数据以及所述二进制文件,在存储器中已经缓存当前运行应用程序的所述源码数据以及所述二进制文件后,通过代码覆盖率工具根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件生成代码覆盖率报告。其中,代码覆盖率包括下列至少之一:指令覆盖率、分支覆盖率、行覆盖率、方法覆盖率以及类覆盖率,本发明不限于此。
可选地,本实施例的代码覆盖率报告的生成方法还可以用于生成差异数据的差异覆盖率,其中,差异数据为应用程序的当前运行代码与应用程序的原始代码之间的差异代码,即本实施例中采用多线程技术对应用程序的当前运行代码与应用程序的原始代码进行分析,以获得差异数据,并通过代码覆盖率工具根据获得的差异数据生成差异覆盖率数据文件,以拉取存储器中应用程序对应差异数据部分的源码数据以及二进制文件,并根据差异覆盖率数据文件、差异数据部分的源码数据以及二进制文件生成差异覆盖率报告。
进一步地,在所述缓存应用程序的源码数据以及二进制文件的步骤之后,需要对二进制文件中的所有类文件进行判断,即遍历所述二进制文件中所有类的信息,并判断所述类的信息是否满足预设条件,在所述类的信息是否满足预设条件时,执行S20步骤,即根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告,且所述代码覆盖率报告展示所述类的信息。其中,预设条件为所述类的信息中是否存在不需要统计的类,若所述类的信息中不存在不需要统计的类,则判定所述类的信息满足预设条件,此时,执行S20步骤;若所述类的信息存在不需要统计的类,则判定所述类的信息不满足预设条件,仍然执行S20步骤,但此时所述代码覆盖率报告不展示所述类的信息,即根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件生成代码覆盖率报告中不包含该类的信息。
进一步地,判定所述类的信息满足预设条件时,在所述源码数据中获取所述类的信息;若所述源码数据中存在所述类的信息时,则判定该源码数据与所述二进制文件对应,此时,执行S20步骤,即根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告。具体地,存储器中预存的源码数据中包括该应用程序的所有类,即所述源码数据中可以直接查找是否存在所述类的信息对应的类。
在本发明的实施例中,上述代码覆盖率报告的生成方法包括如下步骤:服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件,并缓存应用程序的源码数据以及二进制文件,从而根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告,即本方案通过缓存的源码数据以及二进制文件结合代码覆盖率数据文件生成代码覆盖率报告,不需要从庞大的代码库中拉取当前应用程序的源码数据和二进制文件,以提高报告生成效率。
进一步地,参照图3,基于第一实施例提出本发明第二实施例,在本实施例中,所述服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件的步骤之前,所述代码覆盖率报告的生成方法还包括:
S30,在接收到代码覆盖率报告的生成指令时,所述服务器向所述应用端发送连接请求指令;
接收到所述应用端的连接请求指令的响应信息后,执行S10步骤。
在一实施例中,服务器接收到代码覆盖率报告的生成指令时,所述服务器会向所述应用端发送连接请求指令。其中,代码覆盖率报告的生成指令可以通过用户通过程序触发,比如,用户通过程序将代码覆盖率报告的生成指令发送至服务器中,当服务器接收到该代码覆盖率报告的生成指令时,先判断服务器与待测应用端是否有连接关系,当服务器与待测应用端无连接关系时,所述服务器会向所述应用端发送连接请求指令,所述应用端接收到连接请求指令后产生一个响应信号,并发送至服务器,此时,服务器接收到所述应用端的连接请求指令的响应信息后,所述服务器建立与所述应用端的连接。
进一步地,所述服务器与所述应用端的连接后,执行S10步骤,即服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件,在获取到代码覆盖率数据文件,服务器判断存储器中是否缓存应用程序的源码数据以及二进制文件,若无缓存,则进行缓存操作;若已缓存,则服务器不再缓存应用程序的源码数据以及二进制文件。
在本发明的实施例中,上述代码覆盖率报告的生成方法包括如下步骤:服务器在接收到代码覆盖率报告的生成指令时,所述服务器向所述应用端发送连接请求指令,并在接收到所述应用端的连接请求指令的响应信息后获取应用端在应用程序的运行过程中的代码覆盖率数据文件,并缓存应用程序的源码数据以及二进制文件,从而根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告,即本方案通过缓存的源码数据以及二进制文件结合代码覆盖率数据文件生成代码覆盖率报告,不需要从庞大的代码库中拉取当前应用程序的源码数据和二进制文件,以提高报告生成效率。
本发明还提出一种代码覆盖率报告的生成装置,所述代码覆盖率报告的生成装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码覆盖率报告的生成程序,所述代码覆盖率报告的生成程序被所述处理器执行时实现如以上实施例所述的代码覆盖率报告的生成方法的步骤。
本发明还提出一种可读存储介质,该可读存储介质上存储有代码覆盖率报告的生成程序,所述代码覆盖率报告的生成程序被处理器执行时实现如以上任一实施例所述的代码覆盖率报告的生成方法的步骤。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,云端服务器,或者网络设备等)执行本发明各个实施例的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种代码覆盖率报告的生成方法,其特征在于,所述代码覆盖率报告的生成方法包括:
服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件,并缓存应用程序的源码数据以及二进制文件;
根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告;
所述代码覆盖率数据文件用于jacoco工具获取探针信息,所述二进制文件为应用程序的.class文件,用于配合所述代码覆盖率数据文件,并对所述代码覆盖率数据文件中被覆盖的代码进行定位,所述源码数据为用于在生成所述代码覆盖率报告时,对所述代码进行着色;
所述服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件的步骤之后,还包括:
服务器判断存储器中是否存储当前运行的应用程序的源码数据以及二进制文件;
若否,则缓存所述源码数据以及所述二进制文件至所述存储器;
若是,则从所述存储器中获取所述源码数据以及所述二进制文件。
2.如权利要求1所述的代码覆盖率报告的生成方法,其特征在于,所述服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件的步骤之前,还包括:
在接收到代码覆盖率报告的生成指令时,所述服务器向所述应用端发送连接请求指令;
接收到所述应用端的连接请求指令的响应信息后,执行所述服务器获取应用端在应用程序的运行过程中的代码覆盖率数据文件的步骤。
3.如权利要求1所述的代码覆盖率报告的生成方法,其特征在于,在得到代码覆盖率数据文件之后,所述代码覆盖率报告的生成方法还包括:
将所述代码覆盖率数据文件存储至预设存储位置。
4.如权利要求1所述的代码覆盖率报告的生成方法,其特征在于,所述缓存应用程序的源码数据以及二进制文件的步骤之后,所述代码覆盖率报告的生成方法还包括:
遍历所述二进制文件中所有类的信息;
在所述类的信息满足预设条件时,执行根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告的步骤。
5.如权利要求4所述的代码覆盖率报告的生成方法,其特征在于,所述遍历所述二进制文件中所有类的信息的步骤之后,所述代码覆盖率报告的生成方法还包括:
在所述类的信息满足所述预设条件时,在所述源码数据中获取所述类的信息;
在所述源码数据中存在所述类的信息时,执行根据所述代码覆盖率数据文件、所述源码数据以及所述二进制文件,生成代码覆盖率报告的步骤。
6.如权利要求4所述的代码覆盖率报告的生成方法,其特征在于,所述遍历所述二进制文件中所有类的信息的步骤之后,还包括:
在所述类的信息不满足预设条件时,所述代码覆盖率报告不展示所述类的信息。
7.如权利要求1~6任一项所述的代码覆盖率报告的生成方法,其特征在于,所述代码覆盖率包括下列至少之一:指令覆盖率、分支覆盖率、行覆盖率、方法覆盖率以及类覆盖率。
8.一种代码覆盖率报告的生成装置,其特征在于,所述代码覆盖率报告的生成装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码覆盖率报告的生成程序,所述代码覆盖率报告的生成程序被所述处理器执行时实现如权利要求1~7中任一项所述的代码覆盖率报告的生成方法的步骤。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有代码覆盖率报告的生成程序,所述代码覆盖率报告的生成程序被处理器执行时实现如权利要求1~7中任一项所述的代码覆盖率报告的生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314143.9A CN110888817B (zh) | 2019-12-18 | 2019-12-18 | 代码覆盖率报告的生成方法、装置和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314143.9A CN110888817B (zh) | 2019-12-18 | 2019-12-18 | 代码覆盖率报告的生成方法、装置和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888817A CN110888817A (zh) | 2020-03-17 |
CN110888817B true CN110888817B (zh) | 2023-10-24 |
Family
ID=69752466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911314143.9A Active CN110888817B (zh) | 2019-12-18 | 2019-12-18 | 代码覆盖率报告的生成方法、装置和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888817B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540913B (zh) * | 2020-11-27 | 2024-02-09 | 山东云海国创云计算装备产业创新中心有限公司 | 一种代码覆盖率确定的方法、系统、设备及可读存储介质 |
CN112612705B (zh) * | 2020-12-25 | 2024-05-17 | 上海高顿教育科技有限公司 | 一种接口覆盖率报告准确定位和展示的方法 |
CN112988592B (zh) * | 2021-04-07 | 2024-04-30 | 北京字节跳动网络技术有限公司 | 代码检测方法、装置、设备和存储介质 |
CN114676065A (zh) * | 2022-04-13 | 2022-06-28 | 湖南长银五八消费金融股份有限公司 | 代码覆盖率报告生成方法、装置、计算机设备以及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404585A (zh) * | 2015-12-01 | 2016-03-16 | 腾讯科技(深圳)有限公司 | 获取代码覆盖率的方法及装置 |
CN105589805A (zh) * | 2015-12-16 | 2016-05-18 | 北京奇虎科技有限公司 | 一种代码覆盖率报告的生成方法和装置 |
CN106201863A (zh) * | 2016-06-22 | 2016-12-07 | 广州唯品会信息科技有限公司 | 一种获取代码覆盖率的方法和装置 |
CN106874187A (zh) * | 2016-12-29 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 代码覆盖率收集方法和装置 |
CN108519945A (zh) * | 2018-03-21 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 覆盖率测试方法、装置及存储设备 |
CN109359054A (zh) * | 2018-12-18 | 2019-02-19 | 浙江诺诺网络科技有限公司 | 生成覆盖率统计报告的方法、装置、设备及存储介质 |
CN109542789A (zh) * | 2018-11-26 | 2019-03-29 | 泰康保险集团股份有限公司 | 一种代码覆盖率统计方法及装置 |
-
2019
- 2019-12-18 CN CN201911314143.9A patent/CN110888817B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404585A (zh) * | 2015-12-01 | 2016-03-16 | 腾讯科技(深圳)有限公司 | 获取代码覆盖率的方法及装置 |
CN105589805A (zh) * | 2015-12-16 | 2016-05-18 | 北京奇虎科技有限公司 | 一种代码覆盖率报告的生成方法和装置 |
CN106201863A (zh) * | 2016-06-22 | 2016-12-07 | 广州唯品会信息科技有限公司 | 一种获取代码覆盖率的方法和装置 |
CN106874187A (zh) * | 2016-12-29 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 代码覆盖率收集方法和装置 |
CN108519945A (zh) * | 2018-03-21 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 覆盖率测试方法、装置及存储设备 |
CN109542789A (zh) * | 2018-11-26 | 2019-03-29 | 泰康保险集团股份有限公司 | 一种代码覆盖率统计方法及装置 |
CN109359054A (zh) * | 2018-12-18 | 2019-02-19 | 浙江诺诺网络科技有限公司 | 生成覆盖率统计报告的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110888817A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888817B (zh) | 代码覆盖率报告的生成方法、装置和可读存储介质 | |
CN108521353B (zh) | 定位性能瓶颈的处理方法、设备及可读存储介质 | |
US20180300222A1 (en) | Monitoring Activity of Software Development Kits Using Stack Trace Analysis | |
CN113114680B (zh) | 用于文件上传漏洞的检测方法和检测装置 | |
CN110879781A (zh) | 程序调试方法、装置、电子设备及计算机可读存储介质 | |
US20180225063A1 (en) | Device, system and method to provide categorized trace information | |
CN112799940A (zh) | 回归测试方法、装置、计算机系统和计算机可读存储介质 | |
US20210026756A1 (en) | Deriving software application dependency trees for white-box testing | |
CN111124627B (zh) | 应用程序的调起者确定方法、装置、终端及存储介质 | |
CN110716859A (zh) | 自动为修改的代码推送测试用例的方法及相关装置 | |
CN110825603A (zh) | 页面首次加载时间确定方法、装置、电子设备及存储介质 | |
CN112395194B (zh) | 一种接入测试平台的方法和装置 | |
CN116185805A (zh) | 代码检测方法、装置、设备及存储介质 | |
CN112052054A (zh) | 函数调用方法、装置、电子设备及存储介质 | |
CN111045724A (zh) | 调用链信息的查询方法、装置和可读存储介质 | |
CN108287792B (zh) | 用于输出信息的方法和装置 | |
CN109918895B (zh) | 用于输出数据的方法、电子设备和计算机可读介质 | |
CN112181539B (zh) | 文件处理方法、装置、设备及介质 | |
CN115629983A (zh) | 测试用例集生成方法、装置、设备、介质 | |
CN114780429A (zh) | 代码覆盖率的确定方法、装置、设备、存储介质 | |
CN116010275A (zh) | 测试覆盖范围的确定方法及装置 | |
CN116594876A (zh) | 一种接口测试方法、装置、设备及存储介质 | |
CN113722704A (zh) | 安装包的检测方法、装置、设备及介质 | |
CN115658541A (zh) | 分级回归测试方法、装置、设备、存储介质和程序产品 | |
CN115858257A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230105 Address after: 510000 building 6, No. 20, Huahai street, Fangcun, Liwan District, Guangzhou City, Guangdong Province (office only) Applicant after: GUANGZHOU PINWEI SOFTWARE Co.,Ltd. Address before: 510000 room 01, No.314, Fangcun Avenue middle, Liwan District, Guangzhou City, Guangdong Province Applicant before: GUANGZHOU WEIPINHUI RESEARCH INSTITUTE CO.,LTD. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |