CN118035095A - 业务处理对象的测试方法、装置、计算机设备、存储介质 - Google Patents
业务处理对象的测试方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN118035095A CN118035095A CN202410180972.7A CN202410180972A CN118035095A CN 118035095 A CN118035095 A CN 118035095A CN 202410180972 A CN202410180972 A CN 202410180972A CN 118035095 A CN118035095 A CN 118035095A
- Authority
- CN
- China
- Prior art keywords
- information
- test
- input
- external
- tested object
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 217
- 238000000034 method Methods 0.000 title claims abstract description 101
- 238000012545 processing Methods 0.000 title abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 59
- 238000004088 simulation Methods 0.000 claims abstract description 59
- 238000004590 computer program Methods 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims description 61
- 230000001419 dependent effect Effects 0.000 claims description 34
- 238000002347 injection Methods 0.000 claims description 28
- 239000007924 injection Substances 0.000 claims description 28
- 238000005259 measurement Methods 0.000 claims description 6
- 238000010998 test method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000002955 isolation Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual 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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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/3692—Test management for test results analysis
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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为一个实施例中业务处理对象的测试方法的案例执行原理示意图;
图7为一个实施例中业务处理对象的测试方法的比对及模拟过程原理示意图;
图8为一个实施例中业务处理对象的测试装置的结构框图;
图9为一个实施例中计算机设备的内部结构图;
图10为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
需要说明的是,本申请公开的业务处理对象的测试方法、装置、计算机设备、存储介质和计算机程序产品可应用于金融科技领域,也可用于除金融科技领域之外的任意领域。
本申请实施例提供的业务处理对象的测试方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种业务处理对象的测试方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
S201,获取针对被测对象预生成的测试案例。
其中,被测对象为需进行测试的对象,比如,在银行等金融系统中用于进行业务办理的业务处理对象,具体地,可以为信用卡开通电子银行的服务器设备。
其中,测试案例包括实际输入条件和预期输出结果,其中,实际输入条件又称为特定条件,表示在实际的交易业务环境下向被测对象输入的信息,预期输出结果又称为预期结果。
其中,实际输入条件包括向被测对象输入的交易输入信息和至少一个外部依赖输入信息,预期输出结果表征被测对象在实际运行环境中对实际输入条件的响应情况。
其中,交易输入信息又称为交易输入,表征被测对象从交易入口输入的信息。
其中,外部依赖输入信息为与被测对象连接的外部依赖在实际运行环境下向被测对象输入的信息。
示例性地,通过字节码注入等方式,采集一笔交易过程中被测对象入口的输入输出报文,以及外部接口、数据库等输入输出报文,以唯一案例id组织这些报文,形成1个案例。
S202,根据各外部依赖输入信息对被测对象的外部依赖进行模拟,获得外部依赖模拟信息。
其中,外部依赖模拟信息用于模拟外部依赖向被测对象输入的信息。
S203,将外部依赖模拟信息和交易输入信息,作为测试输入条件输入至被测对象,获取被测对象响应于测试输入条件输出的测试输出结果。
S204,根据测试输出结果和预期输出结果,确定针对被测对象的测试结果。
其中,测试输出结果指的是在案例执行阶段被测对象的输出结果,测试结果指的是将测试输出结果和预期输出结果进行比对后得到的测试效果,比如,测试结果为被测对象功能正常。
上述业务处理对象的测试方法中,首先获取针对被测对象预生成的测试案例,然后根据各外部依赖输入信息对被测对象的外部依赖进行模拟,获得外部依赖模拟信息;外部依赖模拟信息用于模拟外部依赖向被测对象输入的信息,进而将外部依赖模拟信息和交易输入信息,作为测试输入条件输入至被测对象,获取被测对象响应于测试输入条件输出的测试输出结果,最后根据测试输出结果和预期输出结果,确定针对被测对象的测试结果,通过单笔交易采集被测对象与外部依赖的交互信息,利用具有唯一性的案例标识,形成针对该案例的稳定的实际输入条件,让被测对象成为影响实际测试结果的唯一因素,通过检查测试输出结果和预期输出结果来判断结果正确性,能够在一笔依赖隔离的测试内,实现对被测对象调用外部依赖正确性的验证,摆脱外部依赖的影响,提升了计算机测试方法的测试效率。
在一个实施例中,获取针对被测对象预生成的测试案例,包括:获取每次业务交易过程中输入到被测对象的实际输入条件;获取被测对象响应于实际输入条件输出的预期输出结果;生成案例标识,并基于案例标识将实际输入条件和预期输出结果进行汇总,得到测试案例。
其中,每次业务交易过程表示本申请中的案例的采集和生成是在一笔真实的业务交易过程中进行的,便于后续在测试的同时完成数据正确性校验。
其中,预期输出结果包括与交易输入信息对应的交易输出信息、与外部依赖输入信息对应的外部依赖输出信息。
其中,案例标识指的是在案例生成过程中,为各案例设置的唯一标识,用于表征每个案例的唯一性。
示例性地,采集一笔交易过程中被测对象入口的输入输出报文,以及外部接口、数据库等输入输出报文,以唯一案例id组织这些报文,形成1个案例。
本实施例中,首先获取每次业务交易过程中输入到被测对象的实际输入条件,然后获取被测对象响应于实际输入条件输出的预期输出结果,最后生成案例标识,并基于案例标识将实际输入条件和预期输出结果进行汇总,得到测试案例,利用案例标识,形成针对该案例的稳定的特定条件,让被测对象成为影响实际测试结果的唯一因素,在测试的同时完成一致性校验,提升测试的效率。
在一个实施例中,将外部依赖模拟信息和交易输入信息,作为测试输入条件输入至被测对象,包括:获取测试案例中外部依赖输入信息对应的案例标识;
查询得到与案例标识对应的外部依赖模拟信息和交易输入信息;将同一案例标识对应的外部依赖模拟信息和交易输入信息,作为测试输入条件,输入至被测对象。
其中,外部依赖模拟信息是通过mock技术模拟得到的外部依赖要输入的信息,交易输入信息为实际发生的交易信息。
示例性地,以相同入口调用触发被测对象,被测对象运行过程遇到案例生成时相同的外部依赖,在mock的同时,对调用报文进行一致性比对。
需要说明的是,在本实施例中,交易输入信息可以为真实测试场景下的交易信息,外部依赖模拟信息为模拟出的外部依赖的输入信息。
本实施例中,首先获取测试案例中外部依赖输入信息对应的案例标识,然后查询得到与案例标识对应的外部依赖模拟信息和交易输入信息,最后将同一案例标识对应的外部依赖模拟信息和交易输入信息,作为测试输入条件,输入至被测对象,在对外部依赖进行模拟的基础上,将测试过程和真实环境下的单笔交易进行结合,在测试的同时完成一致性校验,提升测试的效率。
在一个实施例中,获取每次业务交易过程中输入到被测对象的实际输入条件,包括:获取各业务交易过程中输入到被测对象的外部服务的响应信息和数据库返回信息;将各外部服务的响应信息和数据库返回信息进行汇总,得到外部依赖输入信息;根据外部依赖输入信息和交易输入信息,确定实际输入条件。
其中,外部依赖包括两种类别,外部服务和数据库,外部服务的响应信息又称为外部服务的响应,数据库返回信息又称为数据库的返回。
示例性地,特定条件包括交易输入、外部服务的响应、数据库的返回。
本实施例中,首先获取各业务交易过程中输入到被测对象的外部服务的响应信息和数据库返回信息,然后将各外部服务的响应信息和数据库返回信息进行汇总,得到外部依赖输入信息,最后根据外部依赖输入信息和交易输入信息,确定实际输入条件,将至少一个外部服务和数据库作为外部依赖的一部分,在实际输入条件的确定过程中,综合考虑多数量和多类型的外部依赖,提升了测试过程的全面性,进而提升了测试结果的科学性。
在一个实施例中,获取被测对象响应于实际输入条件输出的预期输出结果,包括:获取被测对象响应于外部服务的响应信息输出的外部服务调用信息;获取被测对象响应于数据库返回信息输出的数据库操作信息;将各外部服务调用信息和数据库操作信息进行汇总,得到外部依赖输出信息;根据外部依赖输出信息和交易输出信息,确定预期输出结果。
其中,外部服务调用信息又称为外部服务的调用,数据库操作信息又称为数据库的操作,交易输出信息又称为交易输入。
示例性地,预期结果包括交易输出、对外部服务的调用、数据库的操作,与特定条件相比,可知交易输出和交易输入相对应,对外部服务的调用与外部服务的响应相对应,数据库的操作与数据库的返回相对应。
本实施例中,首先获取被测对象响应于外部服务的响应信息输出的外部服务调用信息,然后获取被测对象响应于数据库返回信息输出的数据库操作信息,进而将各外部服务调用信息和数据库操作信息进行汇总,得到外部依赖输出信息,最后根据外部依赖输出信息和交易输出信息,确定预期输出结果,将至少一个外部服务和数据库作为外部依赖的一部分,在预期输出结果的确定过程中,综合考虑多数量和多类型的外部依赖,提升了测试过程的全面性,进而提升了测试结果的科学性。
在一个实施例中,根据测试输出结果和预期输出结果,确定针对被测对象的测试结果,包括:根据测试输出结果确定实测调用报文;根据预期输出结果确定案例调用报文;将实测调用报文与案例调用报文进行一致性比对,得到针对被测对象在当前业务交易过程中的测试结果。
示例性地,将案例的返回作为实际执行过程中mock的返回,进而将案例和实际执行过程的调用信息进行一致性对比,得到测试结果。
本实施例中,首先根据测试输出结果确定实测调用报文,然后根据预期输出结果确定案例调用报文,进而将实测调用报文与案例调用报文进行一致性比对,得到针对被测对象在当前业务交易过程中的测试结果,将实际检测到和案例中的调用报文进行对比,提升了一致性对比的准确性,进而提升了测试结果的准确性。
在一个实施例中,方法还包括:获取预配置的字节码注入文件;启用字节码注入工具,以在类文件加载过程中将字节码注入文件插入到被测对象的目标程序中;在目标程序运行的情况下,执行字节码注入文件,拦截得到被测对象的各接口处的输入输出报文;根据输入输出报文生成测试案例。
示例性地,通过字节码注入等方式,采集一笔交易过程中被测对象入口的输入输出报文。具体地,当使用字节码注入功能时,计算机执行的过程可以分为以下几个步骤:
加载被测对象的类文件:当程序启动时,类加载器会加载被测对象的类文件。在加载类文件的过程中,字节码注入工具会介入,对类文件进行修改,插入字节码注入代码。
字节码修改:在类文件加载的过程中,字节码注入工具会将编写好的字节码注入代码插入到被测对象的方法中。
执行被测对象的方法:当程序执行到需要被测对象的方法时,运行时环境会根据被测对象的字节码文件执行相应的方法。在执行方法的过程中,字节码注入代码会拦截并记录入口的输入输出报文。
数据处理:字节码注入代码拦截并记录入口的输入输出报文后,数据会被收集并进行分析和处理,以获取所需的信息。
本实施例中,字节码注入技术可以在程序执行过程中动态地修改和监控程序的行为,从而实现对被测对象入口的输入输出报文的采集。在计算机执行的角度上,字节码注入工具通过修改类文件的方式,实现了对程序行为的动态修改和监控,提升了报文数据的采集效率。
在另一个实施例中,如图3所示,提供了一种业务处理对象的测试方法,包括以下步骤:
S301,获取每次业务交易过程中输入到被测对象的实际输入条件。
S302,获取被测对象响应于实际输入条件输出的预期输出结果。
S303,生成案例标识,并基于案例标识将实际输入条件和预期输出结果进行汇总,得到测试案例。
S304,获取测试案例中外部依赖输入信息对应的案例标识。
S305,查询得到与案例标识对应的外部依赖模拟信息和交易输入信息。
S306,将同一案例标识对应的外部依赖模拟信息和交易输入信息,作为测试输入条件,输入至被测对象。
需要说明的是,上述步骤的具体限定可以参见上文对一种业务处理对象的测试方法的具体限定,在此不再赘述。
为了便于本领域技术人员的理解,图4提供了一种业务处理对象的测试方法的案例模型原理示意图,图5提供了一种业务处理对象的测试方法的案例生成原理示意图,图6提供了一种业务处理对象的测试方法的案例执行原理示意图,图7提供了一种业务处理对象的测试方法的比对及模拟过程原理示意图。需要说明的是,图4、图5、图6和图7中的DB(database)指数据库;图6和图7中的mock的含义是模拟。
本申请提供了一种业务处理对象的测试方法,又称为隔离外部依赖同时确保依赖调用正确性的测试方式,克服了“现有依赖隔离技术,无法检验被测对象对依赖调用的正确性”的不足,能够在一次发起测试时,兼顾隔离外部依赖带来的测试稳定性,和对依赖调用的正确性的验证。
下面参考图4至图7,以一个具体的实施例详细描述业务处理对象的测试方法。值得理解的是,下述描述仅是示例性说明,而不是对申请的具体限制。
本申请提供的业务处理对象的测试方法,定义并设计一种案例模型以及生成、执行该种案例模型的方式。
其中,如图4所示,案例模型包括特定条件和预期结果,具体地,特定条件包括交易输入、外部服务的响应、数据库的返回;预期结果包括交易输出、对外部服务的调用、数据库的操作。
如图5所示,生成案例的过程包括:通过字节码注入等方式,采集一笔交易过程中被测对象入口的输入输出报文,以及外部接口、数据库等输入输出报文,以唯一案例id组织这些报文,形成1个案例。
如图6所示,执行案例的过程包括:在相同特定条件下,验证被测对象实际结果和预期结果是否一致。即以相同入口调用触发被测对象,被测对象运行过程遇到案例生成时相同的外部依赖,在mock的同时,对调用报文进行一致性比对。需要说明的是,图6中的DB(database)协议表为数据库的协议表。
如图7所示,比对&mock的过程包括:将案例的返回作为实际执行过程中mock的返回,进而将案例和实际执行过程的调用信息进行一致性对比,得到测试结果。
在一个实施例中,通过真实的外部依赖来营造特定条件,真实外部依赖不稳定(比如数据、质量等因素),是造成测试误报的根本原因;在本实施例中的依赖隔离机制,采取特定输入对应特定输出的key-value模式,作为某一种外部依赖挡板,当key-value数量增加,匹配耗时会增加,也容易互相制约,比如相同的key需要不一样的value返回的场景无法满足。另外,本实施例中,依赖隔离后,需要增加测试“被测对象对依赖调用的正确性”,需要投入额外的成本,避免出现被测对象调用外部依赖时传错参数的问题。
而本申请提供的业务处理对象的测试方法,通过单笔交易采集被测对象与外部依赖的交互信息,利用唯一案例id,形成针对该案例的稳定的特定条件,让被测对象成为影响实际测试结果的唯一因素。另外,本申请提供的业务处理对象的测试方法,通过检查交互信息(对外部依赖的调用报文)来判断结果正确性,能够在一笔依赖隔离的测试内,实现对被测对象调用外部依赖正确性的验证,摆脱外部依赖的影响。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的业务处理对象的测试方法的业务处理对象的测试装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个业务处理对象的测试装置实施例中的具体限定可以参见上文中对于业务处理对象的测试方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种业务处理对象的测试装置,包括:案例获取模块801、模拟模块802、测试模块803、测试结果确定模块804,其中:
案例获取模块801,用于获取针对被测对象预生成的测试案例;测试案例包括实际输入条件和预期输出结果;实际输入条件包括向被测对象输入的交易输入信息和至少一个外部依赖输入信息;预期输出结果表征被测对象在实际运行环境中对实际输入条件的响应情况;
模拟模块802,用于根据各外部依赖输入信息对被测对象的外部依赖进行模拟,获得外部依赖模拟信息;外部依赖模拟信息用于模拟外部依赖向被测对象输入的信息;
测试模块803,用于将外部依赖模拟信息和交易输入信息,作为测试输入条件输入至被测对象,获取被测对象响应于测试输入条件输出的测试输出结果;
测试结果确定模块804,用于根据测试输出结果和预期输出结果,确定针对被测对象的测试结果。
在一个实施例中,案例获取模块还用于:获取每次业务交易过程中输入到被测对象的实际输入条件;获取被测对象响应于实际输入条件输出的预期输出结果;预期输出结果包括与交易输入信息对应的交易输出信息、与外部依赖输入信息对应的外部依赖输出信息;生成案例标识,并基于案例标识将实际输入条件和预期输出结果进行汇总,得到测试案例。
在一个实施例中,测试模块还用于:获取测试案例中外部依赖输入信息对应的案例标识;查询得到与案例标识对应的外部依赖模拟信息和交易输入信息;将同一案例标识对应的外部依赖模拟信息和交易输入信息,作为测试输入条件,输入至被测对象。
在一个实施例中,案例获取模块还用于:获取各业务交易过程中输入到被测对象的外部服务的响应信息和数据库返回信息;将各外部服务的响应信息和数据库返回信息进行汇总,得到外部依赖输入信息;根据外部依赖输入信息和交易输入信息,确定实际输入条件。
在一个实施例中,案例获取模块还用于:获取被测对象响应于外部服务的响应信息输出的外部服务调用信息;获取被测对象响应于数据库返回信息输出的数据库操作信息;将各外部服务调用信息和数据库操作信息进行汇总,得到外部依赖输出信息;根据外部依赖输出信息和交易输出信息,确定预期输出结果。
在一个实施例中,测试结果确定模块还用于:根据测试输出结果确定实测调用报文;根据预期输出结果确定案例调用报文;将实测调用报文与案例调用报文进行一致性比对,得到针对被测对象在当前业务交易过程中的测试结果。
在一个实施例中,装置还用于:获取预配置的字节码注入文件;启用字节码注入工具,以在类文件加载过程中将字节码注入文件插入到被测对象的目标程序中;在目标程序运行的情况下,执行字节码注入文件,拦截得到被测对象的各接口处的输入输出报文;根据输入输出报文生成测试案例。
上述业务处理对象的测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务处理对象的测试方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种业务处理对象的测试方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9和图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(StaticRandom Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种业务处理对象的测试方法,其特征在于,所述方法包括:
获取针对被测对象预生成的测试案例;所述测试案例包括实际输入条件和预期输出结果;所述实际输入条件包括向所述被测对象输入的交易输入信息和至少一个外部依赖输入信息;所述预期输出结果表征所述被测对象在实际运行环境中对所述实际输入条件的响应情况;
根据各所述外部依赖输入信息对所述被测对象的外部依赖进行模拟,获得外部依赖模拟信息;所述外部依赖模拟信息用于模拟所述外部依赖向所述被测对象输入的信息;
将所述外部依赖模拟信息和所述交易输入信息,作为测试输入条件输入至所述被测对象,获取所述被测对象响应于所述测试输入条件输出的测试输出结果;
根据所述测试输出结果和所述预期输出结果,确定针对所述被测对象的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述获取针对被测对象预生成的测试案例,包括:
获取每次业务交易过程中输入到所述被测对象的所述实际输入条件;
获取所述被测对象响应于所述实际输入条件输出的所述预期输出结果;所述预期输出结果包括与所述交易输入信息对应的交易输出信息、与所述外部依赖输入信息对应的外部依赖输出信息;
生成案例标识,并基于所述案例标识将所述实际输入条件和所述预期输出结果进行汇总,得到所述测试案例。
3.根据权利要求2所述的方法,其特征在于,所述将所述外部依赖模拟信息和所述交易输入信息,作为测试输入条件输入至所述被测对象,包括:
获取所述测试案例中所述外部依赖输入信息对应的所述案例标识;
查询得到与所述案例标识对应的所述外部依赖模拟信息和所述交易输入信息;
将同一所述案例标识对应的所述外部依赖模拟信息和所述交易输入信息,作为所述测试输入条件,输入至所述被测对象。
4.根据权利要求2所述的方法,其特征在于,所述获取每次业务交易过程中输入到所述被测对象的所述实际输入条件,包括:
获取各业务交易过程中输入到所述被测对象的外部服务的响应信息和数据库返回信息;
将各所述外部服务的响应信息和所述数据库返回信息进行汇总,得到所述外部依赖输入信息;
根据所述外部依赖输入信息和所述交易输入信息,确定所述实际输入条件。
5.根据权利要求4所述的方法,其特征在于,所述获取所述被测对象响应于所述实际输入条件输出的所述预期输出结果,包括:
获取所述被测对象响应于所述外部服务的响应信息输出的外部服务调用信息;
获取所述被测对象响应于所述数据库返回信息输出的数据库操作信息;
将各所述外部服务调用信息和所述数据库操作信息进行汇总,得到所述外部依赖输出信息;
根据所述外部依赖输出信息和所述交易输出信息,确定所述预期输出结果。
6.根据权利要求1所述的方法,其特征在于,所述根据所述测试输出结果和所述预期输出结果,确定针对所述被测对象的测试结果,包括:
根据所述测试输出结果确定实测调用报文;
根据所述预期输出结果确定案例调用报文;
将所述实测调用报文与所述案例调用报文进行一致性比对,得到针对所述被测对象在当前业务交易过程中的所述测试结果。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取预配置的字节码注入文件;
启用字节码注入工具,以在类文件加载过程中将所述字节码注入文件插入到所述被测对象的目标程序中;
在所述目标程序运行的情况下,执行所述字节码注入文件,拦截得到所述被测对象的各接口处的输入输出报文;
根据所述输入输出报文生成所述测试案例。
8.一种业务处理对象的测试装置,其特征在于,所述装置包括:
案例获取模块,用于获取针对被测对象预生成的测试案例;所述测试案例包括实际输入条件和预期输出结果;所述实际输入条件包括向所述被测对象输入的交易输入信息和至少一个外部依赖输入信息;所述预期输出结果表征所述被测对象在实际运行环境中对所述实际输入条件的响应情况;
模拟模块,用于根据各所述外部依赖输入信息对所述被测对象的外部依赖进行模拟,获得外部依赖模拟信息;所述外部依赖模拟信息用于模拟所述外部依赖向所述被测对象输入的信息;
测试模块,用于将所述外部依赖模拟信息和所述交易输入信息,作为测试输入条件输入至所述被测对象,获取所述被测对象响应于所述测试输入条件输出的测试输出结果;
测试结果确定模块,用于根据所述测试输出结果和所述预期输出结果,确定针对所述被测对象的测试结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410180972.7A CN118035095A (zh) | 2024-02-18 | 2024-02-18 | 业务处理对象的测试方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410180972.7A CN118035095A (zh) | 2024-02-18 | 2024-02-18 | 业务处理对象的测试方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118035095A true CN118035095A (zh) | 2024-05-14 |
Family
ID=90999807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410180972.7A Pending CN118035095A (zh) | 2024-02-18 | 2024-02-18 | 业务处理对象的测试方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118035095A (zh) |
-
2024
- 2024-02-18 CN CN202410180972.7A patent/CN118035095A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112561690A (zh) | 信用卡分期业务接口的测试方法、系统、设备及存储介质 | |
CN116561003A (zh) | 测试数据生成方法、装置、计算机设备和存储介质 | |
CN116258597A (zh) | 单据处理方法、装置、计算机设备和存储介质 | |
CN118035095A (zh) | 业务处理对象的测试方法、装置、计算机设备、存储介质 | |
CN117331812A (zh) | 业务代码验证方法、装置、计算机设备、存储介质和产品 | |
CN117435651A (zh) | 测试数据处理方法、装置、计算机设备和存储介质 | |
CN117453561A (zh) | 测试脚本调用方法、装置、计算机设备和存储介质 | |
CN114327377B (zh) | 需求跟踪矩阵生成方法、装置、计算机设备及存储介质 | |
CN117130881A (zh) | 页面性能测试方法、装置、计算机设备和存储介质 | |
CN117319022A (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
CN116483721A (zh) | 医疗设备软件的测试方法、装置、计算机设备和存储介质 | |
CN117435478A (zh) | 程序逻辑功能检测方法、装置、计算机设备和存储介质 | |
CN117370160A (zh) | 代码审核方法、装置、计算机设备、存储介质和程序产品 | |
CN112395304A (zh) | 基于数据行为模拟的数据安全计算方法、系统及存储介质 | |
CN117390000A (zh) | 资源交换数据处理方法、系统、计算机设备和存储介质 | |
CN118170804A (zh) | 一种监管报送数据处理方法、装置以及计算机设备 | |
CN114579462A (zh) | 测试用例执行信息的确定方法、装置和计算机设备 | |
CN117455386A (zh) | 资源审核方法、装置、计算机设备及其存储介质 | |
CN117194216A (zh) | 测试案例生成方法、装置、计算机设备和存储介质 | |
CN116467208A (zh) | 界面自动测试方法、装置及计算机设备 | |
CN118193083A (zh) | 一种软件资源加载方法、装置、计算机设备、存储介质 | |
CN115718701A (zh) | 程序测试方法、装置、计算机设备和存储介质 | |
CN116661921A (zh) | 确定金融服务系统的信息展示页面的方法、装置和设备 | |
CN117132283A (zh) | 识别方法、装置、计算机设备、存储介质和程序产品 | |
CN118096339A (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 |