CN111045944B - 回归测试方法、装置、系统及计算机可读存储介质 - Google Patents

回归测试方法、装置、系统及计算机可读存储介质 Download PDF

Info

Publication number
CN111045944B
CN111045944B CN201911272653.4A CN201911272653A CN111045944B CN 111045944 B CN111045944 B CN 111045944B CN 201911272653 A CN201911272653 A CN 201911272653A CN 111045944 B CN111045944 B CN 111045944B
Authority
CN
China
Prior art keywords
code
target
codes
test
regression testing
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.)
Active
Application number
CN201911272653.4A
Other languages
English (en)
Other versions
CN111045944A (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.)
Guangzhou Pinwei Software Co Ltd
Original Assignee
Guangzhou Pinwei Software 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 Guangzhou Pinwei Software Co Ltd filed Critical Guangzhou Pinwei Software Co Ltd
Priority to CN201911272653.4A priority Critical patent/CN111045944B/zh
Publication of CN111045944A publication Critical patent/CN111045944A/zh
Application granted granted Critical
Publication of CN111045944B publication Critical patent/CN111045944B/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/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

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为本发明回归测试方法又一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种解决方案,通过确定代码的修改所影响到的目标代码,并针对目标代码对应的测试用例进行测试,接收测试结果,避免了全量测试以及由测试人员手动挑选,使得回归测试的效率更高。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端可以是PC等终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及回归测试程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的回归测试程序,并执行以下操作:
在检测到代码发生修改时,获取修改后的代码对应的目标代码;
获取所述目标代码对应的目标测试用例对应的用例信息;
发送包含所述用例信息的执行指令至第一目标终端,以使所述第一目标终端运行所述用例信息对应的目标测试用例以进行测试,并返回测试结果。
进一步地,处理器1001可以调用存储器1005中存储的回归测试程序,还执行以下操作:
比对修改前的代码与所述修改后的代码,得到差异代码;
根据所述差异代码获取对应的目标代码。
进一步地,处理器1001可以调用存储器1005中存储的回归测试程序,还执行以下操作:
获取所述差异代码的抽象语法树,其中,所述抽象语法树包括所述差异代码的调用关系和被调用关系;
根据所述抽象语法树,获取所述差异代码对应的调用代码以及被调用代码,并将所述差异代码、所述调用代码以及被调用代码作为所述目标代码。
进一步地,处理器1001可以调用存储器1005中存储的回归测试程序,还执行以下操作:
去除所述差异代码中的无关代码,其中,所述无关代码包括新增代码、非预设类型的代码以及不可执行的代码中的至少一个。
进一步地,处理器1001可以调用存储器1005中存储的回归测试程序,还执行以下操作:
根据预设代码与测试用例的映射关系,获取所述目标代码对应的目标测试用例;
获取所述目标测试对应的用例信息。
进一步地,处理器1001可以调用存储器1005中存储的回归测试程序,还执行以下操作:
在接收到测试指令时,获取所述测试指令对应的测试用例的用例信息;
发送包含所述测试用例的用例信息的执行指令至所述第一目标终端,以使所述第一目标终端运行所述测试用例以进行测试;
发送覆盖率检测指令至第二目标终端,以使所述第二目标终端获取所述第一目标终端运行所述测试用例时对应的代码覆盖率信息;
在接收到所述第二目标终端反馈的所述代码覆盖率信息时,根据所述代码覆盖率信息确定所述测试用例对应的预设代码,并关联存储所述预设代码与所述测试用例的映射关系。
进一步地,处理器1001可以调用存储器1005中存储的回归测试程序,还执行以下操作:
监听第三目标终端在持续集成和/或持续部署的过程中发出的信息;
在检测到所述第三目标终端发出代码编译成功的信息时,检测所述代码编译成功的信息对应的代码是否发生修改。
参照图2,在一实施例中,所述回归测试方法包括以下步骤:
步骤S10,在检测到代码发生修改时,获取修改后的代码对应的目标代码;
在本实施例中,回归测试装置对应的终端平台可包括源代码分析器和调用链调整器。在检测到代码发生修改后,源代码分析器从代码对应的数据库中读取修改后的代码,并通过分析获取本次代码修改对应的变更方法列表,并发送至调用链调整器,以使调用链调整器执行后续操作,其中,变更方法列表包括修改后的代码对应的目标代码。
可选地,根据修改后的代码确定本次代码修改所影响到的代码,即为修改后的代码对应的目标代码。在确定本次代码修改所影响到的代码时,可通过比较修改后的代码文件与修改前的代码,得到差异代码。根据差异代码与其他代码的调用关系与被调用关系,确定在执行该差异代码时对应变化的代码,即为目标代码。
步骤S20,获取所述目标代码对应的目标测试用例对应的用例信息;
步骤S30,发送包含所述用例信息的执行指令至第一目标终端,以使所述第一目标终端运行所述用例信息对应的目标测试用例以进行测试,并返回测试结果。
在本实施例中,测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。调用链调整器获取预设代码与测试用例的映射关系,并确定与目标代码一致的预设代码,将此预设代码对应的测试用例作为目标代码对应的目标测试用例。获取目标测试用例对应的用例信息,其中,用例信息可包括目标测试用例的名称、标识等信息。发送包含该用例信息的执行指令至第一目标终端,以使第一目标终端从测试用例对应的数据库中获取用例信息对应的目标测试用例,运行目标测试用例以进行测试,并反馈测试结果至回归测试装置对应的终端平台,完成测试回归的目的。需要说明的是,目标代码对应的目标测试用例可同时存在多个,因此,第一目标终端测试的目标测试用例也可存在多个。
可选地,第一目标终端可同时存在多个,且测试用例可对应不同的用例类型,以在用例类型对应的第一目标终端中运行测试用例,以实现不同的测试目的。例如,用例类型可包括系统后台定时任务自动化测试用例、系统接口自动化测试用例等。
在本实施例公开的技术方案中,通过确定代码的修改所影响到的目标代码,并针对目标代码对应的测试用例进行测试,接收测试结果,避免了全量测试以及由测试人员手动挑选,每次代码修改后,所需执行的自动化测试用例数量更少,整体测试效率得以提升。
在另一实施例中,如图3所示,在上述图2所示的实施例基础上,步骤S10包括:
步骤S11,比对修改前的代码与所述修改后的代码,得到差异代码;
在本实施例中,在获取修改后的代码对应的目标代码时,从代码对应的数据库中读取修改前的代码以及修改后的代码。比较修改前的代码与修改后的代码,得到差异代码,差异代码即为代码修改的部分,包括新增代码、更改代码、删除代码等。例如,通过Git diff命令即可对两个代码文件进行比较,得到差异代码。
步骤S12,根据所述差异代码获取对应的目标代码。
在本实施例中,在得到差异代码后,获取差异代码对应的抽象语法树。抽象语法树为源代码语法结构的一种抽象表示,它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。因此,抽象语法树可表征代码与代码之间的关系,也可包括差异代码的调用关系与被调用关系,其中,调用关系是指差异代码与被差异代码调用的其他代码之间的关联,被调用关系是指差异代码与可调用差异代码的其他代码之间的关联。通过抽象语法树,判断差异代码与其他代码之间是否存在关联,进而确定差异代码对应的调用代码与被调用代码,其中,调用代码根据差异代码的调用关系进行确定,被调用代码根据差异代码的被调用关系进行确定。差异代码、调用代码以及被调用代码的综合即为本次代码修改所影响到的全部代码,并将差异代码、调用代码以及被调用代码同时作为目标代码。源代码分析器获取到目标代码后,将目标代码发送至调用链调整器,以使调用链调整器获取目标代码对应的目标测试用例。
可选地,在根据差异代码获取对应的目标代码之前,还可对差异代码进行优化处理。例如,检测并去除差异代码中的无关代码,以进一步减少回归测试的目标测试用例数量,提高回归测试的效率。无关代码可包括在修改前的代码基础上新增的代码、非预设类型的代码以及不可执行的代码,其中,非预设类型的代码一般为系统无法识别的代码,例如非Java代码,不可执行的代码可以包括差异代码中的配置信息、配置说明等,无法被当作方法来执行。可选地,若检测到差异代码中的新增代码时,由于新增代码不存在对应的测试用例,因此,可通过回归测试装置显示该新增代码,以提示用户手动处理该新增代码。
在本实施例公开的技术方案中,比对修改前的代码与修改后的代码,得到差异代码,根据差异代码获取对应的目标代码,从而确定本次代码修改影响到的全部代码。
在再一实施例中,如图4所示,在图2至图3任一实施例所示的基础上,步骤S20包括:
步骤S21,根据预设代码与测试用例的映射关系,获取所述目标代码对应的目标测试用例;
步骤S22,获取所述目标测试对应的用例信息。
在本实施例中,调用链调整器获取预设代码与测试用例的映射关系,并确定与目标代码一致的预设代码,将此预设代码对应的测试用例作为目标代码对应的目标测试用例。其中,预设代码与测试用例的映射关系可预先建立,并存储于回归测试装置对应的终端平台。获取目标测试用例对应的用例信息,其中,用例信息可包括目标测试用例的名称、标识等信息。
具体地,在建立预设代码与测试用例的映射关系时,将需要进行用例测试的域接入终端平台,以获取数据库中的多个测试用例。可选地,在获取数据库中的测试用例时,可通过终端平台的自动化测试用例扫描器,定时扫描所有接入的数据库信息,以从该数据库信息对应的第一目标终端中,获取该数据库中所有测试用例对应的测试计划,并判断测试计划是否有效,在测试计划有效时,将有效的测试计划对应的测试用例的用例信息存储至终端平台。可选地,用例预执行器在接收到测试指令时,获取终端平台中存储的与测试指令对应的测试用例的用例信息,将包含有用例信息的执行指令发送至第一目标终端,以使第一目标终端运行用例信息对应的测试用例以进行测试,并返回测试结果。其中,测试指令可定时触发,以定时更新预设代码与测试用例的映射关系,或者,测试指令由用户手动触发,以确定用户的测试指令对应的测试用例与预设代码的对应关系。可选地,在将包含有用例信息的执行指令发送至第一目标终端前,还可对多个测试用例进行分类,以将包含有不同类型测试用例的用例信息的执行指令,发送至对应的第一目标终端进行测试,其中,可按照测试用例对应的数据库来源、部署环境、目标终端类型进行分类。
在用例预执行器发送执行指令至第一目标终端时,还可发送覆盖率检测指令至第二目标终端,以使第二目标终端监测第一目标终端运行测试用例的过程,从而收集到测试用例的执行轨迹信息,根据执行轨迹信息生成代码覆盖率信息,并将代码覆盖率信息反馈至终端平台。代码覆盖率是软件测试中的描述程序中源代码被测试的比例和程度。其中,第二目标终端可通过Jacoco、Emma等覆盖率工具来获取代码覆盖率信息。
在接收到第二目标终端反馈的代码覆盖率信息时,根据代码覆盖率信息即可确定本次运行测试用例时覆盖到了哪些代码,覆盖到的代码则为该测试用例对应的预设代码,并关联存储预设代码与测试用例的映射关系。通过运行不同的测试用例,即可得到多个不同测试用例分别对应的预设代码以及映射关系。
在本实施例公开的技术方案中,根据预设代码与测试用例的映射关系,获取目标代码对应的目标测试用例以及目标测试对应的用例信息,以确定本次代码修改所影响到的测试用例,并且由于目标代码和目标测试用例是精确匹配的,可确保每次的代码修改都能够被完全覆盖,提升了整体项目的交付质量。
在又一实施例中,如图5所示,在图2至图4任一实施例所示的基础上,步骤S10之前,还包括:
步骤S01,监听第三目标终端在持续集成和/或持续部署的过程中发出的信息;
在本实施例中,第三目标终端用于持续集成和/或持续部署。持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。持续部署为通过自动化的构建、测试和部署循环来快速交付高质量的产品。第三目标终端可以是平台即服务(PAAS,Platform as aService),即是把服务器平台作为一种服务来提供。
通过终端平台的流水线监听器,持续监听第三目标终端在持续集成和/或持续部署的过程中各个步骤执行完毕后发出的信息,从而获取持续集成和/或持续部署中各个步骤的执行情况。
步骤S02,在检测到所述第三目标终端发出代码编译成功的信息时,检测所述代码编译成功的信息对应的代码是否发生修改。
在本实施例中,在检测到第三目标终端发出代码编译成功的信息时,表征存在代码正在集成或部署,团队开发成员可能对代码进行了修改,因此,可获取代码编译成功的信息对应的代码,并通过代码对应的数据库获取代码编译成功的信息对应的源代码,通过代码编译成功的信息对应的代码与源代码的比对,判断代码是否发生修改。在代码发生修改时,进行回归测试。
在本实施例公开的技术方案中,监听第三目标终端在持续集成和/或持续部署的过程中发出的信息,在代码被编译成功时,判断代码是否发生修改,提高了检测代码是否被修改时的效率。
此外,本发明实施例还提出一种回归测试装置,所述回归测试装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的回归测试程序,所述回归测试程序被所述处理器执行时实现如上各个实施例所述的回归测试方法的步骤。
此外,本发明实施例还提出一种回归测试系统,所述回归测试系统包括:
回归测试方法装置,所述回归测试方法装置为如上所述的回归测试方法装置;
第一目标终端,用于在接收到包含用例信息的执行指令时,运行所述用例信息对应的目标测试用例以进行测试,并返回测试结果。
可选地,所述回归测试系统还包括:
第二目标终端,用于在接收到覆盖率检测指令时,获取所述第一目标终端运行测试用例时对应的代码覆盖率信息,并将所述代码覆盖率信息反馈至所述回归测试方法装置;
可选地,所述回归测试系统还包括:
第三目标终端,用于持续集成和/或持续部署,并代码编译成功时,发送代码编译成功的消息至所述回归测试方法装置。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有回归测试程序,所述回归测试程序被处理器执行时实现如上各个实施例所述的回归测试方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (7)

