CN112597041A - 代码覆盖率的跨分支合并方法、系统、设备及存储介质 - Google Patents

代码覆盖率的跨分支合并方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN112597041A
CN112597041A CN202011583837.5A CN202011583837A CN112597041A CN 112597041 A CN112597041 A CN 112597041A CN 202011583837 A CN202011583837 A CN 202011583837A CN 112597041 A CN112597041 A CN 112597041A
Authority
CN
China
Prior art keywords
code
data
branch
code coverage
merging
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
Application number
CN202011583837.5A
Other languages
English (en)
Other versions
CN112597041B (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.)
Shanghai Pinshun Information Technology Co ltd
Original Assignee
Shanghai Pinshun Information Technology 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 Shanghai Pinshun Information Technology Co ltd filed Critical Shanghai Pinshun Information Technology Co ltd
Priority to CN202011583837.5A priority Critical patent/CN112597041B/zh
Publication of CN112597041A publication Critical patent/CN112597041A/zh
Application granted granted Critical
Publication of CN112597041B publication Critical patent/CN112597041B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

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

本发明公开了一种代码覆盖率的跨分支合并方法、系统、设备及存储介质,其中方法包括:获取第一分支的第一代码覆盖率数据和第二分支的第二代码覆盖率数据;对第一分支的最新commit id与第二分支的最新commit id进行代码差异比较,得到代码差异数据块集合;将第一代码覆盖率数据中不属于代码差异数据块集合的代码块合并到第二代码覆盖率数据中,并进行标记;将第一代码覆盖率数据中属于代码差异数据块集合的代码块内无变更的代码合并到第二代码覆盖率数据中,并进行标记。本发明通过增加覆盖率标记的方式,使得在跨分支的代码覆盖率合并后能够区分哪一行是在哪一分支覆盖的,从而提高了测试的精准度及效率,改善了用户体验。

Description

