CN116107889A - 应用程序的回归测试方法、装置、计算机设备和存储介质 - Google Patents

应用程序的回归测试方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116107889A
CN116107889A CN202310073677.7A CN202310073677A CN116107889A CN 116107889 A CN116107889 A CN 116107889A CN 202310073677 A CN202310073677 A CN 202310073677A CN 116107889 A CN116107889 A CN 116107889A
Authority
CN
China
Prior art keywords
program code
tested
target
program
changed
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
CN202310073677.7A
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202310073677.7A priority Critical patent/CN116107889A/zh
Publication of CN116107889A publication Critical patent/CN116107889A/zh
Pending legal-status Critical Current

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/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/3696Methods or tools to render software testable
    • 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

本申请涉及一种应用程序的回归测试方法、装置、计算机设备、存储介质和计算机程序产品,可用于金融科技领域或其他相关领域。方法包括:在检测到待测应用程序对应的程序代码发生变更的情况下,获取待测应用程序对应的变更后程序代码;根据变更后程序代码中各代码元素的层级嵌套关系,确定变更后程序代码中的程序代码变更范围关联的目标方法,以及目标方法对应的方法调用链;确定方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;根据各待测接口对应的测试用例,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果。采用本方法能够有效提高回归测试的效率。

Description

应用程序的回归测试方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用程序的回归测试方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
在软件生命周期中的任何一个阶段,只要软件发生改变,就可能给该软件带来问题。而回归测试用于在软件发生更新、变更之后,对其进行重新测试,以确保所实施的更改不会对现有代码产生不利的影响。
回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作比重,软件开发的各个阶段都会进行多次回归测试。而现有的自动化回归测试中,由于无法准确确定回归测试的测试范围,因此每天都需要对全部源代码进行回归测试,随着时间和版本不断迭代,回归测试的工作量积累得越来越多,导致每天的执行时间越来越长,无法高效进行回归测试。
因此,相关技术中,存在着回归测试效率低下的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高回归测试效率的应用程序的回归测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种应用程序的回归测试方法。所述方法包括:
在检测到待测应用程序对应的程序代码发生变更的情况下,获取所述待测应用程序对应的变更后程序代码;
根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链;所述方法调用链包括与所述目标方法存在方法调用关系的方法对应的方法标识,以及所述目标方法对应的方法标识;
确定所述方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;
根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
在其中一个实施例中,所述根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链,包括:
解析所述变更后程序代码的语法结构,得到所述变更后程序代码中各代码元素的层级嵌套关系;
根据各所述代码元素的层级嵌套关系,确定所述程序代码变更范围对应的程序代码所属的方法,得到所述程序代码变更范围关联的目标方法;
以及,根据各所述代码元素的层级嵌套关系,对所述目标方法的关联关系进行追踪,得到所述目标方法对应的方法调用链。
在其中一个实施例中,所述解析所述变更后程序代码的语法结构,得到所述变更后程序代码中各代码元素的层级嵌套关系,包括:
扫描所述变更后程序代码,并对所述变更后程序代码进行词法分析,得到所述变更后程序代码对应的词法分析结果;
通过对所述词法分析结果进行语法分析,将所述词法分析结果转换为由所述变更后程序代码中的各所述代码元素的层级嵌套关系组成的抽象语法树;所述抽象语法树用于表征所述变更后程序代码的语法结构。
在其中一个实施例中,所述根据各所述代码元素的层级嵌套关系,确定所述程序代码变更范围对应的程序代码所属的方法,得到所述程序代码变更范围关联的目标方法,包括:
确定所述程序代码变更范围在所述抽象语法树中对应的位置;
根据所述位置在所述抽象语法树中对应的代码元素,确定所述程序代码变更范围对应的程序代码所属的方法,得到所述程序代码变更范围关联的目标方法。
在其中一个实施例中,所述根据各所述代码元素的层级嵌套关系,对所述目标方法的关联关系进行追踪,得到所述目标方法对应的方法调用链,包括:
遍历所述变更后程序代码对应的抽象语法树,对所述抽象语法树进行语义分析,得到所述变更后程序代码对应的字节码文件;
对所述字节码文件进行静态分析,得到所述目标方法对应的方法调用链。
在其中一个实施例中,所述方法调用关系包括调用关系和被调用关系;所述对所述字节码文件进行静态分析,得到所述目标方法对应的方法调用链,包括:
在所述字节码文件中对所述目标方法对应的方法标识进行追踪,确定所述目标方法调用的方法对应的方法标识,得到所述目标方法的调用关系,以及,确定调用所述目标方法的方法对应的方法标识,作为所述目标方法对应的父调用方法标识;
将所述父调用方法标识表征的方法作为所述目标方法,返回所述在所述字节码文件中对所述目标方法对应的方法标识进行追踪,确定调用所述目标方法的方法对应的方法标识的步骤,直到所述字节码文件中不存在调用所述目标方法的方法对应的方法标识,得到所述目标方法的被调用关系;
根据所述目标方法的调用关系和所述目标方法的被调用关系,确定所述目标方法对应的方法调用链。
在其中一个实施例中,所述根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果,包括:
根据接口标识与测试用例之间的映射关系,确定表征各所述待测接口的接口标识对应的测试用例,作为各目标测试用例;
根据测试用例与测试脚本之间的映射关系,确定各所述目标测试用例对应的测试脚本,作为各所述待测接口对应的测试脚本;
通过执行各所述待测接口对应的测试脚本,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
第二方面,本申请还提供了一种应用程序的回归测试装置。所述装置包括:
获取模块,用于在检测到待测应用程序对应的程序代码发生变更的情况下,获取所述待测应用程序对应的变更后程序代码;
方法确定模块,用于根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链;所述方法调用链包括与所述目标方法存在方法调用关系的方法对应的方法标识,以及所述目标方法对应的方法标识;
接口确定模块,用于确定所述方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;
测试模块,用于根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在检测到待测应用程序对应的程序代码发生变更的情况下,获取所述待测应用程序对应的变更后程序代码;
根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链;所述方法调用链包括与所述目标方法存在方法调用关系的方法对应的方法标识,以及所述目标方法对应的方法标识;
确定所述方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;
根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在检测到待测应用程序对应的程序代码发生变更的情况下,获取所述待测应用程序对应的变更后程序代码;
根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链;所述方法调用链包括与所述目标方法存在方法调用关系的方法对应的方法标识,以及所述目标方法对应的方法标识;
确定所述方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;
根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
在检测到待测应用程序对应的程序代码发生变更的情况下,获取所述待测应用程序对应的变更后程序代码;
根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链;所述方法调用链包括与所述目标方法存在方法调用关系的方法对应的方法标识,以及所述目标方法对应的方法标识;
确定所述方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;
根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
上述应用程序的回归测试方法、装置、计算机设备、存储介质和计算机程序产品,通过在检测到待测应用程序对应的程序代码发生变更的情况下,获取待测应用程序对应的变更后程序代码;根据变更后程序代码中各代码元素的层级嵌套关系,确定变更后程序代码中的程序代码变更范围关联的目标方法,以及目标方法对应的方法调用链;方法调用链包括与目标方法存在方法调用关系的方法对应的方法标识,以及目标方法对应的方法标识;确定方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;根据各待测接口对应的测试用例,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果。如此,通过待测应用程序对应的变更后程序代码中各代码元素的层级嵌套关系,可以精准确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及与目标方法存在方法调用关系的方法,准确得到待测应用程序对应的程序代码发生变更时,用于表征受到代码变更影响的方法的方法调用链,从而可以根据方法调用链中的各方法标识表征的方法所属的接口对应的测试用例,即根据受到代码变更影响的接口对应的测试用例,对待测应用程序进行回归测试,避免使用全部的测试用例,减少了用来回归测试的测试用例的数量,进而减少了回归测试的时间,有效提高了回归测试的效率。
附图说明
图1为一个实施例中一种应用程序的回归测试方法的流程示意图;
图2为一个实施例中一种确定应用程序的待测接口的方法的流程示意图;
图3为另一个实施例中一种应用程序的回归测试方法的流程示意图;
图4为一个实施例中另一种应用程序的回归测试方法的流程示意图;
图5为一个实施例中一种应用程序的回归测试装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
还需要说明的是,本申请公开的应用程序的回归测试方法、装置、计算机设备、存储介质和计算机程序产品可应用于金融科技领域,也可用于除金融科技领域之外的任意领域。
在一个实施例中,如图1所示,提供了一种应用程序的回归测试方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本实施例中,该方法包括以下步骤:
步骤S110,在检测到待测应用程序对应的程序代码发生变更的情况下,获取待测应用程序对应的变更后程序代码。
其中,待测应用程序为需要进行回归测试的应用程序。
具体实现中,服务器可以在检测到待测应用程序对应的程序代码发生变更的情况下,获取待测应用程序对应的变更后的程序代码,作为待测应用程序对应的变更后程序代码。
步骤S120,根据变更后程序代码中各代码元素的层级嵌套关系,确定变更后程序代码中的程序代码变更范围关联的目标方法,以及目标方法对应的方法调用链。
其中,方法调用链包括与目标方法存在方法调用关系的方法对应的方法标识,以及目标方法对应的方法标识。
其中,方法(method)为基于Java的源代码中用于实现逻辑的对象。
其中,代码元素为变更后程序代码中的元素。
其中,程序代码变更范围可以用于定位变更后程序代码相较于变更前程序代码,内容发生更改的程序代码在变更后程序代码中所在的位置。实际应用中,程序代码变更范围可以以内容发生更改的程序代码在变更后程序代码中所在的行数表征。其中,变更前程序代码为待测应用程序对应的程序代码发生变更前,待测应用程序对应的程序代码。
其中,方法标识可以为方法名。
具体实现中,服务器可以获取待测应用程序对应的变更前程序代码,通过对比待测应用程序对应的变更前程序代码和对应的变更后程序代码,确定变更后程序代码中的程序代码变更范围。实际应用中,服务器可以通过Git diff命令对比变更前程序代码和变更后程序代码,确定程序代码变更范围以及程序代码变更范围对应的程序代码,将程序代码变更范围对应的程序代码作为程序代码变更内容(即内容发生更改的程序代码)。
然后,服务器可以确定变更后程序代码中各代码元素的层级嵌套关系,根据各代码元素的层级嵌套关系,确定变更后程序代码中的程序代码变更范围对应的程序代码所属的方法,作为程序代码变更范围关联的目标方法,并确定目标方法对应的方法调用链,该方法调用链包括与目标方法存在方法调用关系的方法对应的方法标识,以及目标方法对应的方法标识。其中,方法调用链可以表征与目标方法存在方法调用关系的方法,与目标方法之间的调用关系和被调用关系。其中,方法调用链中的各方法标识表征的方法,为受到代码变更影响的方法。
步骤S130,确定方法调用链中的各方法标识表征的方法所属的接口,作为待测接口。
具体实现中,服务器可以确定方法调用链中的各方法标识表征的方法所属的接口,作为待测接口。其中,各待测接口为受到代码变更影响的接口。
步骤S140,根据各待测接口对应的测试用例,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果。
具体实现中,服务器可以根据各待测接口对应的测试用例,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果。
上述应用程序的回归测试方法中,通过在检测到待测应用程序对应的程序代码发生变更的情况下,获取待测应用程序对应的变更后程序代码;根据变更后程序代码中各代码元素的层级嵌套关系,确定变更后程序代码中的程序代码变更范围关联的目标方法,以及目标方法对应的方法调用链;方法调用链包括与目标方法存在方法调用关系的方法对应的方法标识,以及目标方法对应的方法标识;确定方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;根据各待测接口对应的测试用例,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果。如此,通过待测应用程序对应的变更后程序代码中各代码元素的层级嵌套关系,可以精准确定变更后程序代码中的程序代码变更范围关联的目标方法,以及与目标方法存在方法调用关系的方法,准确得到待测应用程序对应的程序代码发生变更时,用于表征受到代码变更影响的方法的方法调用链,从而可以根据方法调用链中的各方法标识表征的方法所属的接口对应的测试用例,即根据受到代码变更影响的接口对应的测试用例,对待测应用程序进行回归测试,避免使用全部的测试用例,减少了用来回归测试的测试用例的数量,进而减少了回归测试的时间,有效提高了回归测试的效率。
在一个实施例中,根据变更后程序代码中各代码元素的层级嵌套关系,确定变更后程序代码中的程序代码变更范围关联的目标方法,以及目标方法对应的方法调用链,包括:解析变更后程序代码的语法结构,得到变更后程序代码中各代码元素的层级嵌套关系;根据各代码元素的层级嵌套关系,确定程序代码变更范围对应的程序代码所属的方法,得到程序代码变更范围关联的目标方法;以及,根据各代码元素的层级嵌套关系,对目标方法的关联关系进行追踪,得到目标方法对应的方法调用链。
具体实现中,服务器在根据变更后程序代码中各代码元素的层级嵌套关系,确定变更后程序代码中的程序代码变更范围关联的目标方法,以及目标方法对应的方法调用链的过程中,服务器可以对变更后程序代码的语法结构进行解析,得到变更后程序代码中各代码元素的层级嵌套关系;然后,服务器可以根据各代码元素的层级嵌套关系,确定变更后程序代码中程序代码变更范围对应的程序代码所属的方法,得到程序代码变更范围关联的目标方法;以及,根据各代码元素的层级嵌套关系,对目标方法的关联关系进行追踪,得到目标方法对应的方法调用链。
实际应用中,服务器通过Git diff命令,确定程序代码变更范围对应的程序代码后,可以对程序代码变更范围对应的程序代码进行代码噪音去除处理,该代码噪音去除处理,包括公共函数、注释等内容的修改,得到程序代码变更范围对应的处理后的程序代码,并将程序代码变更范围对应的处理后的程序代码,作为程序代码变更范围对应的程序代码。
本实施例的技术方案,通过解析变更后程序代码的语法结构,得到变更后程序代码中各代码元素的层级嵌套关系;根据各代码元素的层级嵌套关系,确定程序代码变更范围对应的程序代码所属的方法,得到程序代码变更范围关联的目标方法;以及,根据各代码元素的层级嵌套关系,对目标方法的关联关系进行追踪,得到目标方法对应的方法调用链。如此,通过解析变更后程序代码的语法结构得到的变更后程序代码中各代码元素的层级嵌套关系,可以准确定位程序代码变更范围对应的程序代码所属的方法,得到目标方法,并准确地对目标方法的关联关系进行追踪,得到目标方法对应的方法调用链;从而可以实现准确确定受到代码变更影响的方法,以进行回归测试,提高了回归测试场景的准确性。
在一个实施中,解析变更后程序代码的语法结构,得到变更后程序代码中各代码元素的层级嵌套关系,包括:扫描变更后程序代码,并对变更后程序代码进行词法分析,得到变更后程序代码对应的词法分析结果;通过对词法分析结果进行语法分析,将词法分析结果转换为由变更后程序代码中的各代码元素的层级嵌套关系组成的抽象语法树;抽象语法树用于表征变更后程序代码的语法结构。
其中,实际应用中,变更后程序代码也可以命名为部署分支程序代码。
具体实现中,服务器在解析变更后程序代码的语法结构,得到变更后程序代码中各代码元素的层级嵌套关系的过程中,服务器可以扫描变更后程序代码,并对变更后程序代码进行词法分析,将扫描到的关键字、变量、操作符、常量等构成一个个Token(单词符号)流,作为变更后程序代码对应的词法分析结果。然后,服务器可以通过对变更后程序代码对应的词法分析结果进行语法分析,将词法分析结果转换为由变更后程序代码中的各代码元素的层级嵌套关系组成的抽象语法树(abstract syntax code,AST),该抽象语法树可以用于表征变更后程序代码的语法结构。
本实施例的技术方案,通过扫描变更后程序代码,并对变更后程序代码进行词法分析,得到变更后程序代码对应的词法分析结果;通过对词法分析结果进行语法分析,将词法分析结果转换为由变更后程序代码中的各代码元素的层级嵌套关系组成的抽象语法树;抽象语法树用于表征变更后程序代码的语法结构。如此,通过对变更后程序代码依次进行词法分析和语法分析,可以准确得到用于表征变更后程序代码的语法结构的抽象语法树,从而可以根据抽象语法树准确定位程序代码变更范围关联的目标方法,以及与目标方法存在方法调用关系的方法。
在一个实施例中,根据各代码元素的层级嵌套关系,确定程序代码变更范围对应的程序代码所属的方法,得到程序代码变更范围关联的目标方法,包括:确定程序代码变更范围在抽象语法树中对应的位置;根据位置在抽象语法树中对应的代码元素,确定程序代码变更范围对应的程序代码所属的方法,得到程序代码变更范围关联的目标方法。
具体实现中,服务器在根据各代码元素的层级嵌套关系,确定程序代码变更范围对应的程序代码所属的方法,得到程序代码变更范围关联的目标方法的过程中,由于抽象语法树可以以树状的形式表征变更后程序代码的语法结构,且抽象语法树上的每个节点都可以表征变更后程序代码中的一种结构,如此,服务器可以确定程序代码变更范围在抽象语法树上的位置,作为程序代码变更范围在抽象语法树中对应的位置,然后,服务器可以根据该位置在抽象语法树中对应的代码元素,确定表征程序代码变更范围对应的程序代码所属的方法的方法标识,以确定程序代码变更范围对应的程序代码所属的方法,得到程序代码变更范围关联的目标方法。
实际应用中,服务器还可以该位置在抽象语法树中对应的代码元素,确定表征程序代码变更范围对应的程序代码所属的类的类标识(例如类名),以及表征程序代码变更范围对应的程序代码所属的包的包标识(例如包名)。
本实施例的技术方案,通过确定程序代码变更范围在抽象语法树中对应的位置;根据位置在抽象语法树中对应的代码元素,确定程序代码变更范围对应的程序代码所属的方法,得到程序代码变更范围关联的目标方法。如此,由于抽象语法树可以以树状的形式表征变更后程序代码的语法结构,且抽象语法树上的每个节点都可以表征变更后程序代码中的一种结构,基于变更后程序代码中程序代码变更范围在抽象语法树中对应的位置,可以准确确定程序代码变更范围对应的程序代码所属的方法。
在一个实施例中,根据各代码元素的层级嵌套关系,对目标方法的关联关系进行追踪,得到目标方法对应的方法调用链,包括:遍历变更后程序代码对应的抽象语法树,对抽象语法树进行语义分析,得到变更后程序代码对应的字节码文件;对字节码文件进行静态分析,得到目标方法对应的方法调用链。
其中,字节码文件可以是用于存储字节码信息的文件,在实际应用中,字节码文件可以是以.class为后缀的文件。其中,字节码信息可以是由程序代码和/或数据对组成的二进制信息。
具体实现中,服务器在根据各代码元素的层级嵌套关系,对目标方法的关联关系进行追踪,得到目标方法对应的方法调用链的过程中,服务器可以遍历变更后程序代码对应的抽象语法树,对抽象语法树进行语义分析,得到变更后程序代码对应的字节码文件;然后,服务器可以对字节码文件进行静态分析,得到程序代码变更范围关联的目标方法对应的方法调用链。
其中,服务器在获取程序代码变更范围关联的目标方法对应的方法调用链的过程中,服务器可以在字节码文件中对目标方法对应的方法标识进行追踪,确定目标方法调用的方法对应的方法标识,得到目标方法的调用关系,以及,确定调用目标方法的方法对应的方法标识,作为目标方法对应的父调用方法标识。具体的,服务器可以对字节码文件进行解析,得到其中包含的字节码信息,该字节码信息可以包括方法标识信息、类标识信息、继承的父类的标识等,从而服务器可以通过ASM(一套Java字节码生成器)字节码操纵框架的visitMethodInsn方法,在字节码信息中对目标方法对应的方法标识进行追踪,确定目标方法调用的方法对应的方法标识,得到目标方法的调用关系,以及,确定调用目标方法的方法对应的方法标识,作为目标方法对应的父调用方法标识。其中,调用关系用于表征目标方法与被目标方法调用的方法之间的关联关系。
然后,服务器可以将父调用方法标识表征的方法作为目标方法,返回在字节码文件中对目标方法对应的方法标识进行追踪,确定调用目标方法的方法对应的方法标识的步骤,直到字节码文件中不存在调用目标方法的方法对应的方法标识,服务器可以根据追踪到的每个调用目标方法的方法对应的方法标识,得到程序代码变更范围关联的目标方法的被调用关系。其中,被调用关系用于表征目标方法与可以调用目标方法的方法之间的关联关系。
然后,服务器可以根据目标方法的调用关系和目标方法的被调用关系,确定目标方法对应的方法调用链。具体来说,服务器可以将目标方法的调用关系和目标方法的被调用关系进行连接,形成目标方法对应的方法调用链。
本实施例的技术方案,通过遍历变更后程序代码对应的抽象语法树,对抽象语法树进行语义分析,得到变更后程序代码对应的字节码文件;对字节码文件进行静态分析,得到目标方法对应的方法调用链。如此,可以通过对变更后程序代码对应的字节码文件进行静态分析,准确地对目标方法的的关联关系进行追踪,从而获取到目标方法对应的方法调用链,以根据方法调用链准确确定受到代码变更影响的方法。
此外,在获取目标方法对应的方法调用链的过程中,通过在字节码文件中对目标方法对应的方法标识进行追踪,确定目标方法调用的方法对应的方法标识,得到目标方法的调用关系,以及,确定调用目标方法的方法对应的方法标识,作为目标方法对应的父调用方法标识;将父调用方法标识表征的方法作为目标方法,返回在字节码文件中对目标方法对应的方法标识进行追踪,确定调用目标方法的方法对应的方法标识的步骤,直到字节码文件中不存在调用目标方法的方法对应的方法标识,得到目标方法的被调用关系;根据目标方法的调用关系和目标方法的被调用关系,确定目标方法对应的方法调用链。如此,通过确定目标方法调用的方法对应的方法标识,可以准确得到目标方法的调用关系,并通过对调用目标方法的方法对应的方法标识,即父调用方法标识进行追踪,可以准确确定目标方法的被调用关系,从而可以根据目标方法的调用关系和被调用关系,确定目标方法对应的方法调用链。
在一个实施例中,如图2所示,提供了一种确定应用程序的待测接口的方法的流程示意图。其中,服务器在获取提交的待测应用程序对应的变更前代码后,在检测到待测应用程序对应的程序代码发生变更的情况下,可以通过Git diff命令,对比变更前程序代码和变更后程序代码,识别出变更后程序代码相较于变更前程序代码的程序代码变更范围,以及程序代码变更范围对应的程序代码,并对程序代码变更范围对应的程序代码进行代码噪音去除处理,确定程序代码变更范围对应的处理后的程序代码所属的方法,得到程序代码变更范围关联的目标方法;然后,服务器可以获取变更后程序代码对应的抽象语法树,根据程序代码变更范围在抽象语法树中对应的位置,确定表征程序代码变更范围对应的程序代码所属的类的类名、表征程序代码变更范围对应的程序代码所属的方法的方法名、表征程序代码变更范围对应的程序代码所属的包的包名;然后,服务器可以根据抽象语法树生成变更后代码程序对应的字节码文件,并通过ASM字节码操作框架的visitMethodInsn方法,在字节码文件中实现对目标方法的关联关系进行追踪,得到目标方法对应的方法调用链;然后,服务器可以确定方法调用链中的各方法标识表征的方法所属的接口,作为待测接口,并将各待测接口作为待回归测试接口服务列表中的接口。如此,通过采用AST抽象语法树和ASM技术,可以准确确定待测应用程序对应的程序代码发生变更的情况下,发生变更的接口,以及与发生变更的接口存在关联关系的接口,得到受到代码变更影响的接口。
在一个实施例中,根据各待测接口对应的测试用例,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果,包括:根据接口标识与测试用例之间的映射关系,确定表征各待测接口的接口标识对应的测试用例,作为各目标测试用例;根据测试用例与测试脚本之间的映射关系,确定各目标测试用例对应的测试脚本,作为各待测接口对应的测试脚本;通过执行各待测接口对应的测试脚本,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果。
具体实现中,服务器在根据各待测接口对应的测试用例,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果的过程中,服务器可以获取TCM测试用例数据库信息;其中,TCM测试用例数据库为存储测试用例的知识库,包括测试用例的基本内容,接口标识(例如接口名称)与测试用例之间的映射关系,测试用例与测试脚本之间的映射关系。如此,服务器可以在数据库中根据接口标识与测试用例之间的映射关系,确定表征各待测接口的接口标识对应的测试用例,作为各目标测试用例,根据测试用例与测试脚本之间的映射关系,确定各目标测试用例对应的测试脚本,作为各待测接口对应的测试脚本,然后,执行各待测接口对应的测试脚本,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果,将执行失败的测试脚本对应的测试用例反馈给目标对象,供目标对象精准定位变更后代码程序中存在异常的位置。
本实施例的技术方案,通过根据接口标识与测试用例之间的映射关系,确定表征各待测接口的接口标识对应的测试用例,作为各目标测试用例;根据测试用例与测试脚本之间的映射关系,确定各目标测试用例对应的测试脚本,作为各待测接口对应的测试脚本;通过执行各待测接口对应的测试脚本,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果。如此,可以精准确定受到代码变更影响的待测接口对应的测试脚本,通过执行各待测接口对应的测试脚本,可以实现对待测应用程序进行精准地回归测试,无需执行所有的测试用例对应的测试脚本,减少了回归测试的时间,有效提高了回归测试的效率。
在另一个实施例中,如图3所示,提供了一种应用程序的回归测试方法,以该方法应用于上述服务器为例进行说明,包括以下步骤:
步骤S310,在检测到待测应用程序对应的程序代码发生变更的情况下,获取待测应用程序对应的变更后程序代码。
步骤S320,扫描变更后程序代码,并对变更后程序代码进行词法分析,得到变更后程序代码对应的词法分析结果。
步骤S330,通过对词法分析结果进行语法分析,将词法分析结果转换为由变更后程序代码中的各代码元素的层级嵌套关系组成的抽象语法树。
步骤S340,确定变更后程序代码中的程序代码变更范围在抽象语法树中对应的位置。
步骤S350,根据位置在抽象语法树中对应的代码元素,确定程序代码变更范围对应的程序代码所属的方法,得到程序代码变更范围关联的目标方法。
步骤S360,遍历变更后程序代码对应的抽象语法树,对抽象语法树进行语义分析,得到变更后程序代码对应的字节码文件。
步骤S370,对字节码文件进行静态分析,得到目标方法对应的方法调用链。
步骤S380,根据各待测接口对应的测试用例,对待测应用程序进行回归测试,得到待测应用程序的回归测试结果。
需要说明的是,上述步骤的具体限定可以参见上文对一种应用程序的回归测试方法的具体限定。
在一个实施例中,如图4所示,提供了另一种应用程序的回归测试方法,以该方法应用于上述服务器为例进行说明,包括以下步骤:服务器在获取到待测应用程序对应的变更后程序代码和变更前程序代码后,可以通过Git diff命令获取变更后程序代码中的程序代码变更范围,以及程序代码变更范围对应的程序代码,并输入至分析工具,获取发生变更的接口,以及与发生变更的接口存在关联关系的接口,作为受到代码变更影响的接口;然后,基于TCM测试用例数据库中的接口标识与测试用例之间的映射关系,测试用例与测试脚本之间的映射关系,分析工具可以获取受到代码变更影响的接口对应的测试用例,作为用于执行精准回归测试的目标测试用例;通过测试平台执行各目标测试用例对应的测试脚本,并将执行失败的测试脚本对应的测试用例反馈给目标对象,供目标对象精准定位变更后代码程序中存在异常的位置。
如此,通过识别出变更后程序代码中的程序代码变更范围,以及程序代码变更范围对应的程序代码,进行关联关系分析,识别出发生变更的接口,以及与发生变更的接口存在关联关系的接口,作为受到代码变更影响的接口,依据TCM测试用例数据库中的接口标识与测试用例之间的映射关系,可以确定收到代码变更影响的接口对应的测试用例,用来进行回归测试,并将执行失败的测试用例反馈给目标对象,实现了精准确定回归测试范围,以精准进行回归测试,节约了大量资源和时间,提升了回归测试的效率和有效性;此外,还避免了人工确定回归测试范围引起的回归测试质量差的问题,提高了回归测试场景的准确性;同时,充分利用过去积累的测试用例数据库,有利于促进测试用例数据库的规范化和完备化。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的一种应用程序的回归测试方法的应用程序的回归测试装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个应用程序的回归测试装置实施例中的具体限定可以参见上文中对于一种应用程序的回归测试方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种应用程序的回归测试装置,包括:获取模块510、方法确定模块520、接口确定模块530和测试模块540,其中:
获取模块510,用于在检测到待测应用程序对应的程序代码发生变更的情况下,获取所述待测应用程序对应的变更后程序代码。
方法确定模块520,用于根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链;所述方法调用链包括与所述目标方法存在方法调用关系的方法对应的方法标识,以及所述目标方法对应的方法标识。
接口确定模块530,用于确定所述方法调用链中的各方法标识表征的方法所属的接口,作为待测接口。
测试模块540,用于根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
在其中一个实施例中,所述方法确定模块520,具体用于解析所述变更后程序代码的语法结构,得到所述变更后程序代码中各代码元素的层级嵌套关系;根据各所述代码元素的层级嵌套关系,确定所述程序代码变更范围对应的程序代码所属的方法,得到所述程序代码变更范围关联的目标方法;以及,根据各所述代码元素的层级嵌套关系,对所述目标方法的关联关系进行追踪,得到所述目标方法对应的方法调用链。
在其中一个实施例中,所述方法确定模块520,具体用于扫描所述变更后程序代码,并对所述变更后程序代码进行词法分析,得到所述变更后程序代码对应的词法分析结果;通过对所述词法分析结果进行语法分析,将所述词法分析结果转换为由所述变更后程序代码中的各所述代码元素的层级嵌套关系组成的抽象语法树;所述抽象语法树用于表征所述变更后程序代码的语法结构。
在其中一个实施例中,所述方法确定模块520,具体用于确定所述程序代码变更范围在所述抽象语法树中对应的位置;根据所述位置在所述抽象语法树中对应的代码元素,确定所述程序代码变更范围对应的程序代码所属的方法,得到所述程序代码变更范围关联的目标方法。
在其中一个实施例中,所述方法确定模块520,具体用于遍历所述变更后程序代码对应的抽象语法树,对所述抽象语法树进行语义分析,得到所述变更后程序代码对应的字节码文件;对所述字节码文件进行静态分析,得到所述目标方法对应的方法调用链。
在其中一个实施例中,所述方法确定模块520,具体用于在所述字节码文件中对所述目标方法对应的方法标识进行追踪,确定所述目标方法调用的方法对应的方法标识,得到所述目标方法的调用关系,以及,确定调用所述目标方法的方法对应的方法标识,作为所述目标方法对应的父调用方法标识;将所述父调用方法标识表征的方法作为所述目标方法,返回所述在所述字节码文件中对所述目标方法对应的方法标识进行追踪,确定调用所述目标方法的方法对应的方法标识的步骤,直到所述字节码文件中不存在调用所述目标方法的方法对应的方法标识,得到所述目标方法的被调用关系;根据所述目标方法的调用关系和所述目标方法的被调用关系,确定所述目标方法对应的方法调用链。
在其中一个实施例中,所述测试模块540,具体用于根据接口标识与测试用例之间的映射关系,确定表征各所述待测接口的接口标识对应的测试用例,作为各目标测试用例;根据测试用例与测试脚本之间的映射关系,确定各所述目标测试用例对应的测试脚本,作为各所述待测接口对应的测试脚本;通过执行各所述待测接口对应的测试脚本,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
上述一种应用程序的回归测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储测试用例的基本内容、接口标识与测试用例之间的映射关系、测试用例与测试脚本之间的映射关系数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用程序的回归测试方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (11)

