CN106326118A - 代码测试覆盖率确定方法和装置 - Google Patents

代码测试覆盖率确定方法和装置 Download PDF

Info

Publication number
CN106326118A
CN106326118A CN201610695321.7A CN201610695321A CN106326118A CN 106326118 A CN106326118 A CN 106326118A CN 201610695321 A CN201610695321 A CN 201610695321A CN 106326118 A CN106326118 A CN 106326118A
Authority
CN
China
Prior art keywords
byte
probe
fragment
code files
mark
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
CN201610695321.7A
Other languages
English (en)
Other versions
CN106326118B (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.)
Neusoft Corp
Original Assignee
Neusoft Corp
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 Neusoft Corp filed Critical Neusoft Corp
Priority to CN201610695321.7A priority Critical patent/CN106326118B/zh
Publication of CN106326118A publication Critical patent/CN106326118A/zh
Application granted granted Critical
Publication of CN106326118B publication Critical patent/CN106326118B/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

代码测试覆盖率确定方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码测试覆盖率确定方法和装置。
背景技术
代码测试覆盖作为软件测试中的一种度量被广泛使用,代码测试覆盖率在程式中源代码被测试的比例和程度,代码测试覆盖率越高,表示源代码中被测试的比例越高。
然而,相关技术中,代码测试覆盖率仅仅是根据本次对源代码测试的结果确定的,没有充分利用历史测试数据,测试效率低。
发明内容
本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种代码测试覆盖率确定方法,该方法充分利用历史测试数据确定代码测试覆盖率,提高了测试效率。
本发明的第二个目的在于提出一种代码测试覆盖率确定装置。
为达上述目的,本发明第一方面实施例的代码测试覆盖率确定方法包括:
生成与指定路径对应的字节码文件,其中,所述字节码文件包括:与不同字节片段分别对应的探针;
在测试所述字节码文件的过程中,将已执行的字节片段对应的探针设置执行标识;
检测历史测试数据中是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识;
如果获知所述历史测试数据中对所述未执行的字节片段对应的探针设置过执行标识,则将与所述字节码文件中对应的未执行的字节片段的探针设置执行标识。
本发明实施例的代码测试覆盖率确定方法,生成与指定路径对应的字节码文件,并将已执行的字节片段对应的探针设置执行标识,检测历史测试数据中是否对字节码文件中未执行的字节片段对应的探针设置过执行标识,如果获知历史测试数据中对未执行的字节片段对应的探针设置过执行标识,则将与字节码文件中对应的未执行的字节片段的探针设置执行标识。由此,合并历史代码测试覆盖率,充分利用了历史测试数据确定代码测试覆盖率,提高了测试效率。
另外,本发明实施例的代码测试覆盖率确定方法,还具有如下附加的技术特征:
在本发明的一个实施例中,所述将已执行的字节片段对应的探针设置执行标识,包括:
将已执行的字节片段对应的探针的布尔值设置为真,或者,
将已执行的字节片段对应的探针值设置为1。
在本发明的一个实施例中,如果所述字节码文件为Java代码文件,
所述生成与指定路径对应的字节码文件,包括:
在tomcat中配置JaCoCo的javaagent代理参数,并启动服务;
在指定路径下生成选定类的被插入探针的字节码文件。
在本发明的一个实施例中,所述在测试所述字节码文件的过程中,将已执行的字节片段对应的探针设置执行标识,包括:
在测试所述字节码文件的过程中,调用相关类分析所述字节码文件,生成jacoco.exec文件,其中,所述jacoco.exec文件记录了已执行的字节片段对应的探针是否设置了执行标识。
在本发明的一个实施例中,所述检测历史测试数据中是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识,包括:
遍历所述指定路径下其他的jacoco.exec文件;
检测所述其他的jacoco.exec文件是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识。
为达上述目的,本发明第二方面实施例的代码测试覆盖率确定装置包括:
生成模块,用于生成与指定路径对应的字节码文件,其中,所述字节码文件包括:与不同字节片段分别对应的探针;
第一设置模块,用于在测试所述字节码文件的过程中,将已执行的字节片段对应的探针设置执行标识;
检测模块,用于检测历史测试数据中是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识;
第二设置模块,用于在获知所述历史测试数据中对所述未执行的字节片段对应的探针设置过执行标识时,将与所述字节码文件中对应的未执行的字节片段的探针设置执行标识。
本发明实施例的代码测试覆盖率确定装置,生成与指定路径对应的字节码文件,并将已执行的字节片段对应的探针设置执行标识,检测历史测试数据中是否对字节码文件中未执行的字节片段对应的探针设置过执行标识,如果获知历史测试数据中对未执行的字节片段对应的探针设置过执行标识,则将与字节码文件中对应的未执行的字节片段的探针设置执行标识。由此,合并历史代码测试覆盖率,充分利用了历史测试数据确定代码测试覆盖率,提高了测试效率。
另外,本发明实施例的代码测试覆盖率确定装置还具有如下附加的技术特征:
在本发明一个实施例中,所述第一设置模块用于:
将已执行的字节片段对应的探针的布尔值设置为真,或者,
将已执行的字节片段对应的探针值设置为1。
在本发明一个实施例中,如果所述字节码文件为Java代码文件,所述生成模块,包括:
启动单元,用于在tomcat中配置JaCoCo的javaagent代理参数,并启动服务;
生成单元,用于在指定路径下生成选定类的被插入探针的字节码文件。
在本发明一个实施例中,所述第一设置模块用于:
在测试所述字节码文件的过程中,调用相关类分析所述字节码文件,生成jacoco.exec文件,其中,所述jacoco.exec文件记录了已执行的字节片段对应的探针是否设置了执行标识。
在本发明一个实施例中,所述检测模块包括:
遍历单元,用于遍历所述指定路径下其他的jacoco.exec文件;
检测单元,用于检测所述其他的jacoco.exec文件是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的代码测试覆盖率确定方法的流程图;
图2(a)-图2(b)是根据本发明一个实施例的生成包含探针的字节码文件的应用示意图;
图3是根据本发明另一个实施例的代码测试覆盖率确定方法的流程图;
图4(a)-图4(c)是根据本发明一个实施例的代码测试覆盖率确定方法的应用示意图;
图5是根据本发明一个实施例的代码测试覆盖率确定装置的结构示意图;以及
图6是根据本发明另一个实施例的代码测试覆盖率确定装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的代码测试覆盖率确定方法和装置。
图1是根据本发明一个实施例的代码测试覆盖率确定方法的流程图,如图1所示,该方法包括:
S110,生成与指定路径对应的字节码文件,其中,字节码文件包括:与不同字节片段分别对应的探针。
通常,在开发软件的过程中,为了使得开发的软件满足用户的功能需求,且更为稳定,相关测试人员会对开发的软件的源代码进行测试,当测试某一段代码不稳定或不能实现相应的功能时,开发人员对代码进行删除、添加、修改等处理。
其中,代码测试覆盖率作为软件测试中一种评价测试质量的重要指标被广泛使用,比如,当代码测试覆盖率达到90%,则认为该软件对应的90%的代码已经被测试过,测试质量相对较高。
然而,相关技术中,代码测试覆盖率仅仅根据本次对当前代码的测试程度确定的,比如,测试工具JaCoCo(Java Code Coverage,分析代码测试覆盖率的工具)是依据代码中类的ID唯一定位类文件,当代码一旦更改,就会生成不同的类的ID,JaCoCo仅仅可根据本次对当前代码的测试程度确定当前代码测试覆盖率,无法完成对前后测试结果的合并。
也就是说,在当前待测试代码相较于历史测试的代码改动较小时,当前代码的代码测试覆盖率仍是根据对当前代码的测试程度确定的,不能充分利用历史测试数据,测试效率较低。
为了解决上述问题,本发明提出了一种代码测试率确定方法,可充分利用历史测试数据确定代码测试覆盖率,大大提高了测试效率。
具体而言,在实际应用中,为了实现本发明实施例的代码测试覆盖率方法,将待测试代码进行编译,在指定路径生成与待测试代码对应的字节码文件,以在字节码文件的特定位置插入探针,该字节码文件中,不同的探针与不同的字节片段对应。
S120,在测试字节码文件的过程中,将已执行的字节片段对应的探针设置执行标识。
具体地,在测试字节码文件的过程中,为了检测字节码中每个字段对应的代码是否被执行,可将已执行的字节片段对应的探针设置执行标识,用以标识该段字段对应的代码是否已被测试。
举例而言,源代码的执行流程如图2(a)所示,在对该源代码进行编译后,在指定路径生成字节码文件,该字节码文件中,在特定的位置分别设置有不同字节片段对应的探针,即如图2(b)所示,当该字节码在执行过程中,如果与探针P1、P2和P3对应的字节片段被执行,则将相应的探针设置执行标识,以表明该字节片段被执行。
需要说明的是,根据具体应用需求的不同,可采用不用的方式设置已执行的字节片段对应的执行标识:
第一种示例,可将已执行的字节片段对应的探针的布尔值设置为真。
从而,在本示例中,可根据测试字节码文件中,字节片段对应的探针的布尔值的真假,确定该字节片段是否被已被执行,当字节片段对应的探针的布尔值为真时,表明该字节片段已被执行,当字节片段对应的探针的布尔值为假时,表明该字节片段没有被执行。
第二种示例,将已执行的字节片段对应的探针值设置为1。
从而,在本示例中,可根据测试字节码文件中,字节片段对应的探针的布尔值的值,确定该字节片段是否被已被执行,当字节片段对应的探针的布尔值为1时,表明该字节片段已被执行,当字节片段对应的探针的布尔值为0时,表明该字节片段没有被执行。
第三种示例,将已执行的字节片段对应的区域标绿。
从而,在本示例中,可根据测试字节码文件中,字节片段对应的区域的颜色,确定该字节片段是否被已被执行,当字节片段对应的区域为绿色时,表明该字节片段已被执行,当字节片段对应的区域不为绿色时,表明该字节片段没有被执行。
S130,检测历史测试数据中是否对字节码文件中未执行的字节片段对应的探针设置过执行标识。
可以理解,历史测试数据中,已经被执行的字节片段的探针被设置执行标识,因此,在对字节码文件测试完毕后,可以检测历史测试数据中是否对字节码文件中未执行的字节片段设置过执行标识,以判断字节码文件中,未执行的字节片段是否已经被执行过。
S140,如果获知历史测试数据中对未执行的字节片段对应的探针设置过执行标识,则将与字节码文件中对应的未执行的字节片段的探针设置执行标识。
具体地,如果获知历史测试数据中未执行的字节片段对应的探针设置过执行标识,则表明该字节片段已被执行过,因此将与字节码文件中对应的未执行的字节片段对应的探针设置执行标识,从而实现合并历史代码测试覆盖率,充分利用了历史测试数据,提高了测试效率。
综上所述,本发明实施例的代码测试覆盖率确定方法,生成与指定路径对应的字节码文件,并将已执行的字节片段对应的探针设置执行标识,检测历史测试数据中是否对字节码文件中未执行的字节片段对应的探针设置过执行标识,如果获知历史测试数据中对未执行的字节片段对应的探针设置过执行标识,则将与字节码文件中对应的未执行的字节片段的探针设置执行标识。由此,合并历史代码测试覆盖率,充分利用了历史测试数据确定代码测试覆盖率,提高了测试效率。
基于以上实施例,应当理解的是,上述代码测试覆盖率确定方法适用于,需要确定代码测试覆盖率的测试机制中。比如,可适用于字码文件为C语言代码文件的确定代码测试覆盖率的测试机制中;又比如,可适用于字码文件为PHP代码文件的确定代码测试覆盖率的测试机制中等。
为了更加清楚的说明代码测试覆盖率确定方法实施例,下面以字码文件为Java代码文件,举例说明本发明实施例的代码测试覆盖率确定方法的实施过程,说明如下:
图3是根据本发明另一个实施例的代码测试覆盖率确定方法的流程图,如图3所示,该方法包括:
S310,在tomcat中配置JaCoCo的javaagent代理参数,并启动服务。
S320,在指定路径下生成选定类的被插入探针的字节码文件。
在本发明的一个实施例中,基于JaCoCo实现本发明实施例的代码测试覆盖率确定,因而,针对待测试的Java代码在tomcat中配置JaCoCo的javaagent代理参数,并启动服务。启动相关服务后,会在指定路径下生成选定类的被插入探针的字节码文件。
S330,在测试字节码文件的过程中,调用相关类分析字节码文件,生成jacoco.exec文件,其中,jacoco.exec文件记录了已执行的字节片段对应的探针是否设置了执行标识。
具体地,在测试字节码文件中,调用相关类分析字节码文件,生成记录各个类的具体代码是否被执行的数据的jacoco.exec文件,即jacoco.exec文件记录了已执行的字节片段对应的探针被设置了执行标识。
S340,遍历指定路径下其他的jacoco.exec文件。
S350,检测其他的jacoco.exec文件是否对字节码文件中未执行的字节片段对应的探针设置过执行标识。
具体地,由于每次确定代码测试覆盖率的过程中,都会生成对应的jacoco.exec文件,因而可通过遍历指定路径下的jacoco.exec文件,检测其他jacoco.exec文件是否对字节码文件中未执行的字节片段对应的探针位置设置过执行标识。
S360,如果获知历史测试数据中对未执行的字节片段对应的探针设置过执行标识,则将与字节码文件中对应的未执行的字节片段的探针设置执行标识。
举例而言,如图4(a)所示,在对某个Java字节码文件测试后,生成历史测试数据,该历史测试数据中,针对已测试的字节片段对应的探针P1和P3设置执行标识,进而开发人员可能根据测试数据,在Java代码中,增加了一段代码,从而生成本次待测试的Java字节码文件。
在对待测试的Java字节码文件测试过程中,如图4(b)所示,将已执行的字节片段对应的探针P2和P3设置执行标识。进而,针对本次未执行的字节片段即P1探针对应的字节片段,检测历史测试数据,根据检测结果,发现P1探针已被设置过执行标识,即P1对应的字节片段已被执行。
为了充分利用历史测试数据,提高测试效率,将与字节码文件中对应的未执行的字节片段的探针设置执行标识,即将待测试的Java字节码文件中的P1探针设置执行标识,从而如图4(c)所示,实现了将历史测试数据中的代码测试覆盖率与本次代码测试覆盖率的合并,探针P1、P2和P3均被设置执行标识。
综上所述,本发明实施例的代码测试覆盖率确定方法中,当字节码文件为Java代码文件时,根据Java代码文件的运行机制,基于JaCoCo测试合并历史代码测试覆盖率,充分利用历史测试数据确定代码测试覆盖率,提高了测试效率。
为了实现上述实施例,本发明还提出了一种代码测试覆盖率确定装置,图5是根据本发明一个实施例的代码测试覆盖率确定装置的结构示意图,如图5所示,该装置包括:生成模块10、第一设置模块20、检测模块30和第二设置模块40。
其中,生成模块10,用于生成与指定路径对应的字节码文件,其中,字节码文件包括:与不同字节片段分别对应的探针。
具体地,在实际应用中,生成模块10将待测试代码进行编译,在指定路径生成与待测试代码对应的字节码文件,以在字节码文件的特定位置插入探针,该字节码文件中,不同的探针与不同的字节片段对应。
第一设置模块20,用于在测试字节码文件的过程中,将已执行的字节片段对应的探针设置执行标识。
具体地,在测试字节码文件的过程中,为了检测字节码中每个字段对应的代码是否被执行,第一设置模块20可将已执行的字节片段对应的探针设置执行标识,用以标识该段字段对应的代码是否已被测试。
在本发明的一个实施例中,第一设置模块20用于将已执行的字节片段对应的探针的布尔值设置为真,或者,将已执行的字节片段对应的探针值设置为1。
检测模块30,用于检测历史测试数据中是否对字节码文件中未执行的字节片段对应的探针设置过执行标识。
第二设置模块40,用于在获知历史测试数据中对未执行的字节片段对应的探针设置过执行标识时,将与字节码文件中对应的未执行的字节片段的探针设置执行标识。
具体地,如果获知历史测试数据中未执行的字节片段对应的探针设置过执行标识,则表明该字节片段已被执行过,因此第二设置模块40将与字节码文件中对应的未执行的字节片段对应的探针设置执行标识,从而实现合并历史代码测试覆盖率,充分利用了历史测试数据,提高了测试效率。
需要说明的是,本发明实施例的代码测试覆盖率确定装置与上述实施例描述的代码测试覆盖率确定方法对应,其实现原理类似,在此不再赘述。
综上所述,本发明实施例的代码测试覆盖率确定装置,生成与指定路径对应的字节码文件,并将已执行的字节片段对应的探针设置执行标识,检测历史测试数据中是否对字节码文件中未执行的字节片段对应的探针设置过执行标识,如果获知历史测试数据中对未执行的字节片段对应的探针设置过执行标识,则将与字节码文件中对应的未执行的字节片段的探针设置执行标识。由此,合并历史代码测试覆盖率,充分利用了历史测试数据确定代码测试覆盖率,提高了测试效率。
为了更加清楚的说明代码测试覆盖率确定装置实施例,下面以字码文件为Java代码文件,举例说明本发明实施例的代码测试覆盖率确定装置的实施过程,说明如下:
图6是根据本发明另一个实施例的代码测试覆盖率确定装置的结构示意图,如图6所示,在如图5所示的基础上,生成模块10包括启动单元11、生成单元12,检测模块30包括遍历单元31和检测单元32。
其中,启动单元11,用于在tomcat中配置JaCoCo的javaagent代理参数,并启动服务。
生成单元12,用于在指定路径下生成选定类的被插入探针的字节码文件。
进而,第一设置模块20用于在测试字节码文件的过程中,调用相关类分析字节码文件,生成jacoco.exec文件,其中,jacoco.exec文件记录了已执行的字节片段对应的探针是否设置了执行标识。
遍历单元31,用于遍历指定路径下其他的jacoco.exec文件。
检测单元32,用于检测其他的jacoco.exec文件是否对字节码文件中未执行的字节片段对应的探针设置过执行标识。
在本发明的一个实施例中,如果获知历史测试数据中对未执行的字节片段对应的探针设置过执行标识,第二设置模块40则将与字节码文件中对应的未执行的字节片段的探针设置执行标识。
需要说明的是,本发明实施例的代码测试覆盖率确定装置与上述实施例描述的代码测试覆盖率确定方法对应,其实现原理类似,在此不再赘述。
综上所述,本发明实施例的代码测试覆盖率确定装置中,当字节码文件为Java代码文件时,根据Java代码文件的运行机制,基于JaCoCo测试合并历史代码测试覆盖率,充分利用历史测试数据确定代码测试覆盖率,提高了测试效率。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种代码测试覆盖率确定方法,其特征在于,包括以下步骤:
生成与指定路径对应的字节码文件,其中,所述字节码文件包括:与不同字节片段分别对应的探针;
在测试所述字节码文件的过程中,将已执行的字节片段对应的探针设置执行标识;
检测历史测试数据中是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识;
如果获知所述历史测试数据中对所述未执行的字节片段对应的探针设置过执行标识,则将与所述字节码文件中对应的未执行的字节片段的探针设置执行标识。
2.如权利要求1所述的方法,其特征在于,所述将已执行的字节片段对应的探针设置执行标识,包括:
将已执行的字节片段对应的探针的布尔值设置为真,或者,
将已执行的字节片段对应的探针值设置为1。
3.如权利要求1或2所述的方法,其特征在于,如果所述字节码文件为Java代码文件,
所述生成与指定路径对应的字节码文件,包括:
在tomcat中配置JaCoCo的javaagent代理参数,并启动服务;
在指定路径下生成选定类的被插入探针的字节码文件。
4.如权利要求3所述的方法,其特征在于,所述在测试所述字节码文件的过程中,将已执行的字节片段对应的探针设置执行标识,包括:
在测试所述字节码文件的过程中,调用相关类分析所述字节码文件,生成jacoco.exec文件,其中,所述jacoco.exec文件记录了已执行的字节片段对应的探针是否设置了执行标识。
5.如权利要求4所述的方法,其特征在于,所述检测历史测试数据中是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识,包括:
遍历所述指定路径下其他的jacoco.exec文件;
检测所述其他的jacoco.exec文件是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识。
6.一种代码测试覆盖率确定装置,其特征在于,包括:
生成模块,用于生成与指定路径对应的字节码文件,其中,所述字节码文件包括:与不同字节片段分别对应的探针;
第一设置模块,用于在测试所述字节码文件的过程中,将已执行的字节片段对应的探针设置执行标识;
检测模块,用于检测历史测试数据中是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识;
第二设置模块,用于在获知所述历史测试数据中对所述未执行的字节片段对应的探针设置过执行标识时,将与所述字节码文件中对应的未执行的字节片段的探针设置执行标识。
7.如权利要求6所述的装置,其特征在于,所述第一设置模块用于:
将已执行的字节片段对应的探针的布尔值设置为真,或者,
将已执行的字节片段对应的探针值设置为1。
8.如权利要求6或7所述的装置,其特征在于,如果所述字节码文件为Java代码文件,所述生成模块,包括:
启动单元,用于在tomcat中配置JaCoCo的javaagent代理参数,并启动服务;
生成单元,用于在指定路径下生成选定类的被插入探针的字节码文件。
9.如权利要求8所述的装置,其特征在于,所述第一设置模块用于:
在测试所述字节码文件的过程中,调用相关类分析所述字节码文件,生成jacoco.exec文件,其中,所述jacoco.exec文件记录了已执行的字节片段对应的探针是否设置了执行标识。
10.如权利要求9所述的装置,其特征在于,所述检测模块包括:
遍历单元,用于遍历所述指定路径下其他的jacoco.exec文件;
检测单元,用于检测所述其他的jacoco.exec文件是否对所述字节码文件中未执行的字节片段对应的探针设置过执行标识。
CN201610695321.7A 2016-08-19 2016-08-19 代码测试覆盖率确定方法和装置 Active CN106326118B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610695321.7A CN106326118B (zh) 2016-08-19 2016-08-19 代码测试覆盖率确定方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610695321.7A CN106326118B (zh) 2016-08-19 2016-08-19 代码测试覆盖率确定方法和装置