代码覆盖率的跨分支合并方法、系统、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码覆盖率的跨分支合并方法、系统、设备及存储介质。
背景技术
随着互联网技术的迅速发展,互联网产品的发布节奏越来越快,人们对互联网产品的质量要求也越来越高,因此在互联网产品发布前,开发人员会使用产品测试平台对互联网产品进行测试,在测试过程中不断发现问题,针对发现的问题不断对代码进行修改,然后重新进行测试,以保证互联网产品的质量。现有技术中,通常需要对互联网产品的测试过程进行代码覆盖率的统计。代码覆盖率可以衡量测试任务的完成情况,表征代码被测试的比例和程度。也就是说,开发人员可以通过分析代码覆盖率,掌握哪些代码已经完成测试,哪些代码没有进行测试,从而针对没有进行测试的代码进行补充测试,完成对互联网产品的整体测试,提升测试的全面性。
目前,在移动端App的测试工作流程中包括功能测试和回归测试两个阶段。从业界的代码覆盖率技术来看,Objective-C代码覆盖率只支持跨git commit的代码覆盖率按行合并,但对于跨分支的代码覆盖率不能直接按行合并,因为会存在无法区分哪一行是在功能测试分支覆盖,哪一行是在回归测试分支覆盖的情况,从而影响了在回归测试阶段代码覆盖率分析的精准度及效率。
故,如何对现有的跨分支的代码覆盖率合并技术进行改进,以克服上述缺陷成为了本领域技术人员重要的研究课题之一。
以上信息作为背景信息给出只是为了辅助理解本公开,并没有确定或者承认任意上述内容是否可用作相对于本公开的现有技术。
发明内容
本发明提供一种代码覆盖率的跨分支合并方法、系统、设备及存储介质,以解决现有技术的不足。
为实现上述目的,本发明提供以下的技术方案:
第一方面,本发明实施例提供一种代码覆盖率的跨分支合并方法,所述方法包括:
获取第一分支的第一代码覆盖率数据和第二分支的第二代码覆盖率数据;
对所述第一分支的最新commit id与所述第二分支的最新commit id进行代码差异比较,得到代码差异数据块集合;
对所述第一代码覆盖率数据中的每一个代码块进行是否属于所述代码差异数据块集合的判断,以区分出所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块和属于所述代码差异数据块集合的代码块;
将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记;
将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记。
进一步地,所述代码覆盖率的跨分支合并方法中,所述第一分支为功能测试分支,所述第二分支为回归测试分支。
进一步地,所述代码覆盖率的跨分支合并方法中,所述将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记的步骤包括:
将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块判定为无变更的代码块,并合并到所述第二代码覆盖率数据中;
返回所述无变更的代码块在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
进一步地,所述代码覆盖率的跨分支合并方法中,所述将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记的步骤包括:
将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块判定为有变更的代码块,并将所述有变更的代码块内无变更的代码合并到所述第二代码覆盖率数据中;
返回所述有变更的代码块内无变更的代码在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
第二方面,本发明实施例提供一种代码覆盖率的跨分支合并系统,所述系统包括:
获取模块,用于获取第一分支的第一代码覆盖率数据和第二分支的第二代码覆盖率数据;
比较模块,用于对所述第一分支的最新commit id与所述第二分支的最新commitid进行代码差异比较,得到代码差异数据块集合;
区分模块,用于对所述第一代码覆盖率数据中的每一个代码块进行是否属于所述代码差异数据块集合的判断,以区分出所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块和属于所述代码差异数据块集合的代码块;
合并模块,用于将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记;以及将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记。
进一步地,所述代码覆盖率的跨分支合并系统中,所述第一分支为功能测试分支,所述第二分支为回归测试分支。
进一步地,所述代码覆盖率的跨分支合并系统中,所述合并模块具体用于:
将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块判定为无变更的代码块,并合并到所述第二代码覆盖率数据中;
返回所述无变更的代码块在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
进一步地,所述代码覆盖率的跨分支合并系统中,所述合并模块具体用于:
将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块判定为有变更的代码块,并将所述有变更的代码块内无变更的代码合并到所述第二代码覆盖率数据中;
返回所述有变更的代码块内无变更的代码在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
第三方面,本发明实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上任一方面所述的代码覆盖率的跨分支合并方法。
第四方面,本发明实施例提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令由计算机处理器执行,以实现如上任一方面所述的代码覆盖率的跨分支合并方法。
本发明实施例提供的一种代码覆盖率的跨分支合并方法、系统、设备及存储介质,通过增加覆盖率标记的方式,使得在跨分支的代码覆盖率合并后能够区分哪一行是在哪一分支覆盖的,从而提高了测试的精准度及效率,改善了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例一提供的一种代码覆盖率的跨分支合并方法的流程示意图;
图2是本发明实施例二提供的一种代码覆盖率的跨分支合并系统的功能模块示意图;
图3是本发明实施例三提供的一种计算机设备的结构示意图。
具体实施方式
为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中设置的组件。当一个组件被认为是“设置在”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中设置的组件。
此外,术语“长”“短”“内”“外”等指示方位或位置关系为基于附图所展示的方位或者位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或原件必须具有此特定的方位、以特定的方位构造进行操作,以此不能理解为本发明的限制。
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
实施例一
有鉴于现有的代码覆盖率的跨分支合并技术存在的缺陷,本发明人基于从事该行业多年丰富的实务经验及专业知识,并配合学理的运用,积极加以研究创新,以期创设一种切实可行的代码覆盖率的跨分支合并技术,使其更具有实用性。在经过不断的研究、设计并反复试作及改进后,终于创设出确具实用价值的本发明。
请参阅图1,图1是本发明实施例公开的一种代码覆盖率的跨分支合并方法的流程示意图,该方法适用于代码覆盖率的跨分支合并的场景,该方法由代码覆盖率的跨分支合并系统来执行,该系统可以由软件和/或硬件实现,集成于计算机的内部。如图1所示,该代码覆盖率的跨分支合并方法可以包括以下步骤:
S101、获取第一分支的第一代码覆盖率数据和第二分支的第二代码覆盖率数据。
其中,所述第一分支为功能测试分支,所述第二分支为回归测试分支。按照测试工作流程,即先进行功能测试阶段再进行回归测试阶段的工作流程,则需要将所述功能测试分支合并到所述回归测试分支。
S102、对所述第一分支的最新commit id与所述第二分支的最新commit id进行代码差异比较,得到代码差异数据块集合。
需要说明的是,本步骤进行的代码差异比较是通过git diff工具实现的,gitdiff工具是一个比较文件工具。一般来说,开发人员在编写程序后会将程序上传到特定的代码库,而上传的程序中就包含有相应的commit id。
所述commit id中的id指的是hash值,即哈希值。哈希值是根据文件内容的数据通过逻辑运算获得的值,不相同的文件(即使是同一个文件名)得到的哈希值也是不相同的,因此可以将哈希值用作标识每个文件的身份证。
当需要对所述第一分支和所述第二分支进行代码差异比较时,就可以从代码库中拉取各自最新的commit id,然后通过git diff工具进行代码差异比较。
S103、对所述第一代码覆盖率数据中的每一个代码块进行是否属于所述代码差异数据块集合的判断,以区分出所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块和属于所述代码差异数据块集合的代码块。
S104、将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记。
优选的,所述步骤S104进一步包括:
将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块判定为无变更的代码块,并合并到所述第二代码覆盖率数据中;
返回所述无变更的代码块在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
S105、将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记。
优选的,所述步骤S105进一步包括:
将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块判定为有变更的代码块,并将所述有变更的代码块内无变更的代码合并到所述第二代码覆盖率数据中;
返回所述有变更的代码块内无变更的代码在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
需要说明的是,通过在所述第二代码覆盖率数据中标记从所述第一代码覆盖率数据合并过来的无变更的代码块以及无变更的代码,从而在测试完成后,可以从回归测试分支中获悉行哪一行代码是在功能测试分支覆盖了,哪一行代码是在回归测试分支覆盖了,开发人员只需关注在功能测试阶段以及回归测试阶段均没有覆盖的行代码即可。
本发明实施例提供的一种代码覆盖率的跨分支合并方法,通过增加覆盖率标记的方式,使得在跨分支的代码覆盖率合并后能够区分哪一行是在哪一分支覆盖的,从而提高了测试的精准度及效率,改善了用户体验。
实施例二
请参阅附图2,图2为本发明实施例二提供的一种代码覆盖率的跨分支合并系统的功能模块示意图,该系统适用于执行本发明实施例提供的代码覆盖率的跨分支合并方法。该系统具体包含如下模块:
获取模块201,用于获取第一分支的第一代码覆盖率数据和第二分支的第二代码覆盖率数据;
比较模块202,用于对所述第一分支的最新commit id与所述第二分支的最新commit id进行代码差异比较,得到代码差异数据块集合;
区分模块203,用于对所述第一代码覆盖率数据中的每一个代码块进行是否属于所述代码差异数据块集合的判断,以区分出所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块和属于所述代码差异数据块集合的代码块;
合并模块204,用于将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记;以及将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记。
优选的,所述第一分支为功能测试分支,所述第二分支为回归测试分支。
优选的,所述合并模块204具体用于:
将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块判定为无变更的代码块,并合并到所述第二代码覆盖率数据中;
返回所述无变更的代码块在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
优选的,所述合并模块204具体用于:
将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块判定为有变更的代码块,并将所述有变更的代码块内无变更的代码合并到所述第二代码覆盖率数据中;
返回所述有变更的代码块内无变更的代码在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
本发明实施例提供的一种代码覆盖率的跨分支合并系统,通过增加覆盖率标记的方式,使得在跨分支的代码覆盖率合并后能够区分哪一行是在哪一分支覆盖的,从而提高了测试的精准度及效率,改善了用户体验。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例三
图3为本发明实施例三提供的一种计算机设备的结构示意图。图3示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图3显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图3中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的代码覆盖率的跨分支合并方法。
也即,所述处理单元执行所述程序时实现:获取第一分支的第一代码覆盖率数据和第二分支的第二代码覆盖率数据;对所述第一分支的最新commit id与所述第二分支的最新commit id进行代码差异比较,得到代码差异数据块集合;对所述第一代码覆盖率数据中的每一个代码块进行是否属于所述代码差异数据块集合的判断,以区分出所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块和属于所述代码差异数据块集合的代码块;将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记;将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记。
实施例四
本发明实施例四提供了一种计算机可读存储介质,其上存储有计算机可执行指令,该指令被处理器执行时实现如本申请所有发明实施例提供的代码覆盖率的跨分支合并方法:
也即,所述处理单元执行所述程序时实现:获取第一分支的第一代码覆盖率数据和第二分支的第二代码覆盖率数据;对所述第一分支的最新commit id与所述第二分支的最新commit id进行代码差异比较,得到代码差异数据块集合;对所述第一代码覆盖率数据中的每一个代码块进行是否属于所述代码差异数据块集合的判断,以区分出所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块和属于所述代码差异数据块集合的代码块;将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记;将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
至此,以说明和描述的目的提供上述实施例的描述。不意指穷举或者限制本公开。特定的实施例的单独元件或者特征通常不受到特定的实施例的限制,但是在适用时,即使没有具体地示出或者描述,其可以互换和用于选定的实施例。在许多方面,相同的元件或者特征也可以改变。这种变化不被认为是偏离本公开,并且所有的这种修改意指为包括在本公开的范围内。
提供示例实施例,从而本公开将变得透彻,并且将会完全地将该范围传达至本领域内技术人员。为了透彻理解本公开的实施例,阐明了众多细节,诸如特定零件、装置和方法的示例。显然,对于本领域内技术人员,不需要使用特定的细节,示例实施例可以以许多不同的形式实施,而且两者都不应当解释为限制本公开的范围。在某些示例实施例中,不对公知的工序、公知的装置结构和公知的技术进行详细地描述。
在此,仅为了描述特定的示例实施例的目的使用专业词汇,并且不是意指为限制的目的。除非上下文清楚地作出相反的表示,在此使用的单数形式“一个”和“该”可以意指为也包括复数形式。术语“包括”和“具有”是包括在内的意思,并且因此指定存在所声明的特征、整体、步骤、操作、元件和/或组件,但是不排除存在或额外地具有一个或以上的其他特征、整体、步骤、操作、元件、组件和/或其组合。除非明确地指示了执行的次序,在此描述的该方法步骤、处理和操作不解释为一定需要按照所论述和示出的特定的次序执行。还应当理解的是,可以采用附加的或者可选择的步骤。
当元件或者层称为是“在……上”、“与……接合”、“连接到”或者“联接到”另一个元件或层,其可以是直接在另一个元件或者层上、与另一个元件或层接合、连接到或者联接到另一个元件或层,也可以存在介于其间的元件或者层。与此相反,当元件或层称为是“直接在……上”、“与……直接接合”、“直接连接到”或者“直接联接到”另一个元件或层,则可能不存在介于其间的元件或者层。其他用于描述元件关系的词应当以类似的方式解释(例如,“在……之间”和“直接在……之间”、“相邻”和“直接相邻”等)。在此使用的术语“和/或”包括该相关联的所罗列的项目的一个或以上的任一和所有的组合。虽然此处可能使用了术语第一、第二、第三等以描述各种的元件、组件、区域、层和/或部分,这些元件、组件、区域、层和/或部分不受到这些术语的限制。这些术语可以只用于将一个元件、组件、区域或部分与另一个元件、组件、区域或部分区分。除非由上下文清楚地表示,在此使用诸如术语“第一”、“第二”及其他数值的术语不意味序列或者次序。因此,在下方论述的第一元件、组件、区域、层或者部分可以采用第二元件、组件、区域、层或者部分的术语而不脱离该示例实施例的教导。
空间的相对术语,诸如“内”、“外”、“在下面”、“在……的下方”、“下部”、“上方”、“上部”等,在此可出于便于描述的目的使用,以描述如图中所示的一个元件或者特征和另外一个或多个元件或者特征之间的关系。空间的相对术语可以意指包含除该图描绘的取向之外该装置的不同的取向。例如如果翻转该图中的装置,则描述为“在其他元件或者特征的下方”或者“在元件或者特征的下面”的元件将取向为“在其他元件或者特征的上方”。因此,示例术语“在……的下方”可以包含朝上和朝下的两种取向。该装置可以以其他方式取向(旋转90度或者其他取向)并且以此处的空间的相对描述解释。

