CN116991708A - 调用链路测试方法、系统、装置、电子设备及存储介质 - Google Patents

调用链路测试方法、系统、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116991708A
CN116991708A CN202310758692.5A CN202310758692A CN116991708A CN 116991708 A CN116991708 A CN 116991708A CN 202310758692 A CN202310758692 A CN 202310758692A CN 116991708 A CN116991708 A CN 116991708A
Authority
CN
China
Prior art keywords
target
test
current iteration
target object
iteration version
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
CN202310758692.5A
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.)
Shanghai Shizhuang Information Technology Co ltd
Original Assignee
Shanghai Shizhuang Information Technology 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 Shanghai Shizhuang Information Technology Co ltd filed Critical Shanghai Shizhuang Information Technology Co ltd
Priority to CN202310758692.5A priority Critical patent/CN116991708A/zh
Publication of CN116991708A publication Critical patent/CN116991708A/zh
Pending legal-status Critical Current

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/368Test management for test version control, e.g. updating test cases to a new software version
    • 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/3672Test management
    • G06F11/3692Test management for test results analysis
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

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)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种调用链路测试方法、系统、装置、电子设备及存储介质,该方法包括:根据目标对象的调用链路的变更信息,从目标对象所属的至少两个属性中,确定目标对象当前对应的目标属性以及目标属性的当前迭代版本,其中,当前迭代版本用于指示目标对象的变更后的调用链路;根据目标属性的当前迭代版本,确定目标对象在当前迭代版本中的质量风险,根据目标对象在当前迭代版本中的质量风险,从目标属性包括的测试用例集中确定目标对象对应的目标测试用例,其中,质量风险越高,目标测试用例的数量越多;根据目标对象对应的目标测试用例,测试当前迭代版本。该测试方法的测试效率及测试准确性均较高。

Description

