掌桥专利:专业的专利平台
掌桥专利
首页

目标程序的测试方法及装置、存储介质、电子设备

文献发布时间:2023-06-19 10:51:07


目标程序的测试方法及装置、存储介质、电子设备

技术领域

本申请涉及计算机编程技术领域,具体而言,涉及一种目标程序的测试方法及装置、存储介质、电子设备。

背景技术

在上线业务过程中需要做相关的测试,比如项目要上线时,一般需要准备大量的测试用例,而在大多数的情况下,上线的项目只是更新了几个功能点。目前的相关技术中,测试重点不突出,测试出现大量的冗余,导致测试时间长且测试时间不可控。而上线业务的时间窗口往往很短,在没有充分测试后就发布上线,经常会导致上线失败。

针对相关技术中,在上线业务的过程中由于测试点冗余导致测试时间长,进而导致上线失败的问题,目前尚未有合理的解决办法。

发明内容

本申请实施例提供了一种目标程序的测试方法及装置、存储介质、电子设备,以至少解决相关技术中在上线业务的过程中由于测试点冗余导致测试时间长,进而导致上线失败的问题。

根据本申请的一个实施例,提供了一种目标程序的测试方法,包括:设定目标程序的测试参数,其中,所述测试参数至少包括:测试场景、测试时间以及预期值,所述预期值用于表示当前测试预期达到的效果;通过所述目标程序的关键接口函数以及所述关键接口函数相关的调用函数,确定所述目标程序的功能和压力测试点;根据所述测试参数对所述目标程序的功能和压力测试点进行测试。

可选地,通过所述目标程序的关键接口函数以及所述关键接口函数相关的调用函数,确定所述目标程序的功能和压力测试点之前,所述方法还包括:在源代码库中查找所述目标程序中携带的识别码和版本参数,以确定所述目标程序的修改位置和修改功能,其中,所述识别码用于指示所述目标程序的修改位置,所述版本参数用于指示所述目标程序的修改功能;根据所述目标程序的修改位置和修改功能确定所述目标程序的关键接口函数以及与所述关键接口函数相关的调用函数。

可选地,根据所述目标程序的修改位置和修改功能确定所述目标程序的关键接口函数以及与所述关键接口函数相关的调用函数,包括:根据所述目标程序的修改位置和修改功能,确定所述目标程序的关键接口函数,其中,所述关键接口函数与所述目标程序的修改位置和修改功能相对应;动态分析所述关键接口函数调用的内部函数和外部接口,确定所述关键接口函数的调用函数。

可选地,根据所述测试参数对所述目标程序的功能和压力测试点进行测试,包括:下载所述测试场景的测试数据,其中,所述测试数据包括:所述目标程序所属数据库的历史数据,以及静态或动态网页资源;启动所述目标程序的上线环境、所述关键接口函数和与所述关键接口函数相关的所述调用函数;根据所述预期值确定所述目标程序的测试时间;在所述测试时间内对所述目标程序的功能和压力测试点进行测试。

可选地,根据所述目标程序中携带的识别码和版本参数,确定所述目标程序的修改位置和修改功能包括:根据所述识别码和所述版本参数在所述源代码库的历史数据中进行校对,所述目标程序的修改位置和修改功能。

根据本申请的另一个实施例,还提供了一种目标程序的测试装置,包括:设定模块,用于设定目标程序的测试参数,其中,所述测试参数至少包括:测试场景、测试时间以及预期值,所述预期值用于表示当前测试预期达到的效果;第一确定模块,用于通过所述目标程序的关键接口函数以及所述关键接口函数相关的调用函数,确定所述目标程序的功能和压力测试点;测试模块,用于根据所述测试参数对所述目标程序的功能和压力测试点进行测试。

可选地,所述装置还包括:第二确定模块,用于在源代码库中查找所述目标程序中携带的识别码和版本参数,以确定所述目标程序的修改位置和修改功能,其中,所述识别码用于指示所述目标程序的修改位置,所述版本参数用于指示所述目标程序的修改功能;第三确定模块,用于根据所述目标程序的修改位置和修改功能确定所述目标程序的关键接口函数以及与所述关键接口函数相关的调用函数。

可选地,所述第三确定模块包括:第一确定单元,用于根据所述目标程序的修改位置和修改功能,确定所述目标程序的关键接口函数,其中,所述关键接口函数与所述目标程序的修改位置和修改功能相对应;第二确定单元,用于动态分析所述关键接口函数调用的内部函数和外部接口,确定所述关键接口函数的调用函数。

