CN111061639A - 一种高效多系统测试代码覆盖率的管理方法 - Google Patents

一种高效多系统测试代码覆盖率的管理方法 Download PDF

Info

Publication number
CN111061639A
CN111061639A CN201911311871.4A CN201911311871A CN111061639A CN 111061639 A CN111061639 A CN 111061639A CN 201911311871 A CN201911311871 A CN 201911311871A CN 111061639 A CN111061639 A CN 111061639A
Authority
CN
China
Prior art keywords
code coverage
data
code
database
coverage rate
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
CN201911311871.4A
Other languages
English (en)
Other versions
CN111061639B (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.)
CITIC Aibank Corp Ltd
Original Assignee
CITIC Aibank Corp 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 CITIC Aibank Corp Ltd filed Critical CITIC Aibank Corp Ltd
Priority to CN201911311871.4A priority Critical patent/CN111061639B/zh
Publication of CN111061639A publication Critical patent/CN111061639A/zh
Application granted granted Critical
Publication of CN111061639B publication Critical patent/CN111061639B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开了一种高效多系统测试代码覆盖率的管理方法,包括:对待测试软件系统的基本信息进行解析记录,抽取出项目参数;调用对外提供服务的触发装置,将项目参数传入触发装置进行异步获取测试代码覆盖率数据;获取测试代码覆盖率数据时,包括如下步骤:触发装置通过读取配置文件来判断传入的项目参数是否存在于不执行的项目列表中;如果不存在,向数据库查询当前是否存在正在执行的数据,如果存在,将数据压入到列表中等待触发执行;下载代码并进行pom文件检查;完成pom文件检查后,启动编译程序,生成代码覆盖率报告文件;解析代码覆盖率报告文件形成代码覆盖率数据。该方法可以针对大规模、分布式系统测试代码覆盖率数据可以集中存储管理。

Description

