CN110727602B - 覆盖率数据的处理方法、装置及存储介质 - Google Patents

覆盖率数据的处理方法、装置及存储介质 Download PDF

Info

Publication number
CN110727602B
CN110727602B CN201911013735.7A CN201911013735A CN110727602B CN 110727602 B CN110727602 B CN 110727602B CN 201911013735 A CN201911013735 A CN 201911013735A CN 110727602 B CN110727602 B CN 110727602B
Authority
CN
China
Prior art keywords
file
version number
coverage rate
line
rate data
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
Application number
CN201911013735.7A
Other languages
English (en)
Other versions
CN110727602A (zh
Inventor
谢岳峰
罗明杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201911013735.7A priority Critical patent/CN110727602B/zh
Publication of CN110727602A publication Critical patent/CN110727602A/zh
Application granted granted Critical
Publication of CN110727602B publication Critical patent/CN110727602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供一种覆盖率数据的处理方法、装置及存储介质,该方法包括:客户端获取至少一个版本号的文件中被执行代码的行号,针对每个版本号的文件,客户端判断被执行代码的行号是否为变更函数的行号且该文件是否为变更文件,客户端根据被执行代码的行号,获取该版本号对应的覆盖率数据。该技术方案通过在代码程序运行过程中,获取变更文件中的变更函数被执行代码的行号,从而获取了两个版本文件之间的变更函数的覆盖率数据,直观地提供了两个版本文件之间的对比情况,提高了测试结果的可读性和指导性。

Description

覆盖率数据的处理方法、装置及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种覆盖率数据的处理方法、装置及存储介质。
背景技术
代码覆盖率,指的是已经执行过的代码行数和代码总行数的比值,通常用百分比表示,代码覆盖率数据,指的是已经执行过的代码行号,覆盖率报告,指的是对已执行代码和未执行代码进行标示的报告。
在实际测试过程中,测试人员执行测试用例并完成测试后,通常使用代码覆盖率统计工具来统计覆盖率数据,由此可以逆向反推测试用例的遗漏,也即,该测试用例未全量覆盖的原因,从而能够进一步优化测试用例。
然而,在开发迭代时,测试人员往往只关注两个版本之间变更部分代码的覆盖率数据,采用现有的代码覆盖率统计工具无法统计变更函数的覆盖率数据。
发明内容
本申请实施例提供一种覆盖率数据的处理方法、装置及存储介质,用于解决现有技术无法统计不同版本的代码文件之间的变更部分的覆盖率数据的问题。
本申请第一方面提供一种覆盖率数据的处理方法,包括:
获取至少一个版本号的文件中被执行代码的行号;
针对每个版本号的所述文件,判断所述被执行代码的行号是否为变更函数的行号且所述文件是否为变更文件,其中,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数,所述变更文件用于指示所述预设版本号的所述文件为所述版本号的所述文件的更新版本;
若是,根据所述被执行代码的行号,获取所述版本号对应的覆盖率数据,所述覆盖率数据为所述版本号的所述文件对应的变更函数的覆盖率数据。
可选的,所述方法还包括:
向服务器发送所述至少一个版本号分别对应的覆盖率数据,其中,所述预设版本号为所述文件的最新版本号,所述至少一个版本号包括多个版本号。
可选的,所述判断所述文件是否为变更文件,包括:
判断所述文件的路径是否在变更文件路径列表中,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径。
可选的,所述获取至少一个版本号的文件中被执行代码的行号之前,所述方法还包括:
向服务器发送数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号;
接收所述服务器发送的变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径。
可选的,所述方法还包括:
向所述服务器发送覆盖率获取请求,所述覆盖率获取请求包括所述至少两个版本号和所述预设版本号;
接收所述服务器返回的所述文件的合并覆盖率。
本申请第二方面提供一种覆盖率数据的处理方法,包括:
接收客户端发送的至少一个版本号分别对应的覆盖率数据,所述覆盖率数据为每个版本号的文件对应的变更函数的覆盖率数据;
根据预设版本号的所述文件,对所述至少一个版本号对应的覆盖率数据进行偏移处理,获取所述文件的合并覆盖率数据,其中所述预设版本号为所述文件的最新版本号,其中,所述预设版本号为所述文件的最新版本号,所述至少一个版本号包括多个版本号。
可选的,所述根据预设版本号的所述文件,对所述至少一个版本号对应的覆盖率数据进行偏移处理,获取所述文件的合并覆盖率数据,包括:
获取第i个版本号的文件与所述预设版本号的文件之间的变更代码行的行号,所述至少一个版本号包括所述第i个版本号;
针对增加的行号,将第i个版本号对应的覆盖率数据中对应的行号加一,以及针对删除的行号,将所述第i个版本号对应的覆盖率数据中对应的行号减一,获取所述第i个版本号对应的新的覆盖率数据;
将所述新的覆盖率数据对应的文件作为新的预设版本号的所述文件,获取第i+1个版本号的所述文件与所述新的预设版本号的所述文件之间的变更代码行的行号,重复上述步骤,直至i等于m,获取所述文件的合并覆盖率数据,其中i从1取值,m为所述至少一个版本号的数目。
可选的,所述方法还包括:
接收客户端发送的数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号;
根据所述数据获取请求,获取变更文件路径列表,以及获取所述至少一个版本号的所述文件分别与所述预设版本号的所述文件之间的变更代码行的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径;
解析获取所述至少一个版本号的所述文件中各个函数的行号;
针对每个版本号的所述文件,若所述变更代码行的行号和所述函数的行号具有交集,将所述函数作为变更函数,并获取所述变更函数的行号,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数;
将所述变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号发送给所述客户端。
可选的,所述方法还包括:
接收客户端发送的覆盖率获取请求;
基于所述覆盖率获取请求,根据所述至少一个版本号对应的变更函数的行号,获取所述至少一个版本号对应的变更函数的行数;
根据所述至少一个版本号对应的变更函数的行数和所述文件的合并覆盖率数据,获取所述文件的合并覆盖率;
将所述文件的合并覆盖率发送给所述客户端。
本申请第三方面提供一种覆盖率数据的处理装置,包括:
获取模块,用于获取至少一个版本号的文件中被执行代码的行号;
处理模块,用于针对每个版本号的所述文件,判断所述被执行代码的行号是否为变更函数的行号且所述文件是否为变更文件,其中,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数,所述变更文件用于指示所述预设版本号的所述文件为所述版本号的所述文件的更新版本;
若是,所述获取模块还用于根据所述被执行代码的行号,获取所述版本号对应的覆盖率数据,所述覆盖率数据为所述版本号的所述文件对应的变更函数的覆盖率数据。
可选的,所述装置还包括:
发送模块,用于向服务器发送所述至少一个版本号分别对应的覆盖率数据,其中,所述预设版本号为所述文件的最新版本号,所述至少一个版本号包括多个版本号。
可选的,所述处理模块具体用于:
判断所述文件的路径是否在变更文件路径列表中,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径。
可选的,所述发送模块还用于:
向服务器发送数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号;
接收模块,用于接收所述服务器发送的变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径。
可选的,所述发送模块还用于:
向所述服务器发送覆盖率获取请求,所述覆盖率获取请求包括所述至少两个版本号和所述预设版本号;
所述接收模块,还用于接收所述服务器返回的所述文件的合并覆盖率。
本申请第四方面提供一种覆盖率数据的处理装置,包括:
接收模块,用于接收客户端发送的至少一个版本号分别对应的覆盖率数据,所述覆盖率数据为每个版本号的文件对应的变更函数的覆盖率数据;
处理模块,用于根据预设版本号的所述文件,对所述至少一个版本号对应的覆盖率数据进行偏移处理,获取所述文件的合并覆盖率数据,其中所述预设版本号为所述文件的最新版本号,其中,所述预设版本号为所述文件的最新版本号,所述至少一个版本号包括多个版本号。
可选的,所述处理模块具体用于:
获取第i个版本号的文件与所述预设版本号的文件之间的变更代码行的行号,所述至少一个版本号包括所述第i个版本号;
针对增加的行号,将第i个版本号对应的覆盖率数据中对应的行号加一,以及针对删除的行号,将所述第i个版本号对应的覆盖率数据中对应的行号减一,获取所述第i个版本号对应的新的覆盖率数据;
将所述新的覆盖率数据对应的文件作为新的预设版本号的所述文件,获取第i+1个版本号的所述文件与所述新的预设版本号的所述文件之间的变更代码行的行号,重复上述步骤,直至i等于m,获取所述文件的合并覆盖率数据,其中i从1取值,m为所述至少一个版本号的数目。
可选的,所述接收模块还用于:
接收客户端发送的数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号;
获取模块用于根据所述数据获取请求,获取变更文件路径列表,以及获取所述至少一个版本号的所述文件分别与所述预设版本号的所述文件之间的变更代码行的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径;
解析获取所述至少一个版本号的所述文件中各个函数的行号;
针对每个版本号的所述文件,若所述变更代码行的行号和所述函数的行号具有交集,将所述函数作为变更函数,并获取所述变更函数的行号,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数;
所述装置还包括:
发送模块用于将所述变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号发送给所述客户端。
可选的,所述接收模块还用于:
接收客户端发送的覆盖率获取请求;
所述装置还包括:
所述获取模块还用于基于所述覆盖率获取请求,根据所述至少一个版本号对应的变更函数的行号,获取所述至少一个版本号对应的变更函数的行数;
根据所述至少一个版本号对应的变更函数的行数和所述文件的合并覆盖率数据,获取所述文件的合并覆盖率;
所述发送模块还用于将所述文件的合并覆盖率发送给所述客户端。
本申请第五方面提供一种客户端,包括:
处理器;
存储器,用于存储所述处理器的计算机程序;
其中,所述处理器被配置为通过执行所述计算机程序来实现第一方面所述的覆盖率数据的处理方法。
本申请第六方面提供一种服务器,包括:
处理器;
存储器,用于存储所述处理器的计算机程序;
其中,所述处理器被配置为通过执行所述计算机程序来实现第二方面所述的覆盖率数据的处理方法。
本申请第七方面提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第一方面所述的覆盖率数据的处理方法。
本申请第八方面提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第二方面所述的覆盖率数据的处理方法。
本申请实施例提供的一种覆盖率数据的处理方法、装置及存储介质,该方法包括:客户端获取至少一个版本号的文件中被执行代码的行号,针对每个版本号的文件,客户端判断被执行代码的行号是否为变更函数的行号且该文件是否为变更文件,客户端根据被执行代码的行号,获取该版本号对应的覆盖率数据。该技术方案通过在代码程序运行过程中,获取变更文件中的变更函数被执行代码的行号,从而获取了两个版本文件之间的变更函数的覆盖率数据,直观地提供了两个版本文件之间的对比情况,提高了测试结果的可读性和指导性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的覆盖率数据的处理方法实例一的流程图;
图2为本申请实施例提供的覆盖率数据的处理方法实例二的流程图;
图3为本申请实施例提供的覆盖率数据处理过程的示意图一;
图4为本申请实施例提供的覆盖率数据处理过程的示意图二;
图5为本申请实施例提供的覆盖率数据的处理装置实施例一的结构示意图;
图6为本申请实施例提供的覆盖率数据的处理装置实施例二的结构示意图;
图7为本申请实施例提供的客户端实施例的结构示意图;
图8为本申请实施例提供的服务器实施例的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请实施例针对现有技术提供的代码覆盖率统计工具无法统计两个版本之间的变更函数的覆盖率数据,即无法直观地提供两个版本的对比情况,导致可读性不好的问题,提出了一种覆盖率数据的处理方法、装置及存储介质,该方法包括:客户端获取至少一个版本号的文件中被执行代码的行号,针对每个版本号的文件,客户端判断被执行代码的行号是否为变更函数的行号且该文件是否为变更文件,客户端根据被执行代码的行号,获取该版本号对应的覆盖率数据。该技术方案通过在代码程序运行过程中,获取变更文件中的变更函数被执行代码的行号,从而获取了两个版本文件之间的变更函数的覆盖率数据,直观地提供了两个版本文件之间的对比情况,提高了测试结果的可读性和指导性。
下面通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的覆盖率数据的处理方法实例一的流程图。如图1所示,本申请实施例提供的覆盖率数据的处理方法,可以包括如下步骤:
S101、客户端获取至少一个版本号的文件中被执行代码的行号。
在本实施例中,这里的客户端为执行测试用例的客户端,例如:测试客户端,至少一个版本号的文件可以为任意版本号的文件,本实施例对此不做限制。在实际应用过程中,若测试人员需要获取第一版本号的文件与预设版本号的文件之间的变更函数的覆盖率数据,则在这里获取第一版本号的文件中被执行代码的行号,其中,预设版本号的文件可以为第一版本号的文件的任一更新版本。
在执行测试用例时,也即代码运行过程中,客户端可以跟踪执行的每一行代码,捕获被执行代码行的信息,被执行代码行的信息包括被执行代码的行号。
示例性地,测试客户端可以内置代码执行跟踪模块,用于在代码运行过程中获取被执行代码行的信息。其中,被执行代码行的信息还可以包括被执行代码的行数。
S102、针对每个版本号的文件,客户端判断被执行代码的行号是否为变更函数的行号且该文件是否为变更文件。
其中,变更函数用于指示该版本号的文件与预设版本号的文件之间的变更代码行对应的函数,也即,该版本号的文件相对于预设版本号的文件的变更代码行对应的函数,变更文件用于指示预设版本号的文件为该版本号的文件的更新版本。
其中,变更代码行包括增加代码行和/或删除代码行。
示例性地,预设版本号的文件可以为当前版本号的文件,也可以为最新版本号的文件。
在本实施例中,针对每个版本号的文件,客户端获取到每个版本号的文件中被执行代码的行号之后,判断被执行代码的行号是否为变更函数的行号且该文件是否为变更文件,若是,则执行步骤S103。
S103、客户端根据被执行代码的行号,获取该版本号对应的覆盖率数据。
在本实施例中,所述覆盖率数据为该版本号的文件对应的变更函数的覆盖率数据。变更函数的覆盖率数据为变更函数中被执行代码的行号,若被执行代码的行号为变更函数的行号且该文件为变更文件,则客户端根据被执行代码的行号,获取变更函数的覆盖率数据,也即,将被执行代码的行号作为变更函数的覆盖率数据。
在一种可能的实施中,步骤S101之前还包括:
S104、客户端向服务器发送数据获取请求,数据获取请求包括至少一个版本号和预设版本号。
其中,该服务器可以为覆盖率服务器,当需要获取至少一个版本号的文件与预设版本号的文件之间的变更函数的覆盖率数据时,客户端向服务器发送数据获取请求,该数据获取请求包括至少一个版本号和预设版本号,相应的,服务器接收客户端发送的数据获取请求。
S105、服务器根据数据获取请求,获取变更文件路径列表,以及获取至少一个版本号的文件分别与预设版本号的文件之间的变更代码行的行号。
服务器根据数据获取请求获取变更文件路径列表,变更文件路径列表包括与预设版本号的文件具有变更代码行的文件的路径,示例性地,预设版本号为最新版本号,变更文件路径列表包括最新版本号之前的所有版本号的文件的路径。以及还获取至少一个版本号的文件分别与预设版本号的文件之间的变更代码行的行号,变更代码行包括增加代码行和/或删除代码行,变更代码行的行号可以为第1行、第2行等。
示例性地,其中一个版本号的文件与预设版本号的文件相比增加了第3行代码。
S106、服务器解析获取至少一个版本号的文件中各个函数的行号。
其中,服务器可以内置第三方静态代码分析模块,用于解析代码文件获取该代码文件中的各个函数的行号。在本方案中,服务器解析获取至少一个版本号的文件中各个函数的行号。示例性地,其中一个版本号的文件包括10行代码且包括三个函数,第一函数对应的行号为第1-5行、第二函数对应的行号为第6-8行、第三函数对应的行号为第9-10行号。
S107、针对每个版本号的文件,若变更代码行的行号和该函数的行号具有交集,服务器将该函数作为变更函数,并获取变更函数的行号。
示例性地,针对一个版本号的文件,变更代码行的行号为第3行、该文件包括10行代码且包括三个函数,第一函数对应的行号为第1-5行、第二函数对应的行号为第6-8行、第三函数对应的行号为第9-10行号。可见,变更代码行的行号和第一函数的行号具有交集,则第一函数为变更函数,变更函数用于指示该版本号的文件与预设版本号的文件之间的变更代码行对应的函数。
S108、服务器将变更文件路径列表和至少一个版本号的文件对应的变更函数的行号发送给客户端。
相应的,客户端接收服务器发送的变更文件路径列表和至少一个版本的文件对应的变更函数的行号。
在一种可能的实施中,步骤S102中判断所述文件是否为变更文件,具体包括:
针对每个版本号的文件,客户端判断该文件的路径是否在变更文件路径列表中,变更文件路径列表包括与预设版本号的文件具有变更代码行的文件的路径。
具体地,针对每个版本号的文件,客户端获取该文件的路径,判断该文件的路径是否在变更文件路径列表中,若是,表明预设版本号的文件为该版本号的文件的更新版本。接着可以执行步骤S103。
本实施例提供的覆盖率数据的处理方法,客户端获取至少一个版本号的文件中被执行代码的行号,针对每个版本号的文件,客户端判断被执行代码的行号是否为变更函数的行号且该文件是否为变更文件,客户端根据被执行代码的行号,获取该版本号对应的覆盖率数据。该技术方案通过在代码程序运行过程中,获取变更文件中的变更函数被执行代码的行号,从而获取了两个版本文件之间的变更函数的覆盖率数据,直观地提供了两个版本文件之间的对比情况,提高了测试结果的可读性和指导性。
在一些场景下,多个测试人员分别持有不同版本号的代码文件,每个版本号的文件已完成部分测试,为了不重复测试,测试人员需要将各个版本测试得到的覆盖率数据进行合并,但是由于不同版本的代码文件增删了一些代码行,行号已经发生了偏移,采用现有的覆盖率工具无法直接合并。基于此,本申请实施例还提供了一种变更函数的覆盖率数据的合并方法,下面结合图2实施例进行具体说明。
图2为本申请实施例提供的覆盖率数据的处理方法实例二的流程图,如图2所示,在上述图1实施例的基础上,预设版本号可以为该文件的最新版本号,至少一个版本号包括多个版本号。本实施例提供的覆盖率数据的处理方法还包括如下步骤:
S201、客户端向服务器发送至少一个版本号分别对应的覆盖率数据。
在图1实施例中,客户端获取至少一个版本号分别对应的覆盖率数据后,还可以将至少一个版本号分别对应的覆盖率数据发送给服务器。其中,该覆盖率数据为每个版本号的文件对应的变更函数的覆盖率数据,该覆盖率数据为该版本号的文件对应的变更函数被执行的行号。相应的,服务器则接收客户端发送的至少一个版本号对应的覆盖率数据。
S202、服务器根据预设版本号的文件,对至少一个版本号对应的覆盖率数据进行偏移处理,获取该文件的合并覆盖率数据。
在本实施例中,服务器将预设版本号的文件为基准,将每个版本号的文件对应的覆盖率数据校准为最新版本号的行号。
具体地,若一个版本号的文件相对于预设版本号的文件增加了一行,则该版本号对应的覆盖率数据中对应的行号加一;若一个版本号的文件相对于预设版本号的文件减少了一行,则该版本号对应的覆盖率数据中对应的行号减一。
在一种可能的实施中,步骤S202具体包括:
S2021、服务器获取第i个版本号的文件与预设版本号的文件之间的变更代码行的行号,至少一个版本号包括第i个版本号。
S2022、针对增加的行号,服务器将第i个版本号对应的覆盖率数据中对应的行号加一,以及针对删除的行号,将第i个版本号对应的覆盖率数据中对应的行号减一,获取更新后的第i个版本号对应的覆盖率数据。
在本实施例中,i从1开始取值,服务器获取第一个版本号的文件相对于预设版本号的文件之间的变更代码行的行号,其中,变更代码行包括增加代码行和/或删除代码行。
其中,针对增加的行号,大于或等于该行号的行号加一,针对删除的行号,大于或等于该行号的行号减一。
具体地,针对增加的行号,将第一个版本号对应的覆盖率数据中大于等于该行号的行号加一,示例性地,第一个版本号对应的覆盖率数据为第1、2、3行、第5行、第8行,和预设版本号的文件相比增加了第5行,则第一个版本号对应的新的覆盖率数据为第1、2行、第6行、第9行。
针对删除的行号,将第一个版本号对应的覆盖率数据中大于等于该行号的行号减一,示例性地,第一个版本号对应的覆盖率数据为第1、2、3行、第5行、第8行,和预设版本号的文件相比减少了第4行,则第一版本号对应的新的覆盖率数据为第1、2、3行、第4行、第7行。
S2023、服务器将新的覆盖率数据对应的文件作为新的预设版本号的文件,获取第i+1个版本号的文件与新的预设版本号的文件之间的变更代码行的行号,重复上述步骤,直至i等于m,获取文件的合并覆盖率数据,其中i从1取值,m为至少一个版本号的数目。
在本实施例中,服务器将第一个版本号对应的新的覆盖率数据对应的文件作为新的预设版本号的文件,获取第二个版本号对应的覆盖率数据与新的预设版本号的文件之间的变更代码行的行号,然后以第一个版本号对应的新的覆盖率数据对应的文件为基准,对第二个版本号对应的覆盖率数据进行校准,若第二个版本号的文件相对于新的预设版本号的文件增加了一行,则第二个版本号对应的覆盖率数据中对应的行号加一;若第二个版本号的文件相对于预设版本号的文件减少了一行,则第二个版本号对应的覆盖率数据中对应的行号减一。
重复步骤S2021-S2023,直至i等于m,m为至少一个版本号的数数目,也即,获取了多个版本的该文件的合并覆盖率数据。
值得说明的是,第一版本号对应的新的覆盖率数据对应的文件和预设版本号的文件相比,存在增加代码行和/或删除代码行。
值得说明的是,合并覆盖率数据为变更函数中被执行代码的行号,本实施例中,还可以根据该被执行代码的行号,获取合并覆盖率。
在一种可能的实施中,所述方法还包括:
S203、客户端向服务器发送覆盖率获取请求,覆盖率获取请求包括至少一个版本号和预设版本号。
测试人员需要查看不同版本的相同文件对应的合并覆盖率时,还可以通过客户端向服务器发送覆盖率获取请求。相应的,服务器接收客户端发送的覆盖率获取请求。
S204、服务器基于覆盖率获取请求,根据至少一个版本号对应的变更函数的行号,获取至少一个版本号对应的变更函数的行数。
服务器基于覆盖率获取请求,根据至少一个版本号对应的变更函数的行号,能够获取该版本号对应的变更函数的行数。示例性地,某一个版本号对应的变更函数的行号为第3-10行、第55行,那么该版本号对应的变更函数的行数为8+1=9行。根据该种方式可以得到每个版本号对应的变更函数的行数。
S205、服务器根据至少一个版本号对应的变更函数的行数和文件的覆盖率数据,获取该文件的合并覆盖率。
S206、将该文件的合并覆盖率发送给客户端。
在本实施例中,服务器将每个版本号对应的变更函数的行数相加得到变更函数的总行数,然后采用该文件的覆盖率数据除以该总行数,得到该文件的合并覆盖率。将该文件的合并覆盖率发送的客户端,相应地,客户端接收服务器返回的该文件的合并覆盖率,还可以显示合并覆盖率。
本实施例提供的覆盖率数据的处理方法,客户端向服务器发送至少一个版本号分别对应的覆盖率数据,服务器根据预设版本号的文件,对至少一个版本号对应的覆盖率数据进行偏移处理,获取该文件的合并覆盖率数据,客户端向服务器发送覆盖率获取请求,覆盖率获取请求包括至少一个版本号和预设版本号,服务器基于覆盖率获取请求,根据至少一个版本号对应的变更函数的行号,获取至少一个版本号对应的变更函数的行数,服务器根据至少一个版本号对应的变更函数的行数和文件的覆盖率数据,获取该文件的合并覆盖率,将该文件的合并覆盖率发送给客户端。
在上述实施例一至实施例二的基础上,下面以下面两个具体实施例对本技术方案进行详细说明。首先结合图3实施例对本技术方案中获取不同版本之间的变更函数的覆盖率数据进行说明。其中,服务器侧包括报告生成模块、覆盖率合并模块、覆盖率数据库、差异查找模块。客户端侧包括覆盖率数据集、筛选收集模块、跟踪模块。
图3为本申请实施例提供的覆盖率数据处理过程的示意图一,如图3所示,该覆盖率数据处理过程包括以下几个步骤。
第一步、客户端查询各个代码文件的版本号保存至覆盖率数据集进行记录,并将该版本号发送给服务器的差异查找模块
该版本号用于标识覆盖率数据对应的版本,也作为后续保存与查询覆盖率数据的索引。
第二步、差异查找模块向代码文件版本库发送获取请求,以获取起始版本号到当前版本号之间的变更文件路径列表
其中,起始版本号可以为测试人员设定的任一版本号。
第三步、差异查找模块从代码文件版本库获取变更文件路径列表,并通过差异查找模块获取变更函数的行号
1、采用第三方静态代码分析模块解析起始版本号的代码文件,获取所有函数对应的行号。其中第三方静态分析模块是一个统称,不同的程序语言该模块都不同的。
2、先标记起始版本号的代码文件中每行代码的行号,再排除变更函数以外的所有代码行,剩下的代码行为变更函数的行号。
3、获取起始版本号到该版本号之间的变更代码行的行号,若函数行号与变更代码行的行号有交集,则这些交集行号为变更函数的行号。
第四步、将变更文件路径列表和变更函数的行号发送给筛选收集模块
第五步、在起始版本的代码文件运行过程中,使用程序语言内置的代码执行跟踪模块跟踪被执行代码行,每当执行一行代码后,获取被执行代码行的信息,其中代码执行跟踪模块是一个统称,不同的程序语言该模块是不同的,其中被执行代码行的信息包括被执行代码行的行号。
第六步、获取被执行代码行对应的代码文件路径和行号,若该代码文件路径存在与变更文件路径列表中且行号存在于变更函数行号中,则获取覆盖率数据,并将该覆盖率数据保存至覆盖率数据集中,其中,该覆盖率数据可以包括版本号、文件路径、被执行行号。
这样,通过上述步骤即可获取任意两个版本的代码文件之间的变更函数的覆盖率数据。
在图3实施例的基础上,当起始版本号具有多个时,可以得到每个起始版本和当前版本号之间的变更函数的覆盖率数据,其中当前版本号为最新版本号。下面结合图4实施例对本技术方案中合并覆盖率数据进行详细说明。
图4为本申请实施例提供的覆盖率数据处理过程的示意图二,如图4所示,该覆盖率数据处理过程包括以下几个步骤。
第一步、覆盖率数据集每隔预设间隔将覆盖率数据发送给覆盖率数据库,其中预设间隔由测试人员设定,可以根据实际情况选取
第二步、客户端向服务器发送给覆盖率获取请求
第三步、覆盖率合并模块向覆盖率数据库发送获取请求,以获取每个起始版本号到当前版本号的覆盖率数据
第四步、覆盖率合并模块将不同起始版本号的代码文件对应的覆盖率数据进行合并
具体地,覆盖率合并模块对每个覆盖率数据中的行号进行偏移处理,校准为最新版本号的代码文件的行号,即,增加的行号与删除的行号从小到大进行遍历,若是增加的行号,则其中一个覆盖率数据中大于等于该行号的行号加一,若是删除的行号,则该覆盖率数据中大于等于该行号的行号减一。接着,遍历全部覆盖率数据,重复本步骤,最终将所有覆盖率数据合并在一起,获取合并覆盖率数据。
第五步、覆盖率合并模块将合并覆盖率数据、变更函数的总行数以及最终的代码文件发送给报告生成模块
第六步、报告生成模块根据合并覆盖率数据、变更函数的总行数计算得到覆盖率,并根据覆盖率数据对最终的代码文件进行标示,生成覆盖率报告。
第七步、报告生成模块将覆盖率和覆盖率报告发送给客户端。
接收服务器发送的变更文件路径列表,通过差异查找模块获取起始版本号的代码文件和该版本号的代码文件相比被修改的函数,获取变更函数的行号。
本方案只要由测试客户端和覆盖率服务器组成。其中测试客户端用于在代码运行过程中收集覆盖率数据,并定时向服务器发送给覆盖率数据,服务器用于将接收的覆盖率数据进行合并并生成报告,从而实现多个测试人员、在不同客户端上、实现不同版本的代码测试所产生的覆盖率数据的合并。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图5为本申请实施例提供的覆盖率数据的处理装置实施例一的结构示意图,该覆盖率数据的处理装置可以集成在客户端中,也可以为一客户端。如图5所示,本实施例提供的覆盖率数据的处理装置10包括:
获取模块11,用于获取至少一个版本号的文件中被执行代码的行号;
处理模块12,用于针对每个版本号的所述文件,判断所述被执行代码的行号是否为变更函数的行号且所述文件是否为变更文件,其中,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数,所述变更文件用于指示所述预设版本号的所述文件为所述版本号的所述文件的更新版本;
若是,所述获取模块11还用于根据所述被执行代码的行号,获取所述版本号对应的覆盖率数据,所述覆盖率数据为所述版本号的所述文件对应的变更函数的覆盖率数据。
可选的,所述装置10还包括:
发送模块13,用于向服务器发送所述至少一个版本号分别对应的覆盖率数据,其中,所述预设版本号为所述文件的最新版本号,所述至少一个版本号包括多个版本号。
可选的,所述处理模块12具体用于:
判断所述文件的路径是否在变更文件路径列表中,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径。
可选的,所述发送模块13还用于:
向服务器发送数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号;
可选的,所述装置10还包括:
接收模块14,用于接收所述服务器发送的变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径。
可选的,所述发送模块13还用于:
向所述服务器发送覆盖率获取请求,所述覆盖率获取请求包括所述至少两个版本号和所述预设版本号;
所述接收模块14,还用于接收所述服务器返回的所述文件的合并覆盖率。
本实施例提供的覆盖率检测装置,用于执行前述任一实施例提供的方法中客户端侧的技术方案,其实现原理和技术效果类似,在此不再赘述。
图6为本申请实施例提供的覆盖率数据的处理装置实施例二的结构示意图,该覆盖率数据的处理装置可以集成在服务器中,也可以为一服务器。如图6所示,本实施例提供的覆盖率数据的处理装置20包括::
接收模块21,用于接收客户端发送的至少一个版本号分别对应的覆盖率数据,所述覆盖率数据为每个版本号的文件对应的变更函数的覆盖率数据;
处理模块22,用于根据预设版本号的所述文件,对所述至少一个版本号对应的覆盖率数据进行偏移处理,获取所述文件的合并覆盖率数据,其中所述预设版本号为所述文件的最新版本号,其中,所述预设版本号为所述文件的最新版本号,所述至少一个版本号包括多个版本号。
可选的,所述处理模块22具体用于:
获取第i个版本号的文件与所述预设版本号的文件之间的变更代码行的行号,所述至少一个版本号包括所述第i个版本号;
针对增加的行号,将第i个版本号对应的覆盖率数据中对应的行号加一,以及针对删除的行号,将所述第i个版本号对应的覆盖率数据中对应的行号减一,获取所述第i个版本号对应的新的覆盖率数据;
将所述新的覆盖率数据对应的文件作为新的预设版本号的所述文件,获取第i+1个版本号的所述文件与所述新的预设版本号的所述文件之间的变更代码行的行号,重复上述步骤,直至i等于m,获取所述文件的合并覆盖率数据,其中i从1取值,m为所述至少一个版本号的数目。
可选的,所述接收模块21还用于:
接收客户端发送的数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号;
所述装置20还包括:
获取模块23用于根据所述数据获取请求,获取变更文件路径列表,以及获取所述至少一个版本号的所述文件分别与所述预设版本号的所述文件之间的变更代码行的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径;
解析获取所述至少一个版本号的所述文件中各个函数的行号;
针对每个版本号的所述文件,若所述变更代码行的行号和所述函数的行号具有交集,将所述函数作为变更函数,并获取所述变更函数的行号,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数;
所述装置20还包括:
发送模块24用于将所述变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号发送给所述客户端。
可选的,所述接收模块21还用于:
接收客户端发送的覆盖率获取请求;
所述获取模块23还用于基于所述覆盖率获取请求,根据所述至少一个版本号对应的变更函数的行号,获取所述至少一个版本号对应的变更函数的行数;
根据所述至少一个版本号对应的变更函数的行数和所述文件的合并覆盖率数据,获取所述文件的合并覆盖率;
所述发送模块24还用于将所述文件的合并覆盖率发送给所述客户端。
本实施例提供的覆盖率检测装置,用来执行前述任一实施例提供的方法中服务器侧的技术方案,其实现原理和技术效果类似,在此不再赘述。
图7为本申请实施例提供的客户端实施例的结构示意图,如图7所示,该客户端包括处理器;
存储器,用于存储所述处理器的计算机程序;
其中,所述处理器被配置为通过执行所述计算机程序来实现客户端侧所述的覆盖率数据的处理方法。
图8为本申请实施例提供的服务器实施例的结构示意图,如图8所示,该服务器包括处理器;
存储器,用于存储所述处理器的计算机程序;
其中,所述处理器被配置为通过执行所述计算机程序来实现服务器侧侧所述的覆盖率数据的处理方法。
本申请实施例还提供一种存储介质,所述存储介质中存储有指令。当所述执行在计算机上运行时,使得计算机执行客户端侧所示实施例的方法。
本申请实施例还提供一种存储介质,所述存储介质中存储有指令。当所述执行在计算机上运行时,使得计算机执行服务器侧所示实施例的方法。
在上述任一服务器的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetictape)、软盘(英文:floppy disk)、光盘(英文:opticaldisc)及其任意组合。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (13)