可选地,所述测试模块包括:下载单元,用于下载所述测试场景的测试数据,其中,所述测试数据包括:所述目标程序所属数据库的历史数据,以及静态或动态网页资源;启动单元,用于启动所述目标程序的上线环境、所述关键接口函数和与所述关键接口函数相关的所述调用函数;第三确定单元,用于根据所述预期值确定所述目标程序的测试时间;测试单元,用于在所述测试时间内对所述目标程序的功能和压力测试点进行测试。

可选地,所述第二确定模块包括:第四确定单元,用于根据所述识别码和所述版本参数在所述源代码库的历史数据中进行校对,确定所述目标程序的修改位置和修改功能。

根据本申请的另一个实施例,还提供了一种计算机可读的存储介质,用于存储程序,所述程序被执行时,用于实现上述方法实施例中任意一项所述的目标程序的测试方法。

根据本申请的另一个实施例,还提供了一种电子设备,包括至少一个处理器、至少一个存储器、以及总线;其中,所述处理器与所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述方法实施例中任意一项所述的目标程序的测试方法。

通过本申请实施例,通过先设定测试参数,包括测试场景、测试时间以及预期值等,然后通过识别码和版本参数获取待测试的目标程序,然后根据设定的测试参数对目标程序的功能和压力点进行测试,解决了相关技术中在上线业务的过程中由于测试点冗余导致测试时间长,进而导致上线失败的问题,实现了对目标程序新增功能和压力测试点的定向测试,有效节约了测试时间,并对新增功能和压力测试点进行了全面测试。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请实施例中目标程序的测试方法的流程图;

图2是本公开实施例的一种目标程序的测试方法的硬件环境示意图;

图3是根据本申请实施例的目标程序的测试装置的结构框图;

图4是根据本申请实施例的一种可选的设备结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例提供了一种目标程序的测试方法。图1是本申请实施例中目标程序的测试方法的流程图,这里所称的打印包括对日志进行展示、进行展示前的预处理、将日志输出到指定设备或指定的系统等,而不限于将日志印刷,如图1所示,该方法包括:

步骤S102,设定目标程序的测试参数,其中,测试参数至少包括:测试场景、测试时间以及预期值,预期值用于表示当前测试预期达到的效果;

步骤S104,通过目标程序的关键接口函数以及关键接口函数相关的调用函数,确定目标程序的功能和压力测试点;

步骤S106,根据测试参数对目标程序的功能和压力测试点进行测试。

通过上述方法,通过先设定测试参数,包括测试场景、测试时间以及预期值等,然后通过识别码和版本参数获取待测试的目标程序,然后根据设定的测试参数对目标程序的功能和压力点进行测试,解决了相关技术中在上线业务的过程中由于测试点冗余导致测试时间长,进而导致上线失败的问题,实现了对目标程序新增功能和压力测试点的定向测试,有效节约了测试时间,并对新增功能和压力测试点进行了全面测试。

图2是本公开实施例的一种目标程序的测试方法的硬件环境示意图。可选地,在本实施例中,过滤信息配置方法可以应用于如图2所示的服务器202和用户终端204所构成的硬件环境中,图1所示的各个步骤的执行主体可以但不限于是服务器202。如图2所示,服务器202获取到用户终端204修改的程序代码后,可以根据在程序代码中预定位的识别码和版本参数(版本号)来确定程序的修改的代码和功能点,对于修改的代码的和功能点进行过滤,找出关键入口函数以及动态分析该函数以及调用的内部函数和外部接口,自动生成功能和压力测试点。上述服务器202、用户终端204可以但不限于通过网络实现数据交互,上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述仅是一种示例,本实施例中对此不作任何限定。

服务器202中的处理步骤包括:

步骤S202,设定目标程序的测试参数,其中,测试参数至少包括:测试场景、测试时间以及预期值,预期值用于表示当前测试预期达到的效果;

步骤S204,通过目标程序的关键接口函数以及关键接口函数相关的调用函数,确定目标程序的功能和压力测试点;

步骤S206,根据测试参数对目标程序的功能和压力测试点进行测试。

