CN106681912A - 用于Android系统的代码覆盖率的自动化测试方法及装置 - Google Patents

用于Android系统的代码覆盖率的自动化测试方法及装置 Download PDF

Info

Publication number
CN106681912A
CN106681912A CN201611122787.4A CN201611122787A CN106681912A CN 106681912 A CN106681912 A CN 106681912A CN 201611122787 A CN201611122787 A CN 201611122787A CN 106681912 A CN106681912 A CN 106681912A
Authority
CN
China
Prior art keywords
files
code coverage
android system
code
test
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.)
Pending
Application number
CN201611122787.4A
Other languages
English (en)
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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201611122787.4A priority Critical patent/CN106681912A/zh
Publication of CN106681912A publication Critical patent/CN106681912A/zh
Pending legal-status Critical Current

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/3684Test management for test design, e.g. generating new test cases
    • 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
    • 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/3692Test management for test results 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

本发明公开了一种用于Android系统的代码覆盖率的自动化测试方法及装置,涉及Android测试技术领域。该方法包括:对源码进行Jacoco工具的插桩操作,生成插过桩的Class文件;对插过桩的Class文件进行编译前的预处理;对预处理后的Class文件进行编译打包,生成插过桩的APK文件;将APK文件安装到测试机中进行运行测试,在测试过程中收集代码覆盖率的日志信息并记录;对代码覆盖率的日志信息进行数据整合,生成含有代码覆盖率信息的EC文件并上传至web服务器;web服务器进行整合处理,形成指定格式的代码覆盖率报告并进行展示。本发明能够实现Android系统的代码覆盖率的自动化测试,解决了黑盒测试中代码覆盖率的问题,满足了实际测试需求。

Description