调用链路测试方法、系统、装置、电子设备及存储介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种调用链路测试方法、系统、装置、电子设备及存储介质。
背景技术
在某些互联网业务中,需要在外部数据源或者外部服务中进行查询,获得外部数据源或者外部服务返回的查询结果。为了确保业务的顺利运行,需要在业务开展之前对外部数据源或者外部服务的调用链路进行测试。
目前,一般采用如下方式进行调用链路的测试:根据提供外部数据源或者外部服务的供应商的接口文档,对外部数据源或者外部服务的调用链路逐一进行手动调用测试。
但是,上述测试方法中,一方面,由于通过手动调用测试,测试效率较低,另一方面,这种测试方式只能实现简单的单节点调用,无法覆盖外部数据源或者外部服务的各个属性的功能的测试,测试过程存在一定的遗漏,导致测试准确性较低。
发明内容
本发明提供了一种调用链路测试方法、系统、装置、电子设备及存储介质,以解决相关技术中的调用链路测试方法测试效率低以及测试准确性低的技术问题。
根据本发明的一方面,提供了一种调用链路测试方法,应用于测试服务器中,包括:
根据目标对象的调用链路的变更信息,从所述目标对象所属的至少两个属性中,确定所述目标对象当前对应的目标属性以及所述目标属性的当前迭代版本;其中,所述当前迭代版本用于指示所述目标对象的变更后的调用链路;
根据所述目标属性的当前迭代版本,确定所述目标对象在所述当前迭代版本中的质量风险;
根据所述目标对象在当前迭代版本中的质量风险,从所述目标属性包括的测试用例集中确定所述目标对象对应的目标测试用例;其中,所述质量风险越高,所述目标测试用例的数量越多;
根据所述目标对象对应的目标测试用例,测试所述当前迭代版本。
根据本发明的另一方面,提供了一种调用链路测试系统,包括:管理服务器以及测试服务器;
所述测试服务器用于执行本发明任一实施例所述的调用链路测试方法;
管理服务器用于向所述测试服务器提供目标对象的配置信息,以使所述测试服务器根据所述目标对象对应的目标测试用例以及所述目标对象的配置信息,测试所述当前迭代版本。
根据本发明的又一方面,提供了一种调用链路测试装置,所述装置设置于测试服务器中,包括:
第一确定模块,用于根据目标对象的调用链路的变更信息,从所述目标对象所属的至少两个属性中,确定所述目标对象当前对应的目标属性以及所述目标属性的当前迭代版本;其中,所述当前迭代版本用于指示所述目标对象的变更后的调用链路;
第二确定模块,用于根据所述目标属性的当前迭代版本,确定所述目标对象在所述当前迭代版本中的质量风险;
第三确定模块,用于根据所述目标对象在当前迭代版本中的质量风险,从所述目标属性包括的测试用例集中确定所述目标对象对应的目标测试用例;其中,所述质量风险越高,所述目标测试用例的数量越多;
测试模块,用于根据所述目标对象对应的目标测试用例,测试所述当前迭代版本。
根据本发明的又一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的调用链路测试方法。
根据本发明的再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的调用链路测试方法。
本发明实施例提供一种调用链路测试方法、系统、装置、电子设备及存储介质,该方法包括:根据目标对象的调用链路的变更信息,从目标对象所属的至少两个属性中,确定目标对象当前对应的目标属性以及目标属性的当前迭代版本,其中,当前迭代版本用于指示目标对象的变更后的调用链路;根据目标属性的当前迭代版本,确定目标对象在当前迭代版本中的质量风险,根据目标对象在当前迭代版本中的质量风险,从目标属性包括的测试用例集中确定目标对象对应的目标测试用例,其中,质量风险越高,目标测试用例的数量越多;根据目标对象对应的目标测试用例,测试当前迭代版本。其具有以下技术效果:一方面,可以根据目标对象的调用链路的变更信息,从目标对象所属的多个属性中,确定其当前对应的目标属性,在确定目标测试用例时,是从目标属性包括的测试用例集中确定,可以实现根据目标对象的调用链路的变更信息,精准针对由变更信息确定的目标属性进行测试,实现了精准测试,提高了测试的准确性;另一方面,在确定目标测试用例时,是根据目标对象在当前迭代版本中的质量风险确定,质量风险越高,目标测试用例的数量越高,可以实现针对对应的质量风险较高的目标对象,采用更多的目标测试用例进行测试,进一步提高了测试的准确性;再一方面,本实施例提供的方式可以实现自动确定目标测试用例以及根据目标测试用例,测试当前迭代版本,相较于人工测试的方法,测试效率较高。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的调用链路测试系统的结构示意图;
图2为本发明实施例一提供的调用链路测试方法的流程图;
图3为对象的属性维度的示意图;
图4为对象的属性维度下各个属性的示意图;
图5为对象的请求入参的示意图;
图6为各属性对象的测试用例集的示意图;
图7为管理服务器与供应商、数据源的关系;
图8为随机抽数过程的示意图;
图9为测试结果的示意图;
图10为本发明实施例二提供的调用链路测试方法的流程图;
图11A为针对对象手动自测的流程示意图;
图11B为针对对象手动自测的场景示意图;
图12为SonarQube基本工作流程组件的交互示意图;
图13为本发明实施例提供的一种调用链路测试装置的结构示意图;
图14是实现本发明实施例的调用链路测试方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序或者场景中实施。此外,术语“包括”以及它的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本发明实施例提供的调用链路测试系统的结构示意图。如图1所示,本实施例提供的调用链路测试系统可以包括管理服务器110以及测试服务器120。本实施例中的测试服务器120可以实现对目标对象的调用链路进行测试,以便后续业务能根据目标对象的调用链路成功获取到目标对象,实现业务的正常运行。更进一步地,本实施例中的测试服务器120可以实现在目标对象的调用链路发生变更时,实现根据目标对象的调用链路的变更信息,从目标对象所属的至少两个属性中,确定所述目标对象当前对应的目标属性以及所述目标属性的当前迭代版本,根据目标对象对应的目标属性的当前迭代版本,确定目标对象在该当前迭代版本中的质量风险,进而,根据质量风险,从目标属性包括的测试用例集中确定目标对象对应的目标测试用例,根据目标对象对应的目标测试用例,测试当前迭代版本。其中,质量风险越高,目标测试用例的数量越多。本实施例中的管理服务器110可以向测试服务器120提供目标对象的配置信息,以使测试服务器120根据目标对象对应的目标测试用例,测试当前迭代版本的过程中,根据目标对象对应的目标测试用例以及所述目标对象的配置信息,测试当前迭代版本。
可选地,测试服务器120在根据目标对象对应的目标测试用例以及所述目标对象的配置信息,测试当前迭代版本的过程中,还可以通过管理服务器110从存储服务器130中获取目标对象的返回参数。
本实施例提供的调用链路测试方法,可以实现以下技术效果:一方面,可以根据目标对象的调用链路的变更信息,从目标对象所属的多个属性中,确定其当前对应的目标属性,在确定目标测试用例时,是从目标属性包括的测试用例集中确定,可以实现根据目标对象的调用链路的变更信息,精准针对由变更信息确定的目标属性进行测试,实现了精准测试,提高了测试的准确性;另一方面,在确定目标测试用例时,是根据目标对象在当前迭代版本中的质量风险确定,质量风险越高,目标测试用例的数量越高,可以实现针对对应的质量风险较高的目标对象,采用更多的目标测试用例进行测试,进一步提高了测试的准确性;再一方面,本实施例提供的方式可以实现自动确定目标测试用例以及根据目标测试用例,测试当前迭代版本,相较于人工测试的方法,测试效率较高。
以下对本发明实施例提供的各个调用链路测试方法的实现过程进行详细描述。
图2为本发明实施例一提供的调用链路测试方法的流程图。本实施例可适用于对目标对象的调用链路进行测试的情况。该方法可以由调用链路测试装置来执行,该调用链路测试装置可以采用硬件和/或软件的形式实现,该调用链路测试装置可配置于电子设备中。示例性地,这里的电子设备可以为测试服务器。如图2所示,该方法包括如下步骤。
步骤201:根据目标对象的调用链路的变更信息,从目标对象所属的至少两个属性中,确定目标对象对应的目标属性的当前迭代版本。
本实施例中的目标对象可以包括:数据源、服务或者接口。本实施例中的目标对象指的是当前选定的进行调用链路测试的对象。
本实施例中的调用链路指的是可以获取到目标对象的返回参数的链路。换句话说,本实施例中的调用链路指的是可以查询到目标对象中的信息的链路。
一种可能的场景中,本实施例中调用链路的测试方法可以用于金融业务中。目标对象可以为金融业务中的数据源,例如,可以为存储有用户的信用信息的数据源。例如,在信贷业务中,可以从该数据源中查询某个用户的信用信息。当然,任何需要从数据源、接口或者服务中获取信息的业务都适用于本实施例提供的调用链路测试方法。
在正常业务开展前,通过本实施例提供的调用链路测试方法可以提高后续业务运行的稳定性。
本实施例中的目标对象所属的至少两个属性可以是至少两个不同属性维度下的属性。以下对对象的属性维度及属性作一介绍。
本实施例中可以根据知识分类属性中的陈述性(DECLARATIVE)、程序性(PROCEDURAL),并结合传统分类理论中的要素分类法,针对对象,提出以下问题:从哪来”(What is it from?),“做什么”(What to do?),“怎么做”(How to do it?)以及“需要什么”(What is needed?)。针对上述问题,逐一找到问题的答案:“从哪来”(What is itfrom?)--供应商提供,“做什么”(What to do?)--查询互联网业务中所需要的数据信息,“怎么做”(How to do it?)--调用链路的请求类型、查询方式,“需要什么”(What isneeded?)--需要传送哪些必填参数。根据上述的问题与答案,提取出本实施例中的对象的属性维度。
可选地,本实施例中的属性维度包括以下至少一项:请求参数、供应商标识、加密方式、请求类型以及调用方式。
图3为对象的属性维度的示意图。可选地,如图3所示,本实施例中对象的属性维度包括:请求参数、供应商标识、加密方式、请求类型以及调用方式。
图4为对象的属性维度下各个属性的示意图。如图4所示,对于供应商标识来说,其包括的各个属性即为各个供应商的标识。示例性地,本实施例中的供应商标识可以包括如下属性:供应商A、供应商B、供应商C……等。本实施例中的供应商可以为40多个或者40个以上。
对于请求类型来说,其包括的各个属性可以为不同的网络传输协议。示例性地,本实施例中的请求类型可以包括如下属性:超文本传输协议(Hypertext TransferProtocol,简称:HTTP),文件传输协议(File Transfer Protocol,简称:FTP),开源分布式服务框架(Dubbo)等。
对于调用方式来说,其包括的各个属性可以为不同网络传输协议下的数据传输编码方式。示例性地,本实施例中的调用方式可以包括如下属性:表单形式(例如,application/x-www-form-urlencoded),轻量级的数据交换格式(例如,application/json),基于XML—PRC的编码方式(text/xml),纯文本的形式(text/plain)等。
对于加密方式来说,其包括的各个属性可以为不同的加密方法。示例性地,本实施例中的加密方式可以包括如下属性:无加密,非对称加密算法(Ron Rivest、Adi Shamir、Leonard Adleman,简称:RSA),高级加密标准(Advanced Encryption Standard,简称:AES)等。
对于请求参数来说,其包括的各个属性可以为不同的参数数量。可选地,这里的参数数量为必需填写的参数数量。示例性地,本实施例中的请求参数可以包括如下属性:单要素,两要素,三要素等。其中,单要素表示请求参数的数量为一个,两要素表示请求参数的数量为两个,三要素表示请求参数的数量为三个,以此类推。
本实施例中的请求参数也可以称为请求入参。图5为对象的请求入参的示意图。图5中以对象为数据源为例进行说明。如图5所示,当请求入参为单要素时,一种方式中,假设数据源为企业股东数据源,则请求参数可以为企业名称。另一种方式中,假设数据源为反欺诈-价值分数据源,则请求参数可以为手机号。当请求入参为两要素时,一种方式中,假设数据源为高危客群数据源,则请求参数可以为手机号以及用户标识。另一种方式中,假设数据源为二次放号数据源,则请求参数可以为手机号以及日期。当请求入参为三要素时,假设数据源为信用信息,则请求参数可以为:姓名、用户标识以及手机号。
本实施例中,在传输请求参数时,可以按照对象的配置信息中规定的方式以密文形式传输。相对应地,对象返回的参数也可以按照密文形式传输。
在本实施例中,在步骤201之前,还可以包括如下步骤:根据不同的属性维度以及各个对象在不同属性维度下的属性,对各个对象分类,确定每个属性维度下的各属性对应的对象;针对每个属性维度下的属性,根据属性对应的对象的测试用例,形成属性对应的测试用例集。
可以理解,单个对象,因含有多个要素,会根据不同的属性维度,被划分到多个属性中,属于正常现象,符合预期。也即,对于同一个对象来说,其在不同属性维度下均可以对应一个属性,因此,一个对象可以具有至少两个属性。
一种实现方式中,在本实施例中,目标对象的调用链路的变更信息可以用于指示对目标对象的调用链路进行变更的内容以及该变更的内容所属的属性。根据该变更的内容以及该变更的内容所属的属性可以定位是对于目标对象的哪个属性中的内容进行变更,将该属性确定为目标对象当前对应的目标属性。
举例来说,假设属性维度包括:请求参数、供应商标识、加密方式、请求类型以及调用方式。假设目标对象的供应商标识为A,请求类型为http,调用方式为text/xml,加密方式为无加密,请求参数为手机号。当目标对象的调用链路的变更信息为针对请求类型http的代码或者逻辑进行变更时,确定该目标对象当前对应的目标属性为http。需要说明的是,该实现方式中,本实施例中的针对请求类型http所对应的内容进行变更,指的不是将http修改为请求类型下的其他属性,而指的是在不改变请求类型的属性的前提下,对http相关的代码进行改动或者逻辑进行优化。
另一种实现方式中,在本实施例中,目标对象的调用链路的变更信息可以用于指示对目标对象的调用链路进行变更的内容以及该变更的内容对应的属性。根据该变更的内容以及该变更的内容对应的属性可以定位是将目标对象的哪个属性进行变更,将变更后的属性确定为目标对象当前对应的目标属性。
举例来说,假设属性维度包括:请求参数、供应商标识、加密方式、请求类型以及调用方式。假设目标对象的供应商标识为A,请求类型为http,调用方式为text/xml,加密方式为无加密,请求参数为手机号。当目标对象的调用链路的变更信息为将请求类型http变更为ftp时,确定该目标对象当前对应的目标属性为ftp。
本实施例中,为了便于维护和测试,每个属性都对应一个迭代版本。本实施例中,可以根据目标对象的调用链路的变更信息,确定该目标对象当前对应的目标属性的当前迭代版本。该当前迭代版本用于指示所述目标对象的变更后的调用链路。
可选地,本实施例中的目标对象的调用链路的变更信息可以是目标对象的供应商提供的。
步骤202:根据目标属性的当前迭代版本,确定目标对象在当前迭代版本中的质量风险。
在确定出目标属性的当前迭代版本后,可以基于该当前迭代版本,确定出目标对象在该当前迭代版本中的质量风险。
本实施例中的质量风险用于表征当前迭代版本中相较于前一迭代版本的代码改动所产生的风险。目标对象在当前迭代版本中的质量风险越高,表示当前迭代版本的改动所产生的风险越大,因此,需要投入更大的测试资源。也即,需要更多数量的测试用例。
一种实现方式中,可以根据目标属性的当前迭代版本的代码缺陷信息,确定目标对象在当前迭代版本中的质量风险。例如,代码缺陷信息表征的代码缺陷越严重,则目标对象在当前迭代版本中的质量风险越高。
另一种实现方式中,可以根据目标属性的当前迭代版本的代码缺陷信息以及当前迭代版本的代码量,确定目标对象在当前迭代版本中的质量风险。例如,代码缺陷信息表征的代码缺陷越严重、当前迭代版本的代码量越大,则目标对象在当前迭代版本中的质量风险越高。
又一种实现方式中,可以根据目标属性的当前迭代版本的代码缺陷信息、当前迭代版本的代码量以及当前迭代版本的测试投资回报比,确定目标对象在当前迭代版本中的质量风险。例如,代码缺陷信息表征的代码缺陷越严重、当前迭代版本的代码量越大以及当前迭代版本的测试投资回报比越低,则目标对象在当前迭代版本中的质量风险越高。
再一种实现方式中,可以根据目标属性的当前迭代版本的代码缺陷信息、当前迭代版本的代码量、当前迭代版本的自测覆盖率以及当前迭代版本的测试投资回报比,确定目标对象在当前迭代版本中的质量风险。例如,代码缺陷信息表征的代码缺陷越严重、当前迭代版本的代码量越大、当前迭代版本的自测覆盖率越低以及当前迭代版本的测试投资回报比越低,则目标对象在当前迭代版本中的质量风险越高。这一实现方式将在实施例二中进行详细描述。
步骤203:根据目标对象在当前迭代版本中的质量风险,从目标属性包括的测试用例集中确定目标对象对应的目标测试用例。
其中,质量风险越高,目标测试用例的数量越多。
如在步骤201中所描述的,在对对象分类后,针对每个属性维度下的属性,根据属性对应的对象的测试用例,形成属性对应的测试用例集。也即,针对每个属性来说,可以将这个属性对应的对象的测试用例的集合,作为该属性对应的测试用例集。每个对象的测试用例可以是预先设置好的。
本实施例中的测试用例的覆盖场景可以包括两种场景:正常调用以及异常调用。在正常调用场景下,可以包括:查询有结果以及查询无结果。在异常调用场景下,可以包括:传参不合规,链路超时以及外部服务异常。在设置每个对象的测试用例时,可以根据被测试信息以及测试用例的覆盖场景,设计编写每个对象的测试用例。其中,被测试信息可以包括请求统一资源定位器(Uniform Resource Locator,简称:URL)、请求方式以及请求参数等。
图6为各属性对象的测试用例集的示意图。针对每个属性,均对应有测试用例集合。示例性地,如图6所示,供应商A对应有测试用例集合,供应商B对应有测试用例集合,请求类型http对应有测试用例集合,请求类型dubbo对应有测试用例集合,调用方式application/x-www-form-urlenco ded对应有测试用例集合,无加密方式对应有测试用例集合,2要素请求参数对应有测试用例集合,4要素请求参数对应有测试用例集合。
在确定出目标对象在当前迭代版本中的质量风险后,可以根据目标对象在当前迭代版本中的质量风险,从目标属性包括的测试用例集中确定目标对象对应的目标测试用例。
一种实现方式中,预先设置有质量风险与测试用例数量的映射关系,可以根据目标对象在当前迭代版本中的质量风险,从该映射关系中确定出目标对象在当前迭代版本中的质量风险对应的测试用例数量,之后根据该测试用例数量,从目标属性包括的测试用例集中确定出目标对象对应的目标测试用例。
在根据该测试用例数量,从目标属性包括的测试用例集中确定出目标对象对应的目标测试用例时,可以是随机从目标属性包括的测试用例集中抽取目标测试用例。目标测试用例的数量为目标对象在当前迭代版本中的质量风险对应的测试用例数量。
另一种实现方式中,步骤203的实现过程可以为:根据目标对象在当前迭代版本中的质量风险,以及,预设的质量风险与测试用例抽样比例的映射关系,确定目标对象对应的测试用例抽样比例,其中,该映射关系中,质量风险越高,对应的测试用例抽样比例越高;根据目标对象对应的测试用例抽样比例,从目标属性包括的测试用例集中确定目标对象对应的目标测试用例,其中,目标测试用例的数量为目标属性包括的测试用例集中测试用例的数量与目标对象对应的测试用例抽样比例之积。采用根据预设的质量风险与测试用例抽样比例的映射关系,以及,目标对象在当前迭代版本中的质量风险,确定目标测试用例的方式,可以实现各个属性共享该映射关系,实现简单。
一种可能的质量风险与测试用例抽样比例的映射关系可以如下表所示。其中,质量风险从质量风险等级A到质量风险等级E逐渐增高。
本实施例中,在从目标属性包括的测试用例集中确定目标对象对应的目标测试用例时,可以是通过随机抽数的方式从目标属性包括的测试用例集中确定目标对象对应的目标测试用例。
图8为随机抽数过程的示意图。如图8所示,本实施例提供的随机抽数过程包括如下步骤。
步骤801:输入测试用例抽样比例或者抽样数量。
步骤802:利用随机抽数算法,从目标属性包括的测试用例集中抽取目标对象对应的目标测试用例。
其中,目标测试用例的数量为抽样数量,或者,目标测试用例的数量为测试用例抽样比例与目标属性包括的测试用例集中测试用例的数量之积。
在该实现方式中,各个属性包括的测试用例集中的测试用例均具有固定的整数类型的标识,且该标识按照预设规则增加。
示例性地,本实施例中的随机抽数算法可以为Math.random函数。
在本实施例中,各个属性包括测试用例集,可以实现按照目标对象当前对应的目标属性的测试用例集中的目标测试用例,对当前迭代版本进行精准测试,提高测试效率。
对于供应商标识这个属性维度来说,各个属性对应有测试用例集,可以实现将单个供应商下所有的对象的测试用例集合在一起。在后续测试时,可以实现将单个供应商下所有的对象归到一个测试任务中。在特定供应商链路发生改变或者优化时,可集中验证单个供应商下所有对象的调用链路的情况,提升验证场景的精准针对性,同时提高测试效率。
对于请求类型这个属性维度来说,各个属性对应有测试用例集,可以实现请求类型中的某一类请求方式发生代码改动或者逻辑优化时,可较为精准地对于该类请求方式进行验证,按需所测,节省不必要的测试资源投入。
对于请求调用方式这个属性维度来说,各个属性对应有测试用例集,可以实现在某一类调用方式发生迭代更新时,集中资源对于该类调用方式进行验证,提高测试精准性。根据当前所接入的对象中,所使用的请求调用方式,application/x-www-form-urlencoded、application/json、text/plain、text/xml等对对象进行分类。其中每个分类包含所有使用该请求调用方式的对象。
对于加密方式这个属性维度来说,各个属性对应有测试用例集,可以实现在某一类加密方式需要验证测试时,快速响应,对于该类加密方式进行验证,提高测试时效性。根据当前所接入的对象中,所使用的加密方式,例如,无加密方式、RSA、AES等对对象进行分类。其中每个分类包含所有使用该加密方式的对象。
对于请求参数这个属性维度来说,各个属性对应有测试用例集,可以实现在某一类入参发生调整或需求迭代优化,需要验证测试时,快速响应,对于该类入参字段所关联的对象进行验证,提高测试精准覆盖率。根据当前所接入的对象中,所使用的必填入参个数,主要有单要素、两要素、三要素等对对象进行分类。其中每个分类包含所有使用该类字段的对象。
步骤204:根据目标对象对应的目标测试用例,测试当前迭代版本。
由于本实施例中的当前迭代版本用于指示目标对象的变更后的调用链路,因此,在步骤204中根据目标测试用例测试当前迭代版本,即相当于根据目标测试用例测试目标对象的变更后的调用链路。
可选地,测试服务器可以并行执行目标测试用例,或者,按照预设顺序或随机确定的执行顺序串行执行目标测试用例。本实施例并不以此为限。
可选地,步骤204可以通过如下方式实现:根据目标对象对应的目标测试用例,生成目标对象的目标测试任务;根据目标对象的目标测试任务,测试当前迭代版本。这种根据目标测试用例生成目标测试任务的实现方式可以提高测试效率。
可选地,在生成目标对象的目标测试任务后,可以定时自动执行该目标测试任务。或者,在测试人员的触发下执行该目标测试任务。本实施例并不以此为限。
可选地,在根据目标对象的目标测试任务,测试当前迭代版本时,可以根据目标对象的目标测试任务以及目标对象的配置信息,测试当前迭代版本。目标对象的配置信息可以用于指示目标对象的接口信息。
一种实现方式中,该目标对象的配置信息可以预先存储在测试服务器中。
另一种实现方式中,该目标对象的配置信息存储在管理服务器中。管理服务器可以向测试服务器提供目标对象的配置信息,以供测试服务器根据目标对象对应的目标测试用例以及目标对象的配置信息,测试当前迭代版本。
本实施例中的管理服务器可以规范管理各个对象,实现对象的统一接入、统一监控备案、统一对账,提升对象管控能力、对象质量监控能力、对象合规监管能力。以下以对象为数据源为例,对管理服务器的功能作一介绍。
图7为管理服务器与供应商、数据源的关系。如图7所示,管理服务器可以统一对接各个供应商的数据源。每个供应商可以包括一个或者多个数据源。图7中以供应商的数量为4个进行示例说明。例如,供应商A包括数据源A1、数据源A2以及数据源A3,供应商B包括数据源B1以及数据源B2,供应商C包括数据源C1,供应商D包括数据源D1、数据源D2以及数据源D3。可以预先在管理服务器中根据供应商提供的接口文档进行数据源配置。配置过程可以为:对请求类型、调用方式等基本信息进行配置,对请求参数和响应参数进行配置。在管理服务器中进行配置后,可以向测试服务器提供目标对象的配置信息,以供测试服务器根据目标对象对应的目标测试用例以及目标对象的配置信息,测试当前迭代版本。
可选地,在步骤204之后,本实施例提供的调用链路测试方法还可以包括如下步骤:获取每个目标测试用例对应的测试结果;当确定每个目标测试用例对应的测试结果均为通过时,确定当前迭代版本测试通过;当确定任意一个目标测试用例对应的测试结果为不通过时,确定当前迭代版本测试未通过。
图9为测试结果的示意图。如图9所示,在该示例中,假设目标测试用例的数量为12个,测试结果为6个成功、6个失败,则确定当前迭代版本测试未通过。需要对当前迭代版本进行代码缺陷修复或者验证。
一实现方式中,目标属性可以对应包括目标对象在内的多个对象。在本实施例中,由于根据目标对象的调用链路的变更信息,确定出的是目标属性的当前迭代版本,而目标属性可以对应多个对象。因此,在测试目标属性的当前迭代版本时,相当于实现了对该目标属性对应的所有对象的变更后的调用链路的测试。可确保具有一定共同点的对象,在需要进行测试验证时,测试人员能快速、有效、且精准性高的开展工作,并获得与预期目标所一致的测试结果。在验证目标对象的变更后的调用链路测试通过时,推算验证目标属性对应的其余的数据源同样可用。
现有自主风控建设较强依赖外部数据源的接入,而外部对象渠道众多、对接方式各式各样、多对象的调用复杂场景,在金融风控业务场景中验证方法不确定,对于测试人员理解成本较高,对于大部分测试人员都不能理解外部对象的调用链路的特性,缺少有效系统的方法,对相关需求进行验证。因业务需要,外部对象的数量已达成百上千的数量,实际操作过程中,缺少对于外部对象统一测试管理及验证重点,且测试维护成本亦会随着数据源数量增加也成倍增加。
本实施例提供的调用链路测试方法给测试人员提供了有效便捷的测试思路。其可以实现将互联网业务中,大量看似无共同点的对象进行系统化的分类,找出其中的共同点。之后,根据目标对象的调用链路的变更信息,从所述目标对象所属的至少两个属性中,确定所述目标对象当前对应的目标属性以及目标属性的当前迭代版本,根据质量风险确定目标测试用例,保证各对象在日常需求不同迭代程度下,均可精准有效的开展测试工作。
本实施例提供的调用链路测试方法,可以实现以下技术效果:一方面,可以根据目标对象的调用链路的变更信息,从目标对象所属的多个属性中,确定其当前对应的目标属性,在确定目标测试用例时,是从目标属性包括的测试用例集中确定,可以实现根据目标对象的调用链路的变更信息,精准针对由变更信息确定的目标属性进行测试,实现了精准测试,提高了测试的准确性;另一方面,在确定目标测试用例时,是根据目标对象在当前迭代版本中的质量风险确定,质量风险越高,目标测试用例的数量越高,可以实现针对对应的质量风险较高的目标对象,采用更多的目标测试用例进行测试,进一步提高了测试的准确性;再一方面,本实施例提供的方式可以实现自动确定目标测试用例以及根据目标测试用例,测试当前迭代版本,相较于人工测试的方法,测试效率较高。
图10为本发明实施例二提供的调用链路测试方法的流程图。本实施例在图2所示实施例及各种可选的实现方式的基础上,对步骤202的实现过程进行详细描述。如图10所示,本实施例提供的调用链路测试方法包括如下步骤。
步骤1001:根据目标对象的调用链路的变更信息,从目标对象所属的至少两个属性中,确定目标对象当前对应的目标属性以及目标属性的当前迭代版本。
其中,当前迭代版本用于指示目标对象的变更后的调用链路。
步骤1001与步骤201的实现过程和技术原理类似,此处不再赘述。
步骤1002:根据目标属性的当前迭代版本以及目标属性的历史迭代版本,确定目标属性对应的代码缺陷信息。
本实施例中的目标属性的历史迭代版本指的是当前迭代版本之前的迭代版本。一种实现方式中,该历史迭代版本可以为目标属性的所有历史迭代版本。另一种实现方式中,该历史迭代版本可以为当前迭代版本之前的预设数量的历史迭代版本,以减少计算工作量。示例性地,该预设数量可以为4或5等整数。
本实施例中代码缺陷信息用于表征代码缺陷的严重程度。可选地,代码缺陷信息可以为代码缺陷数。更具体地,可以为千行代码缺陷数。千行代码缺陷数指的是每千行代码中找到的代码缺陷数量。该数据可有效用于软件产品的质量检测,以帮助测试人员评估软件产品的质量,以便采取改进措施并完善软件测试的控制流程。
步骤1002的实现过程可以为:分别确定目标属性的当前迭代版本的代码缺陷数以及目标属性的历史迭代版本的代码缺陷数;将当前迭代版本的代码缺陷数以及历史迭代版本的代码缺陷数的统计参数,确定为目标属性对应的代码缺陷数。
当前迭代版本的代码缺陷数以及历史迭代版本的代码缺陷数的统计参数可以为各个迭代版本的代码缺陷数的平均值、中位值等。
步骤1003:根据目标属性的当前迭代版本,确定目标属性的当前迭代版本的代码量、当前迭代版本的自测覆盖率以及当前迭代版本的测试投资回报比。
当前迭代版本的代码量指的是当前迭代版本开发总计提交的代码数量。在根据目标属性的当前迭代版本,确定目标属性的当前迭代版本的代码量时,可以是在需要统计的目录下,执行统计代码量的语句,例如,find.-name*.java-exec wc-l{};|awk‘{s+=$1}END{print s}’实现确定出当前迭代版本的代码量。
根据目标属性的当前迭代版本,确定当前迭代版本的自测覆盖率时,可以通过SonarQube,来统计当前迭代版本中,开发提交的增量代码的自测覆盖率。本实施例中的自测覆盖率指的是研发人员针对当前迭代版本的自测覆盖率。本实施例中的自测覆盖率指的是当前迭代版本中源代码被研发人员自测的比例和程度,所得比例称为自测覆盖率。
以下介绍自测的流程和场景。
图11A为针对对象手动自测的流程示意图。如图11A所示,针对对象手动自测包括如下步骤:
步骤1101:选择被测对象手动测试。
步骤1102:输入请求参数。
步骤1103:判断服务请求是否正常。
步骤1104:若服务请求正常,则查询对象。
步骤1105:判断查询结果是否有内容。
步骤1106:若查询结果有内容,则返回查询结果。
步骤1107:测试结束。
步骤1108:若服务请求异常,则返回异常时对应的信息。
步骤1109:若查询结果无内容,则返回空内容。
图11B为针对对象手动自测的场景示意图。验证场景包括服务请求正常和服务请求异常两类。如图11B所示,在服务请求正常的情况下,有两种场景。场景一:查询结果有内容,请求输入为接口定义的必填参数,请求返回为接口定义的返回参数。返回的参数可以包括:链路调用正常,代码(code)等于200,数据为查询结果且有内容。场景二:查询结果无内容,请求输入为接口定义的必填参数,请求返回为接口定义的返回参数。返回的参数可以包括:链路调用正常,code等于200,数据为查询结果但无内容。
如图11B所示,在服务请求异常的情况下,有两种场景。场景一:外部服务或者链路异常,请求输入为接口定义的必填参数,请求返回为接口定义的返回参数。返回的参数可以包括:链路调用异常,code等于9999,消息(msg)为具体异常原因。场景二:必填参数传参异常,请求输入为接口定义的必填参数,但是有必填参数填写异常,例如,电话号码不合规。请求返回为接口定义的返回参数。返回参数可以包括:链路调用正常,code等于200,数据为某个预设错误代码,例如9999,msg为具体异常原因。
图12为SonarQube基本工作流程组件的交互示意图。如图12所述,SonarQube基本工作流程组件包括:扫描器(scanner),SonarQube服务器以及数据库(database)服务器。其中,扫描器用于将源文件进行代码分析,将分析报告发送给SonarQube服务器。SonarQube服务器用于处理分析报告,以及,进行后台管理。数据库服务器用于存储数据。SonarQube服务器可以实现从数据库服务器中读取数据或者向数据库服务器存储数据。
在根据目标属性的当前迭代版本,确定当前迭代版本的测试投资回报比(Returnon Investment,简称:ROI)时,可以是按照如下方式实现:根据目标属性包括的测试用例集中各测试用例的手动执行时间,测试用例集当前运行的总次数,以及,各测试用例的成本,确定当前迭代版本的测试投资回报比。
可选地,测试用例的成本包括:测试用例的开发时间和测试用例的维护时间。具体可以根据公式确定当前迭代版本的测试投资回报比。其中,ROI表示当前迭代版本的测试投资回报比,T(time)表示各测试用例的手动执行时间,N(number)表示测试用例集当前运行的总次数,D(development)表示各测试用例的开发时间,M(maintenance)表示各测试用例的维护时间。测试用例集当前运行的总次数指的是截止当前时间,该测试用例集运行了多少次。将测试用例集中的所有测试用例均运行完,计为一次。可以理解,当前迭代版本的测试投资回报比越高,越能体现使用测试用例集自动测试的价值。ROI模型提供的是一种自动化测试投资收益比的量化思路,方便明确哪些因素影响着自动化测试效益。
针对不同的迭代版本,测试用例集当前运行的总次数不同。举例来说,假设针对迭代版本1,测试用例集当前运行总次数为1。针对迭代版本1之后的迭代版本2,测试用例集当前运行总次数为2。针对迭代版本2之后的迭代版本3,测试用例集当前运行总次数为3。
步骤1004:根据目标属性对应的代码缺陷信息、当前迭代版本的代码量、当前迭代版本的自测覆盖率以及当前迭代版本的测试投资回报比,确定目标对象在当前迭代版本中的质量风险。
其中,目标属性对应的代码缺陷信息表征的代码缺陷越严重、当前迭代版本的代码量越大、当前迭代版本的自测覆盖率越低以及当前迭代版本的测试投资回报比越低,质量风险越大。
一种实现方式中,根据公式:
确定目标对象在当前迭代版本中的质量风险。其中,k1表示目标属性对应的代码缺陷数,f1表示目标属性对应的代码缺陷数的权重,k2表示当前迭代版本的自测覆盖率,f2表示当前迭代版本的自测覆盖率的权重,k3表示当前迭代版本的代码量,f3表示当前迭代版本的代码量的权重,k4表示当前迭代版本的测试投资回报比,f4表示当前迭代版本的测试投资回报比的权重。k3也可以为当前迭代版本的代码量进行处理后的值,例如k3为当前迭代版本的代码量除以100之后的值。示例性地,f1可以为4,f2可以为3,f3可以为2,f4可以为1。
根据该实现方式,s的值越大,表示质量风险越高。该质量风险也可以称为测试用例抽样权重分。
一种实现方案中可以对质量风险进行等级划分。一种可能的划分方式如下表所示。质量风险取值越高,质量风险等级越高,说明当前迭代代码改动所产生的风险越大,需要投入更大的测试资源。
质量风险取值 质量风险等级
0至5(包含5) A
5至10(包含10) B
10至15(包含15) C
15至20(包含20) D
20以上 E
在划分质量风险等级之后,可以确定质量风险等级与测试用例抽样比例之间的映射关系。其实现方式和技术原理与图2所示实施例中的类似,此处不再赘述。
步骤1005:根据目标对象在当前迭代版本中的质量风险,从目标属性包括的测试用例集中确定目标对象对应的目标测试用例。
其中,质量风险越高,目标测试用例的数量越多。
步骤1006:根据目标对象对应的目标测试用例,测试当前迭代版本。
步骤1005与步骤203、步骤1006与步骤204的实现过程和技术原理类似,此处不再赘述。
本实施例提供的调用链路测试方法中,可以实现根据目标属性对应的代码缺陷信息、当前迭代版本的代码量、当前迭代版本的自测覆盖率以及当前迭代版本的测试投资回报比,确定目标对象在当前迭代版本中的质量风险,考虑到的影响质量风险的因素较为全面,从而,提高了确定出的质量风险的准确性,进而,进一步提高了测试的准确性。
本实施例还可以提供一种调用链路系统。如图1所示。该测试系统中的测试服务器120用于执行图2及图10所示实施例及各种可选的实现方式中的调用链路测试方法,具备相应的技术效果,此处不再赘述。该测试系统中的管理服务器用于向测试服务器提供目标对象的配置信息,以使测试服务器根据目标对象对应的目标测试用例以及目标对象的配置信息,测试当前迭代版本。其中,该管理服务器还用于接收各对象的配置信息。
这种将目标对象的配置信息与测试用例分别设置在不同服务器中的实现方式,便于服务器内部的管理,以及便于对对象的管理,进一步提高了测试效率。
图13为本发明实施例提供的一种调用链路测试装置的结构示意图。该装置设置于测试服务器中。如图13所示,本实施例提供的调用链路测试装置包括如下模块:第一确定模块131、第二确定模块132、第三确定模块133以及测试模块134。
第一确定模块131,用于根据目标对象的调用链路的变更信息,从所述目标对象所属的至少两个属性中,确定所述目标对象当前对应的目标属性以及所述目标属性的当前迭代版本。
其中,所述当前迭代版本用于指示所述目标对象的变更后的调用链路。
第二确定模块132,用于根据所述目标属性的当前迭代版本,确定所述目标对象在所述当前迭代版本中的质量风险。
第三确定模块133,用于根据所述目标对象在当前迭代版本中的质量风险,从所述目标属性包括的测试用例集中确定所述目标对象对应的目标测试用例。
其中,所述质量风险越高,所述目标测试用例的数量越多。
测试模块134,用于根据所述目标对象对应的目标测试用例,测试所述当前迭代版本。
一实施例中,第二确定模块132具体包括:第一确定子模块、第二确定子模块以及第三确定子模块。
第一确定子模块,用于根据所述目标属性的当前迭代版本以及所述目标属性的历史迭代版本,确定所述目标属性对应的代码缺陷信息。
第二确定子模块,用于根据所述目标属性的当前迭代版本,确定所述目标属性的当前迭代版本的代码量、当前迭代版本的自测覆盖率以及当前迭代版本的测试投资回报比。
第三确定子模块,用于根据所述目标属性对应的代码缺陷信息、当前迭代版本的代码量、当前迭代版本的自测覆盖率以及当前迭代版本的测试投资回报比,确定所述目标对象在所述当前迭代版本中的质量风险。
其中,所述目标属性对应的代码缺陷信息表征的代码缺陷越严重、所述当前迭代版本的代码量越大、当前迭代版本的自测覆盖率越低以及所述当前迭代版本的测试投资回报比越低,所述质量风险越大。
一实施例中,所述代码缺陷信息包括代码缺陷数。第一确定子模块,具体用于:分别确定所述目标属性的当前迭代版本的代码缺陷数以及所述目标属性的历史迭代版本的代码缺陷数;将所述当前迭代版本的代码缺陷数以及所述历史迭代版本的代码缺陷数的统计参数,确定为所述目标属性对应的代码缺陷数。
一实施例中,在根据所述目标属性的当前迭代版本,确定当前迭代版本的测试投资回报比的方面,第二确定子模块,具体用于根据所述目标属性包括的测试用例集中各测试用例的手动执行时间,所述测试用例集当前运行的总次数,以及,各所述测试用例的成本,确定所述当前迭代版本的测试投资回报比。
一实施例中,所述测试用例的成本包括:测试用例的开发时间和测试用例的维护时间。第二确定子模块,具体用于根据公式确定所述当前迭代版本的测试投资回报比。其中,ROI表示所述当前迭代版本的测试投资回报比,T表示各测试用例的手动执行时间,N表示所述测试用例集当前运行的总次数,D表示各测试用例的开发时间,M表示各测试用例的维护时间。
一实施例中,第三确定子模块,具体用于根据公式确定所述目标对象在当前迭代版本中的质量风险。其中,k1表示所述目标属性对应的代码缺陷数,f1表示所述目标属性对应的代码缺陷数的权重,k2表示所述当前迭代版本的自测覆盖率,f2表示所述当前迭代版本的自测覆盖率的权重,k3表示所述当前迭代版本的代码量,f3表示所述当前迭代版本的代码量的权重,k4表示所述当前迭代版本的测试投资回报比,f4表示所述当前迭代版本的测试投资回报比的权重。
一实施例中,第三确定模块133具体用于:根据所述目标对象在当前迭代版本中的质量风险,以及,预设的质量风险与测试用例抽样比例的映射关系,确定所述目标对象对应的测试用例抽样比例,其中,所述映射关系中,质量风险越高,对应的测试用例抽样比例越高;根据所述目标对象对应的测试用例抽样比例,从所述目标属性包括的测试用例集中确定所述目标对象对应的目标测试用例。其中,所述目标测试用例的数量为所述目标属性包括的测试用例集中测试用例的数量与所述目标对象对应的测试用例抽样比例之积。
一实施例中,测试模块134具体用于:根据所述目标对象对应的目标测试用例,生成所述目标对象的目标测试任务;根据所述目标对象的目标测试任务,测试所述当前迭代版本。
一实施例中,该装置还包括第四确定模块以及第五确定模块。
第四确定模块,用于根据不同的属性维度以及各个对象在不同属性维度下的属性,对各个所述对象分类,确定每个属性维度下的各属性对应的对象。
第五确定模块,用于针对每个属性维度下的属性,根据所述属性对应的对象的测试用例,形成所述属性对应的测试用例集。
可选地,所述属性维度包括以下至少一项:请求参数、供应商标识、加密方式、请求类型以及调用方式。
可选地,所述目标对象包括:数据源、服务或者接口。
一实施例中,该装置还包括获取模块以及第六确定模块。
获取模块,用于获取每个目标测试用例对应的测试结果。
第六确定模块,用于当确定每个目标测试用例对应的测试结果均为通过时,确定所述当前迭代版本测试通过,当确定任意一个目标测试用例对应的测试结果为不通过时,确定所述当前迭代版本测试未通过。
本发明实施例所提供的调用链路测试装置可执行本发明任意实施例所提供的调用链路测试方法,具备执行方法相应的功能模块和有益效果。
图14是实现本发明实施例的调用链路测试方法的电子设备的结构示意图。本实施例中的电子设备10旨在表示各种形式的电子设备,诸如,膝上型计算机、台式计算机、工作台、电子设备、刀片式电子设备、大型计算机和其它适合的计算机。本文所示的部件、它们的连接和关系以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图14所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等。其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个调用链路测试方法及各种可选的实施方式。
在一些实施例中,调用链路测试方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的调用链路测试方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行调用链路测试方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或电子设备上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据电子设备)或者包括中间件部件的计算系统(例如,应用电子设备)或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)或者包括这种后台部件、中间件部件或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和电子设备。客户端和电子设备一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-电子设备关系的计算机程序来产生客户端和电子设备的关系。电子设备可以是云电子设备,又称为云计算电子设备或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (17)