需要说明的是,设置的测试场景表示该目标程序对应的功能测试,例如电商前端的高性能测试或后端的高性能测试,预期值是目标程序期望达到的效果,例如预期值为10万并发,表示需要支持10万级用户的同时在线访问,测试时间可以是根据预期值进行计算的,也可以根据测试场景来确定,本申请实施例对此不做限定。

可选地,通过目标程序的关键接口函数以及关键接口函数相关的调用函数,确定目标程序的功能和压力测试点之前,所述方法还包括:

S1,在源代码库中查找所述目标程序中携带的识别码和版本参数,以确定所述目标程序的修改位置和修改功能,其中,所述识别码用于指示所述目标程序的修改位置,所述版本参数用于指示所述目标程序的修改功能;

S2,根据目标程序的修改位置和修改功能确定目标程序的关键接口函数以及与关键接口函数相关的调用函数。

可选地,根据所述目标程序中携带的识别码和版本参数,确定所述目标程序的修改位置和修改功能包括:根据所述识别码和所述版本参数在所述源代码库的历史数据中进行校对,确定所述目标程序的修改位置和修改功能。

需要说明的是,脚本的原理是使用写程序代码的人员使用预定位的识别码,在写程序代码的人员修改代码后,在指定的源代码库中写明识别码和版本号,而脚本根据识别码和版本号在历史中进行校对,识别码通常为128字节的特征码,根据识别码中的关键字,可以确定出目标程序的网络信息和所属数据库等。识别码也可以类似于修订标记,例如一个目标程序修改了5处代码,那么这一版本的目标程序就包含5个识别码,每一个识别码对应一处修订位置。版本号(版本参数)用于指示这一版本的目标程序修改了哪些功能,包括删除、新增、修订等,都记录在数据库中,也可以记录在源代码库中。通过版本号可以确定最新修改的目标程序的代码的修改的功能,通过识别码可以确定具体代码位置。

可选地,根据所述目标程序的修改位置和修改功能确定所述目标程序的关键接口函数以及与所述关键接口函数相关的调用函数,包括:

S1,根据所述目标程序的修改位置和修改功能,确定所述目标程序的关键接口函数,其中,所述关键接口函数与所述目标程序的修改位置和修改功能相对应;

S2,动态分析所述关键接口函数调用的内部函数和外部接口,确定所述关键接口函数的调用函数。

本申请实施例中,可以通过脚本自动分析上线修改的代码(目标程序),列出关键的接口函数,通过接口函数动态分析其它相关调用过程,进而确定其相关的调用函数。

可选地,根据所述测试参数对所述目标程序的功能和压力测试点进行测试,包括:下载所述测试场景的测试数据,其中,所述测试数据包括:所述目标程序所属数据库的历史数据,以及静态或动态网页资源;启动所述目标程序的上线环境、所述关键接口函数和与所述关键接口函数相关的所述调用函数;根据所述预期值确定所述目标程序的测试时间;在所述测试时间内对所述目标程序的功能和压力测试点进行测试。

需要说明的是,自动下载测试场景的测试数据,包括数据库的历史数据,静态/动态网页资源;启用上线环境和函数过程,通过分布出的函数布局调用,生成预设值,如该函数将有20个结构化查询语言(Structured Query Language,简称为sql)查询,线上主表关联查询3次,平均消耗0.3秒,其它查询0.01秒返回,日志函数被请求将日志1次,每次消耗0.1秒,请求外部网关1次,每次1秒,分析程序自动得出该函数预期为1.5秒返回,根据10万并发的场景计算出10万并发要消耗多少资源和时间;根据10万并发启用测试用例,设置开始时间/终止时间。

通过上述方法可以对于修改的代码的和功能点进行过滤,找出关键入口函数以及动态分析该函数以及调用的内部函数和外部接口,自动生成功能和压力测试点,以线上环境中的数据进行模拟,测试10轮后,得出测试报告。当然,也可以测试20轮或者30轮,根据具体的测试场景进行设置,本申请实施例对此不做限定。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

在本实施例中还提供了一种目标程序的测试装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3是根据本申请实施例的目标程序的测试装置的结构框图,如图3所示,该装置包括:

设定模块302,用于设定目标程序的测试参数,其中,所述测试参数至少包括:测试场景、测试时间以及预期值,所述预期值用于表示当前测试预期达到的效果;

第一确定模块304,用于通过所述目标程序的关键接口函数以及所述关键接口函数相关的调用函数,确定所述目标程序的功能和压力测试点;