1.一种回归测试方法,其特征在于,所述回归测试方法包括以下步骤:
在检测到代码发生修改时,获取修改后的代码对应的目标代码;
获取所述目标代码对应的目标测试用例对应的用例信息;
发送包含所述用例信息的执行指令至第一目标终端,以使所述第一目标终端运行所述用例信息对应的目标测试用例以进行测试,并返回测试结果;
其中,所述获取修改后的代码对应的目标代码的步骤,包括:
从数据库中读取修改前的代码以及所述修改后的代码,并比对所述修改前的代码与所述修改后的代码,得到差异代码;
根据所述差异代码获取对应的目标代码;
其中,所述根据所述差异代码获取对应的目标代码的步骤,包括:
获取所述差异代码的抽象语法树,所述抽象语法树包括所述差异代码的调用关系和被调用关系;
根据所述抽象语法树,获取所述差异代码对应的调用代码以及被调用代码,并将所述差异代码、所述调用代码以及被调用代码同时作为所述目标代码,所述调用代码由所述调用关系确定,所述被调用代码由所述被调用关系确定;
其中,所述根据所述差异代码获取对应的目标代码的步骤之前,还包括:
检测所述差异代码中的无关代码,所述无关代码包括新增代码、非预设类型的代码以及不可执行的代码中的至少一个;
在检测到所述差异代码中的所述新增代码时,生成并输出显示信号,以提示用户手动处理所述新增代码;
去除所述差异代码中的所述无关代码。
2.如权利要求1所述的回归测试方法,其特征在于,所述获取所述目标代码对应的目标测试用例对应的用例信息的步骤包括:
根据预设代码与测试用例的映射关系,获取所述目标代码对应的目标测试用例;
获取所述目标测试对应的用例信息。
3.如权利要求2所述的回归测试方法,其特征在于,所述回归测试方法还包括:
在接收到测试指令时,获取所述测试指令对应的测试用例的用例信息;
发送包含所述测试用例的用例信息的执行指令至所述第一目标终端,以使所述第一目标终端运行所述测试用例以进行测试;
发送覆盖率检测指令至第二目标终端,以使所述第二目标终端获取所述第一目标终端运行所述测试用例时对应的代码覆盖率信息;
在接收到所述第二目标终端反馈的所述代码覆盖率信息时,根据所述代码覆盖率信息确定所述测试用例对应的预设代码,并关联存储所述预设代码与所述测试用例的映射关系。
4.如权利要求1所述的回归测试方法,其特征在于,所述检测到代码发生修改的步骤之前,所述回归测试方法还包括:
监听第三目标终端在持续集成和/或持续部署的过程中发出的信息;
在检测到所述第三目标终端发出代码编译成功的信息时,检测所述代码编译成功的信息对应的代码是否发生修改。
5.一种回归测试装置,其特征在于,所述回归测试装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的回归测试程序,所述回归测试程序被所述处理器执行时实现如权利要求1至4中任一项所述的回归测试方法的步骤。
6.一种回归测试系统,其特征在于,所述回归测试系统包括:
回归测试装置,所述回归测试装置为权利要求5所述的回归测试装置;
第一目标终端,用于在接收到包含用例信息的执行指令时,运行所述用例信息对应的目标测试用例以进行测试,并返回测试结果。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有回归测试程序,所述回归测试程序被处理器执行时实现如权利要求1至4中任一项所述的回归测试方法的步骤。
CN201911272653.4A 2019-12-11 2019-12-11 回归测试方法、装置、系统及计算机可读存储介质 Active CN111045944B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911272653.4A CN111045944B (zh) 2019-12-11 2019-12-11 回归测试方法、装置、系统及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911272653.4A CN111045944B (zh) 2019-12-11 2019-12-11 回归测试方法、装置、系统及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111045944A CN111045944A (zh) 2020-04-21
CN111045944B true CN111045944B (zh) 2023-06-13

