CN115061907A - 测试方法和测试系统、电子设备、存储介质 - Google Patents

测试方法和测试系统、电子设备、存储介质 Download PDF

Info

Publication number
CN115061907A
CN115061907A CN202210674386.9A CN202210674386A CN115061907A CN 115061907 A CN115061907 A CN 115061907A CN 202210674386 A CN202210674386 A CN 202210674386A CN 115061907 A CN115061907 A CN 115061907A
Authority
CN
China
Prior art keywords
test
target
configuration information
code
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.)
Pending
Application number
CN202210674386.9A
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 Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent 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 Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN202210674386.9A priority Critical patent/CN115061907A/zh
Publication of CN115061907A publication Critical patent/CN115061907A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Abstract

本申请公开了一种测试方法和系统、电子设备、存储介质,测试方法包括:获取测试配置信息,测试配置信息包括关于待测试的目标模型的测试类型;基于测试配置信息,获取与测试类型对应的目标测试代码;使用目标测试代码对目标模型进行测试,得到测试结果。上述方案,能够提高测试的效率。

Description

测试方法和测试系统、电子设备、存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种测试方法和测试系统、电子设备、存储介质。
背景技术
在人工智能算法模型的开发过程中,需要不断地对人工智能算法模型进行性能测试、修改和调参,以提升人工智能算法模型的性能。目前对人工智能算法模型进行测试的方式还是依赖于测试人员依照测试项目依次进行测试,测试效率较低。
发明内容
本申请至少提供一种测试方法和测试系统、电子设备、存储介质。
本申请提供了一种测试方法,包括:获取测试配置信息,测试配置信息包括关于待测试的目标模型的测试类型;基于测试配置信息,获取与测试类型对应的目标测试代码;使用目标测试代码对目标模型进行测试,得到测试结果。
因此,通过获取测试配置信息,然后根据测试配置信息获取与测试类型对应的目标测试代码,继而使用目标测试代码对目标模型进行测试,相比于依赖测试人员依照测试项目依次进行测试而言,本申请提出的方法效率更高。
其中,测试配置信息还包括至少一个用于对目标模型进行测试的目标测试平台的第一标识信息,基于测试配置信息,获取与测试类型对应的目标测试代码,包括:基于测试类型获取测试类型对应的初始测试代码,以及基于第一标识信息获取各目标测试平台对应的交叉编译链;对于每一目标测试平台,利用对应的交叉编译链对初始测试代码进行编译,得到在目标测试平台上可执行的目标测试代码;使用测试代码对目标模型进行测试,包括:在各个目标测试平台上使用对应的目标测试代码对目标模型进行测试。
因此,通过配置至少一个目标测试平台的第一标识信息,使得能够在多个平台上进行测试,实现了批量化测试。并且基于第一标识信息确定目标测试平台对应的交叉编译链对初始测试代码进行编译,使得得到的目标测试代码能够在目标测试平台上运行。
其中,测试配置信息还包括待测试的目标模型的第二标识信息,在在各个目标测试平台上使用对应的目标测试代码对目标模型进行测试之前,方法还包括:确定与第二标识信息对应的目标模型;分别使用各目标测试平台对应的交叉编译链对目标模型进行编译,得到能够在各目标测试平台上执行的目标模型;在各个目标测试平台上使用对应的目标测试代码对目标模型进行测试,包括:在各目标测试平台上使用对应的目标测试代码对编译后的目标模型进行测试。
因此,通过配置目标模型的第二标识信息,然后利用各目标测试平台对应的交叉编译链对目标模型进行编译,使得目标模型能够在目标测试平台上运行。
其中,测试配置信息还包括用于测试目标模型的目标数据集的第三标识信息,在各个目标测试平台上使用对应的目标测试代码对目标模型进行测试,包括:基于第三标识信息,获取目标数据集;在各目标测试平台上使用对应的目标测试代码调用目标数据集对目标模型进行测试。
因此,通过配置目标数据集,使得能够根据需求确定对应的目标数据集对目标模型进行测试。
其中,获取测试配置信息,包括:响应于接收到用户输入的若干配置内容,利用若干配置内容组合得到若干组候选配置信息,若干配置内容包括若干个测试类型、若干个目标测试平台的第一标识信息、若干个待测试的目标模型的第二标识信息以及若干个目标数据集的第三标识信息,每组候选配置信息包括一个测试类型、一个目标测试平台的第一标识信息、一个目标模型的第二标识信息以及一个目标数据集的第三标识信息;基于若干组候选配置信息,得到测试配置信息。
因此,通过将用户输入的若干配置内容进行组合得到若干组候选配置信息,然后基于若干组候选配置信息,得到测试配置信息,无需用户手动为每一组候选配置信息分别输入配置内容,提高了获取测试配置信息的效率。
其中,基于若干组候选配置信息,得到测试配置信息,包括:响应于用户对至少一组候选配置信息的选择,将用户选择的候选配置信息作为测试配置信息。
因此,通过响应于用户对至少一组候选配置信息的选择,将用户选择的候选配置信息作为测试配置信息,能够提高用户的自主性,还能实现批量测试。
其中,方法还包括:响应于用户对目标测试代码的更改操作,对目标测试代码进行更新;使用目标测试代码对目标模型进行测试,得到测试结果,包括:使用更新后的目标测试代码对目标模型进行测试,得到测试结果。
因此,通过接收用户对目标测试代码的更改操作,对目标测试代码进行更新,使得能够使用更新后的目标测试代码对目标模型进行测试。
其中,在使用目标测试代码对目标模型进行测试,得到测试结果之后,方法还包括:对测试结果进行统计,得到统计结果;将统计结果进行显示和/或发送至预设接收方。
因此,通过对测试结果进行统计,然后将统计结果进行显示和/或将统计结果发送至预设接收方,无需测试人员基于经验对测试结果进行统计,使得统计控制标准能够统一。
其中,使用目标测试代码对目标模型进行测试,得到测试结果,包括:在多个目标测试平台上使用对应的目标测试代码对目标模型进行测试,得到各测试平台关于目标模型在测试类型下的测试结果;对测试结果进行统计,得到统计结果,包括:对多个目标测试平台得到的关于测试类型的测试结果进行比较,得到目标模型在各目标测试平台上的测试结果的第一统计结果;和/或,对于每一测试平台,将得到的目标模型的测试结果与历史测试结果进行比较,得到不同版本的目标模型在测试平台的测试结果的第二统计结果,历史测试结果为目标模型的至少一个历史版本在测试平台上关于测试类型的测试结果。
因此,通过对多个目标测试平台得到的关于测试类型的测试结果进行比较,能够得到目标模型在各目标测试平台上的测试结果的统计结果,即目标模型在不同目标测试平台上的执行效果。另外,对于每一测试平台,将得到的目标模型的测试结果与历史测试结果进行比较,得到不同版本的目标模型在测试平台的测试结果的统计结果,方便明确目标模型的改进方向或改进效果。
本申请提供了一种测试系统,包括:测试管理模块,用于获取测试配置信息,测试配置信息包括关于待测试的目标模型的测试类型;测试准备模块,用于基于测试配置信息,获取与测试类型对应的目标测试代码;测试执行模块,用于使用目标测试代码对目标模型进行测试,得到测试结果。
本申请提供了一种电子设备,包括存储器和处理器,处理器和存储器连接,处理器用于执行存储器中存储的程序指令,以实现上述测试方法。
本申请提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述测试方法。
上述方案,通过获取测试配置信息,然后根据测试配置信息获取与测试类型对应的目标测试代码,继而使用目标测试代码对目标模型进行测试,相比于依赖测试人员依照测试项目依次进行测试而言,本申请提出的方法效率更高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1是本申请测试系统一实施例的结构示意图;
图2是本申请测试系统一实施例示出测试管理模块的部分结构示意图;
图3是本申请测试系统一实施例示出代码管理模块的结构示意图;
图4是本申请测试系统一实施例示出测试准备模块的结构示意图;
图5是本申请测试系统一实施例示出测试执行模块的结构示意图;
图6是本申请测试系统一实施例的另一结构示意图;
图7是本申请测试系统一实施例的又一结构示意图;
图8是本申请测试方法一实施例的流程示意图;
图9是本申请测试方法一实施例的另一流程示意图;
图10是本申请电子设备一实施例的一结构示意图;
图11是本申请计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
请参阅图1,图1是本申请测试系统一实施例的结构示意图。如图1所示,测试系统10包括测试管理模块11、测试准备模块12以及测试执行模块13。其中,测试管理模块11,用于获取测试配置信息。其中,测试配置信息包括关于待测试的目标模型的测试类型。测试准备模块12,用于基于测试配置信息,获取与测试类型对应的目标测试代码。测试执行模块13,用于使用目标测试代码对目标模型进行测试,得到测试结果。
上述方案,通过获取测试配置信息,然后根据测试配置信息获取与测试类型对应的目标测试代码,继而使用目标测试代码对目标模型进行测试,相比于依赖测试人员依照测试项目依次进行测试而言,本申请提出的方法效率更高。
一些公开实施例中,测试系统10还包括测试代码管理模块14。测试代码管理模块14用于管理各个测试类型对应的测试代码。其中,测试类型可以是功能测试、精度测试、接口性能测试、稳定性测试、授权测试等。功能测试对应的测试代码用于对目标模型进行功能测试,精度测试对应的测试代码用于对目标模型的精度进行测试,接口性能测试对应的测试代码用于对目标模型的接口性能进行测试,稳定性测试对应的测试代码用于对目标模型的稳定性进行测试,授权测试代码用于对目标模型的授权情况进行测试。
一些公开实施例中,测试配置信息还可包括用于对目标模型进行测试的目标测试平台的第一标识信息、待测试的目标模型的第二标识信息、以及用于测试目标模型的目标数据集的第三标识信息中的一者或多者。其中,用于对目标模型进行测试的目标测试平台可以是芯片,例如芯片可以是任意一个或多个系列的芯片。目标模型可以是人像检测模型、人脸检测模型、全结构化检测模型、人脸属性检测模型、车辆检测模型等任意能够实现一定功能的模型。用于测试目标模型的目标数据集可以是门禁数据集、摄像机数据集以及口罩数据集等。
其中,为了测试代码和目标模型能够在目标测试平台上运行,还可在目标测试平台使用测试代码对目标模型进行测试之前,测试准备模块12使用目标测试平台对应的交叉编译链先对测试代码和目标模型进行交叉编译,得到能够在目标测试平台上运行的测试代码以及目标模型。其中,关于各目标测试平台的交叉编译链可以是代码管理模块进行管理。
其中,测试管理模块11主要用于管理测试任务以及各测试任务对应的测试配置信息,已保证在各个目标测试平台上测试的流程标准化和自动化,从而节省人力消耗。具体地,测试管理模块11可以包括两个主要功能,分别是测试任务配置和测试任务管理/下发,分别用于标准化测试任务输入和管理测试任务的状态、回溯等。
示例性地,请参见图2,图2是本申请测试系统一实施例示出测试管理模块11的部分结构示意图。测试管理模块11包括测试任务管理服务器,测试任务管理服务器接收客户端发送的配置内容,然后将配置内容进行组合,得到候选配置信息。其中,配置内容主要包括若干个测试类型、若干个目标测试平台的第一标识信息、若干个待测试的目标模型的第二标识信息,若干个目标数据集的第三标识信息。每组候选配置信息包括一个测试类型、一个目标测试平台的第一标识、一个目标模型的第二标识信息以及一个目标数据集的第三标识信息。即,候选配置信息中可以包括四个配置内容。即,对用户输入的配置内容进行排列组合,得到若干组候选配置参数。任意两个候选配置参数的配置内容存在不同,例如可以是测试类型不同、目标测试平台不同、目标模型不同和/或目标数据集不同。然后,可以基于若干组候选配置信息,得到测试配置信息。示例性地,响应于用户对至少一组候选配置信息的选择,将用户选择的候选配置信息作为测试配置信息。例如,客户端的显示界面上包括全选按钮,用户选择全选按钮之后,则认为全部候选配置信息均作为测试配置信息。示例性地,如图2所示,得到的测试任务1的测试配置信息中目标测试平台的第一标识为第一芯片平台,目标模型的第二标识为人脸检测,测试类型为精度测试,目标数据集的第三标识为口罩数据集。其中,用户输入的关于此次测试任务的若干个配置内容可以进行保存,作为下一次测试任务的备选配置内容,即用户可以选择将这些备选配置内容重新作为下一次测试任务用户输入的配置内容,当然,用户也可以是选择不将这些备选配置内容作为下一次测试任务的配置内容,或将部分备选配置内容作为下一次测试任务的配置内容。
测试任务的状态可以是测试中、等待测试中、已完成测试等。测试中指的是该测试任务已经开始测试,但还没结束。等待测试中指的是正在排队等待进行测试。已完成测试指的是该测试任务已经完成测试。
请同时参见图3,图3是本申请测试系统一实施例示出代码管理模块的结构示意图。如图3所示,代码管理模块包括测试代码服务器,主要用于测试代码仓管理和交叉编译链的配置管理。测试代码仓用于存储各测试类型对应的测试代码。测试代码服务器可以响应于用户对目标测试代码的更改操作,对目标测试代码进行更新,以便测试执行模块基于更新后的目标测试代码对目标模型进行更新。示例性地,用户在客户端上选择待更新的目标测试代码,并基于编辑功能对目标测试代码进行更新,即更改操作是测试代码服务器接收到客户端在响应于用户对目标测试代码进行编辑的操作之后做出的。交叉编译链配置包括各个目标测试平台对应的交叉编译链文件。通过测试代码管理模块14用于进行测试代码、交叉编译链文件等文件的统一管理,能够减少因为测试人员能力差异导致反复编译问题的出现,并且还能让测试的经验进行累积。
其中,测试准备模块12基于测试配置信息,获取与测试类型对应的目标测试代码的方式可以是:基于测试类型获取测试类型对应的初始测试代码,以及基于第一标识信息获取各目标测试平台对应的交叉编译链。然后,对于每一目标测试平台,利用对应的交叉编译链对初始测试代码进行编译,得到在目标测试平台上可执行的目标测试代码。因为目标测试平台的差异,若直接使用初始测试代码在目标测试平台上对目标模型进行测试,则很可能导致测试失败或测试结果不太准确。故,本公开实施例通过使用各目标测试平台对应的交叉编译链对初始代码进行编译,使得目标测试代码能够在目标测试平台上运行,从而减少测试失败或测试结果不太准确的情况出现。
其中,在测试配置信息包括目标模型的第二标识的情况下,测试准备模块12还用于:确定与第二标识信息对应的目标模型。然后,分别使用各目标测试平台对应的交叉编译链对目标模型进行编译,得到能够在各目标测试平台上执行的目标模型。以便测试执行模块13在各目标测试平台上使用对应的目标测试代码对编译后的目标模型进行测试。具体地,可以是确定目标模型对应的算法SDK包。通过算法SDK包调用目标模型,从而实现对目标模型进行测试。具体地,可以是使用各目标测试平台对应的交叉编译链对目标模型对应的算法SDK包进行编译,以便在目标测试平台使用编译后的SDK包调用目标模型,从而实现对目标模型进行测试。
请同时参见图4,图4是本申请测试系统一实施例示出测试准备模块12的结构示意图。如图4所示,测试准备模块12包括挂载服务器。挂载服务器能够获取目标模型(例如目标模型对应的SDK包),从代码管理模块拉取测试类型对应的测试代码和目标测试平台对应的交叉编译链的配置信息,然后在挂载服务器上完成对目标模型对应的SDK包以及测试代码的交叉编译工作,形成可以在目标测试平台上运行的可执行程序。另外,挂载服务器还用于管理目标数据集,例如门禁数据集、口罩数据集、车辆属性数据集、车牌数据集以及非机动车数据集等。通过引入挂载服务器,能够自动拉取测试代码、目标数据集以及交叉编译链,进行多目标测试平台运行环境的自动搭建。
其中,在测试配置信息还包括用于测试目标模型的目标数据集的第三标识信息的情况下,基于第三标识信息,获取目标数据集。第三标识信息可以是目标数据集的名称或目标数据集的存储地址。然后,在各目标测试平台使用对应的目标测试代码调用目标测试代码对目标模型进行测试。如上述,目标数据集可以是门禁数据集、摄像机数据集以及口罩数据集等。
一些公开实施例中,测试执行模块13还用于对测试结果进行统计,得到统计结果。然后,将统计结果进行显示和/或发送至预设接收方。一些应用场景中,将统计结果进行显示。一些应用场景中,将统计结果发送至预设接收方。一些应用场景中,将统计结果进行显示,以及将该统计结果发送至预设接收方。预设接收方指的是与测试方法的执行设备构建通信连接的预先设定的接收方。通过自动对测试结果进行统计,减少了测试人员对测试结果的收集时长、测试报告的整理时长,以及使得测试结果不易丢失。
其中,在一个具体实施方式中,测试执行模块13对测试结果进行统计,得到统计结果的方式可以是:
对多个目标测试平台得到的目标模型关于测试类型的测试结果进行比较,得到目标模型在各目标测试平台上的测试结果的第一统计结果。
在一个具体实施方式中,测试执行模块13对测试结果进行统计,得到统计结果的方式可以是:
对于每一目标测试平台,将得到的目标模型的测试结果与历史测试结果进行比较,得到不同版本的目标模型在目标测试平台的测试结果的第二统计结果。其中,历史测试结果为目标模型的至少一个历史版本在测试平台上关于测试类型的测试结果。
在一个具体实施方式中,测试执行模块13对测试结果进行统计,得到统计结果的方式可以是:
对多个目标测试平台得到的关于测试类型的测试结果进行比较,得到目标模型在各目标测试平台上的测试结果的第一统计结果。
以及,对于每一目标测试平台,将得到的目标模型的测试结果与历史测试结果进行比较,得到不同版本的目标模型在目标测试平台的测试结果的第二统计结果。其中,历史测试结果为目标模型的至少一个历史版本在测试平台上关于测试类型的测试结果。
请同时参见图5,图5是本申请测试系统一实施例示出测试执行模块13的结构示意图。如图5所示,测试执行模块13包括多个目标测试平台和测试数据统计服务器。其中,多个目标测试平台通过固定的IP管理。其中,上述可执行程序能够在目标测试平台上运行,并且将结果输出值测试统计服务器,由测试数据统计服务器完成测试结果的统计。本公开实施例中,测试任务管理服务器、测试代码服务器、挂载服务器、测试数据统计服务器可以是同一个服务器。另一些公开实施例中,测试任务管理服务器、测试代码服务器、挂载服务器可以是同一个服务器,测试数据统计服务器是另一个服务器。通过建立多目标测试平台与测试数据统计服务器的网络拓扑,能够自动在多目标测试平台上执行测试以及进行测试结果的统计。
为更好地理解测试系统10中各模块之间的配合,请同时参见图6和图7,图6是本申请测试系统一实施例的另一结构示意图,图7是本申请测试系统一实施例的又一结构示意图。如图6和图7所示,测试管理模块11下发测试任务至测试准备模块12之后,测试准备模块12向测试代码管理模块14拉取测试代码以及交叉编译链配置,交叉编译链配置包括各测试平台对应的编译链文件,测试准备模块12在对测试代码以及目标模型进行编译之后,将其挂载至测试执行模块13进行测试。测试执行模块13还用于对测试结果进行跨芯片和/或跨版本进行比较。
请参阅图8,图8是本申请测试方法一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S11:获取测试配置信息,测试配置信息包括关于待测试的目标模型的测试类型。
如上述,目标模型可以是人像检测模型、人脸检测模型、全结构化检测模型、人脸属性检测模型、车辆检测模型等任意能够实现一定功能的模型。测试类型可以是功能测试、精度测试、接口性能测试、稳定性测试、授权测试等。其中,测试配置信息可以是用户在测试管理模块输入。
步骤S12:基于测试配置信息,获取与测试类型对应的目标测试代码。
功能测试对应的测试代码用于对目标模型进行功能测试,精度测试对应的测试代码用于对目标模型的精度进行测试,接口性能测试对应的测试代码用于对目标模型的接口性能进行测试,稳定性测试对应的测试代码用于对目标模型的稳定性进行测试,授权测试代码用于对目标模型的授权情况进行测试。具体地,测试代码可以存储在代码管理模块中的测试代码仓。
步骤S13:使用目标测试代码对目标模型进行测试,得到测试结果。
示例性地,目标测试代码为功能测试对应的测试代码,则使用该测试代码对目标模型进行功能测试。目标测试代码为精度测试对应的测试代码的情况下,使用该测试代码对目标模型进行精度测试。
上述方案,通过获取测试配置信息,然后根据测试配置信息获取与测试类型对应的目标测试代码,继而使用目标测试代码对目标模型进行测试,相比于依赖测试人员依照测试项目依次进行测试而言,本申请提出的方法效率更高。
一些公开实施例中,配置信息还包括用于对目标模型进行测试的目标测试平台的第一标识信息、待测试的目标模型的第二标识信息以及用于对目标模型进行测试的目标数据集的第三标识信息中的一者或多者。
其中,上述步骤S11可以包括以下步骤:
响应于接收到用户输入的若干配置内容,利用若干配置内容组合得到若干组候选配置信息。其中,若干配置内容包括若干个测试类型、若干个目标测试平台的第一标识信息、若干个待测试的目标模型的第二标识信息以及若干个目标数据集的第三标识信息,每组候选配置信息包括一个测试类型、一个目标测试平台的第一标识信息、一个目标测试模型的第二标识信息以及一个目标数据集的第三标识信息。即,候选配置信息中可以包括四个配置内容。即,对用户输入的配置内容进行排列组合,得到若干组候选配置参数。任意两个候选配置参数的配置内容存在不同,例如可以是测试类型不同、目标测试平台不同、目标模型不同和/或目标数据集不同。然后,基于若干组候选配置信息,得到测试配置信息。示例性地,可以将全部候选配置信息作为测试配置信息,也可以将部分候选配置信息作为测试配置信息。
通过将用户输入的若干配置内容进行组合得到若干组候选配置信息,然后基于若干组候选配置信息,得到测试配置信息,无需用户手动为每一组候选配置信息分别输入配置内容,提高了获取测试配置信息的效率。
可选地,响应于用户对至少一组候选配置信息的选择,将用户选择的候选配置信息作为测试配置信息。例如,客户端的显示界面上包括全选按钮,用户选择全选按钮之后,则认为全部候选配置信息均作为测试配置信息。
其中,用户输入的关于此次测试任务的若干个配置内容可以进行保存,作为下一次测试任务的备选配置内容,即用户可以选择将这些备选配置内容重新作为下一次测试任务用户输入的配置内容,当然,用户也可以是选择不将这些备选配置内容作为下一次测试任务的配置内容,或将部分备选配置内容作为下一次测试任务的配置内容。通过响应于用户对至少一组候选配置信息的选择,将用户选择的候选配置信息作为测试配置信息,能够提高用户的自主性,还能实现批量测试。
一些公开实施例中,测试方法还可包括以下步骤:
响应于用户对目标测试代码的更改操作,对目标测试代码进行更新。在此情况下,上述步骤S13可包括以下步骤:使用更新后的目标测试代码对目标模型进行测试,得到测试结果。通过接收用户对目标测试代码的更改操作,对目标测试代码进行更新,使得能够使用更新后的目标测试代码对目标模型进行测试。
一些公开实施例中,配置信息还包括至少一个用于对目标模型进行测试的目标测试平台的第一标识信息。上述步骤S12可以包括以下步骤:
基于测试类型获取测试类型对应的初始测试代码,以及基于第一标识信息获取各目标测试平台对应的交叉编译链。然后,对于每一目标测试平台,利用对应的交叉编译链对初始测试代码进行编译,得到在目标测试平台上可执行的目标测试代码。因为目标测试平台的差异,若直接使用初始测试代码在目标测试平台上对目标模型进行测试,则很可能导致测试失败或测试结果不太准确。故,本公开实施例通过使用各目标测试平台对应的交叉编译链对初始代码进行编译,使得目标测试代码能够在目标测试平台上运行,从而减少测试失败或测试结果不太准确的情况出现。
在对初始测试代码进行编译之后,上述步骤S13可以包括以下步骤:在各个目标测试平台上使用对应的目标测试代码对目标模型进行测试。示例性地,对于目标测试平台A,目标测试代码为使用目标测试平台A对应的交叉编译链对初始测试代码进行编译得到,然后在目标测试平台A上使用该目标测试代码对目标模型进行测试。
通过配置至少一个目标测试平台的第一标识信息,使得能够在多个平台上进行测试,实现了批量化测试。并且基于第一标识信息确定目标测试平台对应的交叉编译链对初始测试代码进行编译,使得得到的目标测试代码能够在目标测试平台上运行。
一些公开实施例中,测试配置信息还包括待测试的目标模型的第二标识信息,在执行上述步骤S13之前,测试方法还可包括以下步骤:
确定与第二标识信息对应的目标模型。然后,分别使用各目标测试平台对应的交叉编译链对目标模型进行编译,得到能够在各目标测试平台上执行的目标模型。具体地,可以是确定目标模型对应的算法SDK包。通过算法SDK包调用目标模型,从而实现对目标模型进行测试。具体地,可以是使用各目标测试平台对应的交叉编译链对目标模型对应的算法SDK包进行编译,以便在目标测试平台使用编译后的SDK包调用目标模型,从而实现对目标模型进行测试。
在对目标模型进行编译的情况下,上述步骤S13可以包括以下步骤:
在各目标测试平台上使用对应的目标测试代码对编译后的目标模型进行测试。示例性地,在使用目标平台对应的交叉编译链对初始测试的代码进行编译得到目标测试代码的情况下,在各目标测试平台上使用该目标测试代码对编译后的目标模型进行测试。
通过配置目标模型的第二标识信息,然后利用各目标测试平台对应的交叉编译链对目标模型进行编译,使得目标模型能够在目标测试平台上运行。
一些公开实施例中,测试配置信息还包括用于测试目标模型的目标数据集的第三标识信息。其中,在各个目标测试平台上使用对应的目标测试代码对目标模型进行测试的方式可以包括:基于第三标识信息,获取目标数据集。第三标识信息可以是目标数据集的名称或目标数据集的存储地址。然后,在各目标测试平台使用对应的目标测试代码调用目标测试代码对目标模型进行测试。如上述,目标数据集可以是门禁数据集、摄像机数据集以及口罩数据集等。通过配置目标数据集,使得能够根据需求确定对应的目标数据集对目标模型进行测试。
一些公开实施例中,在执行步骤S13之后,测试方法还可包括以下步骤:
对测试结果进行统计,得到统计结果。然后,将统计结果进行显示和/或发送至预设接收方。一些应用场景中,将统计结果进行显示。一些应用场景中,将统计结果发送至预设接收方。一些应用场景中,将统计结果进行显示,以及将该统计结果发送至预设接收方。预设接收方指的是与测试方法的执行设备构建通信连接的预先设定的接收方。通过对测试结果进行统计,然后将统计结果进行显示和/或将统计结果发送至预设接收方,无需测试人员基于经验对测试结果进行统计,使得统计控制标准能够统一。
其中,上述步骤S13包括以下步骤:在多个目标测试平台上使用对应的目标测试代码对目标模型进行测试,得到各测试平台关于目标模型在该测试类型下的测试结果。
在一个具体实施方式中,对测试结果进行统计,得到统计结果的方式可以是:
对多个目标测试平台得到的目标模型关于测试类型的测试结果进行比较,得到目标模型在各目标测试平台上的测试结果的第一统计结果。示例性地,若存在多个目标测试平台分别使用同一目标数据集对目标模型进行同一测试类型的测试,则可以对该目标模型在不同的目标测试平台上的测试结果进行比较,能够得到目标模型在不同的目标测试平台上的适应情况。
在一个具体实施方式中,对测试结果进行统计,得到统计结果的方式可以是:
对于每一目标测试平台,将得到的目标模型的测试结果与历史测试结果进行比较,得到不同版本的目标模型在目标测试平台的测试结果的第二统计结果。其中,历史测试结果为目标模型的至少一个历史版本在测试平台上关于测试类型的测试结果。示例性地,若存在使用同一目标测试平台分别使用对不同版本的目标模型进行同一测试类型的测试,能够得到不同版本的目标模型的测试结果,通过对不同版本的目标模型的测试结果进行比较,能够得到不同版本的目标模型的测试情况,方便后续确定目标模型的改进方向等。
通过对多个目标测试平台得到的关于测试类型的测试结果进行比较,能够得到目标模型在各目标测试平台上的测试结果的统计结果,即目标模型在不同目标测试平台上的执行效果。另外,对于每一测试平台,将得到的目标模型的测试结果与历史测试结果进行比较,得到不同版本的目标模型在测试平台的测试结果的统计结果,方便明确目标模型的改进方向或改进效果。
一些公开实施例中,接收用户查询测试任务的状态指令,显示所查询的测试任务的状态。其中,测试任务的状态可以是测试中、等待测试中、已完成测试等。测试中指的是该测试任务已经开始测试,但还没结束。等待测试中指的是正在排队等待进行测试。已完成测试指的是该测试任务已经完成测试。
一些公开实施例中,接收用户回溯历史测试任务的指令,重新执行该历史测试任务。
上述方案,通过获取测试配置信息,然后根据测试配置信息获取与测试类型对应的目标测试代码,继而使用目标测试代码对目标模型进行测试,相比于依赖测试人员依照测试项目依次进行测试而言,本申请提出的方法效率更高。
为更好地理解本公开实施例提供的测试方法,请参见下例。请同时参见图9,图9是本申请测试方法一实施例的另一流程示意图。如图9所示,测试管理模块用于下发测试任务至测试准备模块,具体地,测试管理模块中的测试任务管理服务器调用测试准备模块,进行测试环境的部署。其中,测试准备模块从测试代码管理模块处拉取测试代码以及交叉编译链配置(交叉编译链文件),然后使用交叉编译链对测试代码以及SDK包进行编译,然后将编译后的测试代码、编译后的SDK包以及相关数据集、相关授权文件挂载到测试设备(目标测试平台)。其中,授权文件用于判断SDK包的合法性,若SDK包不合法,则不执行包含该SDK包的测试任务。具体使用授权文件判断SDK包的合法性的方案非本公开实施例测试方法的重点内容,此处不做过多叙述。测试设备基于接收到的相关信息,进行测试。测试结果统计服务器对测试结果进行统计。另一些公开实施例中,还可将测试成功的测试任务对应的测试结果保存至预设数据库,方便后续校验等工作。
一些应用场景中,在智能前端算法的测试人员可以采用这一套框架,进行多芯片上的功能测试、精度测试、接口性能测试与整体性能测试、稳定性测试、授权测试测试方案和任务创建,并进行自动化执行,有效提升智能前端算法输出质量的稳定性和可靠性。
上述方案,通过获取测试配置信息,然后根据测试配置信息获取与测试类型对应的目标测试代码,继而使用目标测试代码对目标模型进行测试,相比于依赖测试人员依照测试项目依次进行测试而言,本申请提出的方法效率更高。
其中,测试方法的执行主体可以是测试系统,例如,测试系统可以是终端设备或服务器或其它处理设备。其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该测试方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
请参阅图10,图10是本申请电子设备一实施例的一结构示意图。电子设备20包括存储器21和处理器22,处理器22和存储器21连接,处理器22用于执行存储器21中存储的程序指令,以实现测试方法实施例提供的测试方法。
在一个具体的实施场景中,电子设备20可以包括但不限于:通信设备、微型计算机、台式电脑、服务器,此外,电子设备20还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
具体而言,处理器22用于控制其自身以及存储器21以实现上述任一测试方法实施例中的步骤。处理器22还可以称为CPU(Central Processing Unit,中央处理单元)。处理器22可能是一种集成电路芯片,具有信号的处理能力。处理器22还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器22可以由集成电路芯片共同实现。
上述方案,通过获取测试配置信息,然后根据测试配置信息获取与测试类型对应的目标测试代码,继而使用目标测试代码对目标模型进行测试,相比于依赖测试人员依照测试项目依次进行测试而言,本申请提出的方法效率更高。
请参阅图11,图11是本申请计算机可读存储介质一实施例的结构示意图。计算机可读存储介质30存储有程序指令31,程序指令31被处理器执行时用于实现上述任一测试方法实施例中的步骤。
上述方案,通过获取测试配置信息,然后根据测试配置信息获取与测试类型对应的目标测试代码,继而使用目标测试代码对目标模型进行测试,相比于依赖测试人员依照测试项目依次进行测试而言,本申请提出的方法效率更高。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (12)