1.一种应用程序的回归测试方法,其特征在于,所述方法包括:
在检测到待测应用程序对应的程序代码发生变更的情况下,获取所述待测应用程序对应的变更后程序代码;
根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链;所述方法调用链包括与所述目标方法存在方法调用关系的方法对应的方法标识,以及所述目标方法对应的方法标识;
确定所述方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;
根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链,包括:
解析所述变更后程序代码的语法结构,得到所述变更后程序代码中各代码元素的层级嵌套关系;
根据各所述代码元素的层级嵌套关系,确定所述程序代码变更范围对应的程序代码所属的方法,得到所述程序代码变更范围关联的目标方法;
以及,根据各所述代码元素的层级嵌套关系,对所述目标方法的关联关系进行追踪,得到所述目标方法对应的方法调用链。
3.根据权利要求2所述的方法,其特征在于,所述解析所述变更后程序代码的语法结构,得到所述变更后程序代码中各代码元素的层级嵌套关系,包括:
扫描所述变更后程序代码,并对所述变更后程序代码进行词法分析,得到所述变更后程序代码对应的词法分析结果;
通过对所述词法分析结果进行语法分析,将所述词法分析结果转换为由所述变更后程序代码中的各所述代码元素的层级嵌套关系组成的抽象语法树;所述抽象语法树用于表征所述变更后程序代码的语法结构。
4.根据权利要求3所述的方法,其特征在于,所述根据各所述代码元素的层级嵌套关系,确定所述程序代码变更范围对应的程序代码所属的方法,得到所述程序代码变更范围关联的目标方法,包括:
确定所述程序代码变更范围在所述抽象语法树中对应的位置;
根据所述位置在所述抽象语法树中对应的代码元素,确定所述程序代码变更范围对应的程序代码所属的方法,得到所述程序代码变更范围关联的目标方法。
5.根据权利要求3所述的方法,其特征在于,所述根据各所述代码元素的层级嵌套关系,对所述目标方法的关联关系进行追踪,得到所述目标方法对应的方法调用链,包括:
遍历所述变更后程序代码对应的抽象语法树,对所述抽象语法树进行语义分析,得到所述变更后程序代码对应的字节码文件;
对所述字节码文件进行静态分析,得到所述目标方法对应的方法调用链。
6.根据权利要求5所述的方法,其特征在于,所述方法调用关系包括调用关系和被调用关系;所述对所述字节码文件进行静态分析,得到所述目标方法对应的方法调用链,包括:
在所述字节码文件中对所述目标方法对应的方法标识进行追踪,确定所述目标方法调用的方法对应的方法标识,得到所述目标方法的调用关系,以及,确定调用所述目标方法的方法对应的方法标识,作为所述目标方法对应的父调用方法标识;
将所述父调用方法标识表征的方法作为所述目标方法,返回所述在所述字节码文件中对所述目标方法对应的方法标识进行追踪,确定调用所述目标方法的方法对应的方法标识的步骤,直到所述字节码文件中不存在调用所述目标方法的方法对应的方法标识,得到所述目标方法的被调用关系;
根据所述目标方法的调用关系和所述目标方法的被调用关系,确定所述目标方法对应的方法调用链。
7.根据权利要求1所述的方法,其特征在于,所述根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果,包括:
根据接口标识与测试用例之间的映射关系,确定表征各所述待测接口的接口标识对应的测试用例,作为各目标测试用例;
根据测试用例与测试脚本之间的映射关系,确定各所述目标测试用例对应的测试脚本,作为各所述待测接口对应的测试脚本;
通过执行各所述待测接口对应的测试脚本,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
8.一种应用程序的回归测试装置,其特征在于,所述装置包括:
获取模块,用于在检测到待测应用程序对应的程序代码发生变更的情况下,获取所述待测应用程序对应的变更后程序代码;
方法确定模块,用于根据所述变更后程序代码中各代码元素的层级嵌套关系,确定所述变更后程序代码中的程序代码变更范围关联的目标方法,以及所述目标方法对应的方法调用链;所述方法调用链包括与所述目标方法存在方法调用关系的方法对应的方法标识,以及所述目标方法对应的方法标识;
接口确定模块,用于确定所述方法调用链中的各方法标识表征的方法所属的接口,作为待测接口;
测试模块,用于根据各所述待测接口对应的测试用例,对所述待测应用程序进行回归测试,得到所述待测应用程序的回归测试结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202310073677.7A 2023-01-13 2023-01-13 应用程序的回归测试方法、装置、计算机设备和存储介质 Pending CN116107889A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310073677.7A CN116107889A (zh) 2023-01-13 2023-01-13 应用程序的回归测试方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310073677.7A CN116107889A (zh) 2023-01-13 2023-01-13 应用程序的回归测试方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN116107889A true CN116107889A (zh) 2023-05-12