1.一种调用链路测试方法,其特征在于,应用于测试服务器中,包括:
根据目标对象的调用链路的变更信息,从所述目标对象所属的至少两个属性中,确定所述目标对象当前对应的目标属性以及所述目标属性的当前迭代版本;其中,所述当前迭代版本用于指示所述目标对象的变更后的调用链路;
根据所述目标属性的当前迭代版本,确定所述目标对象在所述当前迭代版本中的质量风险;
根据所述目标对象在当前迭代版本中的质量风险,从所述目标属性包括的测试用例集中确定所述目标对象对应的目标测试用例;其中,所述质量风险越高,所述目标测试用例的数量越多;
根据所述目标对象对应的目标测试用例,测试所述当前迭代版本。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标属性的当前迭代版本,确定所述目标对象在所述当前迭代版本中的质量风险,包括:
根据所述目标属性的当前迭代版本以及所述目标属性的历史迭代版本,确定所述目标属性对应的代码缺陷信息;
根据所述目标属性的当前迭代版本,确定所述目标属性的当前迭代版本的代码量、当前迭代版本的自测覆盖率以及当前迭代版本的测试投资回报比;
根据所述目标属性对应的代码缺陷信息、当前迭代版本的代码量、当前迭代版本的自测覆盖率以及当前迭代版本的测试投资回报比,确定所述目标对象在所述当前迭代版本中的质量风险;其中,所述目标属性对应的代码缺陷信息表征的代码缺陷越严重、所述当前迭代版本的代码量越大、当前迭代版本的自测覆盖率越低以及所述当前迭代版本的测试投资回报比越低,所述质量风险越大。
3.根据权利要求2所述的方法,其特征在于,所述代码缺陷信息包括代码缺陷数;
所述根据所述目标属性的当前迭代版本以及所述目标属性的历史迭代版本,确定所述目标属性对应的代码缺陷信息,包括:
分别确定所述目标属性的当前迭代版本的代码缺陷数以及所述目标属性的历史迭代版本的代码缺陷数;
将所述当前迭代版本的代码缺陷数以及所述历史迭代版本的代码缺陷数的统计参数,确定为所述目标属性对应的代码缺陷数。
4.根据权利要求2所述的方法,其特征在于,根据所述目标属性的当前迭代版本,确定当前迭代版本的测试投资回报比,包括:
根据所述目标属性包括的测试用例集中各测试用例的手动执行时间,所述测试用例集当前运行的总次数,以及,各所述测试用例的成本,确定所述当前迭代版本的测试投资回报比。
5.根据权利要求4所述的方法,其特征在于,所述测试用例的成本包括:测试用例的开发时间和测试用例的维护时间;
所述根据所述目标属性包括的测试用例集中各测试用例的手动执行时间,所述测试用例集当前运行的总次数,以及,各所述测试用例的成本,确定所述当前迭代版本的测试投资回报比:
根据公式确定所述当前迭代版本的测试投资回报比;其中,ROI表示所述当前迭代版本的测试投资回报比,T表示各测试用例的手动执行时间,N表示所述测试用例集当前运行的总次数,D表示各测试用例的开发时间,M表示各测试用例的维护时间。
6.根据权利要求3所述的方法,其特征在于,所述根据所述目标属性对应的代码缺陷信息、当前迭代版本的代码量、当前迭代版本的自测覆盖率以及当前迭代版本的测试投资回报比,确定所述目标对象在所述当前迭代版本中的质量风险,包括:
根据公式确定所述目标对象在当前迭代版本中的质量风险;其中,k1表示所述目标属性对应的代码缺陷数,f1表示所述目标属性对应的代码缺陷数的权重,k2表示所述当前迭代版本的自测覆盖率,f2表示所述当前迭代版本的自测覆盖率的权重,k3表示所述当前迭代版本的代码量,f3表示所述当前迭代版本的代码量的权重,k4表示所述当前迭代版本的测试投资回报比,f4表示所述当前迭代版本的测试投资回报比的权重。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述根据所述目标对象在当前迭代版本中的质量风险,从所述目标属性包括的测试用例集中确定所述目标对象对应的目标测试用例,包括:
根据所述目标对象在当前迭代版本中的质量风险,以及,预设的质量风险与测试用例抽样比例的映射关系,确定所述目标对象对应的测试用例抽样比例;其中,所述映射关系中,质量风险越高,对应的测试用例抽样比例越高;
根据所述目标对象对应的测试用例抽样比例,从所述目标属性包括的测试用例集中确定所述目标对象对应的目标测试用例;其中,所述目标测试用例的数量为所述目标属性包括的测试用例集中测试用例的数量与所述目标对象对应的测试用例抽样比例之积。
8.根据权利要求1至6任一项所述的方法,其特征在于,所述根据所述目标对象对应的目标测试用例,测试所述当前迭代版本,包括:
根据所述目标对象对应的目标测试用例,生成所述目标对象的目标测试任务;
根据所述目标对象的目标测试任务,测试所述当前迭代版本。
9.根据权利要求1至6任一项所述的方法,其特征在于,所述根据目标对象的调用链路的变更信息,从所述目标对象所属的至少两个属性中,确定所述目标对象当前对应的目标属性以及所述目标属性的当前迭代版本之前,所述方法还包括:
根据不同的属性维度以及各个对象在不同属性维度下的属性,对各个所述对象分类,确定每个属性维度下的各属性对应的对象;
针对每个属性维度下的属性,根据所述属性对应的对象的测试用例,形成所述属性对应的测试用例集。
10.根据权利要求9所述的方法,其特征在于,所述属性维度包括以下至少一项:请求参数、供应商标识、加密方式、请求类型以及调用方式。
11.根据权利要求1至6任一项所述的方法,其特征在于,所述目标对象包括:数据源、服务或者接口。
12.根据权利要求1至6任一项所述的方法,其特征在于,所述根据所述目标对象对应的目标测试用例,测试所述当前迭代版本之后,所述方法还包括:
获取每个目标测试用例对应的测试结果;
当确定每个目标测试用例对应的测试结果均为通过时,确定所述当前迭代版本测试通过;
当确定任意一个目标测试用例对应的测试结果为不通过时,确定所述当前迭代版本测试未通过。
13.一种调用链路测试系统,其特征在于,包括:管理服务器以及测试服务器;
所述测试服务器用于执行权利要求1至12任一项所述的调用链路测试方法;
管理服务器用于向所述测试服务器提供目标对象的配置信息,以使所述测试服务器根据所述目标对象对应的目标测试用例以及所述目标对象的配置信息,测试所述当前迭代版本。
14.根据权利要求13所述的系统,其特征在于,所述管理服务器还用于接收各对象的配置信息。
15.一种调用链路测试装置,其特征在于,所述装置包括:
第一确定模块,用于根据目标对象的调用链路的变更信息,从所述目标对象所属的至少两个属性中,确定所述目标对象当前对应的目标属性以及所述目标属性的当前迭代版本;其中,所述当前迭代版本用于指示所述目标对象的变更后的调用链路;
第二确定模块,用于根据所述目标属性的当前迭代版本,确定所述目标对象在所述当前迭代版本中的质量风险;
第三确定模块,用于根据所述目标对象在当前迭代版本中的质量风险,从所述目标属性包括的测试用例集中确定所述目标对象对应的目标测试用例;其中,所述质量风险越高,所述目标测试用例的数量越多;
测试模块,用于根据所述目标对象对应的目标测试用例,测试所述当前迭代版本。
16.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-12中任一项所述的调用链路测试方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-12中任一项所述的调用链路测试方法。
CN202310758692.5A 2023-06-26 2023-06-26 调用链路测试方法、系统、装置、电子设备及存储介质 Pending CN116991708A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310758692.5A CN116991708A (zh) 2023-06-26 2023-06-26 调用链路测试方法、系统、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310758692.5A CN116991708A (zh) 2023-06-26 2023-06-26 调用链路测试方法、系统、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116991708A true CN116991708A (zh) 2023-11-03