测试模块306,用于根据所述测试参数对所述目标程序的功能和压力测试点进行测试。

可选地,所述装置还包括:

第二确定模块,用于在源代码库中查找所述目标程序中携带的识别码和版本参数,以确定所述目标程序的修改位置和修改功能,其中,所述识别码用于指示所述目标程序的修改位置,所述版本参数用于指示所述目标程序的修改功能;

第三确定模块,用于根据所述目标程序的修改位置和修改功能确定所述目标程序的关键接口函数以及与所述关键接口函数相关的调用函数。

可选地,所述第三确定模块包括:

第一确定单元,用于根据所述目标程序的修改位置和修改功能,确定所述目标程序的关键接口函数,其中,所述关键接口函数与所述目标程序的修改位置和修改功能相对应;

第二确定单元,用于动态分析所述关键接口函数调用的内部函数和外部接口,确定所述关键接口函数的调用函数。

可选地,所述测试模块包括:

下载单元,用于下载所述测试场景的测试数据,其中,所述测试数据包括:所述目标程序所属数据库的历史数据,以及静态或动态网页资源;

启动单元,用于启动所述目标程序的上线环境、所述关键接口函数和与所述关键接口函数相关的所述调用函数;

第三确定单元,用于根据所述预期值确定所述目标程序的测试时间;

测试单元,用于在所述测试时间内对所述目标程序的功能和压力测试点进行测试。

可选地,所述第二确定模块包括:

第四确定单元,用于根据所述识别码和所述版本参数在所述源代码库的历史数据中进行校对,确定所述目标程序的修改位置和修改功能。

上述目标程序的测试装置包括处理器和存储器,上述设定模块302,确定模块304,测试模块306等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过先设定测试参数,包括测试场景、测试时间以及预期值等,然后通过识别码和版本参数获取待测试的目标程序,然后根据设定的测试参数对目标程序的功能和压力点进行测试,解决了相关技术中在上线业务的过程中由于测试点冗余导致测试时间长,进而导致上线失败的问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述目标程序的测试方法。

本申请实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述目标程序的测试方法。

图4是根据本申请实施例的一种可选的设备结构框图。本申请实施例提供了一种设备,设备40包括至少一个处理器401、以及与处理器连接的至少一个存储器402、总线403;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的目标程序的测试方法。本文中的设备可以是服务器、PC、PAD、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:

S1,设定目标程序的测试参数,其中,测试参数至少包括:测试场景、测试时间以及预期值,预期值用于表示当前测试预期达到的效果;

S2,通过目标程序的关键接口函数以及关键接口函数相关的调用函数,确定目标程序的功能和压力测试点;

S3,根据测试参数对目标程序的功能和压力测试点进行测试。

可选地,本申请提供的计算机程序产品还适于执行有如下方法步骤的程序:

在源代码库中查找所述目标程序中携带的识别码和版本参数,以确定所述目标程序的修改位置和修改功能,其中,所述识别码用于指示所述目标程序的修改位置,所述版本参数用于指示所述目标程序的修改功能;根据所述目标程序的改位置和修改功能确定所述目标程序的关键接口函数以及与所述关键接口函数相关的调用函数。

可选地,本申请提供的计算机程序产品还适于执行有如下方法步骤的程序:

根据所述目标程序的改位置和修改功能,确定所述目标程序的关键接口函数,其中,所述关键接口函数与所述目标程序的改位置和修改功能相对应;动态分析所述关键接口函数调用的内部函数和外部接口,确定所述关键接口函数的调用函数。

可选地,本申请提供的计算机程序产品还适于执行有如下方法步骤的程序:

下载所述测试场景的测试数据,其中,所述测试数据包括:所述目标程序所属数据库的历史数据,以及静态或动态网页资源;启动所述目标程序的上线环境、所述关键接口函数和与所述关键接口函数相关的所述调用函数;根据所述预期值确定所述目标程序的测试时间;在所述测试时间内对所述目标程序的功能和压力测试点进行测试。

可选地,本申请提供的计算机程序产品还适于执行有如下方法步骤的程序:

根据所述识别码和所述版本参数在所述源代码库的历史数据中进行校对,确定所述目标程序的改位置和修改功能。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

相关技术
  • 目标程序的测试方法及装置、存储介质、电子设备
  • 电子设备的测试方法、装置、电子设备和存储介质
技术分类

06120112707669