1.一种覆盖率数据的处理方法,其特征在于,包括:
获取至少一个版本号的文件中被执行代码的行号;
针对每个版本号的所述文件,判断所述被执行代码的行号是否为变更函数的行号且所述文件是否为变更文件,其中,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数,所述变更文件用于指示所述预设版本号的所述文件为所述版本号的所述文件的更新版本;
若是,根据所述被执行代码的行号,获取所述版本号对应的覆盖率数据,所述覆盖率数据为所述版本号的所述文件对应的变更函数的覆盖率数据;
所述获取至少一个版本号的文件中被执行代码的行号之前,所述方法还包括:
向服务器发送数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号,以使所述服务器根据所述数据获取请求,获取变更文件路径列表,以及获取所述至少一个版本号的文件分别与所述预设版本号的文件之间的变更代码行的行号,解析获取所述至少一个版本号的文件中各个函数的行号,针对每个版本号的文件,若变更代码行的行号和该函数的行号具有交集,将该函数作为所述变更函数,并获取所述变更函数的行号;
接收所述服务器发送的所述变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向服务器发送所述至少一个版本号分别对应的覆盖率数据,其中,所述预设版本号为所述文件的最新版本号,所述至少一个版本号包括多个版本号。
3.根据权利要求1或2所述的方法,其特征在于,所述判断所述文件是否为变更文件,包括:
判断所述文件的路径是否在变更文件路径列表中,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述服务器发送覆盖率获取请求,所述覆盖率获取请求包括所述至少两个版本号和所述预设版本号;
接收所述服务器返回的所述文件的合并覆盖率。
5.一种覆盖率数据的处理方法,其特征在于,包括:
接收客户端发送的至少一个版本号分别对应的覆盖率数据,所述覆盖率数据为每个版本号的文件对应的变更函数的覆盖率数据;
根据预设版本号的所述文件,对所述至少一个版本号对应的覆盖率数据进行偏移处理,获取所述文件的合并覆盖率数据,其中所述预设版本号为所述文件的最新版本号,其中,所述预设版本号为所述文件的最新版本号,所述至少一个版本号包括多个版本号;
接收客户端发送的数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号;
根据所述数据获取请求,获取变更文件路径列表,以及获取所述至少一个版本号的所述文件分别与所述预设版本号的所述文件之间的变更代码行的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径;
解析获取所述至少一个版本号的所述文件中各个函数的行号;
针对每个版本号的所述文件,若所述变更代码行的行号和所述函数的行号具有交集,将所述函数作为变更函数,并获取所述变更函数的行号,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数;
将所述变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号发送给所述客户端。
6.根据权利要求5所述的方法,其特征在于,所述根据预设版本号的所述文件,对所述至少一个版本号对应的覆盖率数据进行偏移处理,获取所述文件的合并覆盖率数据,包括:
获取第i个版本号的文件与所述预设版本号的文件之间的变更代码行的行号,所述至少一个版本号包括所述第i个版本号;
针对增加的行号,将第i个版本号对应的覆盖率数据中对应的行号加一,以及针对删除的行号,将所述第i个版本号对应的覆盖率数据中对应的行号减一,获取所述第i个版本号对应的新的覆盖率数据;
将所述新的覆盖率数据对应的文件作为新的预设版本号的所述文件,获取第i+1个版本号的所述文件与所述新的预设版本号的所述文件之间的变更代码行的行号,重复上述步骤,直至i等于m,获取所述文件的合并覆盖率数据,其中i从1取值,m为所述至少一个版本号的数目。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收客户端发送的覆盖率获取请求;
基于所述覆盖率获取请求,根据所述至少一个版本号对应的变更函数的行号,获取所述至少一个版本号对应的变更函数的行数;
根据所述至少一个版本号对应的变更函数的行数和所述文件的合并覆盖率数据,获取所述文件的合并覆盖率;
将所述文件的合并覆盖率发送给所述客户端。
8.一种覆盖率数据的处理装置,其特征在于,包括:
获取模块,用于获取至少一个版本号的文件中被执行代码的行号;
处理模块,用于针对每个版本号的所述文件,判断所述被执行代码的行号是否为变更函数的行号且所述文件是否为变更文件,其中,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数,所述变更文件用于指示所述预设版本号的所述文件为所述版本号的所述文件的更新版本;
若是,所述获取模块还用于根据所述被执行代码的行号,获取所述版本号对应的覆盖率数据,所述覆盖率数据为所述版本号的所述文件对应的变更函数的覆盖率数据;
发送模块,用于向服务器发送数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号,以使所述服务器根据所述数据获取请求,获取变更文件路径列表,以及获取所述至少一个版本号的文件分别与所述预设版本号的文件之间的变更代码行的行号,解析获取所述至少一个版本号的文件中各个函数的行号,针对每个版本号的文件,若变更代码行的行号和该函数的行号具有交集,将该函数作为所述变更函数,并获取所述变更函数的行号;
接收模块,用于接收所述服务器发送的所述变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径。
9.一种覆盖率数据的处理装置,其特征在于,包括:
接收模块,用于接收客户端发送的至少一个版本号分别对应的覆盖率数据,所述覆盖率数据为每个版本号的文件对应的变更函数的覆盖率数据;
处理模块,用于根据预设版本号的所述文件,对所述至少一个版本号对应的覆盖率数据进行偏移处理,获取所述文件的合并覆盖率数据,其中所述预设版本号为所述文件的最新版本号,其中,所述预设版本号为所述文件的最新版本号,所述至少一个版本号包括多个版本号;
所述接收模块,还用于接收客户端发送的数据获取请求,所述数据获取请求包括所述至少一个版本号和所述预设版本号;
获取模块,用于根据所述数据获取请求,获取变更文件路径列表,以及获取所述至少一个版本号的所述文件分别与所述预设版本号的所述文件之间的变更代码行的行号,所述变更文件路径列表包括与所述预设版本号的所述文件具有变更代码行的所述文件的路径;
解析获取所述至少一个版本号的所述文件中各个函数的行号;
针对每个版本号的所述文件,若所述变更代码行的行号和所述函数的行号具有交集,将所述函数作为变更函数,并获取所述变更函数的行号,所述变更函数用于指示所述版本号的所述文件与预设版本号的所述文件之间的变更代码行对应的函数;
发送模块,用于将所述变更文件路径列表和所述至少一个版本号的所述文件对应的变更函数的行号发送给所述客户端。
10.一种客户端,其特征在于,包括:处理器;
存储器,用于存储所述处理器的计算机程序;
其中,所述处理器被配置为通过执行所述计算机程序来实现权利要求1至4任一项所述的覆盖率数据的处理方法。
11.一种服务器,其特征在于,包括:处理器;
存储器,用于存储所述处理器的计算机程序;
其中,所述处理器被配置为通过执行所述计算机程序来实现权利要求5至7任一项所述的覆盖率数据的处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的覆盖率数据的处理方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求5至7任一项所述的覆盖率数据的处理方法。
CN201911013735.7A 2019-10-23 2019-10-23 覆盖率数据的处理方法、装置及存储介质 Active CN110727602B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911013735.7A CN110727602B (zh) 2019-10-23 2019-10-23 覆盖率数据的处理方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911013735.7A CN110727602B (zh) 2019-10-23 2019-10-23 覆盖率数据的处理方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN110727602A CN110727602A (zh) 2020-01-24
CN110727602B true CN110727602B (zh) 2024-02-06