Family

ID=88525654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310758692.5A Pending CN116991708A (zh) 2023-06-26 2023-06-26 调用链路测试方法、系统、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116991708A (zh)

Similar Documents

Publication Publication Date Title
US9558464B2 (en) System and method to determine defect risks in software solutions
CN108628748B (zh) 自动化测试管理方法和自动化测试管理系统
CN115237804A (zh) 性能瓶颈的评估方法、装置、电子设备、介质和程序产品
RU2532714C2 (ru) Способ получения данных при оценке ресурсов сети и устройство для осуществления способа
CN111858377A (zh) 测试脚本的质量评价方法、装置、电子设备及存储介质
CN116991708A (zh) 调用链路测试方法、系统、装置、电子设备及存储介质
CN110008098B (zh) 评估业务流程中的节点的运行状况的方法和装置
CN114138659A (zh) 一种测试案例处理方法及系统
CN113052509B (zh) 模型评估方法、模型评估装置、电子设备和存储介质
CN117313856B (zh) 一种可靠性测试规划系统及方法
CN113282299B (zh) 信息处理方法、装置、设备及存储介质
CN109614328B (zh) 用于处理测试数据的方法和装置
CN113052509A (zh) 模型评估方法、模型评估装置、电子设备和存储介质
CN112825061A (zh) 测试模型的构建方法和构建系统
CN116991717A (zh) 服务器功能实现方法、装置、存储介质及电子设备
CN117455684A (zh) 一种数据处理方法、装置、电子设备、存储介质及产品
CN114116519A (zh) 接口测试方法、装置、电子设备和存储介质
CN117130934A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN116610559A (zh) 一种测试方法、装置、电子设备及计算机可读存储介质
CN117371856A (zh) 数据质量的监控方法、装置、存储介质及计算机设备
CN114706856A (zh) 故障处理方法及装置、电子设备和计算机可读存储介质
CN114911770A (zh) 数据库迁移的评估方法、装置、设备及介质
CN117931673A (zh) 测试方法、装置、设备、介质及程序产品
CN117331841A (zh) 一种接口测试方法、装置、电子设备及存储介质
CN115757095A (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