Family

ID=86261208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310073677.7A Pending CN116107889A (zh) 2023-01-13 2023-01-13 应用程序的回归测试方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116107889A (zh)

Similar Documents

Publication Publication Date Title
CN106656536B (zh) 一种用于处理服务调用信息的方法与设备
CN107665171B (zh) 自动回归测试方法及装置
US10606570B2 (en) Representing software with an abstract code graph
US8607198B2 (en) Cross-concern code coverage assessment
Reynolds et al. Identifying and documenting false positive patterns generated by static code analysis tools
CN109918296B (zh) 软件自动化测试方法及装置
CN114116496A (zh) 自动化测试方法、装置、设备及介质
CN112363936B (zh) 差异覆盖率测试方法、装置、计算机设备和存储介质
CN108897678B (zh) 静态代码检测方法和静态代码检测系统、存储设备
CN114490413A (zh) 测试数据的准备方法及装置、存储介质和电子设备
CN112463620B (zh) 安卓软件集成测试中的覆盖率测试方法、装置
CN113392000A (zh) 测试用例执行结果分析方法、装置、设备及存储介质
CN111444093B (zh) 项目开发过程质量的确定方法、装置、计算机设备
CN110147313B (zh) 一种日志输出方法及装置
CN116107889A (zh) 应用程序的回归测试方法、装置、计算机设备和存储介质
CN110442370B (zh) 一种测试用例查询方法及装置
CN113342657A (zh) 一种检测代码异常的方法和装置
CN113128848A (zh) 全业务指标的数据质量监控方法、电子设备及存储介质
CN112612471B (zh) 代码处理方法、装置、设备及存储介质
CN114706785B (zh) 一种覆盖率过滤文件生成方法、装置、设备及介质
CN118132448B (zh) 测试用例处理方法、装置、计算机设备和存储介质
CN112486823B (zh) 错误码的校验方法、装置、电子设备及可读存储介质
CN112099838B (zh) 确定版本差异的方法、装置及存储介质
CN113568662B (zh) 一种基于调用关系的代码变更影响范围分析方法及系统
CN115129355B (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