一种高效多系统测试代码覆盖率的管理方法
技术领域
本发明涉及计算机信息处理技术领域,特别是涉及一种高效多系统测试代码覆盖率的管理方法。
背景技术
软件测试过程中,通常会运用多种测试手段,比如:单元测试、功能测试、自动化测试等,为更好的解决测试充分性,引入代码覆盖率来监控被测软件的代码覆盖度,满足现有测试的需求。对于常见编程语言java、C++、python、javascript等,都有相应的代码覆盖率的检测方法。
但是,针对大规模、多系统、频繁发布软件的情况,使用插件的方式无法满足目前有效管理代码覆盖率数据的需求。针对不同的测试手段(功能、单元测试、自动化测试等),获取到的代码覆盖率数据无法有效的区分,存在关注面太窄等问题。而且现有方案,效率低,占用整体的版本流程,不灵活。
发明内容
本发明的目的在于提供一种高效多系统测试代码覆盖率的管理方法,采取异步调用方式,只需通过触发装置触发,即可获取测试代码覆盖率数据,针对大规模、分布式系统测试代码覆盖率数据可以集中存储管理。
为实现上述目的,本发明提供了一种高效多系统测试代码覆盖率的管理方法,包括:对待测试软件系统的基本信息进行解析记录,抽取出项目参数;
调用对外提供服务的触发装置,将所述项目参数传入所述触发装置进行异步获取测试代码覆盖率数据;
获取测试代码覆盖率数据时,包括如下步骤:
所述触发装置通过读取配置文件来判断传入的项目参数是否存在于不执行的项目列表中,如果存在,程序直接退出;如果不存在,向数据库查询当前是否存在正在执行的数据,如果存在,将数据压入到列表中等待触发执行;
下载代码并进行pom文件检查;
完成pom文件检查后,启动编译程序,生成代码覆盖率报告文件;
解析代码覆盖率报告文件形成代码覆盖率数据。
可选的或优选的,通过外部查看装置调用存储好的码覆盖率数据进行查看并展示。
可选的或优选的,在判断传入的项目参数是否存在于不执行的项目列表中的过程中,通过读取配置文件,还判断项目参数是否为绿灯项目,如果不是绿灯项目,增加如下步骤:查找该绿灯项目的名称与代码分支,检测上次执行的时间是否在配置的时间内,如果存在于配置时间内,程序结束。
可选的或优选的,如果查询当前不存在正在执行的数据时,将数据直接插入到数据库并压入到执行的列表中开始执行。
可选的或优选的,下载代码时,通过系统名称,使用git命令根据相应的代码分支、提交的版本号对代码进行下载,如果下载代码失败或下载代码超时,更新数据库。
可选的或优选的,更新完成数据库之后,会触发循环遍历数组,如果数组为空则执行结束。
可选的或优选的,pom文件检查时,如果pom.xml文件不存在,则会更新数据库,更新完成数据库之后,会触发循环遍历数组,如果数组为空则执行结束。
可选的或优选的,如果pom.xml文件存在,查看是否存在jacoco插件,如果存在jacoco插件则将其删除掉之后替换预先设置的jacoco插件,如果不存在jacoco插件会直接插入到pom.xml文件中。
可选的或优选的,如果编译失败或编译超时,会更新数据库,更新完成数据库之后,触发循环遍历数组,如果数组为空则执行结束。
可选的或优选的,如果存在多个模块,按照多个模块的代码覆盖率报告文件进行解析,解析完成后,将代码覆盖率数据按照模块名的方式更新到数据库中。
本发明提供的技术方案带来的有益效果是:
1.针对大规模、分布式系统测试代码覆盖率数据集中存储管理。
2.采取异步调用方式,只需通过触发装置触发,即可获取测试代码覆盖率数据。
3.同一个代码分支下,单元测试用例数量短时间内波动不大,可以配置n(n为整数)天内不获取单元测试覆盖率数据。可以设置绿灯项目(不受时间限制,随时调用执行)、跳过项目(项目调用时,不执行),获取数据更灵活可控。
附图说明
图1是本发明实施例提供的高效多系统测试代码覆盖率的管理方法中项目部署实施图;
图2是本发明实施例提供的高效多系统测试代码覆盖率的管理方法中触发调用规则判断图;
图3是本发明实施例提供的高效多系统测试代码覆盖率的管理方法中并发接收参数压入队列待执行图;
图4是本发明实施例提供的高效多系统测试代码覆盖率的管理方法中调用执行获取数据过程图;
图5是本发明实施例提供的高效多系统测试代码覆盖率的管理方法中功能测试触发执行图;
图6是本发明实施例提供的高效多系统测试代码覆盖率的管理方法中执行解析获取数据过程图;
图7是本发明实施例提供的高效多系统测试代码覆盖率的管理方法的架构图;
图8是本发明实施例提供的高效多系统测试代码覆盖率的管理方法的查看功能测试数据结果图;
图9是本发明实施例提供的高效多系统测试代码覆盖率的管理方法的查看单元测试数据结果图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。显然,所描述的实施例实际上仅仅是说明性的或者示例性的,决不作为对本发明及其应用或使用的任何限制。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的全部细节均已了解的情况下实施。下面对实施例的描述仅仅是为了通过展示本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
名词解释:
Java:一种功能强大和简单易用,静态的面向对象编程语言。
单元测试:针对java项目来说,单元测试可以有效的检测核心代码逻辑正确性的问题,避免项目版本发布上线后,产生逻辑错误,造成严重的经济损失。
Maven:一种java项目的管理工具。Java项目将所需要的依赖包,插件等信息,放到pom.xml文件中,通过Maven的相关命令解决项目的第三方依赖jar包的问题。
Pom:是Project Object Model的缩写,作为项目对象模型。通过xml表示Maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。
Jacoco:是Java Code Coverage的缩写,是一种获取java代码覆盖率的开源工具。可以生成单元测试、功能测试、接口测试、自动化测试等多种测试的代码覆盖率报告。其数据结果包括:指令、分支、圈复杂度、行、方法、类。
代码覆盖率:对于单元测试、接口测试、功能测试、自动化测试等测试类型,通过代码的覆盖率,检查测试对代码的有效覆盖度。可以通过代码覆盖率未覆盖的代码部分反推测试用例设计;也可以检测出废弃代码,理清开发人员的代码逻辑;代码覆盖率高不能说明软件质量好,但代码覆盖率低,软件质量肯定不高。
Jacocoagent:可以作为第三方的依赖、插件放到pom.xml文件中,解决Maven编译时获取单元测试代码覆盖率的问题;也可以通过jar包配置到TOMCAT服务进程中,来获取TOMCAT服务器中的代码覆盖率数据。
Jenkins:是一种开源免费的持续集成平台,基于java语言编写,可以很好的处理并发操作。对软件的持续集成、持续部署、持续发布提供了的操作平台。可以通过配置钩子监控git代码库,如果代码有改动,会立即触发Jenkins进行编译打包构建任务。通常会部署在Linux系统上。
GIT:是一个开放源码的的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git有很好的版本分支控制,版本号管理等诸多优点,应用于大多数互联网公司的实际项目管理。
curl:是一个利用URL语法在命令行下工作的文件传输工具。Linux系统内置了此命令。
本实施例提供一种高效多系统测试代码覆盖率的管理方法,覆盖了多种测试手段,通过触发装置,异步高效获取代码覆盖率信息,不占用任何执行流程。可以有效的覆盖大规模、分布式系统。具体地,包括如下步骤:
对待测试软件系统的基本信息进行解析记录,抽取出项目参数。
调用对外提供服务的触发装置,将所述项目参数传入所述触发装置进行异步获取测试代码覆盖率数据。
获取测试代码覆盖率数据时,包括如下步骤:
所述触发装置通过读取配置文件来判断传入的项目参数是否存在于不执行的项目列表中,如果存在,程序直接退出;如果不存在,向数据库查询当前是否存在正在执行的数据,如果存在,将数据压入到列表中等待触发执行。
下载代码并进行pom文件检查。
完成pom文件检查后,启动编译程序,生成代码覆盖率报告文件。
解析代码覆盖率报告文件形成代码覆盖率数据。
为了详细的说明本方案,本发明提供如下两种优选的实施例。说明的是,本方案涉及到但不限于自动发布流程工具,如:Jenkins工具。
实施例1
如图1所示,本实施例提供一种高效多系统测试代码覆盖率的管理方法,包括如下步骤:
步骤1:开发人员向GIT代码仓库提交代码,触发Jenkins构建任务。对于大规模的商业软件,会有很多的软件系统,每个软件系统可能存在多个模块,通常都是在并行进行开发。
步骤2:触发Jenkins构建任务时,将每个软件系统的基本信息进行解析记录。比如:项目的名称、代码分支、代码提交的版本号等等。
步骤3:通过步骤2中记录的信息,使用curl命令,调用获取单元测试代码覆盖率对外提供的服务触发装置。
步骤4:步骤S201通过Jenkins构建任务时收取参数并将参数传入触发装置,由于是异步操作,触发后,Jenkins继续执行其他任务(参见图2)。
步骤5:步骤S202触发装置读取配置文件,进行判断,传入的项目参数,是否在不执行的项目列表中,如果存在步骤S203不执行的项目列表,程序直接退出(参见图2)。
步骤6:配置文件不执行项目列表中,步骤S204不存在此项目,流程继续执行,通过读取配置文件,判断项目是否为绿灯项目,如果是绿灯项目步骤S205,将不会进行步骤7的判断,会直接执行步骤8(参见图2)。
步骤7:项目不是绿灯项目步骤S206,根据查询数据库步骤S207,查找该项目的名称与代码分支,检测上次执行的时间是否在配置的时间内,如果存在于配置时间内步骤S208,程序结束,如果不在配置时间内或首次调用步骤S209,那么流程继续执行步骤S210(参见图2)。
步骤8:步骤S210流程继续执行时,会向数据库查询S301,当前是否存在正在执行的数据,如果存在STATUS=1的数据步骤S302,那么会进入多线程并发操作流程步骤S303,将数据插入到数据库中步骤S304,插入状态为STATUS=0。同时,将数据压入到列表中步骤S305,等待触发执行(参见图3)。
步骤9:通过步骤S201,查询数据库步骤S401,数据库中不存在STATUS=1的数据步骤S402,那么,直接插入到数据库中步骤S403,并且插入状态STATUS=1,并压入到执行的列表中步骤S404,开始执行(参见图4)。
步骤10:执行开始会在传入的参数中,通过系统名称,使用git命令根据相应的代码分支、提交的版本号对代码进行下载步骤S405,如果步骤S406下载代码失败,会更新数据库,状态STATUS=4,如果下载代码超时更新数据库状态STATUS=5,更新完成数据库之后,会触发循环遍历数组步骤S407,如果数组为空步骤S408则执行结束,如果数组不为空则从步骤10继续执行。如果下载代码成功则进行下一步步骤S409(参见图4)。
步骤11:执行完下载代码后,会检查pom.xml文件步骤S409。如果pom.xml文件不存在步骤S410,则会更新数据库,状态STATUS=6,更新完成数据库之后,会触发循环遍历数组步骤S407,如果数组为空步骤S408则执行结束,如果数组不为空则从步骤10继续执行。如果pom.xml文件存在,查看是否存在jacoco插件,如果存在jacoco插件,会删除掉之后替换预先设置的jacoco插件,如果不存在jacoco插件会直接插入到pom.xml文件中步骤S411,然后执行下一步(参见图4)。
步骤12:完成pom文件的检查后步骤S411,会启动编译处理。步骤S412如果编译失败,会更新数据库,状态为STATUS=7,如果编译超时,更新数据库,状态STATUS=8,更新完成数据库之后,会触发循环遍历数组步骤S407,如果数组为空步骤S408则执行结束,如果数组不为空则从步骤10继续执行。如果编译成功,则进行下一步步骤S413。
步骤13:编译成功后步骤S413,会自动检查是否生成了代码覆盖率报告文件,步骤S415如果没有生成代码覆盖率报告,则更新数据库,状态STATUS=9,更新数据库,状态STATUS=8,更新完成数据库之后,会触发循环遍历数组步骤S407,如果数组为空步骤S408则执行结束,如果数组不为空则从步骤10继续执行。如果生成了代码覆盖率报告,则进行下一步步骤S416。
步骤14:通过了以上的执行操作,会将代码覆盖率生成的报告进行解析步骤S417,如果此系统存在多个模块,那么解析会按照多个模块的代码覆盖率报告进行解析处理,解析完成后,将数据按照模块名的方式更新到数据库中,此时的状态STATUS=2,更新完成数据库之后,会触发循环遍历数组步骤S407,如果数组为空步骤S408则执行结束,如果数组不为空则从步骤10继续执行。
步骤15:显示出近几次的执行结果的同时,还显示了执行的单元测试用例信息,以及代码覆盖率解析的六个指标数据,参见图9,图9是单元测试的结果图。
实施例2
参考图1,实施例2为功能测试或者自动化测试获取代码覆盖率的实施方式,其中功能测试和自动化测试的实现流程一致,只是在调用触发的时候,存在时间上的差异,所以,将两个流程合并为一个。
步骤1:实际部署流程。
步骤2:在部署软件之前需要触发触发器,进行实际的调用,由于是异步方式实现,所以Jenkins可以自行处理其他事务,不占用Jenkins资源。
步骤3:如图5步骤S501,通过触发装置接收到的参数,首先检测服务端TOMCAT进程是否存在,不过不存在执行步骤S502,程序执行替换端口。
步骤4:执行到步骤S503,检测是否存在jacocoagent进程,如不存在执行步骤S504,执行端口替换。
步骤5:如果存在jacocoagent进程,执行步骤S505,检测是否存在端口号,用来执行获取代码覆盖率。
步骤6:如果不存在端口号,执行步骤S506,进行端口替换。
步骤7:如果存在执行步骤S507,收取编译后的class文件,及dump文件,进行打包回传。
步骤8:通过传导装置,传输文件到中转服务执行步骤S509。
步骤9:如图6所示,步骤S509将传输过来的文件,进行步骤S601解压。
步骤10:解压成功后,执行步骤S602下载源代码。
步骤11:如果下载源码失败,或者超时,执行S603程序结束。
步骤12:如果下载源码成功,则进行解析数据步骤S604。
步骤13:如果解析数据超时或失败执行步骤S605,程序结束。
步骤14:解析数据成功执行步骤S606,将数据存储到存储装置中。
步骤15:程序执行结束S607。
步骤16:如图8所示功能测试的结果图,展示的结果中还有上一次执行的对比结果,以及代码覆盖率解析的六个指标数据。
进一步需要说明的是:本发明通过触发器触发相应的接口,调动程序,整体架构如图7所示。触发装置实际是计算机程序,即提供的外部调用接口,通过此接口将外部传递信息,进行接入。由于程序是通过异步流程,不占用现有的发布流程,达到高效执行的目的。程序在接收到触发装置触发时,会自动处理相关的信息,以java为例,自动检测pom文件中是否存在相关插件jacoco。
程序被触发后,有一些测试手段,如:单元测试,需要进行编译处理。比如:java、C++等语言编写的软件项目。有一些测试手段则不需要进行编译处理,如功能测试、自动化测试等。
传导装置实际为计算机相关协议,通过协议的定义后,将参数进行传导。
存储装置,将数据信息进行本地存储,存储装置实际为计算机的程序,也是主要逻辑处理单元,此单元将传导装置的传入参数进行解析,重新组合成程序识别数据,然后通过实际的操作步骤,对整体流程进行实际控制。
外部通过查看装置调用存储好的数据进行查看,数据结果的展示会更直观,查看装置实际为计算机程序,是可视化所需的实际图形,外部要查看具体的数据信息,可以通过查看装置,调用的传导装置进行查看。
通过以上的实施,具体的触发装置触发,在自动处理完成数据时,会通过传导装置调用内部的存储装置,进行数据存储。全流程无手工介入,完全实现自动化触发,自动化解析,自动化展示的效果,大大降低了人为的外部影响。
总之,本发明可以覆盖多种测试手段,包括:单元测试、功能测试、自动化测试等。通过触发装置,异步高效获取代码覆盖率信息,不占用任何执行流程。可以有效的覆盖大规模、分布式系统。不限于自动发布流程工具,如:Jenkins工具。实现了高效的多系统测试代码覆盖率数据的管理。同时在单元测试上,采用异步调用,为了减轻并发编译给服务器带来的压力,本发明采用列表的方式,按照先进先出的原则顺序执行了所有的单元测试覆盖率数据。本发明在执行功能测试和自动化测试上,也进行异步调用,可以同时进行多系统,大批量的并发操作。
本发明接收任何外部触发装置的触发请求,通过异步/多线程的方式将触发请求传输过来的参数进行解析,从而实现高效处理多系统请求的能力,且不占用主流程的执行时间,接收到参数后,程序通过参数类型处理后,将获取到的代码覆盖率数据存储到数据库中,外部可以通过查看装置对已经存储的数据,进行查看,还可以通过条件查询,按照条件查看数据结果,达到区分多测试类型、多系统结果展示的功能。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利发明说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
以上所述仅为本发明的示例实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种高效多系统测试代码覆盖率的管理方法,其特征在于,包括:
对待测试软件系统的基本信息进行解析记录,抽取出项目参数;
调用对外提供服务的触发装置,将所述项目参数传入所述触发装置进行异步获取测试代码覆盖率数据;
获取测试代码覆盖率数据时,包括如下步骤:
所述触发装置通过读取配置文件来判断传入的项目参数是否存在于不执行的项目列表中,如果存在,程序直接退出;如果不存在,向数据库查询当前是否存在正在执行的数据,如果存在,将数据压入到列表中等待触发执行;
下载代码并进行pom文件检查;
完成pom文件检查后,启动编译程序,生成代码覆盖率报告文件;
解析代码覆盖率报告文件形成代码覆盖率数据。
2.根据权利要求1所述的高效多系统测试代码覆盖率的管理方法,其特征在于,通过外部查看装置调用存储好的码覆盖率数据进行查看并展示。
3.根据权利要求1所述的高效多系统测试代码覆盖率的管理方法,其特征在于,在判断传入的项目参数是否存在于不执行的项目列表中的过程中,通过读取配置文件,还判断项目参数是否为绿灯项目,如果不是绿灯项目,增加如下步骤:查找该绿灯项目的名称与代码分支,检测上次执行的时间是否在配置的时间内,如果存在于配置时间内,程序结束。
4.根据权利要求1所述的高效多系统测试代码覆盖率的管理方法,其特征在于,如果查询当前不存在正在执行的数据时,将数据直接插入到数据库并压入到执行的列表中开始执行。
5.根据权利要求1所述的高效多系统测试代码覆盖率的管理方法,其特征在于,下载代码时,通过系统名称,使用git命令根据相应的代码分支、提交的版本号对代码进行下载,如果下载代码失败或下载代码超时,更新数据库。
6.根据权利要求5所述的高效多系统测试代码覆盖率的管理方法,其特征在于,更新完成数据库之后,会触发循环遍历数组,如果数组为空则执行结束。
7.根据权利要求1所述的高效多系统测试代码覆盖率的管理方法,其特征在于,pom文件检查时,如果pom.xml文件不存在,则会更新数据库,更新完成数据库之后,会触发循环遍历数组,如果数组为空则执行结束。
8.根据权利要求7所述的高效多系统测试代码覆盖率的管理方法,其特征在于,如果pom.xml文件存在,查看是否存在jacoco插件,如果存在jacoco插件则将其删除掉之后替换预先设置的jacoco插件,如果不存在jacoco插件会直接插入到pom.xml文件中。
9.根据权利要求1所述的高效多系统测试代码覆盖率的管理方法,其特征在于,如果编译失败或编译超时,会更新数据库,更新完成数据库之后,触发循环遍历数组,如果数组为空则执行结束。
10.根据权利要求1所述的高效多系统测试代码覆盖率的管理方法,其特征在于,如果存在多个模块,按照多个模块的代码覆盖率报告文件进行解析,解析完成后,将代码覆盖率数据按照模块名的方式更新到数据库中。
CN201911311871.4A 2019-12-18 2019-12-18 一种高效多系统测试代码覆盖率的管理方法 Active CN111061639B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911311871.4A CN111061639B (zh) 2019-12-18 2019-12-18 一种高效多系统测试代码覆盖率的管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911311871.4A CN111061639B (zh) 2019-12-18 2019-12-18 一种高效多系统测试代码覆盖率的管理方法

Publications (2)

Publication Number Publication Date
CN111061639A true CN111061639A (zh) 2020-04-24
CN111061639B CN111061639B (zh) 2023-03-24

Family

ID=70301045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911311871.4A Active CN111061639B (zh) 2019-12-18 2019-12-18 一种高效多系统测试代码覆盖率的管理方法

Country Status (1)

Country Link
CN (1) CN111061639B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813382A (zh) * 2020-06-23 2020-10-23 四川虹美智能科技有限公司 无形资产管理系统及方法
CN111880838A (zh) * 2020-08-03 2020-11-03 北京神舟航天软件技术有限公司 一种基于模板匹配技术的数据解析方法
CN112463581A (zh) * 2020-08-18 2021-03-09 清华大学 一种对分布式系统进行模糊测试的方法及系统
CN112540913A (zh) * 2020-11-27 2021-03-23 山东云海国创云计算装备产业创新中心有限公司 一种代码覆盖率确定的方法、系统、设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6536036B1 (en) * 1998-08-20 2003-03-18 International Business Machines Corporation Method and apparatus for managing code test coverage data
US20130298110A1 (en) * 2012-05-02 2013-11-07 International Business Machines Corporation Software Visualization Using Code Coverage Information
CN104391795A (zh) * 2014-12-03 2015-03-04 北京京东尚科信息技术有限公司 一种分布式系统中自动化测试覆盖率的测试方法及系统
US20170083430A1 (en) * 2015-09-22 2017-03-23 Red Hat Israel, Ltd. Code coverage plugin
CN109359027A (zh) * 2018-08-15 2019-02-19 中国平安人寿保险股份有限公司 Monkey测试方法、装置、电子设备及计算机可读存储介质
CN109684226A (zh) * 2018-12-29 2019-04-26 携程计算机技术(上海)有限公司 Java代码覆盖率统计系统
CN109992511A (zh) * 2019-03-25 2019-07-09 口碑(上海)信息技术有限公司 获取代码测试覆盖率的装置及方法
CN110188048A (zh) * 2019-06-05 2019-08-30 北京科摩仕捷科技有限公司 一种实现精准监控代码覆盖率的方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6536036B1 (en) * 1998-08-20 2003-03-18 International Business Machines Corporation Method and apparatus for managing code test coverage data
US20130298110A1 (en) * 2012-05-02 2013-11-07 International Business Machines Corporation Software Visualization Using Code Coverage Information
CN104391795A (zh) * 2014-12-03 2015-03-04 北京京东尚科信息技术有限公司 一种分布式系统中自动化测试覆盖率的测试方法及系统
US20170083430A1 (en) * 2015-09-22 2017-03-23 Red Hat Israel, Ltd. Code coverage plugin
CN109359027A (zh) * 2018-08-15 2019-02-19 中国平安人寿保险股份有限公司 Monkey测试方法、装置、电子设备及计算机可读存储介质
CN109684226A (zh) * 2018-12-29 2019-04-26 携程计算机技术(上海)有限公司 Java代码覆盖率统计系统
CN109992511A (zh) * 2019-03-25 2019-07-09 口碑(上海)信息技术有限公司 获取代码测试覆盖率的装置及方法
CN110188048A (zh) * 2019-06-05 2019-08-30 北京科摩仕捷科技有限公司 一种实现精准监控代码覆盖率的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YIBIAO YANG: "Hunting for Bugs in Code Coverage Tools via Randomized Differential Testing", 《2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE)》 *
你认识小汐吗: "Jacoco代码覆盖率报告详解", 《CSDN HTTPS://BLOG.CSDN.NET/SAYOKO06/ARTICLE/DETAILS/99312875》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813382A (zh) * 2020-06-23 2020-10-23 四川虹美智能科技有限公司 无形资产管理系统及方法
CN111880838A (zh) * 2020-08-03 2020-11-03 北京神舟航天软件技术有限公司 一种基于模板匹配技术的数据解析方法
CN111880838B (zh) * 2020-08-03 2024-04-12 北京神舟航天软件技术有限公司 一种基于模板匹配技术的数据解析方法
CN112463581A (zh) * 2020-08-18 2021-03-09 清华大学 一种对分布式系统进行模糊测试的方法及系统
CN112540913A (zh) * 2020-11-27 2021-03-23 山东云海国创云计算装备产业创新中心有限公司 一种代码覆盖率确定的方法、系统、设备及可读存储介质
CN112540913B (zh) * 2020-11-27 2024-02-09 山东云海国创云计算装备产业创新中心有限公司 一种代码覆盖率确定的方法、系统、设备及可读存储介质

Also Published As

Publication number Publication date
CN111061639B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
CN111061639B (zh) 一种高效多系统测试代码覆盖率的管理方法
CN108399132B (zh) 一种调度测试方法、装置及存储介质
CN108073400A (zh) 软件自动化构建方法、服务器及存储介质
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
CN102279790B (zh) 分布式调试方法和系统
CN110134400A (zh) 数据获取方法、装置、电子设备及计算机可读存储介质
US20110016452A1 (en) Method and system for identifying regression test cases for a software
Candido et al. Test suite parallelization in open-source projects: A study on its usage and impact
US7194386B1 (en) Automated collection of information
US20080120601A1 (en) Information processing apparatus, method and program for deciding priority of test case to be carried out in regression test background of the invention
CN110457211B (zh) 脚本性能测试方法、装置和设备及计算机存储介质
KR101106595B1 (ko) 소프트웨어 테스트의 자동화 장치 및 그 방법
CN108595952A (zh) 一种电力移动应用软件漏洞的检测方法及系统
CN111158741B (zh) 监控业务模块对第三方类库依赖关系变化的方法及装置
CN106529304B (zh) 一种安卓应用并发漏洞检测系统
JP2003091432A (ja) ソフトウェア評価システム、ソフトウェア評価ツール
US20030088810A1 (en) Methods and apparatus for determining software component sizes associated with errors
CN112559348B (zh) 基于jacoco的测试分析方法、系统、设备以及介质
CN112099880B (zh) 场景驱动的应用程序约减方法和系统
CN107656849B (zh) 一种软件系统性能问题定位方法以及装置
CN111258562B (zh) Java代码质量检查方法、装置、设备和存储介质
WO2016190869A1 (en) Determining potential test actions
CN112069066A (zh) 代码覆盖率统计方法、装置、设备及计算机可读存储介质
US10496524B2 (en) Separating test coverage in software processes using shared memory
CN113127367B (zh) Android动态权限申请的缺陷检测方法

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