CN105589805B - 一种代码覆盖率报告的生成方法和装置 - Google Patents

一种代码覆盖率报告的生成方法和装置 Download PDF

Info

Publication number
CN105589805B
CN105589805B CN201510944627.7A CN201510944627A CN105589805B CN 105589805 B CN105589805 B CN 105589805B CN 201510944627 A CN201510944627 A CN 201510944627A CN 105589805 B CN105589805 B CN 105589805B
Authority
CN
China
Prior art keywords
code coverage
application
coverage rate
file
storage directory
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
CN201510944627.7A
Other languages
English (en)
Other versions
CN105589805A (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510944627.7A priority Critical patent/CN105589805B/zh
Publication of CN105589805A publication Critical patent/CN105589805A/zh
Application granted granted Critical
Publication of CN105589805B publication Critical patent/CN105589805B/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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)

Abstract

本发明实施例提供了一种代码覆盖率报告的生成方法和装置,该方法包括:调用待测试的应用中的测试工具读取预设的配置文件;所述配置文件中设置有第一存储目录和第二存储目录;从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;从所述第二存储目录读取基于应用源代码编译的应用文件;根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告。本发明实施例避免了在第三方工具中进行复杂的配置,从而有效简化测试流程,实现了整个测试流程的自动化,适应于广泛的项目,为项目创建代码覆盖率报告的自动化实现提供了统一途径,可重用性高。

Description