1.一种测试方法,其特征在于,包括:
获取测试配置信息,所述测试配置信息包括关于待测试的目标模型的测试类型;
基于所述测试配置信息,获取与所述测试类型对应的目标测试代码;
使用所述目标测试代码对所述目标模型进行测试,得到测试结果。
2.根据权利要求1所述的方法,其特征在于,所述测试配置信息还包括至少一个用于对所述目标模型进行测试的目标测试平台的第一标识信息,所述基于所述测试配置信息,获取与所述测试类型对应的目标测试代码,包括:
基于所述测试类型获取所述测试类型对应的初始测试代码,以及基于所述第一标识信息获取各所述目标测试平台对应的交叉编译链;
对于每一所述目标测试平台,利用对应的所述交叉编译链对所述初始测试代码进行编译,得到在所述目标测试平台上可执行的所述目标测试代码;
所述使用所述测试代码对所述目标模型进行测试,包括:
在各个所述目标测试平台上使用对应的所述目标测试代码对所述目标模型进行测试。
3.根据权利要求2所述的方法,其特征在于,所述测试配置信息还包括待测试的所述目标模型的第二标识信息,在所述在各个所述目标测试平台上使用对应的所述目标测试代码对所述目标模型进行测试之前,所述方法还包括:
确定与所述第二标识信息对应的目标模型;
分别使用各所述目标测试平台对应的交叉编译链对所述目标模型进行编译,得到能够在各所述目标测试平台上执行的目标模型;
所述在各个所述目标测试平台上使用对应的所述目标测试代码对所述目标模型进行测试,包括:
在各所述目标测试平台上使用对应的所述目标测试代码对编译后的所述目标模型进行测试。
4.根据权利要求2或3所述的方法,其特征在于,所述测试配置信息还包括用于测试所述目标模型的目标数据集的第三标识信息,所述在各个所述目标测试平台上使用对应的所述目标测试代码对所述目标模型进行测试,包括:
基于所述第三标识信息,获取所述目标数据集;
在各所述目标测试平台上使用对应的所述目标测试代码调用所述目标数据集对所述目标模型进行测试。
5.根据权利要求4所述的方法,其特征在于,所述获取测试配置信息,包括:
响应于接收到用户输入的若干配置内容,利用所述若干配置内容组合得到若干组候选配置信息,所述若干配置内容包括若干个测试类型、若干个目标测试平台的第一标识信息、若干个待测试的目标模型的第二标识信息以及若干个目标数据集的第三标识信息,每组所述候选配置信息包括一个所述测试类型、一个所述目标测试平台的第一标识信息、一个所述目标模型的第二标识信息以及一个所述目标数据集的第三标识信息;
基于所述若干组候选配置信息,得到所述测试配置信息。
6.根据权利要求5所述的方法,其特征在于,所述基于所述若干组候选配置信息,得到所述测试配置信息,包括:
响应于用户对至少一组所述候选配置信息的选择,将用户选择的候选配置信息作为所述测试配置信息。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
响应于用户对目标测试代码的更改操作,对所述目标测试代码进行更新;
所述使用所述目标测试代码对所述目标模型进行测试,得到测试结果,包括:
使用更新后的所述目标测试代码对所述目标模型进行测试,得到所述测试结果。
8.根据权利要求1-7任一项所述的方法,其特征在于,在所述使用所述目标测试代码对所述目标模型进行测试,得到测试结果之后,所述方法还包括:
对所述测试结果进行统计,得到统计结果;
将所述统计结果进行显示和/或发送至预设接收方。
9.根据权利要求8所述的方法,其特征在于,所述使用所述目标测试代码对所述目标模型进行测试,得到测试结果,包括:
在多个目标测试平台上使用对应的所述目标测试代码对所述目标模型进行测试,得到各所述测试平台关于所述目标模型在所述测试类型下的测试结果;
所述对所述测试结果进行统计,得到统计结果,包括:
对多个所述目标测试平台得到的目标模型关于所述测试类型的测试结果进行比较,得到所述目标模型在各所述目标测试平台上的测试结果的第一统计结果;和/或,
对于每一所述目标测试平台,将得到的所述目标模型的测试结果与历史测试结果进行比较,得到不同版本的所述目标模型在所述目标测试平台的测试结果的第二统计结果,所述历史测试结果为所述目标模型的至少一个历史版本在所述测试平台上关于所述测试类型的测试结果。
10.一种测试系统,其特征在于,包括:
测试管理模块,用于获取测试配置信息,所述测试配置信息包括关于待测试的目标模型的测试类型;
测试准备模块,用于基于所述测试配置信息,获取与所述测试类型对应的目标测试代码;
测试执行模块,用于使用所述目标测试代码对所述目标模型进行测试,得到测试结果。
11.一种电子设备,其特征在于,包括存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至9任一项所述的方法。
12.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至9任一项所述的方法。
CN202210674386.9A 2022-06-14 2022-06-14 测试方法和测试系统、电子设备、存储介质 Pending CN115061907A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210674386.9A CN115061907A (zh) 2022-06-14 2022-06-14 测试方法和测试系统、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210674386.9A CN115061907A (zh) 2022-06-14 2022-06-14 测试方法和测试系统、电子设备、存储介质