Claims (10)

1.一种代码覆盖率的跨分支合并方法,其特征在于,所述方法包括:
获取第一分支的第一代码覆盖率数据和第二分支的第二代码覆盖率数据;
对所述第一分支的最新commit id与所述第二分支的最新commit id进行代码差异比较,得到代码差异数据块集合;
对所述第一代码覆盖率数据中的每一个代码块进行是否属于所述代码差异数据块集合的判断,以区分出所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块和属于所述代码差异数据块集合的代码块;
将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记;
将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记。
2.根据权利要求1所述的代码覆盖率的跨分支合并方法,其特征在于,所述第一分支为功能测试分支,所述第二分支为回归测试分支。
3.根据权利要求1所述的代码覆盖率的跨分支合并方法,其特征在于,所述将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记的步骤包括:
将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块判定为无变更的代码块,并合并到所述第二代码覆盖率数据中;
返回所述无变更的代码块在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
4.根据权利要求1所述的代码覆盖率的跨分支合并方法,其特征在于,所述将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记的步骤包括:
将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块判定为有变更的代码块,并将所述有变更的代码块内无变更的代码合并到所述第二代码覆盖率数据中;
返回所述有变更的代码块内无变更的代码在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
5.一种代码覆盖率的跨分支合并系统,其特征在于,所述系统包括:
获取模块,用于获取第一分支的第一代码覆盖率数据和第二分支的第二代码覆盖率数据;
比较模块,用于对所述第一分支的最新commit id与所述第二分支的最新commit id进行代码差异比较,得到代码差异数据块集合;
区分模块,用于对所述第一代码覆盖率数据中的每一个代码块进行是否属于所述代码差异数据块集合的判断,以区分出所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块和属于所述代码差异数据块集合的代码块;
合并模块,用于将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块合并到所述第二代码覆盖率数据中,并进行标记;以及将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块内无变更的代码合并到所述第二代码覆盖率数据中,并进行标记。
6.根据权利要求5所述的代码覆盖率的跨分支合并系统,其特征在于,所述第一分支为功能测试分支,所述第二分支为回归测试分支。
7.根据权利要求5所述的代码覆盖率的跨分支合并系统,其特征在于,所述合并模块具体用于:
将所述第一代码覆盖率数据中不属于所述代码差异数据块集合的代码块判定为无变更的代码块,并合并到所述第二代码覆盖率数据中;
返回所述无变更的代码块在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
8.根据权利要求5所述的代码覆盖率的跨分支合并系统,其特征在于,所述合并模块具体用于:
将所述第一代码覆盖率数据中属于所述代码差异数据块集合的代码块判定为有变更的代码块,并将所述有变更的代码块内无变更的代码合并到所述第二代码覆盖率数据中;
返回所述有变更的代码块内无变更的代码在所述第二代码覆盖率数据中的代码行号,并在所述第二代码覆盖率数据中进行标记。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1~4中任一项所述的代码覆盖率的跨分支合并方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令由计算机处理器执行,以实现如权利要求1~4中任一项所述的代码覆盖率的跨分支合并方法。
CN202011583837.5A 2020-12-28 2020-12-28 代码覆盖率的跨分支合并方法、系统、设备及存储介质 Active CN112597041B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011583837.5A CN112597041B (zh) 2020-12-28 2020-12-28 代码覆盖率的跨分支合并方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011583837.5A CN112597041B (zh) 2020-12-28 2020-12-28 代码覆盖率的跨分支合并方法、系统、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112597041A true CN112597041A (zh) 2021-04-02
CN112597041B CN112597041B (zh) 2023-01-20