Family

ID=69221900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911013735.7A Active CN110727602B (zh) 2019-10-23 2019-10-23 覆盖率数据的处理方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN110727602B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444087B (zh) * 2020-03-03 2023-12-01 北京齐尔布莱特科技有限公司 一种覆盖率数据处理方法、装置、计算设备及可读存储介质
CN116701182B (zh) * 2023-05-10 2024-06-04 合芯科技有限公司 一种覆盖率标记文件更新方法、装置、设备及存储介质
CN117349150A (zh) * 2023-09-22 2024-01-05 乾升利信息技术(上海)有限公司 一种覆盖率数据处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547698A (zh) * 2016-11-30 2017-03-29 网易(杭州)网络有限公司 覆盖率数据的处理方法、装置和服务器
CN108170610A (zh) * 2018-01-17 2018-06-15 北京网信云服信息科技有限公司 确定测试覆盖率的方法和装置
CN108959059A (zh) * 2017-05-19 2018-12-07 腾讯科技(深圳)有限公司 一种测试方法以及测试平台

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093716A1 (en) * 2001-11-13 2003-05-15 International Business Machines Corporation Method and apparatus for collecting persistent coverage data across software versions
US10289532B2 (en) * 2015-04-08 2019-05-14 Opshub, Inc. Method and system for providing delta code coverage information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547698A (zh) * 2016-11-30 2017-03-29 网易(杭州)网络有限公司 覆盖率数据的处理方法、装置和服务器
CN108959059A (zh) * 2017-05-19 2018-12-07 腾讯科技(深圳)有限公司 一种测试方法以及测试平台
CN108170610A (zh) * 2018-01-17 2018-06-15 北京网信云服信息科技有限公司 确定测试覆盖率的方法和装置