Family

ID=70236036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911272653.4A Active CN111045944B (zh) 2019-12-11 2019-12-11 回归测试方法、装置、系统及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111045944B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813684A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种web前端组件的测试方法、测试装置及测试设备
CN112379888A (zh) * 2020-12-02 2021-02-19 北京皮尔布莱尼软件有限公司 一种代码变更分析方法
CN112506786B (zh) * 2020-12-15 2022-04-19 西安中朗智控科技有限公司 一种回归测试方法和回归测试装置
CN112597046A (zh) * 2020-12-29 2021-04-02 上海商汤智能科技有限公司 测试方法、装置、计算机设备及存储介质
CN112860544B (zh) * 2021-01-21 2022-09-30 南威软件股份有限公司 一种代码检测方法、装置、设备和计算机可读存储介质
CN113190432A (zh) * 2021-03-16 2021-07-30 Oppo广东移动通信有限公司 代码测试方法、装置、终端及存储介质
CN113050926B (zh) * 2021-03-24 2024-03-05 中国工商银行股份有限公司 一种代码同步变更的确认方法、装置和设备
CN113190448B (zh) * 2021-05-06 2022-11-04 网易(杭州)网络有限公司 测试代码更新方法及装置、电子设备、存储介质
CN115203064A (zh) * 2022-09-19 2022-10-18 北京探境科技有限公司 代码检测方法、装置、计算机设备及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423214A (zh) * 2017-04-18 2017-12-01 恒生电子股份有限公司 软件回归测试用例获取方法、装置及存储介质和电子设备
CN110413506B (zh) * 2019-06-19 2023-02-03 平安普惠企业管理有限公司 测试用例推荐方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111045944A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
CN111045944B (zh) 回归测试方法、装置、系统及计算机可读存储介质
CN111625839A (zh) 第三方组件漏洞检测方法、装置、设备及计算机存储介质
CN110908888B (zh) 服务器测试方法及装置
CN110569159A (zh) 挡板生成方法、装置、设备及计算机存储介质
CN112241360A (zh) 一种测试用例生成方法、装置、设备及存储介质
CN113448854A (zh) 一种回归测试方法和装置
CN111309602A (zh) 一种软件测试方法、装置及系统
CN112069070A (zh) 一种页面检测方法、装置、服务器及计算机可读存储介质
CN110928780A (zh) 一种代码质量控制方法、装置、计算机设备及存储介质
CN110908708B (zh) 一种代码发布方法、装置和系统
CN109960656B (zh) 程序的检测方法、装置及电子设备
CN111104323A (zh) 应用程序的功能测试方法、系统、代理服务器及存储介质
CN116431522A (zh) 一种低代码对象存储网关自动化测试方法及系统
CN111124915B (zh) 覆盖率检测方法、覆盖率检测装置及存储介质
CN113495750B (zh) 一种设备的升级检测方法、装置及服务器
CN112015645A (zh) web系统的功能测试方法、装置和电子设备
CN112346981A (zh) 联调测试覆盖率检测方法及系统
CN111045724A (zh) 调用链信息的查询方法、装置和可读存储介质
CN110704483A (zh) 用户路由流程定位方法、设备、存储介质及装置
CN114817077B (zh) 测试质量及规范的判断方法、系统和网络设备
CN109491696B (zh) 增量源码确定方法、装置及系统
CN110602057B (zh) 服务器登录审批方法及装置、设备、存储介质
CN115454836A (zh) 一种代码覆盖率的统计方法、系统、终端及存储介质
CN116361194B (zh) 异常代码识别方法、系统、电子设备及存储介质
CN117155768A (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
GR01 Patent grant
GR01 Patent grant