Family

ID=75202787

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011583837.5A Active CN112597041B (zh) 2020-12-28 2020-12-28 代码覆盖率的跨分支合并方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112597041B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806227A (zh) * 2021-09-26 2021-12-17 五八同城信息技术有限公司 一种信息处理方法、装置、电子设备及存储介质

Citations (9)

* 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
CN105988926A (zh) * 2015-02-13 2016-10-05 腾讯科技(深圳)有限公司 多版本测试数据的处理方法和装置
CN107480066A (zh) * 2017-08-18 2017-12-15 网易(杭州)网络有限公司 代码覆盖率统计方法、装置、存储介质、处理器和终端
CN108829580A (zh) * 2018-05-07 2018-11-16 百度在线网络技术(北京)有限公司 多版本测试数据处理方法、装置、设备及存储介质
CN108829593A (zh) * 2018-06-05 2018-11-16 平安壹钱包电子商务有限公司 代码覆盖率计算分析方法、装置、设备及存储介质
CN109766261A (zh) * 2018-12-14 2019-05-17 中国平安财产保险股份有限公司 覆盖测试方法、装置、计算机设备和存储介质
CN110209568A (zh) * 2018-04-24 2019-09-06 腾讯科技(深圳)有限公司 覆盖率测试方法、装置及存储设备
CN111444087A (zh) * 2020-03-03 2020-07-24 北京齐尔布莱特科技有限公司 一种覆盖率数据处理方法、装置、计算设备及可读存储介质
CN111831321A (zh) * 2019-04-22 2020-10-27 北京世纪好未来教育科技有限公司 代码覆盖率的分析方法、装置及其电子设备

