CN105573915A - 一种基于代码覆盖率的测试方法和装置 - Google Patents

一种基于代码覆盖率的测试方法和装置 Download PDF

Info

Publication number
CN105573915A
CN105573915A CN201510946075.3A CN201510946075A CN105573915A CN 105573915 A CN105573915 A CN 105573915A CN 201510946075 A CN201510946075 A CN 201510946075A CN 105573915 A CN105573915 A CN 105573915A
Authority
CN
China
Prior art keywords
coverage data
application
code
unit
plug
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
CN201510946075.3A
Other languages
English (en)
Other versions
CN105573915B (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 CN201510946075.3A priority Critical patent/CN105573915B/zh
Publication of CN105573915A publication Critical patent/CN105573915A/zh
Application granted granted Critical
Publication of CN105573915B publication Critical patent/CN105573915B/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(ApplicationProgrammingInterface,应用程序编程接口)测试还是功能性测试,最终都是调用了产品的代码。
测试结束后,通过代码覆盖率数据,可以知道测试得是否充分,测试的弱点在哪些方面,进而可以指导设计能够增加覆盖率的测试用例。
其中,以Android(安卓)平台中,代码覆盖率主要使用测试工具Jacoco进行统计。
在此种方式中,需要修改应用的源代码,增加一个接口,当测试完成后,在接口中调用通过测试工具Jacoco的getExecutionData方法,导出覆盖率数据。
如果测试过程中,被测试应用异常退出,如进程崩溃等,将无法获取到之前测试操作的覆盖率数据,只能重新进行测试,浪费资源。
测试完成,为了导出覆盖率数据,需要修改被测试应用的源代码,对外提供触发接口,将覆盖率数据写到本地,破坏了被测试应用的完整性,容易对测试产生影响。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于代码覆盖率的测试方法和相应的一种基于代码覆盖率的测试装置。
依据本发明的一个方面,提供了一种基于代码覆盖率的测试方法,包括:
当启动待测试的应用时,启动在所述应用中注入的插件代理;
当测试所述应用时,由所述插件代理生成代码覆盖率数据;
由所述插件代理启动一检测线程;
由所述检测线程读取所述覆盖率数据。
可选地,还包括:
在待测试的应用的、由源代码编译的应用文件中,插入标识变量。
可选地,所述由所述插件代理生成代码覆盖率数据的步骤包括:
由所述插件代理统计基于被已执行代码所触发的标识变量、基于未被代码所触发的标识变量,获得代码覆盖率数据。
可选地,所述由所述检测线程读取所述覆盖率数据的步骤包括:
每间隔一定时间,由所述检测线程读取所述覆盖率数据,直至所述应用退出。
可选地,还包括:
由所述检测线存储所述覆盖率数据。
可选地,所述由所述检测线存储所述覆盖率数据的步骤包括:
将当前读取的覆盖率数据覆盖在先存储的覆盖率数据。
可选地,还包括:
当检测到所述应用的进程崩溃时,输出最新的覆盖率数据。
根据本发明的另一方面,提供了一种基于代码覆盖率的测试装置,包括:
插件代理启动模块,适于在启动待测试的应用时,启动在所述应用中注入的插件代理;
代码覆盖率数据生成模块,适于在测试所述应用时,由所述插件代理生成代码覆盖率数据;
检测线程启动模块,适于由所述插件代理启动一检测线程;
覆盖率数据读取模块,适于由所述检测线程读取所述覆盖率数据。
可选地,还包括:
离线插桩模块,适于在待测试的应用的、由源代码编译的应用文件中,插入标识变量。
可选地,所述代码覆盖率数据生成模块还适于:
由所述插件代理统计基于被已执行代码所触发的标识变量、基于未被代码所触发的标识变量,获得代码覆盖率数据。
可选地,所述覆盖率数据读取模块还适于:
每间隔一定时间,由所述检测线程读取所述覆盖率数据,直至所述应用退出。
可选地,还包括:
覆盖率数据存储模块,适于由所述检测线存储所述覆盖率数据。
可选地,所述覆盖率数据存储模块还适于:
将当前读取的覆盖率数据覆盖在先存储的覆盖率数据。
可选地,还包括:
覆盖率数据输出模块,适于在检测到所述应用的进程崩溃时,输出最新的覆盖率数据。
本发明实施例通过插件代理的检测线程读取插件代理生成的代码覆盖率数据,避免了由应用提供接口读取代码覆盖率数据,避免了对其源代码进行修改,保证了应用的完整性,减少对测试的影响。
本发明实施例通过检测线程不断存储覆盖率数据,使得应用进程崩溃时,可以输出最新的覆盖率数据,获得进程崩溃前的覆盖率数据,避免了重新进行测试,减少了资源的浪费。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种基于代码覆盖率的测试方法实施例1的步骤流程图;
图2示出了根据本发明一个实施例的一种基于代码覆盖率的测试方法实施例2的步骤流程图
图3示出了根据本发明一个实施例的一种基于代码覆盖率的测试装置实施例1的结构框图;以及
图4示出了根据本发明一个实施例的一种基于代码覆盖率的测试装置实施例2的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种基于代码覆盖率的测试方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101,当启动待测试的应用时,启动在所述应用中注入的插件代理;
在本发明实施例中,可以将测试过程中读取代码覆盖率,覆盖多个测试平台,如Android(安卓)、IOS、WindowsPhone、Windows等等。
为使本领域技术人员更好地理解本发明实施例,在本发明实施例中,将Android作为测试平台应用测试工具Jacoco进行的一种示例进行说明。
应用本发明实施例,可以在待测试的应用的、由源代码编译的应用文件中,插入标识变量,即离线插桩。
具体而言,离线插桩,是指在java代码生成字节码时,在代码间插入特定的标识变量。
这个过程不会修改源代码,而是修改源代码编译之后的字节码文件,如class文件。
Jacoco工具支持gradle等构件工具,能自动实现插桩过程。
通过构建任务中指定testCoverageEnabled值为true,最后生成的就是插桩之后的应用文件。
例如,某个源代码生成的class文件为:
插入标识变量后的class文件为:
其中,arrayOfBoolean[0]和arrayOfBoolean[1]就是插桩后的变量标识,由Jacoco工具统一管理,默认值是false。
若启动待测试的应用,Jacoco工具也会随之启动。
如果待测试的应用中包含多进程,根据Jacoco工具的内部机制,每个进程都会单独启动一个插件代理。
步骤102,当测试所述应用时,由所述插件代理生成代码覆盖率数据;
在具体实现中,可以通过自动化脚本对应用进行自动化测试,也可以手动对应用进行手动测试,本发明实施例对此不加以限制。
若在先对待测试的应用的安装文件进行离线查桩,则可以由插件代理统计基于被已执行代码所触发的标识变量、基于未被代码所触发的标识变量,获得代码覆盖率数据。
例如,对于上述插入标识变量后的class文件,在测试过程中如果执行了doSomething(),则arrayOfBoolean[0]=true,如果没有执行doSomething(),则arrayOfBoolean[0]=false,测试工具通过统计arrayOfBoolean数组值,就能得出哪些代码执行了,哪些没有执行,从而统计代码的覆盖率。
所以,插件代理获取覆盖率数据并不需要待测试的应用提供接口,因为这些覆盖率数据本身就是由插件代理管理的。
步骤103,由所述插件代理启动一检测线程;
步骤104,由所述检测线程读取所述覆盖率数据。
在本发明实施例中,可以对Jacoco等测试工具的源代码进行了修改,使得插件代理启动时,新建一个检测线程,该检测线程内部执行循环操作,不断读取插件代理获取的覆盖率数据。
其中,线程线程(thread)是进程中某个单一顺序的控制流,也被称为轻量进程(lightweightprocesses),其是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
因此,插件代理中的检测线程可以读取其主线程生成的覆盖率数据。
在实际应用中,每间隔一定时间,如5s,可以由检测线程读取覆盖率数据,直至应用退出。
本发明实施例通过插件代理的检测线程读取插件代理生成的代码覆盖率数据,避免了由应用提供接口读取代码覆盖率数据,避免了对其源代码进行修改,保证了应用的完整性,减少对测试的影响。
参照图2,示出了根据本发明一个实施例的一种基于代码覆盖率的测试方法实施例2的步骤流程图,具体可以包括如下步骤:
步骤201,当启动待测试的应用时,启动在所述应用中注入的插件代理;
步骤202,当测试所述应用时,由所述插件代理生成代码覆盖率数据;
步骤203,由所述插件代理启动一检测线程;
步骤204,由所述检测线程读取所述覆盖率数据;
步骤205,由所述检测线存储所述覆盖率数据;
在具体实现中,由于覆盖率数据比较小,因此,可以将当前读取的覆盖率数据覆盖在先存储的覆盖率数据,实现存储。
当然,可以是每一个覆盖率数据单独存储,本发明实施例对此不加以限制。
此外,为了支持多进程的覆盖率数据的统计,在插件代理内部保存覆盖率数据的时候,每个进程生成的覆盖率数据文件名可以是随机的,并且所有的覆盖率数据文件都统一存储在固定目录下。
这样保证了进程之间的覆盖率数据不会混淆,最后生成统一的覆盖率报告的时候,只需将该目录下所有覆盖率数据拷出即可。
步骤206,当检测到所述应用的进程崩溃时,输出最新的覆盖率数据。
在本发明实施例中,若应用的进程崩溃,则可以输出最新(即距离当前时间最近)的覆盖率数据,获得进程崩溃前的覆盖率数据。
覆盖率数据主要是用来衡量测试完整性的,有的测试用例逻辑本身需要验证崩溃操作,崩溃之前的覆盖率数据跟常规测试用例的覆盖率数据一样,也是需要统计的。
一轮测试完之后,测试人员把所有的覆盖率数据整合,就能得这轮测试的完整性。
本发明实施例通过检测线程不断存储覆盖率数据,使得应用进程崩溃时,可以输出最新的覆盖率数据,获得进程崩溃前的覆盖率数据,避免了重新进行测试,减少了资源的浪费。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了根据本发明一个实施例的一种基于代码覆盖率的测试装置实施例1的结构框图,具体可以包括如下模块:
插件代理启动模块301,适于在启动待测试的应用时,启动在所述应用中注入的插件代理;
代码覆盖率数据生成模块302,适于在测试所述应用时,由所述插件代理生成代码覆盖率数据;
检测线程启动模块303,适于由所述插件代理启动一检测线程;
覆盖率数据读取模块304,适于由所述检测线程读取所述覆盖率数据。
在本发明的一种可选实施例中,该装置还可以包括如下模块:
离线插桩模块,适于在待测试的应用的、由源代码编译的应用文件中,插入标识变量。
在本发明的一种可选实施例中,所述代码覆盖率数据生成模块302还可以适于:
由所述插件代理统计基于被已执行代码所触发的标识变量、基于未被代码所触发的标识变量,获得代码覆盖率数据。
在本发明的一种可选实施例中,所述覆盖率数据读取模块304还可以适于:
每间隔一定时间,由所述检测线程读取所述覆盖率数据,直至所述应用退出。
参照图4,示出了根据本发明一个实施例的一种基于代码覆盖率的测试装置实施例2的结构框图,具体可以包括如下模块:
插件代理启动模块401,适于在启动待测试的应用时,启动在所述应用中注入的插件代理;
代码覆盖率数据生成模块402,适于在测试所述应用时,由所述插件代理生成代码覆盖率数据;
检测线程启动模块403,适于由所述插件代理启动一检测线程;
覆盖率数据读取模块404,适于由所述检测线程读取所述覆盖率数据;
覆盖率数据存储模块405,适于由所述检测线存储所述覆盖率数据。
覆盖率数据输出模块406,适于在检测到所述应用的进程崩溃时,输出最新的覆盖率数据。
在本发明的一种可选实施例中,所述覆盖率数据存储模块405还可以适于:
将当前读取的覆盖率数据覆盖在先存储的覆盖率数据。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于代码覆盖率的测试设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明实施例公开了A1、一种基于代码覆盖率的测试方法,包括:
当启动待测试的应用时,启动在所述应用中注入的插件代理;
当测试所述应用时,由所述插件代理生成代码覆盖率数据;
由所述插件代理启动一检测线程;
由所述检测线程读取所述覆盖率数据。
A2、如A1所述的方法,还包括:
在待测试的应用的、由源代码编译的应用文件中,插入标识变量。
A3、如A2所述的方法,所述由所述插件代理生成代码覆盖率数据的步骤包括:
由所述插件代理统计基于被已执行代码所触发的标识变量、基于未被代码所触发的标识变量,获得代码覆盖率数据。
A4、如A1或A2或A3所述的方法,所述由所述检测线程读取所述覆盖率数据的步骤包括:
每间隔一定时间,由所述检测线程读取所述覆盖率数据,直至所述应用退出。
A5、如A1或A2或A3所述的方法,还包括:
由所述检测线存储所述覆盖率数据。
A6、如A5所述的方法,所述由所述检测线存储所述覆盖率数据的步骤包括:
将当前读取的覆盖率数据覆盖在先存储的覆盖率数据。
A7、如A1或A2或A3或A5或A6所述的方法,还包括:
当检测到所述应用的进程崩溃时,输出最新的覆盖率数据。
本发明实施例还公开了B8、一种基于代码覆盖率的测试装置,包括:
插件代理启动模块,适于在启动待测试的应用时,启动在所述应用中注入的插件代理;
代码覆盖率数据生成模块,适于在测试所述应用时,由所述插件代理生成代码覆盖率数据;
检测线程启动模块,适于由所述插件代理启动一检测线程;
覆盖率数据读取模块,适于由所述检测线程读取所述覆盖率数据。
B9、如B8所述的装置,还包括:
离线插桩模块,适于在待测试的应用的、由源代码编译的应用文件中,插入标识变量。
B10、如B9所述的装置,所述代码覆盖率数据生成模块还适于:
由所述插件代理统计基于被已执行代码所触发的标识变量、基于未被代码所触发的标识变量,获得代码覆盖率数据。
B11、如B8或B9或B10所述的装置,所述覆盖率数据读取模块还适于:
每间隔一定时间,由所述检测线程读取所述覆盖率数据,直至所述应用退出。
B12、如B8或B9或B10所述的装置,还包括:
覆盖率数据存储模块,适于由所述检测线存储所述覆盖率数据。
B13、如B12所述的装置,所述覆盖率数据存储模块还适于:
将当前读取的覆盖率数据覆盖在先存储的覆盖率数据。
B14、如B8或B9或B10或B12或B13所述的装置,还包括:
覆盖率数据输出模块,适于在检测到所述应用的进程崩溃时,输出最新的覆盖率数据。

Claims (10)

1.一种基于代码覆盖率的测试方法,包括:
当启动待测试的应用时,启动在所述应用中注入的插件代理;
当测试所述应用时,由所述插件代理生成代码覆盖率数据;
由所述插件代理启动一检测线程;
由所述检测线程读取所述覆盖率数据。
2.如权利要求1所述的方法,其特征在于,还包括:
在待测试的应用的、由源代码编译的应用文件中,插入标识变量。
3.如权利要求2所述的方法,其特征在于,所述由所述插件代理生成代码覆盖率数据的步骤包括:
由所述插件代理统计基于被已执行代码所触发的标识变量、基于未被代码所触发的标识变量,获得代码覆盖率数据。
4.如权利要求1或2或3所述的方法,其特征在于,所述由所述检测线程读取所述覆盖率数据的步骤包括:
每间隔一定时间,由所述检测线程读取所述覆盖率数据,直至所述应用退出。
5.如权利要求1或2或3所述的方法,其特征在于,还包括:
由所述检测线存储所述覆盖率数据。
6.如权利要求5所述的方法,其特征在于,所述由所述检测线存储所述覆盖率数据的步骤包括:
将当前读取的覆盖率数据覆盖在先存储的覆盖率数据。
7.如权利要求1或2或3或5或6所述的方法,其特征在于,还包括:
当检测到所述应用的进程崩溃时,输出最新的覆盖率数据。
8.一种基于代码覆盖率的测试装置,包括:
插件代理启动模块,适于在启动待测试的应用时,启动在所述应用中注入的插件代理;
代码覆盖率数据生成模块,适于在测试所述应用时,由所述插件代理生成代码覆盖率数据;
检测线程启动模块,适于由所述插件代理启动一检测线程;
覆盖率数据读取模块,适于由所述检测线程读取所述覆盖率数据。
9.如权利要求8所述的装置,其特征在于,还包括:
离线插桩模块,适于在待测试的应用的、由源代码编译的应用文件中,插入标识变量。
10.如权利要求9所述的装置,其特征在于,所述代码覆盖率数据生成模块还适于:
由所述插件代理统计基于被已执行代码所触发的标识变量、基于未被代码所触发的标识变量,获得代码覆盖率数据。
CN201510946075.3A 2015-12-16 2015-12-16 一种基于代码覆盖率的测试方法和装置 Active CN105573915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510946075.3A CN105573915B (zh) 2015-12-16 2015-12-16 一种基于代码覆盖率的测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510946075.3A CN105573915B (zh) 2015-12-16 2015-12-16 一种基于代码覆盖率的测试方法和装置

Publications (2)

Publication Number Publication Date
CN105573915A true CN105573915A (zh) 2016-05-11
CN105573915B CN105573915B (zh) 2019-07-05

Family

ID=55884079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510946075.3A Active CN105573915B (zh) 2015-12-16 2015-12-16 一种基于代码覆盖率的测试方法和装置

Country Status (1)

Country Link
CN (1) CN105573915B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155909A (zh) * 2016-07-26 2016-11-23 网易(杭州)网络有限公司 代码覆盖率测试结果的处理方法及装置
CN106294129A (zh) * 2016-07-27 2017-01-04 北京小米移动软件有限公司 代码覆盖率测试方法及装置
CN106326118A (zh) * 2016-08-19 2017-01-11 东软集团股份有限公司 代码测试覆盖率确定方法和装置
CN109684221A (zh) * 2018-12-27 2019-04-26 江苏满运软件科技有限公司 测试代码覆盖率采集方法、系统、设备以及介质
CN109992511A (zh) * 2019-03-25 2019-07-09 口碑(上海)信息技术有限公司 获取代码测试覆盖率的装置及方法
CN111026630A (zh) * 2018-10-09 2020-04-17 阿里巴巴集团控股有限公司 代码覆盖率的统计方法、装置和系统
CN111124910A (zh) * 2019-12-20 2020-05-08 北京达佳互联信息技术有限公司 确定测试代码执行数据的方法、装置、设备及存储介质
CN111400189A (zh) * 2020-03-25 2020-07-10 平安银行股份有限公司 代码覆盖率监测方法、装置、电子设备及存储介质
CN112667515A (zh) * 2021-01-06 2021-04-16 杭州当虹科技股份有限公司 一种实现针对逻辑语句代码覆盖率的测试方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120260230A1 (en) * 2011-04-07 2012-10-11 Infosys Technologies Ltd. Early analysis of software design diagrams
CN103095518A (zh) * 2011-11-08 2013-05-08 阿里巴巴集团控股有限公司 覆盖率测试处理方法、装置、覆盖率测试服务器及系统
CN103699476A (zh) * 2012-09-27 2014-04-02 腾讯科技(深圳)有限公司 覆盖率测试方法及系统
CN104199773A (zh) * 2014-09-03 2014-12-10 腾讯科技(深圳)有限公司 获取代码覆盖信息的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120260230A1 (en) * 2011-04-07 2012-10-11 Infosys Technologies Ltd. Early analysis of software design diagrams
CN103095518A (zh) * 2011-11-08 2013-05-08 阿里巴巴集团控股有限公司 覆盖率测试处理方法、装置、覆盖率测试服务器及系统
CN103699476A (zh) * 2012-09-27 2014-04-02 腾讯科技(深圳)有限公司 覆盖率测试方法及系统
CN104199773A (zh) * 2014-09-03 2014-12-10 腾讯科技(深圳)有限公司 获取代码覆盖信息的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙天衣 等: ""基于云技术的集成测试代码覆盖率收集的一站式解决方案"", 《HTTP://WWW.VOIDCN.COM/ARTICLE/P-XNMZVTSH-EX.HTML》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155909A (zh) * 2016-07-26 2016-11-23 网易(杭州)网络有限公司 代码覆盖率测试结果的处理方法及装置
CN106294129A (zh) * 2016-07-27 2017-01-04 北京小米移动软件有限公司 代码覆盖率测试方法及装置
CN106326118A (zh) * 2016-08-19 2017-01-11 东软集团股份有限公司 代码测试覆盖率确定方法和装置
CN106326118B (zh) * 2016-08-19 2019-03-15 东软集团股份有限公司 代码测试覆盖率确定方法和装置
CN111026630A (zh) * 2018-10-09 2020-04-17 阿里巴巴集团控股有限公司 代码覆盖率的统计方法、装置和系统
CN111026630B (zh) * 2018-10-09 2023-05-02 阿里巴巴集团控股有限公司 代码覆盖率的统计方法、装置和系统
CN109684221A (zh) * 2018-12-27 2019-04-26 江苏满运软件科技有限公司 测试代码覆盖率采集方法、系统、设备以及介质
CN109992511A (zh) * 2019-03-25 2019-07-09 口碑(上海)信息技术有限公司 获取代码测试覆盖率的装置及方法
CN111124910A (zh) * 2019-12-20 2020-05-08 北京达佳互联信息技术有限公司 确定测试代码执行数据的方法、装置、设备及存储介质
CN111400189A (zh) * 2020-03-25 2020-07-10 平安银行股份有限公司 代码覆盖率监测方法、装置、电子设备及存储介质
CN112667515A (zh) * 2021-01-06 2021-04-16 杭州当虹科技股份有限公司 一种实现针对逻辑语句代码覆盖率的测试方法

Also Published As

Publication number Publication date
CN105573915B (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
CN105573915A (zh) 一种基于代码覆盖率的测试方法和装置
CN105630463B (zh) 用于检测jar包冲突的方法及装置
CN107451474B (zh) 用于终端的软件漏洞修复方法和装置
US20080270855A1 (en) Method For Detecting Memory Error
CN104915595A (zh) 云平台虚拟化漏洞修复的方法及装置
WO2014106000A1 (en) Extending a development environment
CN105589805B (zh) 一种代码覆盖率报告的生成方法和装置
CN104461898A (zh) 应用测试的方法、中控服务器、测试终端及系统
CN105426310A (zh) 一种检测目标进程的性能的方法和装置
JP6142705B2 (ja) オブジェクト指向言語のための記号テストドライバの反復生成
CN105550104A (zh) 应用程序性能测试方法及装置
CN104572235A (zh) 一种可加载内核模块的编译方法和装置
CN105204916A (zh) 基于环境变量的项目进程运行方法及装置
CN106095501A (zh) 一种应用部署方法及装置
Dong et al. Orplocator: Identifying read points of configuration options via static analysis
CN112419057A (zh) 智能合约的日志生成及保存方法、装置、设备和存储介质
US9329845B2 (en) Determining target types for generic pointers in source code
CN110162477B (zh) 一种第三方库版本升级的异常自动调试系统及方法
EP3692456B1 (en) Binary image stack cookie protection
CN106529287A (zh) 应用漏洞自动加固的方法及装置
KR20180098584A (ko) App 프로그램 실행 방법 및 장치
Lauret et al. Detection of interferences in aspect-oriented programs using executable assertions
CN104778091A (zh) 应用程序的运行方法及装置
Restivo et al. Towards detecting and solving aspect conflicts and interferences using unit tests
CN105117243A (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

Effective date of registration: 20220719

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.

TR01 Transfer of patent right