Publications (1)

Publication Number Publication Date
CN115061907A true CN115061907A (zh) 2022-09-16

Family

ID=83200856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210674386.9A Pending CN115061907A (zh) 2022-06-14 2022-06-14 测试方法和测试系统、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN115061907A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116578500A (zh) * 2023-07-14 2023-08-11 安徽华云安科技有限公司 基于强化学习的代码测试方法、装置以及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116578500A (zh) * 2023-07-14 2023-08-11 安徽华云安科技有限公司 基于强化学习的代码测试方法、装置以及设备
CN116578500B (zh) * 2023-07-14 2023-09-26 安徽华云安科技有限公司 基于强化学习的代码测试方法、装置以及设备

Similar Documents

Publication Publication Date Title
CN112311617A (zh) 一种配置化数据监控告警方法及系统
CN113422794A (zh) 流量录制、回放处理方法、装置及电子设备
CN111240876A (zh) 微服务的故障定位方法、装置、存储介质及终端
CN111159031A (zh) 应用移动终端自动化测试的方法、计算机装置及计算机可读存储介质
CN110597861A (zh) 实时告警方法、装置及设备和计算机可读存储介质
CN112948224B (zh) 一种数据处理方法、装置、终端及存储介质
CN115061907A (zh) 测试方法和测试系统、电子设备、存储介质
CN115686963A (zh) 一种服务器兼容性测试方法及装置
CN112671878B (zh) 一种区块链的信息订阅方法、装置、服务器和存储介质
CN113778771A (zh) 一种终端测试的方法、系统及存储介质
CN111176985B (zh) 软件接口的性能测试方法及装置、计算机设备、存储介质
CN113132522A (zh) 测试方法、装置、服务器及介质
CN110659189B (zh) 应用程序生成方法、装置、云服务器及可读存储介质
CN110020166B (zh) 一种数据分析方法及相关设备
CN111124791A (zh) 一种系统测试方法及装置
CN113452533B (zh) 计费自巡检、自愈合方法、装置、计算机设备和存储介质
CN114637685A (zh) 银行系统中应用程序的性能测试方法、装置、设备和介质
CN113342430A (zh) 故障码的处理方法、装置、终端设备及可读存储介质
CN112214532A (zh) 一种业务数据的稽核方法及相关装置
CN116701164B (zh) 测试方法及电子设备
CN117192343B (zh) 基于辅助系统的芯片测试方法、电子设备及介质
CN111611156B (zh) 功能测试方法、功能测试装置及计算机可读存储介质
CN112115046B (zh) 一种软件故障定位方法、装置及终端
CN111130919B (zh) 一种接口监控方法、装置、系统及存储介质
US11163667B2 (en) Method and apparatus for error ticket management

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