Patent Citations (9)

* 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
CN105988926A (zh) * 2015-02-13 2016-10-05 腾讯科技(深圳)有限公司 多版本测试数据的处理方法和装置
CN107480066A (zh) * 2017-08-18 2017-12-15 网易(杭州)网络有限公司 代码覆盖率统计方法、装置、存储介质、处理器和终端
CN110209568A (zh) * 2018-04-24 2019-09-06 腾讯科技(深圳)有限公司 覆盖率测试方法、装置及存储设备
CN108829580A (zh) * 2018-05-07 2018-11-16 百度在线网络技术(北京)有限公司 多版本测试数据处理方法、装置、设备及存储介质
CN108829593A (zh) * 2018-06-05 2018-11-16 平安壹钱包电子商务有限公司 代码覆盖率计算分析方法、装置、设备及存储介质
CN109766261A (zh) * 2018-12-14 2019-05-17 中国平安财产保险股份有限公司 覆盖测试方法、装置、计算机设备和存储介质
CN111831321A (zh) * 2019-04-22 2020-10-27 北京世纪好未来教育科技有限公司 代码覆盖率的分析方法、装置及其电子设备
CN111444087A (zh) * 2020-03-03 2020-07-24 北京齐尔布莱特科技有限公司 一种覆盖率数据处理方法、装置、计算设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
范智鹏: "《计算机应用技术》", 31 July 2018 *
马金鑫等: "Fuzzing过程中的若干优化方法", 《清华大学学报(自然科学版)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806227A (zh) * 2021-09-26 2021-12-17 五八同城信息技术有限公司 一种信息处理方法、装置、电子设备及存储介质
CN113806227B (zh) * 2021-09-26 2023-12-12 五八同城信息技术有限公司 一种信息处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112597041B (zh) 2023-01-20