用于Android系统的代码覆盖率的自动化测试方法及装置
技术领域
本发明涉及Android测试技术领域,具体来讲是一种用于Android系统的代码覆盖率的自动化测试方法及装置。
背景技术
在Android系统的开发测试中,通常需要进行代码覆盖率的统计。所谓代码覆盖率,是指源代码被测试的比例和程度,所得到的比例就称作代码覆盖率。目前,Android系统中对代码覆盖率的统计,都依赖代码去做,比如单元测试,通过编写单元测试函数进行测试。
但在实际操作中,对于黑盒手工测试,由于其是手工测试,因此无法依赖代码去统计代码覆盖率信息。而作为常规迭代测试,很多软件产品却都依赖于黑盒测试,并且如何衡量手工测试完备性及测试效率,都需要结合代码覆盖率的数据。
因此,如何结合自动化方法来解决黑盒测试中代码覆盖率的问题是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种用于Android系统的代码覆盖率的自动化测试方法及装置,能够实现Android系统的代码覆盖率的自动化测试,解决了黑盒测试中代码覆盖率的问题,满足了实际测试需求。
为达到以上目的,本发明提供一种用于Android系统的代码覆盖率的自动化测试方法,包括以下步骤:步骤S1:对源码进行Jacoco工具的插桩操作,生成插过桩的Class文件;步骤S2:对插过桩的Class文件进行编译前的预处理;步骤S3:对预处理后的Class文件进行编译打包,生成插过桩的APK文件;步骤S4:将所述APK文件安装到测试机中进行运行测试;在测试过程中收集测试中生成的代码覆盖率的日志信息并记录;步骤S5:对收集的代码覆盖率的日志信息进行数据整合,生成含有代码覆盖率信息的EC文件;将所述EC文件上传至web服务器;步骤S6:web服务器对EC文件进行整合处理,形成指定格式的代码覆盖率报告并进行展示。
本发明还提供一种用于Android系统的代码覆盖率的自动化测试装置,包括Jacoco工具插桩模块、编译预处理模块、编译打包模块、测试信息收集模块、测试信息上报模块以及web服务器。
所述Jacoco工具插桩模块用于:对源码进行Jacoco工具的插桩操作,生成插过桩的Class文件;所述编译预处理模块用于:对插过桩的Class文件进行编译前的预处理;所述编译打包模块用于:对预处理后的Class文件进行编译打包,生成插过桩的APK文件;所述测试信息收集模块用于:将编译打包模块生成的APK文件安装到测试机中进行运行测试;在测试过程中收集测试中生成的代码覆盖率的日志信息并记录;所述测试信息上报模块用于:对测试信息收集模块收集的代码覆盖率的日志信息进行数据整合,生成含有代码覆盖率信息的EC文件;将所述EC文件上传至web服务器;所述web服务器用于:对EC文件进行整合处理,形成指定格式的代码覆盖率报告并进行展示。
本发明的有益效果在于:
(1)本发明在进行测试前,会对源码进行覆盖率工具Jacoco的插桩操作,并通过预处理和编译打包形成插过桩的APK文件,从而使得当前的APK文件是带有代码覆盖率检测的APK文件;当将APK文件安装到测试机中进行运行测试时,会收集测试中生成的代码覆盖率的日志信息并记录,然后会对收集的代码覆盖率的日志信息进行数据整合,生成含有代码覆盖率信息的EC文件并上传至web服务器;web服务器会对EC文件进行整合处理,形成指定格式的代码覆盖率报告并进行展示。整个过程无需过多的人工参与,自动化程度高,实现了Android系统的代码覆盖率的自动化测试,解决了黑盒测试中代码覆盖率的问题,满足了实际测试需求。开发和测试者可以通过上述生成的报告,清楚地看到本轮测试的测试覆盖情况,且通过进一步查看代码覆盖详情,可以对应到函数和代码级别覆盖,方便针对未覆盖到的代码找到测试的不足,为补充测试用例的设计提供指导。
(2)本发明中还提供差异代码覆盖率的测试功能,能更好的提高代码覆盖率的测试质量,完善测试功能,为开发者和测试者提供更优的测试信息。
附图说明
图1为本发明实施例中用于Android系统的代码覆盖率的自动化测试方法的流程图;
图2为本发明实施例中用于Android系统的代码覆盖率的自动化测试装置的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种用于Android系统的代码覆盖率的自动化测试方法,包括以下步骤:
步骤S1:对源码进行Jacoco工具的插桩操作,生成插过桩的Class文件。可以理解的是,Jacoco是一个开源的覆盖率工具,本实施例中通过Python(一种面向对象、解释型计算机程序设计语言)程序自动完成Jacoco工具的插桩操作。
步骤S2:对插过桩的Class文件进行编译前的预处理。
具体来说,步骤S2中进行的预处理具体包括以下流程:
步骤S201:在插过桩的Class文件中添加指定的JAVA源文件,所述指定的JAVA源文件为Jacoco工具动态生成含有代码覆盖率信息的EC文件时,所需的相应JAVA源文件。
可以理解的是,本实施例中,所述指定的JAVA源文件包括JacocoBroadcast.java文件和JacocoInstrumentHelp.java文件。其中,JacocoBroadcast.java文件用于:收集代码覆盖率的日志信息;JacocoInstrumentHelp.java文件则用于:通过JAVA反射调用Jacoco工具中导出EC文件相关的接口,比如org.jacoco.agent.rt.RT,以便后续能在SD卡根目录中生成EC文件,如coverage.ec文件。并且,JacocoBroadcast.java文件和JacocoInstrumentHelp.java文件均可独立存放在packagename.jacoco下,其中,packagename即为应用程序的包名,例如:斗鱼的包名为air.tv.douyu.android。
步骤S202:对Android系统中已有的AndroidManifest.xml文件进行修改。具体来说,步骤S202中进行AndroidManifest.xml文件修改的具体流程为:
步骤S202a:在AndroidManifest.xml文件中增加写SD卡权限并修改版本号(如有已有写SD卡权限,则可不重复添加)。实际操作时,可以使用Python自带的ElementTree库来解析和修改xml文件,具体的实现代码如下:
<uses-permission android:name="android.permission.WRITE_EXT ERNALSTORAGE"/>
步骤S202b:在AndroidManifest.xml文件中增加广播接收器broadcast recevier的声明,所述广播接收器用于收集代码覆盖率的日志信息;该声明的路径对应JacocoBroadcast.java文件所在的路径;并将该声明中intent的action配置为应用程序的包名,即packagename.emma.END_EMMA。具体的实现代码如下:
步骤S203:在Android系统已有的build.gradle文件中配置打开代码覆盖率开关。具体来说,是在build.gradle文件的buildTypes中添加一行代码:testCoverageEnabled=true,即将testCoverageEnabled的属性配置成true。具体实现代码如下:
引入该配置后,当对应用程序进行debug的编译时,就可以对应用程序进行离线的插桩,生成插桩后的APK。也就是说,在引入该配置后,当对插过桩的Class文件进行编译时,就可以实现离线的插桩,从而生成插过桩的APK(AndroidPackage,安卓安装包)文件(如后文步骤S3所述)。另外,需要注意的是,build.gradle中的buildToolsVersion(构建工具的版本)要不小于21,否则会因为AS(Android System,安卓系统)自身隐蔽bug,而与Jacoco工具的引入存在兼容性问题。
步骤S3:对预处理后的Class文件进行编译打包,生成插过桩的APK文件(即带有代码覆盖率检测的APK文件)。
可以理解的是,本实施例中采用gradle工具或ant工具对预处理后的Class文件进行编译打包,生成插过桩的APK文件。gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具,它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。ant是一种基于Java的build工具,理论上来说,它类似于(Unix)C中的make工具,但没有make工具的缺陷。具体来说,当采用gradle工具对预处理后的Class文件进行编译打包,生成插过桩的APK文件时,其具体流程为:
步骤S301:执行gradle工具中的gradle clean命令,对gradle工具中build文件夹进行清除;
步骤S302:执行gradle工具中的gradle assembleDebug命令(实现编译并打Debug包的命令),在指定工程目录下(如在工程/build/outputs/apk目录下)生成插过桩(即带有代码覆盖率检测)的APK文件;实际操作时就是将Jacoco工具打包执行的指令或脚本命令放到对应的Job中,该Job是指在持续集成平台上配置的任务节点。
步骤S4:将所述APK文件安装到测试机(如手机)中进行运行测试;在测试过程中收集测试中生成的代码覆盖率的日志信息,并记录在本地数据文件中。
实际操作时,将所述APK文件安装到测试机中进行运行测试时,可进行手工测试或者Monkey自动化测试(Monkey测试是Android自动化测试的一种手段,通常是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常),测试可用性强,适用范围广。并且,存放日志信息的路径为/sdcard/中,即写入SD卡中。
步骤S5:对收集的代码覆盖率的日志信息进行数据整合,生成含有代码覆盖率信息的EC文件(如coverage.ec文件);将所述EC文件上传至自动化测试的web服务器。
可以理解的是,为了实现全面的自动化测试,并进一步提高自动化测试的效率,简便操作。本实施例中,采用一种自动化工具APP来执行步骤S5中操作。在实际操作中,该自动化工具APP可由开发人员根据具体需求进行自行开发。例如,利用自动化工具APP进行操作的流程可如下:打开手机上开发好的自动化工具APP,点击提交EC文件,选择Douyu App,然后点击确定,对收集的代码覆盖率的日志信息进行数据整合生成coverage.ec文件,原理是执行命令“adb shell am broadcast-a air.tv.douyu.android.emma.END_EMMA”;最后将生成的coverage.ec文件上传到自动化测试的web服务器上。
步骤S6:web服务器对EC文件进行整合处理,形成指定格式的代码覆盖率报告并进行展示。
本实施例中,所述指定格式的代码覆盖率报告是指静态的html格式结合css样式形成的代码覆盖率报告。其中html的展示样式和展示的固定信息都在本发明中集成好,变动的数据将在代码覆盖率的日志信息上传后,进行匹配处理。具体来说,步骤S6中web服务器所进行的处理如下:
步骤S601:部署gradle工具的编译环境;
步骤S602:指定源文件的文件路径sourceDirectories,插桩后的Class文件路径classDirectories,coverage.ec文件的路径executionData;
步骤S603:根据源文件、插桩后的Class文件以及EC文件,通过调用gradle工具的Jacoco测试报告生成函数jacocoTestReport,生成指定格式的代码覆盖率报告并进行展示。
进一步地,步骤S603的详细步骤如下:首先,在build.gradle文件中添加生成报告的任务,该任务将coverage.ec文件与代码编译后产生的.class文件(工程目录\build\intermediates\classes)进行比对,得出代码覆盖率报告;然后,在命令行输入“gradlejacocoTestReport”,即调用gradle工具的Jacoco测试报告生成函数jacocoTestReport,生成指定格式的代码覆盖率报告并进行展示。具体实现代码如下:
更进一步地,为了更好的提高代码覆盖率的测试质量,完善测试功能,为开发者和测试者提供更优的测试信息,本发明中还提供diff(差异)代码覆盖率的功能。具体来说,步骤S6中web服务器在形成指定格式的代码覆盖率报告并进行展示之前,还将进行差异覆盖率统计的操作:将两次所选不同版本的代码进行逐行比对,将差异行用一种指定颜色(如浅绿色)标出,并记录下差异行总行数n,n为正整数;若是覆盖到了该行,则用另一种指定颜色(如深绿色)标出,并记录覆盖行数m,m为正整数;最后根据m/n,计算出diff(差异)代码覆盖率。
开发和测试者可以通过上述生成的报告,清楚地看到本轮测试的测试覆盖情况,且通过进一步查看代码覆盖详情,可以对应到函数和代码级别覆盖,方便针对未覆盖到的代码找到测试的不足,为补充测试用例的设计提供指导。在具体应用中,接入使用本方案只需要半小时,自动化的代码已脚本化,只需要在web服务器进行配置,接入所需成本低、实用性强。结合本方案中的自动化插桩、自动化App工具以及web服务器的页面展示,能高效地实现Android系统的代码覆盖率的自动化测试,同时,web服务器展示提供diff代码覆盖率的功能,方便在敏捷开发和版本迭代中让开发和测试者对本次测试的覆盖面做到量化,及时查漏补缺。
参见图2所示,本发明实施例还提供一种用于Android系统的代码覆盖率的自动化测试装置,包括Jacoco工具插桩模块、编译预处理模块、编译打包模块、测试信息收集模块、测试信息上报模块以及web服务器。
Jacoco工具插桩模块用于:对源码进行Jacoco工具的插桩操作,生成插过桩的Class文件。
编译预处理模块用于:对插过桩的Class文件进行编译前的预处理。其具体流程为:在插过桩的Class文件中添加指定的JAVA源文件,所述指定的JAVA源文件为Jacoco工具动态生成含有代码覆盖率信息的EC文件时,所需的相应JAVA源文件;对Android系统中已有的AndroidManifest.xml文件进行修改,增加写SD卡权限并修改版本号,增加广播接收器的声明;在Android系统已有的build.gradle文件中配置打开代码覆盖率开关。
编译打包模块用于:对预处理后的Class文件进行编译打包,生成插过桩的APK文件。具体来说,所述编译打包模块采用gradle工具或ant工具对预处理后的Class文件进行编译打包,生成插过桩的APK文件。
测试信息收集模块用于:将编译打包模块生成的APK文件安装到测试机中进行运行测试;在测试过程中收集测试中生成的代码覆盖率的日志信息并记录。
测试信息上报模块用于:对测试信息收集模块收集的代码覆盖率的日志信息进行数据整合,生成含有代码覆盖率信息的EC文件;将所述EC文件上传至web服务器。
web服务器用于:对EC文件进行整合处理,形成指定格式的代码覆盖率报告并进行展示。其具体流程为:部署gradle工具的编译环境;指定源文件的文件路径,插桩后的Class文件路径,EC文件的路径;根据源文件、插桩后的Class文件以及EC文件,通过调用gradle工具的Jacoco测试报告生成函数,进行整合处理并生成指定格式的代码覆盖率报告进行展示。另外,所述web服务器在形成指定格式的代码覆盖率报告并进行展示之前,还将进行差异覆盖率统计的操作:将两次所选不同版本的代码进行逐行比对,将差异行用一种指定颜色标出,并记录下差异行总行数n,n为正整数;若是覆盖到了该行,则用另一种指定颜色标出,并记录覆盖行数m,m为正整数;最后根据m/n,计算出差异代码覆盖率。
需要说明的是:上述实施例提供的装置在进行操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种用于Android系统的代码覆盖率的自动化测试方法,其特征在于,该方法包括以下步骤:
步骤S1:对源码进行Jacoco工具的插桩操作,生成插过桩的Class文件;
步骤S2:对插过桩的Class文件进行编译前的预处理;
步骤S3:对预处理后的Class文件进行编译打包,生成插过桩的APK文件;
步骤S4:将所述APK文件安装到测试机中进行运行测试;在测试过程中收集测试中生成的代码覆盖率的日志信息并记录;
步骤S5:对收集的代码覆盖率的日志信息进行数据整合,生成含有代码覆盖率信息的EC文件;将所述EC文件上传至web服务器;
步骤S6:web服务器对EC文件进行整合处理,形成指定格式的代码覆盖率报告并进行展示。
2.如权利要求1所述的用于Android系统的代码覆盖率的自动化测试方法,其特征在于:步骤S2中进行的预处理具体包括以下流程:
步骤S201:在插过桩的Class文件中添加指定的JAVA源文件,所述指定的JAVA源文件为Jacoco工具动态生成含有代码覆盖率信息的EC文件时,所需的相应JAVA源文件;
步骤S202:对Android系统中已有的AndroidManifest.xml文件进行修改,增加写SD卡权限并修改版本号,增加广播接收器的声明;
步骤S203:在Android系统已有的build.gradle文件中配置打开代码覆盖率开关。
3.如权利要求1所述的用于Android系统的代码覆盖率的自动化测试方法,其特征在于:步骤S3中采用gradle工具或ant工具对预处理后的Class文件进行编译打包,生成插过桩的APK文件。
4.如权利要求1所述的用于Android系统的代码覆盖率的自动化测试方法,其特征在于,步骤S6具体包括以下流程:
步骤S601:部署gradle工具的编译环境;
步骤S602:指定源文件的文件路径,插桩后的Class文件路径,EC文件的路径;
步骤S603:根据源文件、插桩后的Class文件以及EC文件,通过调用gradle工具的Jacoco测试报告生成函数,进行整合处理并生成指定格式的代码覆盖率报告进行展示。
5.如权利要求1所述的用于Android系统的代码覆盖率的自动化测试方法,其特征在于:步骤S6中web服务器在形成指定格式的代码覆盖率报告并进行展示之前,还将进行差异覆盖率统计的操作:将两次所选不同版本的代码进行逐行比对,将差异行用一种指定颜色标出,并记录下差异行总行数n,n为正整数;若是覆盖到了该行,则用另一种指定颜色标出,并记录覆盖行数m,m为正整数;最后根据m/n,计算出差异代码覆盖率。
6.一种用于Android系统的代码覆盖率的自动化测试装置,其特征在于:包括Jacoco工具插桩模块、编译预处理模块、编译打包模块、测试信息收集模块、测试信息上报模块以及web服务器;
所述Jacoco工具插桩模块用于:对源码进行Jacoco工具的插桩操作,生成插过桩的Class文件;
所述编译预处理模块用于:对插过桩的Class文件进行编译前的预处理;
所述编译打包模块用于:对预处理后的Class文件进行编译打包,生成插过桩的APK文件;
所述测试信息收集模块用于:将编译打包模块生成的APK文件安装到测试机中进行运行测试;在测试过程中收集测试中生成的代码覆盖率的日志信息并记录;
所述测试信息上报模块用于:对测试信息收集模块收集的代码覆盖率的日志信息进行数据整合,生成含有代码覆盖率信息的EC文件;将所述EC文件上传至web服务器;
所述web服务器用于:对EC文件进行整合处理,形成指定格式的代码覆盖率报告并进行展示。
7.如权利要求6所述的用于Android系统的代码覆盖率的自动化测试装置,其特征在于,所述编译预处理模块进行预处理的具体流程为:在插过桩的Class文件中添加指定的JAVA源文件,所述指定的JAVA源文件为Jacoco工具动态生成含有代码覆盖率信息的EC文件时,所需的相应JAVA源文件;对Android系统中已有的AndroidManifest.xml文件进行修改,增加写SD卡权限并修改版本号,增加广播接收器的声明;在Android系统已有的build.gradle文件中配置打开代码覆盖率开关。
8.如权利要求6所述的用于Android系统的代码覆盖率的自动化测试装置,其特征在于:所述编译打包模块采用gradle工具或ant工具对预处理后的Class文件进行编译打包,生成插过桩的APK文件。
9.如权利要求6所述的用于Android系统的代码覆盖率的自动化测试装置,其特征在于,所述web服务器进行整合处理并生成报告展示的具体流程为:部署gradle工具的编译环境;指定源文件的文件路径,插桩后的Class文件路径,EC文件的路径;根据源文件、插桩后的Class文件以及EC文件,通过调用gradle工具的Jacoco测试报告生成函数,进行整合处理并生成指定格式的代码覆盖率报告进行展示。
10.如权利要求6所述的用于Android系统的代码覆盖率的自动化测试装置,其特征在于:所述web服务器在形成指定格式的代码覆盖率报告并进行展示之前,还将进行差异覆盖率统计的操作:将两次所选不同版本的代码进行逐行比对,将差异行用一种指定颜色标出,并记录下差异行总行数n,n为正整数;若是覆盖到了该行,则用另一种指定颜色标出,并记录覆盖行数m,m为正整数;最后根据m/n,计算出差异代码覆盖率。
CN201611122787.4A 2016-12-08 2016-12-08 用于Android系统的代码覆盖率的自动化测试方法及装置 Pending CN106681912A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611122787.4A CN106681912A (zh) 2016-12-08 2016-12-08 用于Android系统的代码覆盖率的自动化测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611122787.4A CN106681912A (zh) 2016-12-08 2016-12-08 用于Android系统的代码覆盖率的自动化测试方法及装置

