CN110888811B - 代码覆盖率信息处理方法、装置、电子设备及介质 - Google Patents
代码覆盖率信息处理方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN110888811B CN110888811B CN201911150361.3A CN201911150361A CN110888811B CN 110888811 B CN110888811 B CN 110888811B CN 201911150361 A CN201911150361 A CN 201911150361A CN 110888811 B CN110888811 B CN 110888811B
- Authority
- CN
- China
- Prior art keywords
- code
- coverage rate
- information
- group
- information corresponding
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本申请实施例提供了一种代码覆盖率信息处理方法、装置、电子设备及介质。该方法包括:获取待检测的源代码对应的代码覆盖率报告文件,基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息,基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息。本申请实施例实现基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别被测试的比例和程度,以及各个重要程度的代码组分别被测试的比例和程度,从而有利于对待检测的源代码中各个类信息和各个重要程度的代码组进行分析。
Description
技术领域
本申请涉及互联网技术领域,具体而言,本申请涉及一种代码覆盖率信息处理方法、装置、电子设备及介质。
背景技术
随着互联网技术的不断发展,各种各样的应用程序逐渐走进用户的视野。一般地,一个应用程序需要进行开发与反复测试,直至测试通过后,该应用程序才能进入市场,走进用户的视野。
在应用程序的测试过程中,代码覆盖率信息是需要考量的重要指标之一。代码覆盖率信息用于描述源代码被测试的比例和程度,其中,代码覆盖率信息的数值越高,代表被测试的源代码比例越高。但是由于源代码中包含多个类信息,并且各个类信息的重要程度并不同,仅知道整个源代码被测试的比例和程度,可能不利用后续对该源代码进行分析。
发明内容
本申请提供了一种代码覆盖率信息处理方法、装置、电子设备及介质,可以解决以上至少一种技术问题。
第一方面,提供了一种代码覆盖率信息处理方法,该方法包括:
获取待检测的源代码对应的代码覆盖率报告文件;
基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息;
基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息。
第二方面,提供了一种代码覆盖率信息处理装置,该装置包括:
第一获取模块,用于获取待检测的源代码对应的代码覆盖率报告文件;
第一确定模块,用于基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息;
第二确定模块,用于基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息。
第三方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行根据第一方面所示的代码覆盖率信息处理方法对应的操作。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所示的代码覆盖率信息处理方法。
本申请提供的技术方案带来的有益效果是:
本申请提供了一种代码覆盖率信息处理方法、装置、电子设备及介质,与现有技术相比,本申请通过获取待检测的源代码对应的代码覆盖率报告文件,基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息,基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息,即实现基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别被测试的比例和程度,以及各个重要程度的代码组分别被测试的比例和程度,从而有利于对待检测的源代码中各个类信息和各个重要程度的代码组进行分析,进而有利于对该待检测的源代码进行分析。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种代码覆盖率信息处理方法的流程示意图;
图2为本申请实施例提供的另一种代码覆盖率信息处理方法的流程示意图;
图3为本申请实施例提供的一种代码覆盖率信息处理装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请实施例提供了一种代码覆盖率信息处理方法,可以由终端设备执行,也可以由服务器执行,如图1所示,该方法包括:
步骤S101,获取待检测的源代码对应的代码覆盖率报告文件。
对于本申请实施例,针对待检测的源代码,可利用预设代码检测工具获取待检测的源代码对应的代码覆盖率报告文件,例如,利用jacoco获取代码覆盖率报告文件。其中,jacoco是一个统计java项目代码覆盖率的工具,在java项目中集成jacoco,并按照jacoco规范编写单元测试用例,可定期执行单元测试,生成并获取代码覆盖率报告文件。
步骤S102,基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息。
对于本申请实施例,代码覆盖率报告文件对应的内容包括待检测的源代码中的各个类信息分别对应的代码覆盖率信息,例如,待检测的源代码中包含10个类信息,则代码覆盖率报告文件对应的内容包括10个类信息分别对应的代码覆盖率信息。
进一步地,对代码覆盖率报告文件进行解析处理,以基于代码覆盖率报告文件对应的内容所包括的待检测的源代码中的各个类信息分别对应的代码覆盖率信息,确定待检测的源代码中各个类信息分别对应的代码覆盖率信息。
步骤S103,基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息。
其中,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息。
对于本申请实施例,可以对各个类信息按照重要程度进行分组划分,具体地,可以先对各个类信息进行分类处理,再对分类处理后的各个类信息按照重要程度进行划分。例如,先对待检测的源代码中各个类信息进行分类处理得到技术类与业务类,对技术类中的各个类信息按照重要程度进行划分后得到通用技术组,对业务类中的各个类信息按照重要程度进行划分后,分别得到核心业务组、重要业务组以及次要业务组,即对待检测的源代码中各个类信息按照重要程度进行分组划分后,分别得到通用技术组、核心业务组、重要业务组以及次要业务组。
对于本申请实施例,基于待检测的源代码中各个类信息分别对应的代码覆盖率信息,确定各个代码组分别对应的代码覆盖率信息,例如,若待检测的源代码中包含10个类信息,且各个代码组分别为通用技术组、核心业务组、重要业务组以及次要业务组,则基于10个类信息分别对应的代码覆盖率信息,确定通用技术组、核心业务组、重要业务组以及次要业务组分别对应的代码覆盖率信息。
本申请实施例提供了一种代码覆盖率信息处理方法,与现有技术相比,本申请实施例通过获取待检测的源代码对应的代码覆盖率报告文件,基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息,基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息,即实现基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别被测试的比例和程度,以及各个重要程度的代码组分别被测试的比例和程度,从而有利于对待检测的源代码中各个类信息和各个重要程度的代码组进行分析,进而有利于对该待检测的源代码进行分析。
以上阐述了一种代码覆盖率信息处理方法,下面将详细说明代码覆盖率信息处理方法中步骤S103的相关内容,具体如下:
本申请实施例的另一种可能实现方式,步骤S103具体可以包括:基于各个类信息分别对应代码覆盖率信息确定每个代码组中包含的各个类信息分别对应的代码覆盖率信息;基于每个代码组中包含的各个类信息分别对应的代码覆盖率信息确定每个代码组对应的代码覆盖率信息,以得到各个代码组分别对应的代码覆盖率信息。
本申请实施例提供了以下具体实例:若待检测的源代码中包含10个类信息,且各个代码组分别为通用技术组、核心业务组、重要业务组以及次要业务组,则基于10个类信息分别对应代码覆盖率信息,分别确定通用技术组包含的3个类信息以及各个类信息分别对应的代码覆盖率信息、核心业务组包含的1个类信息以及各个类信息分别对应的代码覆盖率信息、重要业务组包含的2个类信息以及各个类信息分别对应的代码覆盖率信息、以及次要业务组包含的4个类信息以及各个类信息分别对应的代码覆盖率信息,基于通用技术组包含的3个类信息以及各个类信息分别对应的代码覆盖率信息确定通用技术组对应的代码覆盖率信息、基于核心业务组包含的1个类信息以及各个类信息分别对应的代码覆盖率信息确定核心业务组对应的代码覆盖率信息、基于重要业务组包含的2个类信息以及各个类信息分别对应的代码覆盖率信息确定重要业务组对应的代码覆盖率信息、以及基于次要业务组包含的4个类信息以及各个类信息分别对应的代码覆盖率信息确定次要业务组对应的代码覆盖率信息。
对于本申请实施例,针对任一代码组,基于任一代码组中包含的各个类信息分别对应的代码覆盖率信息,确定至少一个待选择的代码覆盖率信息,从至少一个待选择的代码覆盖率信息中确定任一代码组对应的代码覆盖率信息。
例如,针对通用技术组,基于通用技术组包含的3个类信息分别对应的代码覆盖率信息99%、97%以及96%,可确定三个待选择的代码覆盖率信息,分别为:类信息的代码覆盖率信息最小值96%、类信息的代码覆盖率信息最大值99%、以及类信息的代码覆盖率信息平均值97.33%,从三个待选择的代码覆盖率信息中确定类信息的代码覆盖率信息最小值96%为通用技术组对应的代码覆盖率信息。
本申请实施例的另一种可能实现方式,步骤S103之后还可以包括步骤A1以及步骤A2中的至少一项。
步骤A1,基于各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的代码覆盖率阈值,确定满足预设条件的代码组,并向与满足预设条件的代码组相关联的终端设备发送告警信息。
其中,预设条件包括:代码组对应的代码覆盖率信息不大于该代码组对应的代码覆盖率阈值。
对于本申请实施例,若一个代码组对应的代码覆盖率信息大于该代码组对应的代码覆盖率阈值,则该代码组为测试通过的代码组;若一个代码组对应的代码覆盖率信息不大于该代码组对应的代码覆盖率阈值,则该代码组为测试不通过的代码组,即满足预设条件的代码组,向与该代码组相关联的终端设备发送告警信息,以使该代码组的相关人员知晓该代码组的测试不通过结果。
例如,若通用技术组、核心业务组、重要业务组以及次要业务组分别对应的代码覆盖率信息为96%、90%、83%以及75%,且通用技术组、核心业务组、重要业务组以及次要业务组分别对应的代码覆盖率阈值为95%、95%、85%、60%,则测试通过的代码组分别为通用技术组和次要业务组,测试不通过的代码组分别为核心业务组与重要业务组,向核心业务组相关联的终端设备发送告警信息,以使核心业务组的相关人员知晓核心业务组的测试不通过结果,向重要业务组相关联的终端设备发送告警信息,以使重要业务组的相关人员知晓重要业务组的测试不通过结果。
对于本申请实施例,向与满足预设条件的代码组相关联的终端设备发送告警信息的发送方式可以利用即时通信应用程序发送,也可以利用邮件发送,还可以利用短信发送,在本申请实施例中不限定其发送方式。
步骤A2,基于各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的代码覆盖率阈值,确定满足预设条件的代码组,并基于满足预设条件的代码组中包含的代码组的重要程度,确定发送告警信息的级别,并向特定终端设备发送该级别的告警信息。
对于本申请实施例,针对满足预设条件的代码组中包含的代码组,基于各个代码组对应的重要程度,确定各个代码组对应的发送告警信息的级别,并向特定终端设备发送各个代码组对应的级别的告警信息。其中,特定终端设备可以包括与各个代码组相关联的终端设备。
例如,若测试不通过的代码组分别为核心业务组与重要业务组,则分别确定核心业务组与重要业务组对应的重要程度,如3级重要程度与2级重要程度,基于核心业务组对应的3级重要程度确定核心业务组对应的发送告警信息的级别为3级、基于重要业务组对应的2级重要程度确定重要业务组对应的发送告警信息的级别为2级,向特定终端设备发送核心业务组的3级告警信息以及重要业务组的2级告警信息。
对于本申请实施例,向特定终端设备发送该级别的告警信息的发送方式详见上述实施例,在此不再赘述。
其中,步骤A1之前和/或步骤A2之前,还可以包括:按照方式B1和方式B2中的至少一项,确定各个代码组分别对应的代码覆盖率阈值。
方式B1,各个代码组分别对应的预配置代码覆盖率阈值。
方式B2,各个代码组分别对应的历史代码覆盖率信息。
对于本申请实施例,可以预配置各个代码组分别对应的代码覆盖率阈值,从而确定各个代码组分别对应的代码覆盖率阈值,例如,预配置通用技术组、核心业务组、重要业务组以及次要业务组分别对应的代码覆盖率阈值为95%、95%、85%、60%,则确定的通用技术组、核心业务组、重要业务组以及次要业务组分别对应的代码覆盖率阈值为95%、95%、85%、60%;还可以基于各个代码组分别对应的历史代码覆盖率信息,确定各个代码组分别对应的代码覆盖率阈值,例如,通用技术组的历史代码覆盖率信息包括98%、95%、92%,则基于98%、95%、92%可确定通用技术组的代码覆盖率阈值为95%,同样地,可分别确定核心业务组、重要业务组以及次要业务组分别对应的代码覆盖率阈值为95%、85%、60%。
上述详细介绍了按顺序依次执行步骤S101、步骤S102以及步骤S103之后,执行步骤A1或者步骤A2中的至少一项的相关内容,另一方面,按顺序依次执行步骤S101、步骤S102以及步骤S103之后,还可以执行存储各个代码组分别对应的代码覆盖率信息的相关内容,便于后续能便捷的调取本次对待检测的源代码进行测试后所得到的各个代码组分别对应的代码覆盖率信息,以方便技术人员进行分析。具体的:
本申请实施例的另一种可能实现方式,步骤S103之后还可以包括:确定各个代码组分别对应的代码覆盖率信息的测试时间;按照测试时间与代码覆盖率信息的关联关系,存储各个代码组分别对应的代码覆盖率信息的测试时间以及各个代码组分别对应的代码覆盖率信息。
对于本申请实施例,可以按照测试时间与代码覆盖率信息的关联关系,在预设数据库中存储各个代码组分别对应的代码覆盖率信息的测试时间以及各个代码组分别对应的代码覆盖率信息。例如,在预设数据库中存储通用技术组的代码覆盖率信息96%及其测试时间2019年11月10日,在预设数据库中存储核心业务组的代码覆盖率信息90%及其测试时间2019年11月10日,在预设数据库中存储重要业务组的代码覆盖率信息83%及其测试时间2019年11月11日,在预设数据库中存储次要业务组的代码覆盖率信息75%及其测试时间2019年11月12日。
对于本申请实施例,除按照测试时间与代码覆盖率信息的关联关系,存储各个代码组分别对应的代码覆盖率信息的测试时间以及各个代码组分别对应的代码覆盖率信息之外,还可以按照测试时间与综合覆盖率信息的对应关系,存储待检测的源代码对应的测试时间和待检测的源代码对应的综合覆盖率信息,其中,有关待检测的源代码对应的综合覆盖率信息的确定方式详见下述实施例。
上述详细介绍了针对待检测的源代码中各个代码组的相关处理,下面将详细介绍基于各个代码组的相关信息确定待检测的源代码对应的相关信息的内容,以使用户直观的了解待检测的源代码的测试结果。
本申请实施例的另一种可能实现方式,步骤S103之后还可以包括:获取各个代码组分别对应的权重信息;基于各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的权重信息,计算待检测的源代码对应的综合覆盖率信息。
其中,各个代码组分别对应的权重信息与对应代码组的重要程度呈正比例关系。
对于本申请实施例,可以分别获取各个代码组预配置的权重信息,基于各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的权重信息,计算待检测的源代码对应的综合覆盖率信息,其中,各个代码组预配置的权重信息之和为100%。
例如,若预配置通用技术组、核心业务组、重要业务组以及次要业务组分别对应的权重信息为35%、40%、20%、5%,,且通用技术组、核心业务组、重要业务组以及次要业务组分别对应的代码覆盖率信息96%、90%、83%以及75%,则待检测的源代码对应的综合覆盖率信息=35%*96%+40%*90%+20%*83%+5%*75%=89.95%。
进一步地,计算待检测的源代码对应的综合覆盖率信息,之后还可以包括:
基于各个代码组分别对应的历史代码覆盖率信息、各个代码组分别对应的代码覆盖率信息以及综合覆盖率信息生成待检测的源代码对应的目标报告。
对于本申请实施例,可以从预设数据库中获取各个代码组分别对应的历史代码覆盖率信息,并基于获取到的各个代码组分别对应的历史代码覆盖率信息、各个代码组分别对应的代码覆盖率信息以及待检测的源代码对应的综合覆盖率信息,按照预定的报告格式生成待检测的源代码对应的目标报告。
例如,可以从预设数据库中获取通用技术组的历史代码覆盖率信息98%、95%、92%,核心业务组的历史代码覆盖率信息87%、93%、89%,重要业务组的历史代码覆盖率信息80%、86%、77%,以及次要业务组的历史代码覆盖率信息67%、78%、83%,基于通用技术组的历史代码覆盖率信息98%、95%、92%及其代码覆盖率信息96%、核心业务组的历史代码覆盖率信息87%、93%、89%及其代码覆盖率信息90%、重要业务组的历史代码覆盖率信息80%、86%、77%及其代码覆盖率信息83%、次要业务组的历史代码覆盖率信息67%、78%、83%及其代码覆盖率信息75%,以及待检测的源代码对应的综合覆盖率信息89.95%,按照预定的报告格式生成待检测的源代码对应的目标报告。
对于本申请实施例,可以将待检测的源代码对应的目标报告上传至预设展示工具中,将预设展示工具生成的报告展示页面对应的统一资源定位符(Uniform ResourceLocator,URL)发送至特定终端设备,该特定终端设备可以包括与各个代码组相关联的终端设备。其中,预设展示工具可以为SonarQube(sonar),sonar可用于管理源代码的质量。
上述实施例详细介绍了代码覆盖率信息处理方法,下述结合具体的应用场景,介绍本申请的具体实现方式,具体如图2所示,包括:
步骤S201,预建至少一个代码组,并按照规则对各个代码组进行配置。
对于本申请实施例,按照待检测的源代码中各个类信息的重要程度预建至少一个代码组,按照规则对各个代码组进行配置,具体包括配置各个代码组分别对应的权重信息、配置各个代码组分别对应的代码覆盖率阈值、配置各个代码组包括的至少一个类信息、以及配置各个代码组对应的相关人员,具体详见上述实施例。
步骤S202,利用jacoco对待检测的源代码进行单元测试,获得代码覆盖率报告文件。
对于本申请实施例,利用jacoco对待检测的源代码定期执行单元测试,生成并获得代码覆盖率报告文件,具体详见上述实施例。
步骤S203,解析代码覆盖率报告文件,并计算各代码组分别对应的代码覆盖率信息。
对于本申请实施例,按照预定格式解析代码覆盖率报告文件,得到待检测的源代码中各个类信息分别对应的代码覆盖率信息,并基于待检测的源代码中各个类信息分别对应的代码覆盖率信息,确定各个代码组分别对应的代码覆盖率信息,具体详见上述实施例。
步骤S204,获得各个代码组分别对应的历史代码覆盖率信息,并基于各个代码组分别对应的历史代码覆盖率信息及代码覆盖率信息生成目标报告。
对于本申请实施例,可以从预设数据库中获取各个代码组分别对应的历史代码覆盖率信息,还可以将各个代码组分别对应的代码覆盖率信息存储至预设数据库中,具体详见上述实施例。
步骤S205,将目标报告上报sonar。
对于本申请实施例,按照sonar规范,调用sonar接口将目标报告上报sonar,将sonar生成的目标报告对应的报告展示页面的URL以邮件方式,发送至与各个代码组相关联的终端设备,具体详见上述实施例。
上述从方法步骤的角度具体阐述了代码覆盖率信息处理方法,下面从虚拟模块或者虚拟单元的角度介绍代码覆盖率信息处理装置,具体如下所示:
本申请实施例提供了一种代码覆盖率信息处理装置,如图3所示,该代码覆盖率信息处理装置30可以包括:第一获取模块301、第一确定模块302以及第二确定模块303,其中,
第一获取模块301,用于获取待检测的源代码对应的代码覆盖率报告文件。
第一确定模块302,用于基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息。
第二确定模块303,用于基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息。
其中,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息。
本申请实施例的另一种可能实现方式,第二确定模块303包括第一确定单元和第二确定单元,其中,
第一确定单元,用于基于各个类信息分别对应代码覆盖率信息确定每个代码组中包含的各个类信息分别对应的代码覆盖率信息。
第二确定单元,用于基于每个代码组中包含的各个类信息分别对应的代码覆盖率信息确定每个代码组对应的代码覆盖率信息,以得到各个代码组分别对应的代码覆盖率信息。
本申请实施例的另一种可能实现方式,代码覆盖率信息处理装置30还包括第一处理模块和第二处理模块中的至少一项,其中,
第一处理模块,用于基于各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的代码覆盖率阈值,确定满足预设条件的代码组,并向与满足预设条件的代码组相关联的终端设备发送告警信息。
其中,预设条件包括:代码组对应的代码覆盖率信息不大于该代码组对应的代码覆盖率阈值。
第二处理模块,用于基于各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的代码覆盖率阈值,确定满足预设条件的代码组,并基于满足预设条件的代码组中包含的代码组的重要程度,确定发送告警信息的级别,并向特定终端设备发送该级别的告警信息。
本申请实施例的另一种可能实现方式,代码覆盖率信息处理装置30还包括第三确定模块,其中,
第三确定模块,用于按照以下至少一项,确定各个代码组分别对应的代码覆盖率阈值:
各个代码组分别对应的预配置代码覆盖率阈值;各个代码组分别对应的历史代码覆盖率信息。
本申请实施例的另一种可能实现方式,代码覆盖率信息处理装置30还包括第二获取模块和计算模块,其中,
第二获取模块,用于获取各个代码组分别对应的权重信息,各个代码组分别对应的权重信息与对应代码组的重要程度呈正比例关系。
计算模块,用于基于各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的权重信息,计算待检测的源代码对应的综合覆盖率信息。
本申请实施例的另一种可能实现方式,代码覆盖率信息处理装置30还包括生成模块,其中,
生成模块,用于基于各个代码组分别对应的历史代码覆盖率信息、各个代码组分别对应的代码覆盖率信息以及综合覆盖率信息生成待检测的源代码对应的目标报告。
本申请实施例的另一种可能实现方式,代码覆盖率信息处理装置30还包括第四确定模块和存储模块,其中,
第四确地模块,用于确定各个代码组分别对应的代码覆盖率信息的测试时间。
存储模块,用于按照测试时间与代码覆盖率信息的关联关系,存储各个代码组分别对应的代码覆盖率信息的测试时间以及各个代码组分别对应的代码覆盖率信息。
对于本申请实施例,第一获取模块与第二获取模块可以为同一个获取模块,也可以为两个不同的获取模块,第一处理模块和第二处理模块可以为同一个处理模块,也可以为两个不同的处理模块,第一确定模块、第二确定模块、第三确定模块以及第四确定模块可以为同一个确定模块,也可以为四个不同的确定模块,还可以任意组合为相同的确定模块,第一确定单元和第二确定单元可以为同一个确定单元,也可以为两个不同的确定单元,在本申请实施例中不做限定。
本申请实施例的代码覆盖率信息处理装置可执行本申请方法实施例提供的一种代码覆盖率信息处理方法,其实现原理相类似,此处不再赘述。
本申请实施例提供了一种代码覆盖率信息处理装置,与现有技术相比,本申请实施例通过获取待检测的源代码对应的代码覆盖率报告文件,基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息,基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息,即实现基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别被测试的比例和程度,以及各个重要程度的代码组分别被测试的比例和程度,从而有利于对待检测的源代码中各个类信息和各个重要程度的代码组进行分析,进而有利于对该待检测的源代码进行分析。
上述从虚拟模块或者虚拟单元的角度介绍本申请的代码覆盖率信息处理装置,下面从实体装置的角度介绍本申请的电子设备。
本申请实施例提供了一种电子设备,如图4所示,图4所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI总线或EISA总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。
本申请实施例提供了一种电子设备,本申请实施例中的电子设备包括:存储器和处理器;至少一个程序,存储于所述存储器中,用于被所述处理器执行时,与现有技术相比可实现:通过获取待检测的源代码对应的代码覆盖率报告文件,基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息,基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息,即实现基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别被测试的比例和程度,以及各个重要程度的代码组分别被测试的比例和程度,从而有利于对待检测的源代码中各个类信息和各个重要程度的代码组进行分析,进而有利于对该待检测的源代码进行分析。
上述从实体装置的角度介绍本申请的代码覆盖率信息处理电子设备,下面从存储介质的角度介绍本申请的计算机可读存储介质。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,通过获取待检测的源代码对应的代码覆盖率报告文件,基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别对应的代码覆盖率信息,基于各个类信息分别对应代码覆盖率信息确定各个代码组分别对应的代码覆盖率信息,各个代码组为对各个类信息按照重要程度划分得到的,且任一代码组中包括至少一个类信息,即实现基于代码覆盖率报告文件确定待检测的源代码中各个类信息分别被测试的比例和程度,以及各个重要程度的代码组分别被测试的比例和程度,从而有利于对待检测的源代码中各个类信息和各个重要程度的代码组进行分析,进而有利于对该待检测的源代码进行分析。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (9)
1.一种代码覆盖率信息处理方法,其特征在于,包括:
根据待检测的源代码中各个类信息的重要程度构建至少一个代码组;各代码组包括至少一个类信息;
获取待检测的源代码对应的代码覆盖率报告文件;
基于所述代码覆盖率报告文件确定所述待检测的源代码中各个类信息分别对应的代码覆盖率信息;
基于各个类信息分别对应代码覆盖率信息确定每个代码组中包含的各个类信息分别对应的代码覆盖率信息;
基于所述每个代码组中包含的各个类信息分别对应的代码覆盖率信息确定各代码组对应的代码覆盖率信息。
2.根据权利要求1所述的方法,其特征在于,所述基于所述每个代码组中包含的各个类信息分别对应的代码覆盖率信息确定各代码组对应的代码覆盖率信息,之后还包括以下至少一项:
基于所述各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的代码覆盖率阈值,确定满足预设条件的代码组,并向与满足预设条件的代码组相关联的终端设备发送告警信息,所述预设条件包括:代码组对应的代码覆盖率信息不大于该代码组对应的代码覆盖率阈值;
基于所述各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的代码覆盖率阈值,确定满足预设条件的代码组,并基于所述满足预设条件的代码组中包含的代码组的重要程度,确定发送告警信息的级别,并向特定终端设备发送所述级别的告警信息;所述特定终端设备包括与所述各个代码组相关联的终端设备。
3.根据权利要求2所述的方法,其特征在于,所述基于所述各个代码组分别对应的代码覆盖率信息以及各个代码组分别对应的代码覆盖率阈值,确定满足预设条件的代码组,之前还包括:
按照以下至少一项,确定各个代码组分别对应的代码覆盖率阈值:
各个代码组分别对应的预配置代码覆盖率阈值;
所述各个代码组分别对应的历史代码覆盖率信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述每个代码组中包含的各个类信息分别对应的代码覆盖率信息确定各代码组对应的代码覆盖率信息,之后还包括:
获取各个代码组分别对应的权重信息,各个代码组分别对应的权重信息与对应代码组的重要程度呈正比例关系;
基于所述各个代码组分别对应的代码覆盖率信息以及所述各个代码组分别对应的权重信息,计算所述待检测的源代码对应的综合覆盖率信息。
5.根据权利要求4所述的方法,其特征在于,所述计算所述待检测的源代码对应的综合覆盖率信息,之后还包括:
基于各个代码组分别对应的历史代码覆盖率信息、所述各个代码组分别对应的代码覆盖率信息以及所述综合覆盖率信息生成所述待检测的源代码对应的目标报告。
6.根据权利要求1所述的方法,其特征在于,所述基于所述每个代码组中包含的各个类信息分别对应的代码覆盖率信息确定各代码组对应的代码覆盖率信息,之后还包括:
确定各个代码组分别对应的代码覆盖率信息的测试时间;
按照测试时间与代码覆盖率信息的关联关系,存储所述各个代码组分别对应的代码覆盖率信息的测试时间以及所述各个代码组分别对应的代码覆盖率信息。
7.一种代码覆盖率信息处理装置,其特征在于,包括:
第二确定模块,用于根据待检测的源代码中各个类信息的重要程度构建至少一个代码组;各代码组包括至少一个类信息;
第一获取模块,用于获取待检测的源代码对应的代码覆盖率报告文件;
第一确定模块,用于基于所述代码覆盖率报告文件确定所述待检测的源代码中各个类信息分别对应的代码覆盖率信息;
第二确定模块,还用于基于各个类信息分别对应代码覆盖率信息确定每个代码组中包含的各个类信息分别对应的代码覆盖率信息;基于所述每个代码组中包含的各个类信息分别对应的代码覆盖率信息确定各代码组对应的代码覆盖率信息。
8.一种电子设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1~6任一项所述的代码覆盖率信息处理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~6任一项所述的代码覆盖率信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911150361.3A CN110888811B (zh) | 2019-11-21 | 2019-11-21 | 代码覆盖率信息处理方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911150361.3A CN110888811B (zh) | 2019-11-21 | 2019-11-21 | 代码覆盖率信息处理方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888811A CN110888811A (zh) | 2020-03-17 |
CN110888811B true CN110888811B (zh) | 2023-07-18 |
Family
ID=69748292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911150361.3A Active CN110888811B (zh) | 2019-11-21 | 2019-11-21 | 代码覆盖率信息处理方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888811B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897737B (zh) * | 2020-08-21 | 2024-03-26 | 中国工商银行股份有限公司 | 微服务系统程序测试的遗漏检测方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006155092A (ja) * | 2004-11-26 | 2006-06-15 | Hitachi Software Eng Co Ltd | カバレッジ取得システム |
CN104956372A (zh) * | 2013-02-28 | 2015-09-30 | 惠普发展公司,有限责任合伙企业 | 使用运行时和静态代码分析来确定动态安全扫描的覆盖率 |
CN108519945A (zh) * | 2018-03-21 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 覆盖率测试方法、装置及存储设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9262282B2 (en) * | 2012-09-04 | 2016-02-16 | Opshub, Inc. | System and method for synchornisation of data and recovery of failures during synchronization between two systems |
CN103019933B (zh) * | 2012-11-27 | 2016-01-13 | 网宿科技股份有限公司 | 测试用例覆盖度自动识别方法及装置 |
US9612943B2 (en) * | 2013-06-28 | 2017-04-04 | Synopsys, Inc. | Prioritization of tests of computer program code |
CN105446884A (zh) * | 2015-12-16 | 2016-03-30 | 北京奇虎科技有限公司 | 代码覆盖率的测试方法及装置 |
CN105630670A (zh) * | 2015-12-16 | 2016-06-01 | 北京奇虎科技有限公司 | 一种代码覆盖率的测试方法和装置 |
CN109542789B (zh) * | 2018-11-26 | 2022-03-25 | 泰康保险集团股份有限公司 | 一种代码覆盖率统计方法及装置 |
-
2019
- 2019-11-21 CN CN201911150361.3A patent/CN110888811B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006155092A (ja) * | 2004-11-26 | 2006-06-15 | Hitachi Software Eng Co Ltd | カバレッジ取得システム |
CN104956372A (zh) * | 2013-02-28 | 2015-09-30 | 惠普发展公司,有限责任合伙企业 | 使用运行时和静态代码分析来确定动态安全扫描的覆盖率 |
CN108519945A (zh) * | 2018-03-21 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 覆盖率测试方法、装置及存储设备 |
Non-Patent Citations (1)
Title |
---|
通过分析代码覆盖提高功能覆盖率的验证输入自动生成方法;傅亮 等;《计算机辅助设计与图形学学报》;第21卷(第4期);第454-460页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110888811A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335310B (zh) | 一种接口定义方法和数据传输方法及装置 | |
CN108833458B (zh) | 一种应用推荐方法、装置、介质及设备 | |
CN110471821B (zh) | 异常变更检测方法、服务器及计算机可读存储介质 | |
KR101904436B1 (ko) | 깨진 네트워크 연결들의 기계 학습 기반 식별 | |
CN105868256A (zh) | 处理用户行为数据的方法和系统 | |
CN109684188B (zh) | 测试方法和装置 | |
CN110286938B (zh) | 用于输出针对用户的评价信息的方法和装置 | |
CN111106899B (zh) | 物联网中的数据校验方法、装置、计算机设备及存储介质 | |
CN113268403B (zh) | 时间序列的分析预测方法、装置、设备及存储介质 | |
CN111582771A (zh) | 风险评估方法、装置、设备及计算机可读存储介质 | |
US20160088499A1 (en) | Systems and methods to create message traffic | |
CN110245684B (zh) | 数据处理方法、电子设备和介质 | |
CN110888811B (zh) | 代码覆盖率信息处理方法、装置、电子设备及介质 | |
CN110737655A (zh) | 用于上报数据的方法和装置 | |
CN110046086B (zh) | 用于测试的期望数据生成方法及装置和电子设备 | |
CN109189677B (zh) | 一种针对变量数值更新状态的测试方法及装置 | |
CN108875018B (zh) | 新闻影响力评估方法、装置及电子设备 | |
CN110427277B (zh) | 数据校验方法、装置、设备及存储介质 | |
CN116578911A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN113225218A (zh) | 一种话单质量的核查方法和装置 | |
CN108390770B (zh) | 一种信息生成方法、装置及服务器 | |
CN108429636B (zh) | 定位异常系统的方法及装置和电子设备 | |
CN108536604B (zh) | 一种测试web页面响应时间的方法及终端 | |
US10733080B2 (en) | Automatically establishing significance of static analysis results | |
CN110119334A (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 |