Similar Documents

Publication Publication Date Title
CN107506300B (zh) 一种用户界面测试方法、装置、服务器和存储介质
CN110413506B (zh) 测试用例推荐方法、装置、设备及存储介质
US20100077257A1 (en) Methods for disaster recoverability testing and validation
CN111274154A (zh) 一种自动化测试的方法、装置、设备及存储介质
CN110674047B (zh) 软件测试方法、装置及电子设备
US20080307387A1 (en) Software development apparatus and method for providing performance prediction
CN107193747B (zh) 代码测试方法、装置和计算机设备
CN110597704B (zh) 应用程序的压力测试方法、装置、服务器和介质
CN110990274A (zh) 一种生成测试案例的数据处理方法、装置及系统
CN110688111A (zh) 业务流程的配置方法、装置、服务器和存储介质
CN112597041B (zh) 代码覆盖率的跨分支合并方法、系统、设备及存储介质
CN113505895B (zh) 一种机器学习引擎服务系统及模型训练方法和配置方法
CN112612716B (zh) 差异行代码覆盖率增强标记方法、系统、设备及存储介质
CN110716859A (zh) 自动为修改的代码推送测试用例的方法及相关装置
CN111209214B (zh) 代码测试处理方法、装置、电子设备及介质
CN113791980A (zh) 测试用例的转化分析方法、装置、设备及存储介质
CN114357057A (zh) 日志分析方法、装置、电子设备及计算机可读存储介质
CN113342632A (zh) 仿真数据自动化处理方法、装置、电子设备及存储介质
CN112416727A (zh) 批处理作业的检核方法、装置、设备及介质
CN109697141B (zh) 用于可视化测试的方法及装置
CN113760696A (zh) 一种程序问题定位方法、装置、电子设备和存储介质
CN111785388A (zh) 医疗数据处理方法及装置、存储介质及电子设备
US20190163470A1 (en) Skills identification for software products
CN114201410A (zh) 测试用例被执行程度的监测方法、装置、设备、介质
CN113190453A (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