CN113704117A - 一种算法测试系统、方法及装置 - Google Patents

一种算法测试系统、方法及装置 Download PDF

Info

Publication number
CN113704117A
CN113704117A CN202111010397.9A CN202111010397A CN113704117A CN 113704117 A CN113704117 A CN 113704117A CN 202111010397 A CN202111010397 A CN 202111010397A CN 113704117 A CN113704117 A CN 113704117A
Authority
CN
China
Prior art keywords
module
tested
online
node
algorithm
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.)
Granted
Application number
CN202111010397.9A
Other languages
English (en)
Other versions
CN113704117B (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.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online 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 Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202111010397.9A priority Critical patent/CN113704117B/zh
Publication of CN113704117A publication Critical patent/CN113704117A/zh
Application granted granted Critical
Publication of CN113704117B publication Critical patent/CN113704117B/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
    • 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为本说明书提供的算法测试装置示意图;
图7为本说明书提供的对应于图5的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
目前,各算法模块部署在服务提供方的服务器中,而对于服务提供方接收到的各业务请求,往往是服务提供方的服务器调用不同的算法模块来执行各业务请求对应的业务。且针对于同一业务,该业务可由不同模块的算法组成,也就是说,不同功能的算法模块被集成在服务器中,服务器可调用不同功能的算法模块来执行不同的业务。于是,算法开发人员在对算法进行再次开发时,可将开发完成的算法模块发送至集成人员,由集成人员根据接收到的算法模块,进行集成测试。
在进行算法测试时,因为算法输入数据为集成人员进行构造的,若出现问题,则首先需要集成人员打印系统的运行日志,获得算法输入数据。然后,集成人员将该输入数据发送至算法开发人员,由算法开发人员确定样本数据是否符合预期,若不符合,则集成人员需要重新构造输入数据。若符合,则算法开发人员需对算法进行排查。
但是,对算法进行排查的过程需要算法开发人员和工程人员同时进行,以保证测试的准确性,这也就使得算法测试往往会消耗大量的时间与精力,效率较低。
现有技术中需要集成人员生成算法的输入数据的原因是:算法模块是集成到整个系统中的,当调用算法模块时,需要从该系统的其他模块,或者外部系统中抓取该算法模块所需的输入数据,因此业务端的各类业务数据无法直接作为该算法模块的输入数据,而是需要对各业务数据进行加工组合,得到符合算法输入要求的输入数据,才可由该算法模块根据输入数据进行计算。其中,其他模块可为算法模块,也可为非算法模块(如,代码模块等),具体可为业务模块,风险控制模块等,其他系统可为通信系统、业务系统等,通常其他模块的模块类型和其他系统的系统类型可根据需要进行设置。
而本说明书中提供一种新的算法测试系统,在执行待测试模块对应的线上业务时,确定线上模块的输入数据,并基于该输入数据,生成测试数据,使得可基于真实数据对算法进行验证。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的算法测试系统的结构示意图,其中,该系统包括:线上服务器、消费节点以及沙箱节点。
从软件角度上来说,本说明书提供的一个或多个实施例中,该系统中的各节点是能够在服务器上运行的代码,通过运行各节点的代码实现各节点的功能,并且,在本说明书中,不同节点的代码之间是相互独立的,每个节点可通过预设的数据接口与其他节点进行通信或者数据传输,通过相互独立的节点使得可以单独对每个节点进行代码的迭代更新以及测试。
从硬件角度上来说,本说明书提供的一个或多个实施例中,各节点分别在不同的服务器上运行。
在本说明书提供的一个或多个实施例中,以该算法测试系统为单个线上服务器、单个消费节点、单个沙箱节点组成。该算法测试系统可用于测试待测试算法模块对应的测试业务。其中,该待测试算法模块的历史版本(即,线上版本)已经在线上服务器中运行,可接收到业务执行时的真实数据并对其进行处理,则该算法测试系统可获取该算法模块的线上版本的输入数据,并基于该输入数据对该算法模块进行测试。该待测试算法模块对应的线上版本,即为该待测试算法模块对应的线上模块,且该待测试算法模块和线上模块的输入数据的维度相同,输出数据的维度也相同。
该算法测试系统中的线上服务器可用于接收测试请求,其中,该服务提供方将不同的算法模块部署在该线上服务器中,由该服务器对各算法模块进行调用,来执行不同的线上业务。其中,该测试请求可由算法开发人员通过终端发起,也可为预设条件,当满足预设条件时自动发起,如,当待测试算法模块对应的代码上传至沙箱节点中时,由沙箱节点发起该测试请求。
该测试请求中携带有需要执行的待测试算法模块的标识,则该线上服务器可根据该待测试算法模块的标识,确定该待测试算法模块对应的线上业务,并在确定出的该线上业务被执行时,确定该线上业务对应的线上模块的输入数据。其中,该线上业务为调用该待测试算法模块在该线上服务器中的历史版本可执行的业务,显然,该线上模块为该待测试算法模块的历史版本。
当然,该算法测试系统可不仅仅在算法模块开发完成后,即将上线之前对该待测试算法模块进行测试,还可为该待测试算法模块有了一部分改进,算法开发人员想测试该算法模块是否可与其他算法模块兼容时,对该待测试算法模块进行测试。具体的该算法测试系统对该待测试算法模块进行测试的测试时机与测试内容可根据需要进行设置,本说明书对此不做限制。
在本说明书提供的一个或多个实施例中,该线上服务器可根据接收到的测试请求,生成测试数据。具体的,当确定出待测试算法模块对应的线上业务时,该服务器可对该线上业务进行监测,当监测到该线上业务被执行时,即,该线上业务对应的线上模块被调用时,确定该待测试算法模块对应的线上模块的输入数据。并根据该输入数据,以及该线上模块的标识,确定测试数据。
该线上服务器可在确定出测试数据后,将该测试数据发送至消费节点。其中,该线上服务器可直接根据该消费节点的地址,将该测试数据发送至消费节点,该线上服务器也可将该测试数据发送至服务器节点,由服务器节点对该测试数据进行存储,并当需要测试该待测试算法模块时,由该消费节点从服务器节点获取测试数据。
另外,为了便于确定测试数据而不影响线上服务器的运行效率等,该线上服务器还可预先在各算法模块之间的接口处部署有录制节点,也就是说,当调用该线上服务器中的任意一个算法模块时,该服务器都可将该算法模块对应的输入数据录制并存储。以便于后续基于该输入数据确定测试数据。
需要说明的是,上述是以一个线上业务对应一个线上模块为例进行说明的,但在实际应用中,通常为多个线上模块进行组合来实现某一线上业务的,因此,该线上服务器在确定线上业务对应的线上模块时,通常为从该线上业务对应的各线上模块中,确定该待测试算法模块对应的线上模块。
该系统中的消费节点,如前所述的,该消费节点可直接接收该线上服务器发送的测试数据,也可在当需要测试待测试算法模块时,从服务器节点获取该测试数据。则在接收到该测试数据后,该消费节点可将该测试数转发给该沙箱节点。
一般的,为了保证待测试算法模块的运行不会对线上服务器的各项业务产因此,因此,该算法测试系统中的沙箱节点,通常与线上服务器相互隔离,且可接收消费节点转发的测试数据。并在接收到测试数据后,根据该测试数据中的线上模块的标识,确定待测试算法模块,并将该测试数据中的输入数据输入到该待测试算法模块中,即,调用该待测试算法模块,得到该待测试算法模块输出的输入数据的算法执行结果。其中,沙箱节点为搭载有与线上服务器相同运行环境,但是不处理线上业务的服务器,也就是说,沙箱节点中部署有该线上服务器中除待测试算法模块对应的线上模块之外的其他模块,以保证待测试算法模块和线上模块的运行环境一致。
在生成算法执行结果后,为了能让算法开发人员更可基于该算法执行结果对该待测试模块进行调整,则该沙箱节点还可将该待测试算法模块的算法执行结果展示给用户。其中,该用户指的是服务提供方的工作人员,具体可为算法开发人员。该算法执行结果通常可包括待测试算法模块的输出数据、按照预设的调用规则将部署在沙箱环境中的各算法模块和该待测试算法模块进行调用后得到的输出数据、包含该待测试算法模块对输入数据处理时的各语句的执行时间,以及各语句对输入数据进行处理后得到的结果的执行日志、算法是否执行完成等。而对算法进行测试,通常为该待测试算法模块相较于线上模块进行了一部分的更新,则基于算法执行结果通常可对该算法的更新进行评价。其中,各算法模块的调用规则为预设的,具体可为各算法模块的调用顺序,可根据线上业务确定,具体的调用规则的形式和内容等可根据需要进行设置,本说明书对此不做限制。
以该待测试算法模块的更新目的是提高算法的执行效率为例,可首先判断该待测试算法模块的输出与线上模块的输出是否一致,以保证输出数据的正确率。然后将该待测试算法模块的执行时间与线上模块执行相应的输入数据的时间进行对比,判断该待测试算法模块的执行时间较之线上模块是否已经缩减。最后由算法开发人员对该待测试算法模块的执行时间进行分析,并判断该缩减的时间是否达到预期等。
当然,若出于其他目的对该待测试算法模块进行更新时,如,判断该待测试算法模块在同一时间内能够对多少输入数据进行处理时,还可获取该待测试算法模块对应的线上模块在历史上的一段时间内处理的各输入数据,并基于该输入数据确定测试数据,并将其转发至沙箱节点内,由沙箱节点基于该测试数据进行压测,并确定压测结果等。且若待测试算法模块在对测试数据进行处理时出现问题,还可对待测试算法模块进行调试,并确定调试日志,以排查出错误点。其中,压测结果和调试日志等都可为算法执行结果中的内容,算法执行结果具体包括哪些内容可以根据需要进行设置,本说明书对此不做限制。
需要说明的是,上述在沙箱环境中对待测试算法模块进行测试,可看作对待测试算法模块进行集成测试,也就是说,该系统可基于该沙箱环境和测试数据,确定待测试算法模块的执行结果,并对其执行结果与对应的线上模块的执行结果,进行对比判断,或由算法人员对执行结果进行分析等方式,确定待测试算法模块的测试结果,等同于现有技术中的集成测试。因此,本说明书中仅由算法人员便可完成集成测试这一步骤。
当然,上述由该算法测试系统直接将待测试算法模块的执行结果和线上模块的执行结果进行对比判断,是基于该待测试算法模块本次改进的方向对算法运行的结果没有影响的前提下执行的。如,待测试算法模块对应的线上业务为订单结算业务,则无论算法如何改进,其对应的结算结果都应该相同。
进一步的,该待测试算法模块对应的代码包还可部署在线上服务器中,当接收到测试请求时,该线上服务器可基于该带测试算法模块对应的线上模块的输入数据,以及该待测试算法模块对应的代码包,确定测试数据,并将该测试数据发送至消费节点,由消费节点将该测试数据转发至沙箱节点,并由沙箱节点根据接收到的测试数据中的待测试算法模块的代码包,将待测试算法模块部署在沙箱中,并调用该待测试算法模块,将该测试数据中的输入数据进行处理,得到处理结果,并在确定出待处理结果后,将该沙箱中的该待测试算法模块对应的算法删除,以保证沙箱运行环境的干净,避免该待测试算法模块对应其他待测试算法模块的运行结果造成影响。
需要说明的是,上述为该算法测试方法应用于对待测试算法模块进行测试为例进行说明,但本说明书提供的该算法测试方法,还可应用于代码测试中,具体的,线上服务器可基于待测试代码模块确定线上业务,并基于线上业务对应的线上模块,确定线上模块的输入数据。且当该线上业务对应多个线上模块时,确定出的该线上模块为与该待测试代码模块在执行该线上业务时具有相同功能的代码模块。
另外,在本说明书提供的一个或多个实施例中,为了方便管理,可令多个沙箱节点组成沙箱集群,则沙箱集群中的各沙箱节点可提供不完全相同的测试服务,如,沙箱节点1可提供A算法模块和B算法模块的测试服务,沙箱节点2可提供B算法模块和C算法模块的测试服务等。于是,当接收到测试数据时,该消费节点可根据测试数据中的该线上模块的标识,以及预先存储的线上模块与待测试算法模块之间的对应关系,确定用于测试该待测试算法模块的沙箱节点,作为目标沙箱节点,并向该目标沙箱节点转发给测试数据。目标沙箱节点可根据预存的线上模块和待测试算法模块的对应关系,确定接收到的测试数据中的线上模块的标识对应的待测试算法模块的标识,进而确定待测试算法模块,并将测试数据中的该输入数据作为输入,输入到待测试算法模块中,得到该待测试模块输出的该输入数据的算法执行结果。其中,提供算法模块的测试服务,表示该沙箱中可测试该待测试模块。如图2所示。
图2为本说明书提供的确定沙箱节点的示意图。图中,消费节点接收到测试数据中携带的线上模块的标识为算法a,编号1~6的矩形分别为第1~6沙箱节点,则沙箱集群中包含有多个沙箱节点。消费节点中可预存有线上模块的标识和沙箱节点的关系,如表1所示。
线上 沙箱节点 线上 沙箱节点
a、b 1 d 4
b、d 2 e 5
c 3 f 6
表1
表1中的线上为线上模块的标识。沙箱节点为沙箱节点的标识,则根据表1,可确定第1沙箱节点可对线上模块a和线上模块b对应的待测试模块进行测试,第2沙箱节点可对线上模块b和线上模块d对应的待测试模块进行测试,第3沙箱节点可对线上模块c对应的待测试模块进行测试,第4沙箱节点可对线上模块d对应的待测试模块进行测试,第5沙箱节点可对线上模块e对应的待测试模块进行测试,第6沙箱节点可对线上模块f对应的待测试模块进行测试。
则消费节点可通过预存的线上模块的标识和沙箱节点之间的对应关系,确定该测试数据中的线上模块a对应的待测试算法模块可由第1沙箱节点进行测试,于是,该消费节点可向第1沙箱节点发送测试数据。其中,目标沙箱节点中部署有该待测试模块对应的代码。于是,该测试请求还可为当沙箱节点部署待测试模块对应的代码成功时,向线上服务器自动发起的。
当然,在消费节点中,还可预存有待测试算法模块和线上模块的对应关系,则该消费节点可根据测试数据中的线上模块的标识,确定待测试算法模块的标识,进而基于待测试算法模块和沙箱节点之间的对应关系,从沙箱集群中确定测试该待测试算法模块的沙箱节点。
进一步的,还可能出现确定出的目标沙箱节点为多个的情况,如,沙箱节点1可提供A算法模块和B算法模块的测试服务,沙箱节点2可提供B算法模块和C算法模块的测试服务,则若待测试算法模块为B算法模块时,沙箱节点1和沙箱节点2都为目标沙箱节点。且沙箱节点的负载也会对测试效率造成影响,如,例如,可测试待测试模块A的两个沙箱节点中,一个沙箱节点已经连续工作了数个小时,其内存、硬盘等占用率高,且性能较之刚开始工作时,有所下降,而另一个沙箱节点几乎没有工作,若选择前一个沙箱节点执行该待测试模块,可能前者会因为负荷太高导致宕机的情况发生,因此,为了提高效率,该消费节点可基于各目标沙箱节点的负载,确定用于测试该待测试算法模块的目标沙箱节点。
具体的,该消费节点可根据接收到的测试数据,确定线上模块的标识,通过预存的线上模块与待测试算法模块之间的对应关系,确定待测试算法模块,进而从沙箱集群包含的各沙箱节点中,确定可用于测试该待测试算法模块的各沙箱节点,作为各目标沙箱节点,并向各目标沙箱节点分别发送第一负载查询请求。各目标沙箱节点可根据接收到的该第一负载查询请求,确定当前自身负载状态,并将负载状态返回至消费节点,则该消费节点可根据各目标沙箱节点分别返回的负载状态,从各目标沙箱节点中,选择负载状态最低的目标沙箱节点,作为测试该待测试算法模块的目标沙箱节点,并向该目标沙箱节点发送测试数据。
当然,为了保证沙箱节点的测试效率,该消费节点还可预设第一工作强度阈值,如,20%,当沙箱节点的负载占比小于20%时,可认为该沙箱节点处于空闲状态,则消费节点可从各目标沙箱节点中,确定负载占比低于第一工作强度阈值的目标沙箱节点,作为测试待测试算法模块的目标沙箱节点,并向该目标沙箱节点发送测试数据。当负载占比低于第一工作强度阈值的目标沙箱节点仍为多个时,该消费节点可选择负载最高、或负载最低、或随机选择一个目标沙箱节点来测试该待测试算法模块。当负载占比低于第一工作强度阈值的目标沙箱节点不存在时,该消费节点还可根据预设的第二工作强度阈值,如,80%,从各目标沙箱节点中,确定负载占比低于第二工作强度阈值且高于第一工作强度阈值的目标沙箱节点,作为测试该待测试算法模块的目标沙箱节点。其中,高于第二工作强度状态表示沙箱节点处于忙碌状态,可能会出现宕机的情况。若各目标沙箱节点的负载状态都高于第二工作强度阈值,则表示各目标沙箱节点都处于忙碌状态,则该沙箱节点可将测试数据进行存储,并根据预设的时间周期,向各目标沙箱节点发送第一负载查询请求,并当存在负载第一第二工作强度阈值的目标沙箱节点时,向该目标沙箱节点发送测试数据。
当然,该消费节点可通过预设的第一时间间隔,向沙箱节点轮询发送负载查询请求,还可由沙箱节点按照预设的第二时间间隔上报负载状态,来确定当前沙箱集群中的各沙箱节点的负载状态。于是,该消费节点还可根据确定出的执行待测试模块的各沙箱节点,确定各沙箱节点的负载状态,并根据确定出的各沙箱节点的负载,向沙箱集群的沙箱节点发送测试数据。
需要说明的是,上述确定沙箱节点的负载,以及基于沙箱节点的负载确定执行待测试算法模块的目标沙箱节点,并向其发送测试数据的方法,可根据需要进行设置,本说明书对此不做限制。
进一步的,由于算法模块在上线之前,通常要经过多个版本的测试,因此,在确定测试请求时,该测试请求中携带的待测试算法模块的标识中还可包括该待测试算法模块的版本标识,如,A-1可代表算法A的第1个版本。于是,该线上服务器可接收携带有待测试算法模块的标识的测试请求,并基于该测试请求中的待测试算法模块的标识确定线上业务对应的线上模块的输入数据,以及基于该输入数据、该待测试算法模块的标识和线上模块的标识,确定测试数据。则该消费节点可根据接收到的测试数据,确定线上模块的标识,根据预存的沙箱节点与线上模块的标识的对应关系,确定若干沙箱节点,再根据该待测试模块的标识,根据预存的该待测试模块的标识与沙箱节点的对应关系,从该若干沙箱节点中,确定执行该测试数据对应的测试服务的沙箱节点,并将该测试数据转发至沙箱节点进行测试。
当然,由于算法模块可对应有多个版本,对应的不同版本的待测试算法模块可以部署在同一个沙箱节点中,或者不同沙箱节点中。若均部署在不同沙箱节点中,则消费节点可预先存储待测试算法模块的标识与沙箱节点的对应关系,那么在接收到测试数据时,可仅根据该待测试算法模块的标识,确定执行该测试数据对应的测试服务的沙箱节点。
因此,在确定测试数据时,该线上服务器还可仅根据该待测试算法模块的标识和输入数据确定测试数据。则消费节点可基于该待测试算法模块的标识,将该测试数据转发至沙箱节点中。沙箱节点基于接收到的测试数据中的待测试算法模块的标识,确定待测试算法模块,并根据输入数据和待测试算法模块,确定算法执行结果。
另外,若对应的不同版本的待测试算法模块,部署在同一个沙箱节点中,那么消费节点仅根据预存的沙箱节点与线上模块的标识的对应关系,便可确定执行该测试数据对应的测试服务的沙箱节点。则该沙箱节点,在接收到测试数据后,可根据该待测试算法模块的标识,确定具体将测试数据发送至自身部署的哪个待测试算法模块中进行测试。
当然,若对应的不同版本的待测试算法模块,部分部署在同一个沙箱节点中,则仅根据测试数据中的线上模块的标识,也无法准确确定执行该测试数据对应的测试服务的沙箱节点,则该消费节点,可以根据待测试算法模块的标识,确定沙箱节点,接收测试数据的沙箱节点,也可根据待测试算法模块的标识,确定由自身部署的哪个待测试算法模块中进行测试。
更进一步,同一个待测试算法模块,可能被应用于系统中,执行不同的线上业务,接收同样结构的数据,并输出相应结构的数据。如,A算法模块对应的线上模块被用于优惠券业务和风控业务,由于风控业务需要根据实时业务数据等确定风险,而优惠券业务仅需要根据用户历史信息等确定发放的优惠券,因此,优惠券业务和风控业务接收到的数据不一致,但A算法模块对应的线上模块在执行风控业务和优惠券业务时,接收到的数据维度相同,并输出相应的同样维度的输出数据。因此,该线上服务器可接收携带有待测试算法模块对应的线上业务的标识的测试请求,则该线上服务器可基于该线上业务的标识,确定线上业务对应的线上模块,进而确定该线上模块的输入数据,并基于该输入数据、待测试算法模块的线上业务的标识和该待测试算法模块的线上模块的标识,确定测试数据。消费节点可根据该测试数据中的线上模块的标识,将该测试数据转发至沙箱节点。沙箱节点根据该测试数据中的线上模块的标识,确定待测试算法模块,根据待测试算法模块对应的线上业务的标识,确定沙箱节点中各算法模块的调用规则,并基于输入数据,确定算法执行结果。其中,各算法模块的调用规则为预设的,具体可根据线上业务确定。
当然,测试数据中可同时含有线上业务的标识,待测试算法模块的标识和输入数据等,也就是说,在确定目标沙箱节点时,不仅要根据该待测试算法模块对应的业务,还要基于该待测试算法模块对应的版本。于是,线上服务器可接收携带的待测试算法模块的标识和待测试算法模块对应的线上业务的标识的测试请求,并基于该待测试算法模块的标识和该待测试算法模块对应的线上业务的标识,确定输入数据,进而基于该输入数据、该线上业务的标识、该待测试算法模块的标识和线上模块的标识,确定测试数据。则消费节点可根据接收到的测试数据中的线上模块的标识、线上业务的标识的待测试算法模块对应的标识,确定用于测试该待测试算法模块的沙箱节点,作为目标沙箱节点,并将测试数据转发给目标沙箱节点。目标沙箱节点根据接收到的测试数据中的待测试算法模块的标识,确定待测试算法模块,根据线上业务的标识,确定调用规则,基于输入数据,确定算法执行结果。其中,具体的各沙箱节点提供的待测试模块的类型可根据需要进行设置,本说明书对此不做限制。
基于图1所示的算法测试系统,线上服务器当执行待测试模块对应的线上业务时,根据该线上模块对应的输入数据,以及该线上模块的标识,确定测试数据,并将该测试数据发送至消费节点,该消费节点将该测试数据转发给沙箱节点。沙箱节点,可根据该测试数据中的线上模块的标识,确定待测试模块,并调用该待测试模块处理该输入数据,得到该待测试模块输出的算法执行结果并展示。本系统通过获取待测试模块对应的在线业务使用的业务数据集生成测试数据,使得可基于真实的业务数据对该待测试模块进行调整,提高了调整后的该待测试模块上线时的使用效果。
另外,为了保证执行测试时的安全性,因此,沙箱节点往往与消费节点不处于一个网段,则该算法测试系统中还可包括路由设备。于是,该消费节点在接收到测试数据后,可根据沙箱节点的地址和测试数据,向路由设备发送分发请求。则路由设备可根据该分发请求中携带的沙箱节点的标识,将该测试数据转发给所述沙箱节点。
进一步的,沙箱集群中可能存在若干沙箱节点,于是,该消费节点可根据测试数据中的业务标识,确定用于执行该待测试模块的沙箱节点,并根据该沙箱节点的标识和测试数据,向路由节点发送分发请求。则路由节点可根据该分发请求中携带的沙箱节点的标识,将该测试数据转发至向沙箱节点。如图3所示。
图3为本说明书提供的算法测试系统的结构示意图。图中包括线上环境和沙箱环境两部分,线上环境包括线上服务器和消费节点,沙箱环境包含沙箱集群,沙箱集群中包含可提供待测试算法模块A-1对应的的测试服务的沙箱节点、待测试算法模块A-2对应的的测试服务的沙箱节点、待测试算法模块B对应的的测试服务的沙箱节点、待测试算法模块对应的C的测试服务的沙箱节点。在线上服务器中调用待测试算法模块对应的线上模块时,该线上服务器可调用录制方法,对该线上模块的输入数据进行录制,并根据该待测试算法模块的标识和该录制得到的输入数据,确定测试数据,并将测试数据发送至消费节点,由消费节点对接收到的测试数据进行处理,通过该消费节点中的路由模块,将该测试数据转发至沙箱节点,由该沙箱节点对该待测试算法模块进行测试,确定算法执行结果。
当然,也可为该消费节点根据该测试数据,将测试数据转发至路由设备,由路由设备根据预存的路由表等,将测试数据转发至沙箱节点中,由沙箱节点对其进行测试。
进一步的,在本说明书提供的一个或多个实施例中,该线上服务器和消费节点具体可为消息系统(如,Kafka系统)中的生产者和消费者,由线上服务器将测试数据生产为消息,并将消息发送至服务器节点,服务器节点接收并缓存线上服务器发送的消息,消费节点从服务器节点中抓取消息,并将消息进行消费。且消费节点具体可为可向路由设备发送调取指令的消费平台。
需要说明的是,在本说明书一个或多个实施例中,消费节点,需要基于预存的沙箱节点与线上模块的标识的对应关系,预先存储待测试算法模块的标识与沙箱节点的对应关系,中的至少一种,确定发送测试数据的沙箱节点。因此,当用户在任一沙箱节点中部署待测试算法模块时,还可配置待测试算法模块的标识与线上模块的标识的对应关系,则系统可根据部署待测试算法模块的操作,确定沙箱节点与线上模块的标识的对应关系以及储待测试算法模块的标识与沙箱节点的对应关系,并存储。该存储地址可以是预先设置的,则该消费节点在需要根据对应关系,确定发送测试数据的沙箱节点时,可以从该地址中获取所需的各对应关系。
另外,上述路由设备,还可为消费平台中的路由模块,但可执行该路由设备对应的功能,如,寻找沙箱节点,并向沙箱节点发送数据等。
基于图1所示的系统,本说明书提供算法测试系统执行业务的详细流程示意图,如图4所示。
S100:线上服务器接收测试请求。
S102:线上服务器生成测试数据。
S104:线上服务器向消费节点发送测试数据。
S106:消费节点发送测试数据给沙箱节点。
S108:沙箱节点对测试数据进行处理。
图5为本说明书实施例提供的算法测试方法,具体包括以下步骤:
S200:接收测试请求。
S202:根据所述测试请求中携带的待测试算法模块的标识,确定所述待测试算法模块对应的线上业务。
S204:对所述线上业务对应的线上模块进行监测,并当所述线上模块被调用时,确定所述线上模块的输入数据。
S206:根据所述输入数据和所述线上模块的标识,确定测试数据。
其中,该算法测试方法具体可由图1所示的系统中的线上服务器执行,具体执行业务的过程可参考上述系统中对线上服务器执行业务过程的描述,本说明书再次不再赘述。
以上为本说明书的一个或多个实施例提供的算法测试方法,基于同样的思路,本说明书还提供了相应的算法测试装置,如图6所示。
图6为本说明书提供的算法测试装置示意图,具体包括:
接收模块300,用于接收测试请求。
第一确定模块302,用于根据所述测试请求中携带的待测试算法模块的标识,确定所述待测试算法模块对应的线上业务。
监测模块304,用于对所述线上业务对应的线上模块进行监测,并当所述线上模块被调用时,确定所述线上模块的输入数据。
第二确定模块306,用于根据所述输入数据和所述线上模块的标识,确定测试数据。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图5提供的算法测试方法。
本说明书还提供了图7所示的电子设备的示意结构图。如图7所述,在硬件层面,该无人驾驶设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图4所述的算法测试方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (11)

1.一种算法测试系统,其特征在于,所述系统包括:线上服务器、消费节点以及沙箱节点,所述沙箱节点与所述线上服务器相互隔离;
所述线上服务器,用于在执行待测试算法模块对应的线上业务时,确定所述线上业务对应的线上模块的输入数据,并根据所述输入数据和所述线上模块的标识,确定测试数据,将所述测试数据发送至消费节点,其中,所述线上模块部署在所述线上服务器中;
所述消费节点,用于当接收到所述测试数据时,将所述测试数据转发给所述沙箱节点;
所述沙箱节点,用于根据接收到的测试数据中的所述线上模块的标识,确定待测试算法模块,并将所述测试数据中的输入数据输入到所述待测试算法模块中,得到所述待测试算法模块输出的所述输入数据的算法执行结果,并将所述算法执行结果展示给用户。
2.如权利要求1所述的系统,其特征在于,所述线上服务器,用于接收测试请求,根据所述测试请求中携带的待测试算法模块的标识,确定所述待测试算法模块对应的线上模块,并对所述线上模块进行监测,当监测到所述线上模块被调用时,确定测试数据。
3.如权利要求1所述的系统,其特征在于,若干沙箱节点组成沙箱集群,所述沙箱集群中的各沙箱节点提供不同的测试服务;
所述消费节点,用于当接收到所述测试数据时,根据所述测试数据中的所述线上模块的标识,确定用于测试所述待测试算法模块的沙箱节点,作为目标沙箱节点,并向所述目标沙箱节点转发所述测试数据。
4.如权利要求1所述的系统,其特征在于,所述系统还包括:路由设备;
所述消费节点,具体用于当接收到所述测试数据时,根据沙箱节点的地址和所述测试数据,向路由节点发送分发请求;
所述路由设备,用于根据所述分发请求中携带的沙箱节点的地址,将所述测试数据转发给所述沙箱节点。
5.如权利要求3所述的系统,其特征在于,所述消费节点,用于接收到所述测试数据时,分别向各目标沙箱节点发送第一负载查询请求;
所述各目标沙箱节点,根据所述接收到的第一负载查询请求,确定当前自身负载状态,并返回所述消费节点;
所述消费节点,用于根据接收到的所述各目标沙箱节点分别返回的负载状态,确定测试所述待测试算法模块的目标沙箱节点,并向所述目标沙箱节点转发所述测试数据。
6.如权利要求3所述的系统,其特征在于,所述待测试算法模块对应不同的线上业务;
所述线上服务器,用于接收测试请求,所述测试请求携带有所述待测试算法模块对应的线上业务的标识,根据所述线上业务的标识,确定线上业务对应的线上模块,确定所述线上模块的输入数据,根据所述输入数据、所述线上模块的标识和所述待测试算法模块对应的线上业务的标识,确定测试数据。
7.如权利要求3所述的系统,其特征在于,所述线上模块对应于多个待测试算法模块;
所述线上服务器,用于接收测试请求,所述测试请求携带有所述待测试算法模块的标识,根据所述待测试算法模块的标识,确定所述待测试算法模块对应的所述线上模块的输入数据,并根据所述输入数据、所述线上模块的标识和所述待测试算法模块的标识,确定测试数据;
所述消费节点,用于当接收到所述测试数据时,根据所述线上模块的标识和所述待测试算法模块的标识,确定用于测试所述待测试算法模块的沙箱节点,作为目标沙箱节点。
8.一种算法测试方法,其特征在于,所述方法包括:
接收测试请求;
根据所述测试请求中携带的待测试算法模块的标识,确定所述待测试算法模块对应的线上业务;
对所述线上业务对应的线上模块进行监测,并当所述线上模块被调用时,确定所述线上模块的输入数据;
根据所述输入数据和所述线上模块的标识,确定测试数据。
9.一种算法测试装置,其特征在于,包括:
接收模块,用于接收测试请求;
第一确定模块,用于根据所述测试请求中携带的待测试算法模块的标识,确定所述待测试算法模块对应的线上业务;
监测模块,用于对所述线上业务对应的线上模块进行监测,并当所述线上模块被调用时,确定所述线上模块的输入数据;
第二确定模块,用于根据所述输入数据和所述线上模块的标识,确定测试数据。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求8所述的方法。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求8所述的方法。
CN202111010397.9A 2021-08-31 2021-08-31 一种算法测试系统、方法及装置 Active CN113704117B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111010397.9A CN113704117B (zh) 2021-08-31 2021-08-31 一种算法测试系统、方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111010397.9A CN113704117B (zh) 2021-08-31 2021-08-31 一种算法测试系统、方法及装置

Publications (2)

Publication Number Publication Date
CN113704117A true CN113704117A (zh) 2021-11-26
CN113704117B CN113704117B (zh) 2023-06-02

Family

ID=78657691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111010397.9A Active CN113704117B (zh) 2021-08-31 2021-08-31 一种算法测试系统、方法及装置

Country Status (1)

Country Link
CN (1) CN113704117B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114819979A (zh) * 2022-06-28 2022-07-29 云账户技术(天津)有限公司 基于沙箱系统的结算测试方法、装置及电子设备
CN116260823A (zh) * 2023-05-15 2023-06-13 南方电网数字电网研究院有限公司 受控数据共享方法、装置、计算机设备和存储介质
WO2024093298A1 (zh) * 2022-10-31 2024-05-10 华为云计算技术有限公司 一种测试方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160055077A1 (en) * 2014-08-25 2016-02-25 General Electric Company Method, device, and program storage device for autonomous software product testing
CN108933713A (zh) * 2018-07-20 2018-12-04 阿里巴巴集团控股有限公司 基于影子链路实现沙箱调试的方法、装置及业务服务器
CN110347520A (zh) * 2019-06-28 2019-10-18 北京大米科技有限公司 消息分发的方法、装置、电子设备及介质
CN110674408A (zh) * 2019-09-30 2020-01-10 北京三快在线科技有限公司 业务平台、训练样本的实时生成方法及装置
CN110717536A (zh) * 2019-09-30 2020-01-21 北京三快在线科技有限公司 一种生成训练样本的方法及装置
CN110929879A (zh) * 2019-11-06 2020-03-27 南方电网财务有限公司 基于决策引擎和模型平台的业务决策逻辑更新方法
CN111325116A (zh) * 2020-02-05 2020-06-23 武汉大学 一种基于线下训练-线上学习深度可演化的遥感影像目标检测方法
CN112507330A (zh) * 2020-11-04 2021-03-16 北京航空航天大学 一种基于分布式沙箱的恶意软件检测系统
CN112598326A (zh) * 2020-12-31 2021-04-02 五八有限公司 模型迭代方法、装置、电子设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160055077A1 (en) * 2014-08-25 2016-02-25 General Electric Company Method, device, and program storage device for autonomous software product testing
CN108933713A (zh) * 2018-07-20 2018-12-04 阿里巴巴集团控股有限公司 基于影子链路实现沙箱调试的方法、装置及业务服务器
CN110347520A (zh) * 2019-06-28 2019-10-18 北京大米科技有限公司 消息分发的方法、装置、电子设备及介质
CN110674408A (zh) * 2019-09-30 2020-01-10 北京三快在线科技有限公司 业务平台、训练样本的实时生成方法及装置
CN110717536A (zh) * 2019-09-30 2020-01-21 北京三快在线科技有限公司 一种生成训练样本的方法及装置
CN110929879A (zh) * 2019-11-06 2020-03-27 南方电网财务有限公司 基于决策引擎和模型平台的业务决策逻辑更新方法
CN111325116A (zh) * 2020-02-05 2020-06-23 武汉大学 一种基于线下训练-线上学习深度可演化的遥感影像目标检测方法
CN112507330A (zh) * 2020-11-04 2021-03-16 北京航空航天大学 一种基于分布式沙箱的恶意软件检测系统
CN112598326A (zh) * 2020-12-31 2021-04-02 五八有限公司 模型迭代方法、装置、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114819979A (zh) * 2022-06-28 2022-07-29 云账户技术(天津)有限公司 基于沙箱系统的结算测试方法、装置及电子设备
WO2024093298A1 (zh) * 2022-10-31 2024-05-10 华为云计算技术有限公司 一种测试方法及装置
CN116260823A (zh) * 2023-05-15 2023-06-13 南方电网数字电网研究院有限公司 受控数据共享方法、装置、计算机设备和存储介质
CN116260823B (zh) * 2023-05-15 2023-09-15 南方电网数字电网研究院有限公司 受控数据共享方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN113704117B (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
CN113704117A (zh) 一种算法测试系统、方法及装置
US9183072B1 (en) Error troubleshooting using a correlated knowledge base
CN109032825B (zh) 一种故障注入方法、装置及设备
CN111881022A (zh) 基于测试场景生成测试用例的方法、装置和设备
CN110879781B (zh) 程序调试方法、装置、电子设备及计算机可读存储介质
CN112035344A (zh) 多场景测试方法、装置、设备和计算机可读存储介质
CN109391512A (zh) 一种服务发布方法、装置及电子设备
CN110851207B (zh) 状态转换管理方法、装置、电子设备和存储介质
CN112241362A (zh) 一种测试方法、装置、服务器及存储介质
CN112965882B (zh) 一种数据故障分析的方法及装置
CN107872363B (zh) 数据包丢失的处理方法、系统、可读存储介质及电子设备
CN109039695B (zh) 业务故障处理方法、装置及设备
CN113703996B (zh) 基于用户和yang模型分组的访问控制方法、设备及介质
CN106940647B (zh) 代码管理方法和装置
CN115203050A (zh) 一种服务的依赖关系的确定方法及装置
CN114500249A (zh) 一种根因定位方法和装置
CN108563578A (zh) Sdk兼容性检测方法、装置、设备及可读存储介质
CN114579252A (zh) 一种监测应用状态的方法、系统、存储介质及设备
CN115730305A (zh) 应用程序的检测方法、装置、非易失性存储介质及处理器
CN113157555A (zh) 用于线上压测数据漏库实时检测的系统、方法及设备
CN112286803A (zh) 一种测试用例的检测方法及装置
CN116893978B (zh) 一种基于ptcrb认证的测试计划生成方法、系统和存储介质
US8510601B1 (en) Generating service call patterns for systems under test
CN112199195B (zh) 进程资源处理方法及装置
CN111309331B (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