Publications (2)

Publication Number Publication Date
CN106326118A true CN106326118A (zh) 2017-01-11
CN106326118B CN106326118B (zh) 2019-03-15

Family

ID=57743969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610695321.7A Active CN106326118B (zh) 2016-08-19 2016-08-19 代码测试覆盖率确定方法和装置

Country Status (1)

Country Link
CN (1) CN106326118B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563580A (zh) * 2017-12-27 2018-09-21 贵阳忆芯科技有限公司 介质接口控制器微码执行路径提取方法
CN109359054A (zh) * 2018-12-18 2019-02-19 浙江诺诺网络科技有限公司 生成覆盖率统计报告的方法、装置、设备及存储介质
CN110309055A (zh) * 2019-05-23 2019-10-08 深圳壹账通智能科技有限公司 基于Java虚拟机的黑盒测试方法、装置、终端及存储介质
CN111124910A (zh) * 2019-12-20 2020-05-08 北京达佳互联信息技术有限公司 确定测试代码执行数据的方法、装置、设备及存储介质
CN111290943A (zh) * 2020-01-13 2020-06-16 北京三快在线科技有限公司 代码覆盖率处理方法、装置、服务器及存储介质
US10725895B2 (en) 2017-10-04 2020-07-28 International Business Machines Corporation Measuring and improving test coverage
TWI733017B (zh) * 2018-04-03 2021-07-11 中華電信股份有限公司 電腦裝置及其測試推算方法
US11086759B2 (en) 2018-09-27 2021-08-10 SeaLights Technologies LTD System and method for probe injection for code coverage
US11093374B2 (en) 2016-08-09 2021-08-17 SeaLights Technologies LTD System and method for continuous testing and delivery of software
US11573885B1 (en) 2019-09-26 2023-02-07 SeaLights Technologies LTD System and method for test selection according to test impact analytics

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246602A (zh) * 2012-02-14 2013-08-14 阿里巴巴集团控股有限公司 代码覆盖率确定方法及系统、代码覆盖检测方法及系统
US20140068564A1 (en) * 2012-09-04 2014-03-06 Opshub, Inc. System and method for merging results from multiple runs based on run inputs
CN104375932A (zh) * 2014-08-27 2015-02-25 北京中电华大电子设计有限责任公司 一种Java卡代码覆盖率分析方法和装置
CN104391795A (zh) * 2014-12-03 2015-03-04 北京京东尚科信息技术有限公司 一种分布式系统中自动化测试覆盖率的测试方法及系统
CN105404585A (zh) * 2015-12-01 2016-03-16 腾讯科技(深圳)有限公司 获取代码覆盖率的方法及装置
CN105573915A (zh) * 2015-12-16 2016-05-11 北京奇虎科技有限公司 一种基于代码覆盖率的测试方法和装置
CN105589805A (zh) * 2015-12-16 2016-05-18 北京奇虎科技有限公司 一种代码覆盖率报告的生成方法和装置
CN105608011A (zh) * 2016-03-01 2016-05-25 网易(杭州)网络有限公司 代码测试覆盖率统计结果的确定方法及装置
US20160162392A1 (en) * 2014-12-09 2016-06-09 Ziheng Hu Adaptive Framework Automatically Prioritizing Software Test Cases

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246602A (zh) * 2012-02-14 2013-08-14 阿里巴巴集团控股有限公司 代码覆盖率确定方法及系统、代码覆盖检测方法及系统
US20140068564A1 (en) * 2012-09-04 2014-03-06 Opshub, Inc. System and method for merging results from multiple runs based on run inputs
CN104375932A (zh) * 2014-08-27 2015-02-25 北京中电华大电子设计有限责任公司 一种Java卡代码覆盖率分析方法和装置
CN104391795A (zh) * 2014-12-03 2015-03-04 北京京东尚科信息技术有限公司 一种分布式系统中自动化测试覆盖率的测试方法及系统
US20160162392A1 (en) * 2014-12-09 2016-06-09 Ziheng Hu Adaptive Framework Automatically Prioritizing Software Test Cases
CN105404585A (zh) * 2015-12-01 2016-03-16 腾讯科技(深圳)有限公司 获取代码覆盖率的方法及装置
CN105573915A (zh) * 2015-12-16 2016-05-11 北京奇虎科技有限公司 一种基于代码覆盖率的测试方法和装置
CN105589805A (zh) * 2015-12-16 2016-05-18 北京奇虎科技有限公司 一种代码覆盖率报告的生成方法和装置
CN105608011A (zh) * 2016-03-01 2016-05-25 网易(杭州)网络有限公司 代码测试覆盖率统计结果的确定方法及装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11093374B2 (en) 2016-08-09 2021-08-17 SeaLights Technologies LTD System and method for continuous testing and delivery of software
US11775416B2 (en) 2016-08-09 2023-10-03 SeaLights Technologies LTD System and method for continuous testing and delivery of software
US10725894B2 (en) 2017-10-04 2020-07-28 International Business Machines Corporation Measuring and improving test coverage
US10725895B2 (en) 2017-10-04 2020-07-28 International Business Machines Corporation Measuring and improving test coverage
CN108563580A (zh) * 2017-12-27 2018-09-21 贵阳忆芯科技有限公司 介质接口控制器微码执行路径提取方法
CN108563580B (zh) * 2017-12-27 2024-02-23 贵阳忆芯科技有限公司 介质接口控制器微码执行路径提取方法
TWI733017B (zh) * 2018-04-03 2021-07-11 中華電信股份有限公司 電腦裝置及其測試推算方法
US11086759B2 (en) 2018-09-27 2021-08-10 SeaLights Technologies LTD System and method for probe injection for code coverage
US11847041B2 (en) 2018-09-27 2023-12-19 Sealights Technologies Ltd. System and method for probe injection for code coverage
CN109359054A (zh) * 2018-12-18 2019-02-19 浙江诺诺网络科技有限公司 生成覆盖率统计报告的方法、装置、设备及存储介质
CN110309055A (zh) * 2019-05-23 2019-10-08 深圳壹账通智能科技有限公司 基于Java虚拟机的黑盒测试方法、装置、终端及存储介质
US11573885B1 (en) 2019-09-26 2023-02-07 SeaLights Technologies LTD System and method for test selection according to test impact analytics
CN111124910A (zh) * 2019-12-20 2020-05-08 北京达佳互联信息技术有限公司 确定测试代码执行数据的方法、装置、设备及存储介质
CN111290943A (zh) * 2020-01-13 2020-06-16 北京三快在线科技有限公司 代码覆盖率处理方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN106326118B (zh) 2019-03-15