Also Published As

Publication number Publication date
CN110727602A (zh) 2020-01-24

Similar Documents

Publication Publication Date Title
CN109388566B (zh) 一种代码覆盖率分析方法、装置、设备及存储介质
CN110727602B (zh) 覆盖率数据的处理方法、装置及存储介质
US9104806B2 (en) Tracking of code base and defect diagnostic coupling with automated triage
CN108073519B (zh) 测试用例生成方法和装置
US7320125B2 (en) Program execution stack signatures
US8239404B2 (en) Identifying entries and exits of strongly connected components
CN108563445B (zh) 应用程序代码检测方法及服务器
KR20160064930A (ko) 소스 코드의 오류 검출에 있어서 경보 유형 분류 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체
CN105468508A (zh) 代码检测方法及装置
CN108399125B (zh) 自动化测试方法、装置、计算机设备和存储介质
CN110580220B (zh) 测量代码段执行时间的方法及终端设备
CN115391228A (zh) 精准测试方法、装置、设备及介质
CN110046086B (zh) 用于测试的期望数据生成方法及装置和电子设备
US8321407B2 (en) Methods for calculating a combined impact analysis repository
US9690639B2 (en) Failure detecting apparatus and failure detecting method using patterns indicating occurrences of failures
CN111413952A (zh) 机器人故障检测方法、装置、电子设备及可读存储介质
CN109582574B (zh) 一种代码覆盖率统计方法、装置、存储介质及终端设备
CN107423140B (zh) 一种返回码识别方法和装置
CN111382052A (zh) 代码质量评价方法、装置及电子设备
CN114153712A (zh) 异常处理方法、装置、设备及存储介质
CN110413516B (zh) 识别慢sql代码的方法及装置和电子设备
CN112631905A (zh) 执行过程数据管理方法、装置、计算机设备及存储介质
CN112612882B (zh) 检阅报告生成方法、装置、设备和存储介质
US10437710B2 (en) Code coverage testing utilizing test-to-file maps
CN116795656B (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