Publications (1)

Publication Number Publication Date
CN106681912A true CN106681912A (zh) 2017-05-17

Family

ID=58868471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611122787.4A Pending CN106681912A (zh) 2016-12-08 2016-12-08 用于Android系统的代码覆盖率的自动化测试方法及装置

Country Status (1)

Country Link
CN (1) CN106681912A (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009093A (zh) * 2017-12-22 2018-05-08 北京远特科技股份有限公司 一种软件测试方法、装置及系统
CN108829593A (zh) * 2018-06-05 2018-11-16 平安壹钱包电子商务有限公司 代码覆盖率计算分析方法、装置、设备及存储介质
CN109359054A (zh) * 2018-12-18 2019-02-19 浙江诺诺网络科技有限公司 生成覆盖率统计报告的方法、装置、设备及存储介质
CN109491898A (zh) * 2018-10-30 2019-03-19 武汉思普崚技术有限公司 基于自动化测试与用例管理的测试效率提升方法及设备
CN109684221A (zh) * 2018-12-27 2019-04-26 江苏满运软件科技有限公司 测试代码覆盖率采集方法、系统、设备以及介质
CN109684226A (zh) * 2018-12-29 2019-04-26 携程计算机技术(上海)有限公司 Java代码覆盖率统计系统
CN109857631A (zh) * 2018-11-02 2019-06-07 平安科技(深圳)有限公司 基于人工智能的代码覆盖率统计方法、装置、设备及存储介质
CN110245073A (zh) * 2019-05-21 2019-09-17 北京字节跳动网络技术有限公司 终端代码覆盖率监测方法、系统、介质和电子设备
CN110618935A (zh) * 2019-08-27 2019-12-27 绿漫科技有限公司 一种针对手工测试的代码变更覆盖率统计实现方法
CN110765017A (zh) * 2019-10-24 2020-02-07 上海创景信息科技有限公司 基于risc-v扩展指令的源码覆盖率测试方法和系统
CN110795329A (zh) * 2018-08-02 2020-02-14 阿里巴巴集团控股有限公司 覆盖率测试方法及系统、处理器、存储介质
CN110908915A (zh) * 2019-11-27 2020-03-24 广州品唯软件有限公司 一种测试覆盖率的展示方法、装置及计算机系统
CN111008144A (zh) * 2019-12-18 2020-04-14 上海品顺信息科技有限公司 软件性能检测方法、终端设备及计算机可读存储介质
CN111026630A (zh) * 2018-10-09 2020-04-17 阿里巴巴集团控股有限公司 代码覆盖率的统计方法、装置和系统
CN111897737A (zh) * 2020-08-21 2020-11-06 中国工商银行股份有限公司 微服务系统程序测试的遗漏检测方法及装置
CN111966587A (zh) * 2020-08-06 2020-11-20 中国建设银行股份有限公司 数据采集方法、装置和设备
CN112346981A (zh) * 2020-11-11 2021-02-09 上海哔哩哔哩科技有限公司 联调测试覆盖率检测方法及系统
CN112363936A (zh) * 2020-11-12 2021-02-12 广州品唯软件有限公司 差异覆盖率测试方法、装置、计算机设备和存储介质
CN112685316A (zh) * 2021-01-04 2021-04-20 广州品唯软件有限公司 代码执行路径的获取方法、装置、计算机设备及存储介质
CN113254325A (zh) * 2020-02-10 2021-08-13 北京沃东天骏信息技术有限公司 测试用例的处理方法和装置
CN113791986A (zh) * 2021-11-18 2021-12-14 云账户技术(天津)有限公司 一种代码覆盖率的统计方法及装置
CN114528199A (zh) * 2020-11-23 2022-05-24 腾讯科技(深圳)有限公司 一种软件异常检测方法、装置及存储介质
CN114675879A (zh) * 2022-03-04 2022-06-28 慧之安信息技术股份有限公司 基于Cordova与Vue的跨平台应用开发方法
CN114676065A (zh) * 2022-04-13 2022-06-28 湖南长银五八消费金融股份有限公司 代码覆盖率报告生成方法、装置、计算机设备以及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484623B2 (en) * 2008-03-26 2013-07-09 Avaya, Inc. Efficient program instrumentation
CN105446884A (zh) * 2015-12-16 2016-03-30 北京奇虎科技有限公司 代码覆盖率的测试方法及装置
CN105630670A (zh) * 2015-12-16 2016-06-01 北京奇虎科技有限公司 一种代码覆盖率的测试方法和装置
CN106201863A (zh) * 2016-06-22 2016-12-07 广州唯品会信息科技有限公司 一种获取代码覆盖率的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484623B2 (en) * 2008-03-26 2013-07-09 Avaya, Inc. Efficient program instrumentation
CN105446884A (zh) * 2015-12-16 2016-03-30 北京奇虎科技有限公司 代码覆盖率的测试方法及装置
CN105630670A (zh) * 2015-12-16 2016-06-01 北京奇虎科技有限公司 一种代码覆盖率的测试方法和装置
CN106201863A (zh) * 2016-06-22 2016-12-07 广州唯品会信息科技有限公司 一种获取代码覆盖率的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
隋胖胖LOVEFAT: "使用gradle这个+ jacoco收集的Android", 《简书》 *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009093A (zh) * 2017-12-22 2018-05-08 北京远特科技股份有限公司 一种软件测试方法、装置及系统
CN108829593A (zh) * 2018-06-05 2018-11-16 平安壹钱包电子商务有限公司 代码覆盖率计算分析方法、装置、设备及存储介质
CN108829593B (zh) * 2018-06-05 2023-12-05 平安壹钱包电子商务有限公司 代码覆盖率计算分析方法、装置、设备及存储介质
CN110795329A (zh) * 2018-08-02 2020-02-14 阿里巴巴集团控股有限公司 覆盖率测试方法及系统、处理器、存储介质
CN111026630B (zh) * 2018-10-09 2023-05-02 阿里巴巴集团控股有限公司 代码覆盖率的统计方法、装置和系统
CN111026630A (zh) * 2018-10-09 2020-04-17 阿里巴巴集团控股有限公司 代码覆盖率的统计方法、装置和系统
CN109491898A (zh) * 2018-10-30 2019-03-19 武汉思普崚技术有限公司 基于自动化测试与用例管理的测试效率提升方法及设备
CN109857631A (zh) * 2018-11-02 2019-06-07 平安科技(深圳)有限公司 基于人工智能的代码覆盖率统计方法、装置、设备及存储介质
CN109359054A (zh) * 2018-12-18 2019-02-19 浙江诺诺网络科技有限公司 生成覆盖率统计报告的方法、装置、设备及存储介质
CN109684221A (zh) * 2018-12-27 2019-04-26 江苏满运软件科技有限公司 测试代码覆盖率采集方法、系统、设备以及介质
CN109684226A (zh) * 2018-12-29 2019-04-26 携程计算机技术(上海)有限公司 Java代码覆盖率统计系统
CN110245073A (zh) * 2019-05-21 2019-09-17 北京字节跳动网络技术有限公司 终端代码覆盖率监测方法、系统、介质和电子设备
CN110618935A (zh) * 2019-08-27 2019-12-27 绿漫科技有限公司 一种针对手工测试的代码变更覆盖率统计实现方法
CN110765017A (zh) * 2019-10-24 2020-02-07 上海创景信息科技有限公司 基于risc-v扩展指令的源码覆盖率测试方法和系统
CN110908915A (zh) * 2019-11-27 2020-03-24 广州品唯软件有限公司 一种测试覆盖率的展示方法、装置及计算机系统
CN110908915B (zh) * 2019-11-27 2023-04-14 广州品唯软件有限公司 一种测试覆盖率的展示方法、装置及计算机系统
CN111008144A (zh) * 2019-12-18 2020-04-14 上海品顺信息科技有限公司 软件性能检测方法、终端设备及计算机可读存储介质
CN111008144B (zh) * 2019-12-18 2023-11-14 上海品顺信息科技有限公司 软件性能检测方法、终端设备及计算机可读存储介质
CN113254325A (zh) * 2020-02-10 2021-08-13 北京沃东天骏信息技术有限公司 测试用例的处理方法和装置
CN111966587A (zh) * 2020-08-06 2020-11-20 中国建设银行股份有限公司 数据采集方法、装置和设备
CN111897737A (zh) * 2020-08-21 2020-11-06 中国工商银行股份有限公司 微服务系统程序测试的遗漏检测方法及装置
CN111897737B (zh) * 2020-08-21 2024-03-26 中国工商银行股份有限公司 微服务系统程序测试的遗漏检测方法及装置
CN112346981A (zh) * 2020-11-11 2021-02-09 上海哔哩哔哩科技有限公司 联调测试覆盖率检测方法及系统
CN112363936A (zh) * 2020-11-12 2021-02-12 广州品唯软件有限公司 差异覆盖率测试方法、装置、计算机设备和存储介质
CN114528199A (zh) * 2020-11-23 2022-05-24 腾讯科技(深圳)有限公司 一种软件异常检测方法、装置及存储介质
CN112685316A (zh) * 2021-01-04 2021-04-20 广州品唯软件有限公司 代码执行路径的获取方法、装置、计算机设备及存储介质
CN113791986A (zh) * 2021-11-18 2021-12-14 云账户技术(天津)有限公司 一种代码覆盖率的统计方法及装置
CN114675879A (zh) * 2022-03-04 2022-06-28 慧之安信息技术股份有限公司 基于Cordova与Vue的跨平台应用开发方法
CN114675879B (zh) * 2022-03-04 2022-10-21 慧之安信息技术股份有限公司 基于Cordova与Vue的跨平台应用开发方法
CN114676065A (zh) * 2022-04-13 2022-06-28 湖南长银五八消费金融股份有限公司 代码覆盖率报告生成方法、装置、计算机设备以及介质

Similar Documents

Publication Publication Date Title
CN106681912A (zh) 用于Android系统的代码覆盖率的自动化测试方法及装置
CN104407980B (zh) 移动应用自动化测试装置和方法
CN104391795B (zh) 一种分布式系统中自动化测试覆盖率的测试方法及系统
EP3213217B1 (en) Historical control flow visualization in production diagnostics
Campos et al. Gzoltar: an eclipse plug-in for testing and debugging
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
US7596778B2 (en) Method and system for automatic error prevention for computer software
US7856619B2 (en) Method and system for automated testing of a graphic-based programming tool
CN112270149B (zh) 验证平台自动化集成方法、系统及电子设备和存储介质
Rothlisberger et al. Exploiting dynamic information in IDEs improves speed and correctness of software maintenance tasks
Rainsberger et al. JUnit recipes: practical methods for programmer testing
Vincenzi et al. Coverage testing of Java programs and components
CN106776338A (zh) 一种测试方法、装置及服务器
CN106354638A (zh) 基于词法分析的自动测试方法及装置
CN110837472A (zh) 一种浏览器测试方法、装置及计算机设备
CN104375932B (zh) 一种Java卡代码覆盖率分析方法和装置
Grieskamp et al. Model-based quality assurance of Windows protocol documentation
CN107480048A (zh) 测试工具生成方法、装置、存储介质及计算机设备
Marin et al. A common framework for aspect mining based on crosscutting concern sorts
CN110928760B (zh) 一种嵌入式系统中的单元测试方法与装置
CN104317580A (zh) 虚拟试验应用集成开发环境
Ardito et al. Towards automated translation between generations of gui-based tests for mobile devices
Kim Mobile applications software testing methodology
us Saqib et al. Functionality, performance, and compatibility testing: a model based approach
Zimmerman et al. Toward instant gradeification

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170517

RJ01 Rejection of invention patent application after publication