一种代码覆盖率报告的生成方法和装置
技术领域
本发明涉及测试技术领域,特别是涉及一种代码覆盖率报告的生成方法和一种代码覆盖率报告的生成装置。
背景技术
在对应用进行测试时,代码覆盖度是衡量测试的重要指标之一,也是衡量测试工作进展情况的重要指标之一。
无论是单元测试、API(Application Programming Interface,应用程序编程接口)测试还是功能性测试,最终都是调用了产品的代码。
测试结束后,通过代码覆盖率数据,可以知道测试得是否充分,测试的弱点在哪些方面,进而可以指导设计能够增加覆盖率的测试用例。
其中,以Android(安卓)平台中,代码覆盖率主要使用测试工具Jacoco进行统计。
目前覆盖率报告的生成过程是通过将Jacoco集成到第三方开发平台,在项目构建中做相应的环境配置实现的。
由于项目构建使用的第三方平台存在差异,依据平台的类型,实现过程也各不相同,此处以Android项目常用的构建工具Gradle为例。
如图1所示,在将获取的覆盖率数据文件存放到项目的build/outputs/code-coverage/connected路径下,然后在创建gradle任务(build.gradle),包括mergedData和jacocoTestReport任务,需要在这两个任务中注入项目源代码路径、编译后的文件路径、覆盖率数据路径和代码覆盖率报告生成路径等信息。
完成项目的上述gradle配置后,接收Gradle任务的数据,调用Jacoco接口,接收Gradle传入的数据,根据路径查找源码等信息,生成代码覆盖率报告。
除了Gradle工具,其它常用的第三方工具,如Ant、Maven等都可以集成Jacoco。通过它们生成覆盖率报告的过程,虽然每种工具在构建任务时需要编写的代码和配置文件都存在差异,单都是以第三方工具调用Jacoco提供的接口实现的。
在这些第三方工具生成覆盖率报告的过程,不仅要使用第三方工具,还需对代码覆盖率报告的生成环境进行复杂的配置,导致手工操作依赖程度高,自动化实现难度大;此外,依赖不同的第三方工具,其配置方案也不同,使其可重用性差。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种代码覆盖率报告的生成方法和相应的一种代码覆盖率报告的生成装置。
依据本发明的一个方面,提供了一种代码覆盖率报告的生成方法,包括:
调用待测试的应用中的测试工具读取预设的配置文件;所述配置文件中设置有第一存储目录和第二存储目录;
从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;
从所述第二存储目录读取基于应用源代码编译的应用文件;
根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告。
可选地,还包括:
当对待测试的应用进行测试时,生成代码覆盖率数据文件;
调用待测试的应用中的测试工具读取预设的配置文件;
将所述代码覆盖率数据文件写入所述第一存储目录中。
可选地,在所述根据所述应用文件和所述代码覆盖率数据文件生成代码覆盖率报告的步骤之前,所述方法还包括:
当所述代码覆盖率数据文件为多个时,合并多个代码覆盖率数据文件。
可选地,所述配置文件中还设置有第三存储目录,所述方法还包括:
将所述代码覆盖率报告输出至所述第三存储目录。
可选地,还包括:
调用待测试的应用中的测试工具,按照预设的配置选项进行其他生成代码覆盖率报告处理。
可选地,所述配置选项包括如下的一种或多种:
代码覆盖率报告的格式,覆盖率数据文件合并后的第四存储目录;
所述按照预设的配置选项进行其他生成代码覆盖率报告处理的步骤包括:
按照所述格式生成代码覆盖率报告;
和/或,
将合并后的覆盖率数据文件输出至所述第四存储目录;
和/或,
从所述第四存储目录中读取合并后的覆盖率数据文件。
根据本发明的另一方面,提供了一种代码覆盖率报告的生成装置,包括:
配置文件读取模块,适于调用待测试的应用中的测试工具读取预设的配置文件;所述配置文件中设置有第一存储目录和第二存储目录;
代码覆盖率数据文件读取模块,适于从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;
应用文件读取模块,适于从所述第二存储目录读取基于应用源代码编译的应用文件;
代码覆盖率报告生成模块,适于根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告。
可选地,还包括:
代码覆盖率数据文件生成模块,适于在对待测试的应用进行测试时,生成代码覆盖率数据文件;
配置文件调用模块,适于调用待测试的应用中的测试工具读取预设的配置文件;
代码覆盖率数据文件写入模块,适于将所述代码覆盖率数据文件写入所述第一存储目录中。
可选地,还包括:
代码覆盖率数据文件合并模块,适于在所述代码覆盖率数据文件为多个时,合并多个代码覆盖率数据文件。
可选地,所述配置文件中还设置有第三存储目录,所述装置还包括:
代码覆盖率报告输出模块,适于将所述代码覆盖率报告输出至所述第三存储目录。
可选地,还包括:
配置选项处理模块,适于调用待测试的应用中的测试工具,按照预设的配置选项进行其他生成代码覆盖率报告处理。
可选地,所述配置选项包括如下的一种或多种:
代码覆盖率报告的格式,覆盖率数据文件合并后的第四存储目录;
所述配置选项处理模块还适于:
按照所述格式生成代码覆盖率报告;
和/或,
将合并后的覆盖率数据文件输出至所述第四存储目录;
和/或,
从所述第四存储目录中读取合并后的覆盖率数据文件。
本发明实施例通过更改Jacoco等测试工具,打包Jacoco工具,将覆盖率报告生成过程独立出来,通过配置文件读取必要资源的路径信息,直接导出代码覆盖率报告,避免了在第三方工具中进行复杂的配置,从而有效简化测试流程,实现了整个测试流程的自动化,适应于广泛的项目,为项目创建代码覆盖率报告的自动化实现提供了统一途径,可重用性高。
本发明实施例对于Jacoco等测试工具中存在的可选配置项,由于这些配置项在自动化的实现上基本是固定的,测试人员一般不太需要关注这些配置项,所以,可以Jacoco等测试工具的相关函数中设置了默认路径,将其都封装在Jacoco等测试工具中,从而省去这些不必要的配置,简化了配置流程。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了现在一种在第三方工具中调用Jacoco生成代码覆盖率报告的示例图;
图2示出了根据本发明一个实施例的一种代码覆盖率报告的生成方法实施例1的步骤流程图;
图3示出了根据本发明一个实施例的一种基于Jacoco生成代码覆盖率报告的示例图;
图4示出了根据本发明一个实施例的代码覆盖率报告示例图;
图5示出了根据本发明一个实施例的一种代码覆盖率报告的生成方法实施例2的步骤流程图;
图6示出了根据本发明一个实施例的一种代码覆盖率报告的生成装置实施例1的结构框图;以及
图7示出了根据本发明一个实施例的一种代码覆盖率报告的生成装置实施例2的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图2,示出了根据本发明一个实施例的一种代码覆盖率报告的生成方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤201,调用待测试的应用中的测试工具读取预设的配置文件;
在本发明实施例中,跳过第三方工具的配置,将代码覆盖率报告的生成过程从第三方工具的项目构建环境中分离出来,略去不必要的配置,从而直接基于测试工具生成代码覆盖率报告,覆盖多个测试平台,如Android(安卓)、IOS、Windows Phone、Windows等等。
为使本领域技术人员更好地理解本发明实施例,在本发明实施例中,将Android作为测试平台应用测试工具Jacoco进行的一种示例进行说明。
在本发明实施例中,提供配置文件report.xml,用于配置必需资源的存储目录。
其中,该配置文件中设置有第一存储目录(如coverage文件夹)和第二存储目录(如classes文件夹);
在第一存储目录中存储有代码覆盖率数据文件,在第二存储目录存储有编译后的应用文件。
因此,应用本发明实施例,可以当对待测试的应用进行测试时,生成代码覆盖率数据文件(如coverage.ec)。
调用待测试的应用中的测试工具读取预设的配置文件,将代码覆盖率数据文件写入第一存储目录中。
具体而言,在先对待测试的应用的安装文件进行离线查桩,则可以在测试时统计基于被已执行代码所触发的标识变量、基于未被代码所触发的标识变量,获得代码覆盖率数据。
例如,某个源代码生成的class文件为:
插入标识变量后的class文件为:
其中,arrayOfBoolean[0]和arrayOfBoolean[1]就是插桩后的变量标识,由测试工具统一管理,默认值是false。
在测试过程中如果执行了doSomething(),则arrayOfBoolean[0]=true,如果没有执行doSomething(),则arrayOfBoolean[0]=false,测试工具通过统计arrayOfBoolean数组值,就能得出哪些代码执行了,哪些没有执行,从而统计代码的覆盖率。
步骤202,从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;
在本发明实施例中,如图3所示,可以从配置文件report.xml解析出第一存储目录,通过访问第一存储目录,可以获取测试应用时生成的代码覆盖率数据文件。
需要说明的是,由于待测试应用可以分开测试,或者,不同的测试人员在不同的测试时间进行测试,因此,可能获取一个或多个覆盖率数据文件。
当代码覆盖率数据文件为多个时,可以合并多个代码覆盖率数据文件。
在合并时,覆盖率数据是可以叠加的,假设a、b、c、d、e为代码中的五个函数,true表示函数已经执行,false表示函数为执行。
如果覆盖率数据文件1中的数据如果是a(true)、b(true)、c(false)、d(false)、e(false),覆盖率数据文件2中的数据为a(false)、b(true)、c(false)、d(true)、e(false),合并后就是a(true)、b(true)、c(false)、d(true)、e(false)。
当然,如果只生成一个覆盖率数据文件,就不需要进行合并了。
步骤203,从所述第二存储目录读取基于应用源代码编译的应用文件;
在本发明实施例中,如图3所示,可以从配置文件report.xml解析出第二存储目录,通过访问第二存储目录,基于应用源代码编译的应用文件,如class文件。
步骤204,根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告。
在本发明实施例中,如图3所示,调用Jacoco等测试工具的jar工具对覆盖率文件(如coverage.ec)和编译后的应用文件(如class)进行映射,识别哪些代码行已覆盖,生成代码覆盖率报告。
如图4所示,在代码覆盖率报告中包括代码覆盖率摘要、代码覆盖率统计、各软件包代码覆盖率统计等信息。
需要说明的是,代码覆盖率报告可以在测试过程中生成,也可以在测试完成之后生成,本发明实施例对此不加以限制。
进一步而言,合并代码覆盖率文件、生成代码覆盖率报告等操作集成在一Jar工具中,Jar工具在安装了JDK((Java Development Kit,Java语言的软件开发工具包)的环境中都可以执行,环境不需要配置第三方工具,通过命令行就可以执行,自动化代码实现时不要做任何界面操作。
在测试的过程中,如果用户需要查看报告,只需为用户提供一个触发生成代码覆盖率报告的接口,用户触发后,会开启一个执行Jar工具的进程,生成代码覆盖率报告。
本发明实施例通过更改Jacoco等测试工具,打包Jacoco工具,将覆盖率报告生成过程独立出来,通过配置文件读取必要资源的路径信息,直接导出代码覆盖率报告,避免了在第三方工具中进行复杂的配置,从而有效简化测试流程,实现了整个测试流程的自动化,适应于广泛的项目,为项目创建代码覆盖率报告的自动化实现提供了统一途径,可重用性高。
参照图5,示出了根据本发明一个实施例的一种代码覆盖率报告的生成方法实施例2的步骤流程图,具体可以包括如下步骤:
步骤501,调用待测试的应用中的测试工具读取预设的配置文件;
其中,该配置文件中设置有第一存储目录、第二存储目录和第三存储目录;
步骤502,从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;
步骤503,从所述第二存储目录读取基于应用源代码编译的应用文件;
步骤504,根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告;
步骤505,调用待测试的应用中的测试工具,按照预设的配置选项进行其他生成代码覆盖率报告处理;
在具体实现中,配置选项可以包括如下的一种或多种:
代码覆盖率报告的格式(如html,xml和csv),覆盖率数据文件合并后的第四存储目录;
因此,在进行其他生成代码覆盖率报告处理时:
按照格式生成代码覆盖率报告;
和/或,
将合并后的覆盖率数据文件输出至第四存储目录;
和/或,
从第四存储目录中读取合并后的覆盖率数据文件。
当然,上述配置选项只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他配置选项,本发明实施例对此不加以限制。另外,除了上述配置选项外,本领域技术人员还可以根据实际需要采用其它配置选项,本发明实施例对此也不加以限制。
本发明实施例对于Jacoco等测试工具中存在的可选配置项,由于这些配置项在自动化的实现上基本是固定的,测试人员一般不太需要关注这些配置项,所以,可以Jacoco等测试工具的相关函数中设置了默认路径,将其都封装在Jacoco等测试工具中,从而省去这些不必要的配置,简化了配置流程。
步骤506,在生成代码覆盖率报告之后,可以将所述代码覆盖率报告输出至第三存储目录。
在本发明实施例中,配置文件report.xml中设置有第三存储目录(如reports目录),若生成代码覆盖率报告,则可以将其写入第三存储目录,以进行展示,让用户查看,或者,对代码覆盖率进行评分,并与设定的阀值比较,从而对低于阀值代码覆盖率评分的测试用例予以告警等后续操作。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了根据本发明一个实施例的一种代码覆盖率报告的生成装置实施例1的结构框图,具体可以包括如下模块:
配置文件读取模块601,适于调用待测试的应用中的测试工具读取预设的配置文件;所述配置文件中设置有第一存储目录和第二存储目录;
代码覆盖率数据文件读取模块602,适于从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;
应用文件读取模块603,适于从所述第二存储目录读取基于应用源代码编译的应用文件;
代码覆盖率报告生成模块604,适于根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告。
在本发明的一种可选实施例中,该装置还可以包括如下模块:
代码覆盖率数据文件生成模块,适于在对待测试的应用进行测试时,生成代码覆盖率数据文件;
配置文件调用模块,适于调用待测试的应用中的测试工具读取预设的配置文件;
代码覆盖率数据文件写入模块,适于将所述代码覆盖率数据文件写入所述第一存储目录中。
在本发明的一种可选实施例中,该装置还可以包括如下模块:
代码覆盖率数据文件合并模块,适于在所述代码覆盖率数据文件为多个时,合并多个代码覆盖率数据文件。
参照图7,示出了根据本发明一个实施例的一种代码覆盖率报告的生成装置实施例2的结构框图,具体可以包括如下模块:
配置文件读取模块701,适于调用待测试的应用中的测试工具读取预设的配置文件;所述配置文件中设置有第一存储目录、第二存储目录和第三存储目录;
代码覆盖率数据文件读取模块702,适于从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;
应用文件读取模块703,适于从所述第二存储目录读取基于应用源代码编译的应用文件;
代码覆盖率报告生成模块704,适于根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告;
配置选项处理模块705,适于调用待测试的应用中的测试工具,按照预设的配置选项进行其他生成代码覆盖率报告处理
代码覆盖率报告输出模块706,适于将所述代码覆盖率报告输出至所述第三存储目录。
在具体实现中,所述配置选项可以包括如下的一种或多种:
代码覆盖率报告的格式,覆盖率数据文件合并后的第四存储目录;
所述配置选项处理模块705还可以适于:
按照所述格式生成代码覆盖率报告;
和/或,
将合并后的覆盖率数据文件输出至所述第四存储目录;
和/或,
从所述第四存储目录中读取合并后的覆盖率数据文件。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的代码覆盖率报告的生成设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (14)

1.一种代码覆盖率报告的生成方法,包括:
调用待测试的应用中的测试工具读取预设的配置文件;所述配置文件中设置有第一存储目录和第二存储目录;
从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;
从所述第二存储目录读取基于应用源代码编译的应用文件;
根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告。
2.如权利要求1所述的方法,其特征在于,还包括:
当对待测试的应用进行测试时,生成代码覆盖率数据文件;
调用待测试的应用中的测试工具读取预设的配置文件;
将所述代码覆盖率数据文件写入所述第一存储目录中。
3.如权利要求1或2所述的方法,其特征在于,在所述根据所述应用文件和所述代码覆盖率数据文件生成代码覆盖率报告的步骤之前,所述方法还包括:
当所述代码覆盖率数据文件为多个时,合并多个代码覆盖率数据文件。
4.如权利要求1或2所述的方法,其特征在于,所述配置文件中还设置有第三存储目录,所述方法还包括:
将所述代码覆盖率报告输出至所述第三存储目录。
5.如权利要求1或2所述的方法,其特征在于,还包括:
调用待测试的应用中的测试工具,按照预设的配置选项进行其他生成代码覆盖率报告处理。
6.如权利要求5所述的方法,其特征在于,所述配置选项包括如下的一种或多种:
代码覆盖率报告的格式,覆盖率数据文件合并后的第四存储目录;
所述按照预设的配置选项进行其他生成代码覆盖率报告处理的步骤包括:
按照所述格式生成代码覆盖率报告;
和/或,
将合并后的覆盖率数据文件输出至所述第四存储目录;
和/或,
从所述第四存储目录中读取合并后的覆盖率数据文件。
7.一种代码覆盖率报告的生成装置,包括:
配置文件读取模块,适于调用待测试的应用中的测试工具读取预设的配置文件;所述配置文件中设置有第一存储目录和第二存储目录;
代码覆盖率数据文件读取模块,适于从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;
应用文件读取模块,适于从所述第二存储目录读取基于应用源代码编译的应用文件;
代码覆盖率报告生成模块,适于根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告。
8.如权利要求7所述的装置,其特征在于,还包括:
代码覆盖率数据文件生成模块,适于在对待测试的应用进行测试时,生成代码覆盖率数据文件;
配置文件调用模块,适于调用待测试的应用中的测试工具读取预设的配置文件;
代码覆盖率数据文件写入模块,适于将所述代码覆盖率数据文件写入所述第一存储目录中。
9.如权利要求7或8所述的装置,其特征在于,还包括:
代码覆盖率数据文件合并模块,适于在所述代码覆盖率数据文件为多个时,合并多个代码覆盖率数据文件。
10.如权利要求7或8所述的装置,其特征在于,所述配置文件中还设置有第三存储目录,所述装置还包括:
代码覆盖率报告输出模块,适于将所述代码覆盖率报告输出至所述第三存储目录。
11.如权利要求7或8所述的装置,其特征在于,还包括:
配置选项处理模块,适于调用待测试的应用中的测试工具,按照预设的配置选项进行其他生成代码覆盖率报告处理。
12.如权利要求11所述的装置,其特征在于,所述配置选项包括如下的一种或多种:
代码覆盖率报告的格式,覆盖率数据文件合并后的第四存储目录;
所述配置选项处理模块还适于:
按照所述格式生成代码覆盖率报告;
和/或,
将合并后的覆盖率数据文件输出至所述第四存储目录;
和/或,
从所述第四存储目录中读取合并后的覆盖率数据文件。
13.一种电子设备,其中,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述权利要求1-6中任一项所述的方法。
14.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述权利要求1-6中任一项所述的方法。
CN201510944627.7A 2015-12-16 2015-12-16 一种代码覆盖率报告的生成方法和装置 Active CN105589805B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510944627.7A CN105589805B (zh) 2015-12-16 2015-12-16 一种代码覆盖率报告的生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510944627.7A CN105589805B (zh) 2015-12-16 2015-12-16 一种代码覆盖率报告的生成方法和装置

Publications (2)

Publication Number Publication Date
CN105589805A CN105589805A (zh) 2016-05-18
CN105589805B true CN105589805B (zh) 2019-12-24

Family

ID=55929403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510944627.7A Active CN105589805B (zh) 2015-12-16 2015-12-16 一种代码覆盖率报告的生成方法和装置

Country Status (1)

Country Link
CN (1) CN105589805B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294129A (zh) * 2016-07-27 2017-01-04 北京小米移动软件有限公司 代码覆盖率测试方法及装置
CN106326118B (zh) * 2016-08-19 2019-03-15 东软集团股份有限公司 代码测试覆盖率确定方法和装置
CN106844221B (zh) * 2017-03-10 2020-05-22 深圳航天科技创新研究院 一种实现虚拟验证系统覆盖率分析的方法
CN108897724B (zh) * 2018-07-03 2022-11-15 天津芯海创科技有限公司 功能完成进度确定方法及装置
CN110737574A (zh) * 2018-07-18 2020-01-31 北京奇虎科技有限公司 应用测试方法和装置
CN109344081B (zh) * 2018-10-31 2022-03-11 杭州安恒信息技术股份有限公司 基于标签脚本实现自动化覆盖率统计的方法及装置
CN110888817B (zh) * 2019-12-18 2023-10-24 广州品唯软件有限公司 代码覆盖率报告的生成方法、装置和可读存储介质
CN111858367A (zh) * 2020-07-24 2020-10-30 北京达佳互联信息技术有限公司 代码覆盖率测试方法、系统、装置、电子设备及存储介质
CN112612705B (zh) * 2020-12-25 2024-05-17 上海高顿教育科技有限公司 一种接口覆盖率报告准确定位和展示的方法
CN113806231B (zh) * 2021-09-29 2024-03-19 锐捷网络股份有限公司 一种代码覆盖率分析方法、装置、设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095518A (zh) * 2011-11-08 2013-05-08 阿里巴巴集团控股有限公司 覆盖率测试处理方法、装置、覆盖率测试服务器及系统
CN104391795A (zh) * 2014-12-03 2015-03-04 北京京东尚科信息技术有限公司 一种分布式系统中自动化测试覆盖率的测试方法及系统
CN104598274A (zh) * 2015-01-13 2015-05-06 北京京东尚科信息技术有限公司 一种自动插桩编译安装方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946634B2 (en) * 2013-12-09 2018-04-17 International Business Machines Corporation System and method for determining test coverage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095518A (zh) * 2011-11-08 2013-05-08 阿里巴巴集团控股有限公司 覆盖率测试处理方法、装置、覆盖率测试服务器及系统
CN104391795A (zh) * 2014-12-03 2015-03-04 北京京东尚科信息技术有限公司 一种分布式系统中自动化测试覆盖率的测试方法及系统
CN104598274A (zh) * 2015-01-13 2015-05-06 北京京东尚科信息技术有限公司 一种自动插桩编译安装方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"JaCoCo:分析单元测试覆盖率的利器";王群峰;《https://www.ibm.com/developerworks/cn/java/j-lo-jacoco/index.html》;20140811;第5页最后一段,第6页第1-3段,图5 *

Also Published As

Publication number Publication date
CN105589805A (zh) 2016-05-18

Similar Documents

Publication Publication Date Title
CN105589805B (zh) 一种代码覆盖率报告的生成方法和装置
CN110134386B (zh) 一种程序编辑方法和装置
CN109992498B (zh) 测试用例的生成方法及系统、计算机系统
US9946628B2 (en) Embedding and executing trace functions in code to gather trace data
CN105573915B (zh) 一种基于代码覆盖率的测试方法和装置
CN102479151A (zh) 一种网页访问速度的测试方法及装置
CN105630671B (zh) 代码覆盖率报告的生成方法及装置
US9715483B2 (en) User interface for testing and asserting UI elements with natural language instructions
CN113756991A (zh) 火箭发动机火炬点火远控指令端控制方法及电子设备
CN106055485A (zh) 一种测试应用的方法、装置和系统
CN107291619B (zh) 内存占用分析方法及装置
CN107203373B (zh) 界面控件的获取方法、测试方法及获取装置、测试装置
CN109542775B (zh) 一种测试脚本的生成和执行方法及装置
CN112052070A (zh) 应用容器化评估方法、装置、电子设备及存储介质
CN110889116A (zh) 一种广告拦截方法、装置及电子设备
CN107678967B (zh) 单元测试覆盖率生成方法、装置、可读存储介质及设备
CN113535580B (zh) 一种cts测试方法、装置及测试设备
US9792202B2 (en) Identifying a configuration element value as a potential cause of a testing operation failure
CN111625378A (zh) 一种源代码远程查看方法和装置
CN113238953A (zh) Ui自动化测试方法、装置、电子设备和存储介质
CN110737576B (zh) 对应用进行鲁棒性测试的方法和装置
CN115314413B (zh) 一种can信号测试方法及装置
CN113722214B (zh) 测试方法、测试设备及测试系统
CN111240756B (zh) 一种图形功能的处理模式可配置的应用程序的执行方法
CN117370203B (zh) 自动化测试方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220728

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.