Similar Documents

Publication Publication Date Title
CN106326118A (zh) 代码测试覆盖率确定方法和装置
US8954926B2 (en) Code coverage detection with scriptable language unmodified source
CN103036730B (zh) 一种对协议实现进行安全测试的方法及装置
KR20060045568A (ko) 프로그램 계측 동안의 프로브 최적화 방법 및 시스템
CN103294594B (zh) 一种基于测试的静态分析误报消除方法
Smith et al. Genetic algorithm based software testing
JP6469730B2 (ja) ソフトウェア検査装置
JP2008191963A (ja) ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム
US9389984B2 (en) Directing verification towards bug-prone portions
CN110196801B (zh) 一种基于代码覆盖率的测试方法及装置
CN106919431B (zh) 持续集成中的代码比对方法、设备以及系统
CN106844219B (zh) 应用检测方法及应用检测装置
CN103365772B (zh) 软件测试自动评价装置以及方法
CN108614692A (zh) 模板编辑方法、装置、服务器和介质
CN103914377B (zh) 接口测试方法及装置
CN103559127A (zh) 一种缺陷处理方法及缺陷处理器
CN115617640A (zh) 一种软件测试方法、装置、电子设备及存储介质
JP3214356B2 (ja) テスト支援装置
JP5209583B2 (ja) ルックアップテーブルのための自動テストデータ発生方法およびシステム
El-Fakih et al. On code coverage of extended FSM based test suites: An initial assessment
US8639490B2 (en) Concretization of abstracted traces
JP2021068097A (ja) 脆弱性分析装置
KR101674787B1 (ko) 프로그램의 성능 측정 시스템 및 방법
CN110532174B (zh) 计算增量代码覆盖率的方法、装置、计算机设备及存储介质
CN103927258B (zh) 一种基于状态分区的静态缺陷检测求精方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant