CN116627812A - 代码覆盖分析方法、装置、计算机设备和可读存储介质 - Google Patents
代码覆盖分析方法、装置、计算机设备和可读存储介质 Download PDFInfo
- Publication number
- CN116627812A CN116627812A CN202310579303.2A CN202310579303A CN116627812A CN 116627812 A CN116627812 A CN 116627812A CN 202310579303 A CN202310579303 A CN 202310579303A CN 116627812 A CN116627812 A CN 116627812A
- Authority
- CN
- China
- Prior art keywords
- case
- platform
- code coverage
- code
- target case
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012360 testing method Methods 0.000 abstract description 24
- 238000011161 development Methods 0.000 abstract description 10
- 230000001960 triggered effect Effects 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000003997 social interaction Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test 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
本申请提供了一种代码覆盖分析方法、装置、计算机设备和可读存储介质,涉及计算机及金融科技领域。该方法包括:从jacoco平台获取系统业务的代码覆盖数据;根据所述代码覆盖数据确定所述系统业务的未覆盖代码,并分析所述未覆盖代码的案例执行接口;获取与所述案例执行接口匹配的目标案例信息,并发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例。本申请,通过对jacoco平台的代码覆盖数据进行智能分析,确定未覆盖代码案例执行的入口,自动触发对应的测试案例,解决了开发人员花费大量人力和精力对系统业务的每个版本进行测试覆盖分析的问题,节约了开发和测试人力成本,降低了代码未覆盖风险,提高了线上系统的质量。
Description
技术领域
本申请涉及计算机及金融科技领域,尤其是涉及到一种代码覆盖分析方法、代码覆盖分析装置、计算机设备和可读存储介质。
背景技术
目前,随着保险系统、银行系统、交易系统、订单系统等金融业务系统的不断发展,金融业务系统的业务不断迭代发布,开发人员和测试人员需要花大量时间对金融业务系统做相关的代码覆盖分析。例如,对于购买保险业务,在进行购买保险业务的新版本开发时,需要开发人员和测试人员进行大量的代码覆盖分析,在测试成功后,将新版本上线。
虽然,现有的工具jacoco平台可以统计到代码覆盖情况,但是仍然需要开发人员和测试人员手动分析未覆盖代码,然后再执行对应的案例集合。人工检测降低了代码分析的效率,并且如果出现疏忽会严重影响到金融系统线上业务的质量。
发明内容
有鉴于此,本申请提供了一种代码覆盖分析方法、代码覆盖分析装置、计算机设备和可读存储介质,提高了代码分析的效率,以及提升了系统业务线上的质量。
第一方面,本申请实施例提供了一种代码覆盖分析方法,包括:
从jacoco平台获取系统业务的代码覆盖数据;
根据所述代码覆盖数据确定所述系统业务的未覆盖代码,并分析所述未覆盖代码的案例执行接口;
获取与所述案例执行接口匹配的目标案例信息,并发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例。
根据本申请实施例的上述代码覆盖分析方法,还可以具有以下附加技术特征:
在上述技术方案中,可选地,在所述从jacoco平台获取系统业务的代码覆盖数据之前,包括:
获取开发人员设置的系统信息,并根据所述系统信息确定所述系统业务。
在上述任一技术方案中,可选地,所述从jacoco平台获取系统业务的代码覆盖数据,包括:
按照预设周期,从jacoco平台获取系统业务的代码覆盖数据。
在上述任一技术方案中,可选地,所述从jacoco平台获取系统业务的代码覆盖数据,包括:
向jacoco平台发送数据获取请求,所述数据获取请求中携带有所述系统业务的系统信息;
接收来自所述jacoco平台的所述系统业务的代码覆盖数据。
在上述任一技术方案中,可选地,所述目标案例信息包括目标案例标识,所述获取与所述案例执行接口匹配的目标案例信息,包括:
向自动化平台发送案例获取请求,以供所述自动化平台基于所述案例获取请求查找与所述所述未覆盖代码对应的目标案例,所述案例获取请求中携带有所述系统业务的系统信息和所述案例执行接口的信息;
若所述自动化平台存储有所述目标案例,则接收来自所述自动化平台的所述目标案例的目标案例标识。
在上述任一技术方案中,可选地,所述目标案例信息包括目标案例代码数据,所述获取与所述案例执行接口匹配的目标案例信息,还包括:
若所述自动化平台未存储有所述目标案例,则根据所述案例执行接口的信息生成目标案例代码数据。
在上述任一技术方案中,可选地,所述发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例,包括:
向所述自动化平台发送案例执行信号,所述案例执行信号中携带有所述目标案例代码数据,以供所述自动化平台按照所述目标案例代码数据执行目标案例。
第二方面,本申请实施例提供了一种代码覆盖分析装置,包括:
第一获取模块,用于从jacoco平台获取系统业务的代码覆盖数据;
分析模块,用于根据所述代码覆盖数据确定所述系统业务的未覆盖代码,并分析所述未覆盖代码的案例执行接口;
第二获取模块,用于获取与所述案例执行接口匹配的目标案例信息;
发送模块,用于发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例。
根据本申请实施例的上述代码覆盖分析装置,还可以具有以下附加技术特征:
在上述技术方案中,可选地,该装置还包括:
第三获取模块,用于获取开发人员设置的系统信息,并根据所述系统信息确定所述系统业务。
在上述任一技术方案中,可选地,所述第一获取模块,具体用于:
按照预设周期,从jacoco平台获取系统业务的代码覆盖数据。
在上述任一技术方案中,可选地,所述发送模块,还用于向jacoco平台发送数据获取请求,所述数据获取请求中携带有所述系统业务的系统信息;
所述第一获取模块,具体用于接收来自所述jacoco平台的所述系统业务的代码覆盖数据。
在上述任一技术方案中,可选地,所述目标案例信息包括目标案例标识,所述发送模块,还用于向自动化平台发送案例获取请求,以供所述自动化平台基于所述案例获取请求查找与所述所述未覆盖代码对应的目标案例,所述案例获取请求中携带有所述系统业务的系统信息和所述案例执行接口的信息;
所述第二获取模块,具体用于若所述自动化平台存储有所述目标案例,则接收来自所述自动化平台的所述目标案例的目标案例标识。
在上述任一技术方案中,可选地,所述目标案例信息包括目标案例代码数据,该装置还包括:案例生成模块,用于若所述自动化平台未存储有所述目标案例,则根据所述案例执行接口的信息生成目标案例代码数据。
第三方面,本申请实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器存储可在处理器上运行的程序或指令,程序或指令被处理器执行时实现如第一方面的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,该可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如第一方面的方法的步骤。
第五方面,本申请实施例提供了一种芯片,该芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现如第一方面的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面的方法。
在本申请实施例中,jacoco平台提供系统业务的代码覆盖数据,在从jacoco平台获取系统业务的代码覆盖数据后,根据代码覆盖数据分析系统业务的未覆盖代码。具体地,jacoco平台会对未覆盖代码进行标识,因此,可根据该标识确定出未覆盖代码。在确定未覆盖代码后,继续分析未覆盖代码的案例执行接口。该案例执行接口,也即未覆盖代码案例执行的入口,能够根据该入口去自动化平台的案例库里查找未覆盖代码对应的目标案例(也即,未覆盖代码的测试案例)。进一步地,获取与案例执行接口匹配的目标案例信息,并发送携带有目标案例信息的案例执行信号,以控制自动化平台执行目标案例,实现测试。
本申请实施例,通过对jacoco平台的代码覆盖数据进行智能分析,确定未覆盖代码案例执行的入口,自动触发对应的测试案例,解决了开发人员花费大量人力和精力对金融等系统业务的每个版本进行测试覆盖分析的问题,节约了系统业务的开发和测试人力成本,降低了代码未覆盖风险,提高了线上系统业务的质量。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例的代码覆盖分析方法的流程示意图之一;
图2示出了本申请实施例的平台交互示意图;
图3示出了本申请实施例的代码覆盖分析方法的流程示意图之二;
图4示出了本申请实施例的代码覆盖分析方法的流程示意图之三;
图5示出了本申请实施例的代码覆盖分析装置的结构框图;
图6示出了本申请实施例的计算机设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的代码覆盖分析方法、代码覆盖分析装置、计算机设备和可读存储介质进行详细地说明。
本申请实施例提供了一种代码覆盖分析方法,如图1所示,该方法包括:
步骤101,从jacoco平台获取系统业务的代码覆盖数据;
步骤102,根据所述代码覆盖数据确定所述系统业务的未覆盖代码,并分析所述未覆盖代码的案例执行接口;
步骤103,获取与所述案例执行接口匹配的目标案例信息,并发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例。
在该实施例中,jacoco平台提供系统业务的代码覆盖数据,其中,jacoco(javacode coverage)是一个开源的代码覆盖率工具,它针对的开发语言是Java,其使用方法很灵活,jacoco使用插桩的方式来记录覆盖率数据。
在从jacoco平台获取系统业务的代码覆盖数据后,根据代码覆盖数据分析系统业务的未覆盖代码。具体地,jacoco平台会对未覆盖代码进行标识,因此,可根据该标识确定出未覆盖代码。
其中,上述系统业务可以为金融业务系统中的金融业务,可包括购物、社交、互动游戏、资源转移等业务,还可以包括贷款、信用卡申请或者保险、理财产品购买等业务。此外,在一些实施例中,系统业务还可以为医疗业务系统中的医疗业务,可包括预约挂号、病历查询、线上问诊、医保报销等业务。
在确定未覆盖代码后,继续分析未覆盖代码的案例执行接口。该案例执行接口,也即未覆盖代码案例执行的入口,能够根据该入口去自动化平台的案例库里查找未覆盖代码对应的目标案例(也即,未覆盖代码的测试案例)。并且,该入口是暴露给上游系统的,上游系统可通过该入口调用系统业务。
进一步地,获取与案例执行接口匹配的目标案例信息,并发送携带有目标案例信息的案例执行信号,以控制自动化平台执行目标案例,实现测试。
一个实施例中,该代码覆盖分析方法应用于gordon平台,gordon平台即为金融系统业务,金融系统业务包括保险系统、银行系统、交易系统、订单系统等,金融系统的业务可包括购物、社交、互动游戏、资源转移等业务,还可以包括贷款、信用卡申请或者保险、理财产品购买等业务。在进行上述业务的开发时,可应用本申请的代码覆盖分析方法。
如图2所示,gordon平台与jacoco平台、自动化平台通信连接,gordon平台从jacoco平台获取金融业务的代码覆盖数据,并对代码覆盖数据进行智能分析,得到未覆盖代码案例执行的入口,自动触发自动化平台中对应的测试案例。例如,对于购买保险业务,在进行购买保险业务的新版本开发时,从jacoco平台获取系统业务的代码覆盖数据,然后根据代码覆盖数据分析购买保险业务的未覆盖代码,在确定未覆盖代码后,继续分析未覆盖代码的案例执行接口,以及获取与案例执行接口匹配的目标案例信息,并发送携带有目标案例信息的案例执行信号,以控制自动化平台执行目标案例,实现测试,在测试成功后,将新版本上线。
本申请实施例,通过对jacoco平台的代码覆盖数据进行智能分析,确定未覆盖代码案例执行的入口,自动触发对应的测试案例,解决了开发人员花费大量人力和精力对金融等系统业务的每个版本进行测试覆盖分析的问题,节约了系统业务的开发和测试人力成本,降低了代码未覆盖风险,提高了线上系统业务的质量。
在本申请的一个实施例中,上述从jacoco平台获取系统业务的代码覆盖数据,包括:按照预设周期,从jacoco平台获取系统业务的代码覆盖数据。
在该实施例中,设置定时调度功能,按照预设周期,进行代码覆盖分析。具体地,按照预设周期,从jacoco平台获取系统业务的代码覆盖数据,从而自动进行后续分析。
例如,代码覆盖分析可5分钟进行一次,预设周期可以由开发人员根据检测需要来配置。
通过上述方式,按照由开发人员设置的预设周期进行代码覆盖分析,以满足开发人员的分析需求。
在本申请的一个实施例中,上述从jacoco平台获取系统业务的代码覆盖数据,包括:
向jacoco平台发送数据获取请求,所述数据获取请求中携带有所述系统业务的系统信息;
接收来自所述jacoco平台的所述系统业务的代码覆盖数据。
在该实施例中,在需要获取系统业务的代码覆盖数据时,向jacoco平台发送携带有系统业务的系统信息的数据获取请求,jacoco平台接收到该数据获取请求后,基于系统信息确定该系统业务对应的代码覆盖数据,并将代码覆盖数据返回。
需要说明的是,系统业务的系统信息包括系统业务的名称、分支等信息,能够根据系统信息确定具体的系统业务。
通过上述方式,能准确、及时地获取到系统业务的系统信息,从而自动进行后续分析,提高了代码覆盖分析的效率和准确性。
作为对上述实施例的细化和扩展,本发明实施例提供了另一种代码覆盖分析方法,如图3所示,该方法包括:
步骤301,获取开发人员设置的系统信息,并根据所述系统信息确定所述系统业务;
步骤302,从jacoco平台获取系统业务的代码覆盖数据;
步骤303,根据所述代码覆盖数据确定所述系统业务的未覆盖代码,并分析所述未覆盖代码的案例执行接口;
步骤304,获取与所述案例执行接口匹配的目标案例信息,并发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例。
步骤302至步骤304与上述步骤101至步骤103相同或相似,在此不再赘述。
在该实施例中,获取开发人员设置的系统信息,也即预埋系统信息,系统信息包括系统业务的名称、分支等信息,能够根据系统信息确定哪些系统业务需要检测代码覆盖情况,再根据系统信息确定需要进行检测的系统业务,从而对该系统业务进行检测。
例如,若开发团队有10个系统业务需要检测,则统一预埋这10个系统业务的系统信息,且开发人员只需预埋一次,无需每次检测都预埋。
此外,若有新增系统业务,再将新增系统业务的系统信息进行预埋。
通过上述方式,能够根据预埋的系统信息快速地确定哪些系统业务需要检测代码覆盖情况,从而提高检测效率。
作为对上述实施例的细化和扩展,本发明实施例提供了再一种代码覆盖分析方法,如图4所示,该方法包括:
步骤401,从jacoco平台获取系统业务的代码覆盖数据;
步骤402,根据所述代码覆盖数据确定所述系统业务的未覆盖代码,并分析所述未覆盖代码的案例执行接口;
步骤403,向自动化平台发送案例获取请求,以供所述自动化平台基于所述案例获取请求查找与所述所述未覆盖代码对应的目标案例,所述案例获取请求中携带有所述系统业务的系统信息和所述案例执行接口的信息,若自动化平台存储有目标案例,则进入步骤404,若自动化平台未存储有目标案例,则进入步骤406;
步骤404,接收来自所述自动化平台的所述目标案例的目标案例标识;
步骤405,向自动化平台发送携带有目标案例标识的案例执行信号,以控制自动化平台执行与所述目标案例标识对应的目标案例;
步骤406,根据所述案例执行接口的信息生成目标案例代码数据;
步骤407,向自动化平台发送携带有目标案例代码数据的案例执行信号,以控制自动化平台按照所述目标案例代码数据执行目标案例。
在该实施例中,在分析出系统业务的未覆盖代码以及未覆盖代码的案例执行接口后,获取与案例执行接口匹配的目标案例信息。具体有两种方式:
(1)向自动化平台发送携带有系统业务的系统信息和案例执行接口的信息的案例获取请求,使得自动化平台在接收到该案例获取请求后,基于案例执行接口在其案例库中查找未覆盖代码对应的目标案例。
如果自动化平台能够查找到目标案例,则将该目标案例的目标案例标识返回。此情况下,从自动化平台获取的目标案例信息为目标案例标识,在接收到目标案例标识后,向自动化平台发送案例执行信号,以控制自动化平台执行与目标案例标识对应的目标案例。
(2)如果自动化平台未查找到目标案例,则反馈未查找到目标案例的信号。在接收到自动化平台未查找到目标案例的信号后,根据案例执行接口的信息自动生成目标案例代码数据,也即此情况下,自动生成的目标案例信息为目标案例代码数据。再向自动化平台发送携带有目标案例代码数据的案例执行信号,以使自动化平台执行目标案例代码数据(也即,目标案例本身)。
通过上述方式,一方面,在自动化平台存储有目标案例的情况下,直接获取自动化平台的目标案例进行执行,提高系统业务的测试效率;另一方面,在自动化平台未存储有目标案例的情况下,基于案例执行接口自动生成目标案例,从而执行,确保系统业务的测试顺利进行。
作为上述代码覆盖分析方法的具体实现,本申请实施例提供了一种代码覆盖分析装置。如图5所示,该代码覆盖分析装置500包括:第一获取模块501、分析模块502、第二获取模块503以及发送模块504。
其中,第一获取模块501,用于从jacoco平台获取系统业务的代码覆盖数据;
分析模块502,用于根据所述代码覆盖数据确定所述系统业务的未覆盖代码,并分析所述未覆盖代码的案例执行接口;
第二获取模块503,用于获取与所述案例执行接口匹配的目标案例信息;
发送模块504,用于发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例。
在该实施例中,jacoco平台提供系统业务的代码覆盖数据,其中,jacoco(Javacode coverage)是一个开源的代码覆盖率工具,它针对的开发语言是Java,其使用方法很灵活,Jacoco使用插桩的方式来记录覆盖率数据。
在从jacoco平台获取系统业务的代码覆盖数据后,根据代码覆盖数据分析系统业务的未覆盖代码。具体地,jacoco平台会对未覆盖代码进行标识,因此,可根据该标识确定出未覆盖代码。
在确定未覆盖代码后,继续分析未覆盖代码的案例执行接口。该案例执行接口,也即未覆盖代码案例执行的入口,能够根据该入口去自动化平台的案例库里查找未覆盖代码对应的目标案例(也即,未覆盖代码的测试案例)。并且,该入口是暴露给上游系统的,上游系统可通过该入口调用系统业务。
进一步地,获取与案例执行接口匹配的目标案例信息,并发送携带有目标案例信息的案例执行信号,以控制自动化平台执行目标案例,实现测试。
一个实施例中,该代码覆盖分析方法应用于gordon平台,gordon平台即为金融系统业务,金融系统业务包括保险系统、银行系统、交易系统、订单系统等,金融系统的业务可包括购物、社交、互动游戏、资源转移等业务,还可以包括贷款、信用卡申请或者保险、理财产品购买等业务。在进行上述业务的开发时,可应用本申请的代码覆盖分析方法。
本申请实施例,通过对jacoco平台的代码覆盖数据进行智能分析,确定未覆盖代码案例执行的入口,自动触发对应的测试案例,解决了开发人员花费大量人力和精力对金融等系统业务的每个版本进行测试覆盖分析的问题,节约了系统业务的开发和测试人力成本,降低了代码未覆盖风险,提高了线上系统业务的质量。
在上述技术方案中,可选地,该装置还包括:
第三获取模块,用于获取开发人员设置的系统信息,并根据所述系统信息确定所述系统业务。
在上述任一技术方案中,可选地,所述第一获取模块501,具体用于:
按照预设周期,从jacoco平台获取系统业务的代码覆盖数据。
在上述任一技术方案中,可选地,所述发送模块504,还用于向jacoco平台发送数据获取请求,所述数据获取请求中携带有所述系统业务的系统信息;
所述第一获取模块501,具体用于接收来自所述jacoco平台的所述系统业务的代码覆盖数据。
在上述任一技术方案中,可选地,所述目标案例信息包括目标案例标识,所述发送模块504,还用于向自动化平台发送案例获取请求,以供所述自动化平台基于所述案例获取请求查找与所述所述未覆盖代码对应的目标案例,所述案例获取请求中携带有所述系统业务的系统信息和所述案例执行接口的信息;
所述第二获取模块503,具体用于若所述自动化平台存储有所述目标案例,则接收来自所述自动化平台的所述目标案例的目标案例标识。
在上述任一技术方案中,可选地,所述目标案例信息包括目标案例代码数据,该装置还包括:案例生成模块,用于若所述自动化平台未存储有所述目标案例,则根据所述案例执行接口的信息生成目标案例代码数据。
本申请实施例中的代码覆盖分析装置500可以是计算机设备,也可以是计算机设备中的部件,例如集成电路或芯片。该计算机设备可以是终端,也可以为除终端之外的其他设备。示例性的,计算机设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载计算机设备、移动上网装置(Mobile Internet Device,MID)、超级移动个人计算机(Ultra-MobilePersonal Computer,UMPC)、上网本或者个人数字助理(Personal Digital Assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(Personal Computer,PC)等,本申请实施例不作具体限定。
本申请实施例中的代码覆盖分析装置500可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的代码覆盖分析装置500能够实现图1的代码覆盖分析方法实施例实现的各个过程,为避免重复,这里不再赘述。
本申请实施例还提供一种计算机设备,如图6所示,该计算机设备600包括处理器601和存储器602,存储器602上存储有可在处理器601上运行的程序或指令,该程序或指令被处理器601执行时实现上述代码覆盖分析方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的计算机设备包括上述的移动计算机设备和非移动计算机设备。
存储器602可用于存储软件程序以及各种数据。存储器602可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器602可以包括易失性存储器或非易失性存储器,或者,存储器602可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器602包括但不限于这些和任意其它适合类型的存储器。
处理器601可包括一个或多个处理单元;可选的,处理器601集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
本申请实施例还提供一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述代码覆盖分析方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述代码覆盖分析方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例还提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述代码覆盖分析方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种代码覆盖分析方法,其特征在于,包括:
从jacoco平台获取系统业务的代码覆盖数据;
根据所述代码覆盖数据确定所述系统业务的未覆盖代码,并分析所述未覆盖代码的案例执行接口;
获取与所述案例执行接口匹配的目标案例信息,并发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例。
2.根据权利要求1所述的方法,其特征在于,在所述从jacoco平台获取系统业务的代码覆盖数据之前,包括:
获取开发人员设置的系统信息,并根据所述系统信息确定所述系统业务。
3.根据权利要求1所述的方法,其特征在于,所述从jacoco平台获取系统业务的代码覆盖数据,包括:
按照预设周期,从jacoco平台获取系统业务的代码覆盖数据。
4.根据权利要求1所述的方法,其特征在于,所述从jacoco平台获取系统业务的代码覆盖数据,包括:
向jacoco平台发送数据获取请求,所述数据获取请求中携带有所述系统业务的系统信息;
接收来自所述jacoco平台的所述系统业务的代码覆盖数据。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述目标案例信息包括目标案例标识,所述获取与所述案例执行接口匹配的目标案例信息,包括:
向自动化平台发送案例获取请求,以供所述自动化平台基于所述案例获取请求查找与所述所述未覆盖代码对应的目标案例,所述案例获取请求中携带有所述系统业务的系统信息和所述案例执行接口的信息;
若所述自动化平台存储有所述目标案例,则接收来自所述自动化平台的所述目标案例的目标案例标识。
6.根据权利要求5所述的方法,其特征在于,所述目标案例信息包括目标案例代码数据,所述获取与所述案例执行接口匹配的目标案例信息,还包括:
若所述自动化平台未存储有所述目标案例,则根据所述案例执行接口的信息生成目标案例代码数据。
7.根据权利要求6所述的方法,其特征在于,所述发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例,包括:
向所述自动化平台发送案例执行信号,所述案例执行信号中携带有所述目标案例代码数据,以供所述自动化平台按照所述目标案例代码数据执行目标案例。
8.一种代码覆盖分析装置,其特征在于,包括:
第一获取模块,用于从jacoco平台获取系统业务的代码覆盖数据;
分析模块,用于根据所述代码覆盖数据确定所述系统业务的未覆盖代码,并分析所述未覆盖代码的案例执行接口;
第二获取模块,用于获取与所述案例执行接口匹配的目标案例信息;
发送模块,用于发送案例执行信号,以控制自动化平台执行与所述目标案例信息对应的目标案例。
9.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至7中任一项所述的代码覆盖分析方法的步骤。
10.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1至7中任一项所述的代码覆盖分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310579303.2A CN116627812A (zh) | 2023-05-22 | 2023-05-22 | 代码覆盖分析方法、装置、计算机设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310579303.2A CN116627812A (zh) | 2023-05-22 | 2023-05-22 | 代码覆盖分析方法、装置、计算机设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116627812A true CN116627812A (zh) | 2023-08-22 |
Family
ID=87616480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310579303.2A Pending CN116627812A (zh) | 2023-05-22 | 2023-05-22 | 代码覆盖分析方法、装置、计算机设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627812A (zh) |
-
2023
- 2023-05-22 CN CN202310579303.2A patent/CN116627812A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110378749B (zh) | 客户端相似性的评估方法、装置、终端设备及存储介质 | |
CN111506511A (zh) | 一种测试用例生成方法、装置、电子设备及介质 | |
CN112650688B (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN111367531B (zh) | 代码处理方法及装置 | |
CN114817968A (zh) | 无特征数据的路径追溯方法、装置、设备及存储介质 | |
US10241957B2 (en) | Workload patterns for realistic load recreation in performance testing | |
CN113869789A (zh) | 一种风险监控的方法、装置、计算机设备及存储介质 | |
CN115052037B (zh) | 客户端检测方法、装置、存储介质和设备 | |
KR20180122111A (ko) | 공연 및 행사기획 대행 온오프라인 서비스 제공방법 | |
CN114238048B (zh) | 一种Web前端性能自动化测试方法及系统 | |
CN116627812A (zh) | 代码覆盖分析方法、装置、计算机设备和可读存储介质 | |
CN110716859A (zh) | 自动为修改的代码推送测试用例的方法及相关装置 | |
CN110389897A (zh) | Sdk逻辑测试方法、装置、存储介质及服务器 | |
CN112597041B (zh) | 代码覆盖率的跨分支合并方法、系统、设备及存储介质 | |
CN110992166B (zh) | 在线申请贷款的测试方法及装置 | |
CN111786991B (zh) | 基于区块链的平台认证登录方法及相关装置 | |
CN111309551B (zh) | 一种确定事件监控sdk集成正确的方法及装置 | |
CN113297082A (zh) | 产品的质量评估方法及装置 | |
US9128640B2 (en) | Software product consistency assessment | |
CN112685072A (zh) | 通信地址知识库的生成方法、装置、设备及存储介质 | |
CN112328473A (zh) | 代码自动化集成测试方法、装置及电子设备 | |
CN110674491A (zh) | 用于安卓应用的实时取证的方法、装置和电子设备 | |
CN113760696A (zh) | 一种程序问题定位方法、装置、电子设备和存储介质 | |
CN112445697A (zh) | 用于测试应用的方法和装置 | |
CN110569189A (zh) | 回归测试的方法、装置、计算机设备和存储介质 |
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 |