CN115687141A - 应用程序的测试方法、装置、电子设备和存储介质 - Google Patents

应用程序的测试方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN115687141A
CN115687141A CN202211412339.3A CN202211412339A CN115687141A CN 115687141 A CN115687141 A CN 115687141A CN 202211412339 A CN202211412339 A CN 202211412339A CN 115687141 A CN115687141 A CN 115687141A
Authority
CN
China
Prior art keywords
application program
test case
test
data stream
target data
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
CN202211412339.3A
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202211412339.3A priority Critical patent/CN115687141A/zh
Publication of CN115687141A publication Critical patent/CN115687141A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种应用程序的测试方法、装置、电子设备和存储介质,涉及程序测试技术领域,尤其涉及源代码、测试用例技术领域。具体实现方案为:获取应用程序运行过程中产生的目标数据流;基于目标数据流,生成应用程序的测试用例;基于测试用例,对应用程序进行测试。由此,可基于应用程序运行过程中产生的目标数据流,自动生成测试用例,在生成测试用例时不需要定位页面元素,相较于相关技术中生成测试用例时大多需要人工手动定位页面元素,简化了测试用例的生成过程,节省了人力物力,提高了应用程序的测试效率。

Description

应用程序的测试方法、装置、电子设备和存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种应用程序的测试方法、装置、电子设备、存储介质和计算机程序产品。
背景技术
目前,随着互联网技术的不断发展,应用程序的开发、迭代较为频繁,以满足人们的使用需求。为了确保应用程序的正常运行,大多需要在应用程序正式投入使用之前,对应用程序进行测试。然而,相关技术中的应用程序的测试方法,存在测试用例编写繁琐、测试效率低的问题。
发明内容
本公开提供了一种应用程序的测试方法、装置、电子设备、存储介质和计算机程序产品。
根据本公开的一方面,提供了一种应用程序的测试方法,包括:获取应用程序运行过程中产生的目标数据流;基于所述目标数据流,生成所述应用程序的测试用例;基于所述测试用例,对所述应用程序进行测试。
根据本公开的另一方面,提供了一种应用程序的测试装置,包括:获取模块,用于获取应用程序运行过程中产生的目标数据流;生成模块,用于基于所述目标数据流,生成所述应用程序的测试用例;测试模块,用于基于所述测试用例,对所述应用程序进行测试。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行应用程序的测试方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行应用程序的测试方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现应用程序的测试方法的步骤。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的应用程序的测试方法的流程示意图;
图2是根据本公开第二实施例的应用程序的测试方法的示意图;
图3是根据本公开第三实施例的应用程序的测试方法的流程示意图;
图4是根据本公开第四实施例的应用程序的测试方法的流程示意图;
图5是根据本公开第五实施例的应用程序的测试方法的流程示意图;
图6是根据本公开第六实施例的应用程序的测试方法的示意图;
图7是根据本公开第一实施例的应用程序的测试装置的框图;
图8是用来实现本公开实施例的应用程序的测试方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
程序测试(Program Testing)是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行。程序测试是发现程序错误和缺陷的主要手段,包括单元测试、集成测试和确认测试等类别。
源代码(也称源程序)是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。
测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。测试用例包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等。测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。
图1是根据本公开第一实施例的应用程序的测试方法的流程示意图。
如图1所示,本公开第一实施例的应用程序的测试方法,包括:
S101,获取应用程序运行过程中产生的目标数据流。
需要说明的是,本公开实施例的应用程序的测试方法的执行主体可包括具有数据信息处理能力的硬件设备和/或驱动该硬件设备工作所需必要的软件。可选地,第一数据提供端可包括工作站、服务器,计算机、用户终端及其他智能设备。其中,用户终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。
需要说明的是,对应用程序不做过多限定,比如,应用程序可包括web(World WideWeb,万维网)应用程序、非web应用程序等,应用程序的架构可包括C/S(Client/Server,服务器/客户机)架构、B/S(Browser/Server,浏览器/服务器)架构等。
在一种实施方式中,在应用程序为web应用程序的情况下,web应用程序可部署在浏览器中,本公开实施例的应用程序的测试方法的执行主体可包括浏览器,浏览器可获取web应用程序运行过程中产生的数据流。
需要说明的是,对目标数据流不做过多限定,比如,目标数据流可包括数据对象、数据处理代码等。对数据对象、数据处理代码不做过多限定,比如,数据对象可包括应用程序运行过程中产生的任一数据对象,数据处理代码可包括应用程序运行过程中产生的任一数据处理代码。
在一种实施方式中,数据对象可包括文本、图片、音频、视频、页面皮肤等。
在一种实施方式中,数据处理代码可包括刷新页面、点击图标、滑动文档、文本框搜索、切换页面等代码。
在一种实施方式中,目标数据流与应用程序的页面元素之间具有关联关系。应说明的是,对上述关联关系不做过多限定,比如,上述关联关系可预先设置。可以理解的是,一个页面元素可关联至少一个目标数据流,一个目标数据流可关联至少一个页面元素,这里不做过多限定。
比如,如图2所示,应用程序的页面包括页面元素A1至A4,其中,页面元素A1为商品1对应的页面元素,页面元素A2为商品2对应的页面元素,页面元素A3为商品3对应的页面元素,页面元素A4为文本框的搜索图标,页面元素A1至A3关联的目标数据流分别为数据对象B1至B3,页面元素A4关联的目标数据流为数据处理代码B4,应用程序的页面运行过程中产生的目标数据流包括数据对象B1至B3和数据处理代码B4
需要说明的是,对数据对象B1至B3、数据处理代码B4均不做过多限定,比如,数据对象B1可包括商品1的文本、图片、视频等,数据处理代码B4可为任一文本框搜索代码。
在一种实施方式中,获取应用程序运行过程中产生的目标数据流,包括获取应用程序的测试需求,基于测试需求获取目标数据流。应说明的是,对测试需求不做过多限定,比如,测试需求可包括应用程序的某个页面的测试需求、某个页面元素的测试需求、某个业务场景的测试需求、某个功能的测试需求等。由此,该方法中可考虑到应用程序的测试需求,来获取目标数据流,不需要获取应用程序运行过程中产生的全部数据流,大大降低了目标数据流的数量。
在一些例子中,基于测试需求获取目标数据流,包括响应于测试需求包括目标页面的测试需求,获取应用程序运行过程中产生的,且目标页面关联的目标数据流。可以理解的是,目标页面关联的目标数据流可包括目标页面的属性值,比如,可包括页面颜色、页面尺寸等。
在一些例子中,基于测试需求获取目标数据流,包括响应于测试需求包括目标页面元素的测试需求,获取应用程序运行过程中产生的,且目标页面元素关联的目标数据流。可以理解的是,目标页面元素关联的目标数据流可包括目标页面元素的属性值,比如,可包括页面元素的颜色、尺寸、字体、字号、文本、图片等。
在一种实施方式中,获取应用程序运行过程中产生的目标数据流,包括按照设定周期,获取目标数据流。应说明的是,对设定周期不做过多限定,比如,设定周期可为5秒。由此,该方法中可实现周期性获取目标数据流,保证了目标数据流的实时性和准确性。
在一种实施方式中,获取应用程序运行过程中产生的目标数据流,包括获取距离当前时刻设定时长内的目标数据流。应说明的是,对设定时长不做过多限定,比如,设定时长可为10分钟。由此,该方法中可获取距离当前时刻设定时长内的目标数据流,保证了目标数据流的实时性和准确性。
S102,基于目标数据流,生成应用程序的测试用例。
在一种实施方式中,基于目标数据流,生成应用程序的测试用例,包括获取应用程序的测试需求,基于测试需求和目标数据流,生成测试用例。应说明的是,测试需求的相关内容,可参见上述实施例,这里不再赘述。由此,该方法中可综合考虑到应用程序的测试需求和目标数据流,来生成测试用例,提高了测试用例的准确性和灵活性。
在一些例子中,基于测试需求和目标数据流,生成测试用例,包括基于测试需求,从目标数据流中筛选出测试数据流,基于测试数据流生成测试用例。
比如,基于测试需求,从目标数据流中筛选出测试数据流,包括响应于测试需求包括目标页面的测试需求,从目标数据流中筛选出目标页面关联的测试数据流。
比如,基于测试需求,从目标数据流中筛选出测试数据流,包括响应于测试需求包括目标页面元素的测试需求,从目标数据流中筛选出目标页面元素关联的测试数据流。
比如,继续以图2为例,可响应于测试需求包括页面元素A1、A4的测试需求,从目标数据流中筛选出页面元素A1关联的数据对象B1,以及页面元素A4关联的数据处理代码B4,即测试数据流包括数据对象B1、数据处理代码B4,基于数据对象B1、数据处理代码B4生成测试用例C1
或者,可响应于测试需求包括页面元素A2、A4的测试需求,从目标数据流中筛选出页面元素A2关联的数据对象B2,以及页面元素A4关联的数据处理代码B4,即测试数据流包括数据对象B2、数据处理代码B4,基于数据对象B2、数据处理代码B4生成测试用例C2
或者,可响应于测试需求包括页面元素A3、A4的测试需求,从目标数据流中筛选出页面元素A3关联的数据对象B3,以及页面元素A4关联的数据处理代码B4,即测试数据流包括数据对象B3、数据处理代码B4,基于数据对象B3、数据处理代码B4生成测试用例C3
在一种实施方式中,还包括将测试用例存储至设定存储空间。应说明的是,对设定存储空间不做过多限定,比如,可包括应用程序的测试***的存储空间。
S103,基于测试用例,对应用程序进行测试。
比如,继续以图2为例,可基于测试用例C1(图中未示出),对应用程序的页面元素A1、A4进行测试,可基于测试用例C2(图中未示出),对应用程序的页面元素A2、A4进行测试,可基于测试用例C3(图中未示出),对应用程序的页面元素A3、A4进行测试。
综上,根据本公开实施例的应用程序的测试方法,获取应用程序运行过程中产生的目标数据流,基于目标数据流,生成应用程序的测试用例,基于测试用例,对应用程序进行测试。由此,可基于应用程序运行过程中产生的目标数据流,自动生成测试用例,在生成测试用例时不需要定位页面元素,相较于相关技术中生成测试用例时大多需要人工手动定位页面元素,简化了测试用例的生成过程,节省了人力物力,提高了应用程序的测试效率。
图3是根据本公开第三实施例的应用程序的测试方法的流程示意图。
如图3所示,本公开第三实施例的应用程序的测试方法,包括:
S301,对应用程序的代码文件进行插桩处理,生成插桩文件。
S302,运行插桩文件,以运行应用程序,并采集目标数据流。
需要说明的是,对代码文件不做过多限定,比如,代码文件可包括整个应用程序的代码文件、应用程序的某个页面的代码文件、某个页面元素的代码文件等。
在一种实施方式中,以执行主体为浏览器为例,web应用程序的插桩文件可部署在浏览器中,浏览器运行web应用程序的插桩文件,以运行web应用程序,并采集目标数据流。
在一种实施方式中,对应用程序的代码文件进行插桩处理,生成插桩文件,包括获取代码文件中的源数据流,在源数据流之间进行插桩处理,生成插桩文件。应说明的是,代码文件携带源数据流,目标数据流为部分或者全部的源数据流,源数据流的相关内容,可参见上述实施例中目标数据流的相关内容,这里不再赘述。
可以理解的是,在源数据流之间进行插桩处理,可实现将源数据流暴露在外,从而可从源数据流中采集目标数据流。应说明的是,对插桩处理的具体方式不做过多限定,比如,可在源数据流之间***设定代码。
在一种实施方式中,对应用程序的代码文件进行插桩处理,生成插桩文件,包括对代码文件进行解析,得到代码文件的AST(Abstract Syntax Tree,抽象语法树),遍历AST,得到应用程序的源数据流,在源数据流之间进行插桩处理,生成插桩文件,以实现插桩文件的生成。应说明的是,对解析代码文件、遍历AST的具体方式均不做过多限定,比如,可分别采用源代码领域中的任一代码解析方法、任一遍历AST方法来实现。
S303,基于目标数据流,生成应用程序的测试用例。
S304,基于测试用例,对应用程序进行测试。
步骤S303-S304的相关内容可参见上述实施例,这里不再赘述。
综上,根据本公开实施例的应用程序的测试方法,对应用程序的代码文件进行插桩处理,生成插桩文件,运行插桩文件,以运行应用程序,并采集目标数据流。由此,可通过插桩处理生成插桩文件,并运行插桩文件以运行应用程序,且可通过插桩处理,来实现将目标数据流暴露在外,以实现目标数据流的采集。
图4是根据本公开第四实施例的应用程序的测试方法的流程示意图。
如图4所示,本公开第四实施例的应用程序的测试方法,包括:
S401,获取应用程序运行过程中产生的目标数据流,其中,目标数据流包括数据对象和数据处理代码。
步骤S401的相关内容可参见上述实施例,这里不再赘述。
S402,基于数据处理代码,生成测试用例的执行方式。
需要说明的是,对执行方式不做过多限定,比如,执行方式可包括至少一个步骤。
在一种实施方式中,基于数据处理代码,生成测试用例的执行方式,包括基于至少一个数据处理代码,生成测试用例的执行方式。
在一些例子中,基于至少一个数据处理代码,生成测试用例的执行方式,包括基于任一数据处理代码,生成测试用例的执行方式。比如,继续以图2为例,可基于数据处理代码B4,分别生成测试用例C1至C3(图中未示出)的执行方式。
在一些例子中,基于至少一个数据处理代码,生成测试用例的执行方式,包括对多个数据处理代码进行融合,生成测试用例的执行方式。应说明的是,对融合的具体方式不做过多限定,比如,包括按照设定顺序组合等。
具体例子中,数据处理代码包括数据处理代码B5至B7,可对数据处理代码B5至B7进行融合,生成测试用例的执行方式。比如,可按照数据处理代码B5、B6、B7的顺序,将数据处理代码B5至B7进行组合,生成测试用例的执行方式,或者,按照数据处理代码B6、B5、B7的顺序,将数据处理代码B5至B7进行组合,生成测试用例的执行方式。
S403,基于数据对象,生成测试用例的参考执行结果。
需要说明的是,对参考执行结果不做过多限定,比如,参考执行结果可包括文本、图片、音频、视频、页面皮肤等。
比如,继续以图2为例,可基于数据对象B1,生成测试用例C1(图中未示出)的参考执行结果,可基于数据对象B2,生成测试用例C2(图中未示出)的参考执行结果,基于数据对象B3,生成测试用例C3(图中未示出)的参考执行结果。
S404,按照执行方式执行测试用例,得到测试用例的实际执行结果。
需要说明的是,对实际执行结果不做过多限定,比如,实际执行结果可包括文本、图片、音频、视频、页面皮肤等。
在一种实施方式中,得到测试用例的实际执行结果,包括响应于测试用例执行结束,获取应用程序运行过程中产生的实际执行结果。应说明的是,获取实际执行结果的相关内容,可参见上述实施例中获取目标数据流的相关内容,这里不再赘述。
比如,可按照测试用例C1的执行方式,执行测试用例C1,响应于测试用例C1执行结束,得到测试用例C1的实际执行结果。
S405,基于实际执行结果和参考执行结果,得到应用程序的测试结果。
需要说明的是,对测试结果不做过多限定,比如,测试结果包括应用程序的某个页面的测试结果、某个页面元素的测试结果、某个业务场景的测试结果、某个功能的测试结果等。
在一种实施方式中,基于实际执行结果和参考执行结果,得到应用程序的测试结果,包括获取实际执行结果和参考执行结果之间的相似度,基于相似度得到应用程序的测试结果。
比如,继续以图2为例,测试用例C1(图中未示出)的实际执行结果为商品1的图片,参考执行结果为商品1的图片,则实际执行结果和参考执行结果之间的相似度为100%,可得到应用程序的页面元素A1、A4的测试结果为页面元素A1、A4正常。
或者,测试用例C2(图中未示出)的实际执行结果为商品1的图片,参考执行结果为商品2的图片,则实际执行结果和参考执行结果之间的相似度为0%,可得到应用程序的页面元素A2、A4的测试结果为页面元素A2、A4异常。
综上,根据本公开实施例的应用程序的测试方法,基于数据处理代码,生成测试用例的执行方式,基于数据对象,生成测试用例的参考执行结果,即可综合考虑到数据对象和数据处理代码,来生成测试用例,在生成测试用例时不需要定位页面元素,并可按照执行方式执行测试用例,得到测试用例的实际执行结果,基于实际执行结果和参考执行结果,得到应用程序的测试结果,即在执行测试用例和获取测试结果时不需要定位页面元素,相较于相关技术中生成测试用例、执行测试用例和获取测试结果时大多需要人工手动定位页面元素,简化了测试用例的生成、执行、获取测试结果的过程,节省了人力物力,提高了应用程序的测试效率。
图5是根据本公开第五实施例的应用程序的测试方法的流程示意图。
如图5所示,本公开第五实施例的应用程序的测试方法,包括:
S501,获取应用程序的数据库的备份文件。
需要说明的是,数据库至少用于为应用程序提供数据存储的服务。对数据库不做过多限定。备份文件是唯一的。
在一种实施方式中,还包括将备份文件存储至目标存储空间,以实现备份文件的存储。应说明的是,对目标存储空间不做过多限定,比如,可包括应用程序的测试***的存储空间。
在一种实施方式中,获取应用程序的数据库的备份文件之前,还包括获取应用程序的测试指令。应说明的是,测试指令可基于用户的操作信息生成,也可由浏览器自行生成,这里不做过多限定。
S502,基于备份文件,生成测试用例的执行环境。
本公开的实施例中,执行环境是基于唯一的备份文件生成的,则执行环境较稳定。
在一种实施方式中,基于备份文件,生成测试用例的执行环境,包括基于备份文件,生成测试数据库,将测试数据库添加到测试用例的执行环境中。
在一些例子中,基于备份文件,生成测试数据库,包括直接将备份文件确定为测试数据库。
在一些例子中,基于备份文件,生成测试数据库,包括获取应用程序的测试需求,基于测试需求,从备份文件中筛选出目标数据,基于目标数据生成测试数据库。应说明的是,测试需求的相关内容,可参见上述实施例,这里不再赘述。由此,该方法中可基于测试需求,从备份文件中筛选出目标数据来生成测试数据库,不需要根据全部备份文件来生成测试数据库,大大降低了测试数据库的数据量。
比如,基于测试需求,从备份文件中筛选出目标数据,包括响应于测试需求包括目标页面的测试需求,从备份文件中筛选出目标页面关联的目标数据。
比如,基于测试需求,从备份文件中筛选出目标数据,包括响应于测试需求包括目标页面元素的测试需求,从备份文件中筛选出目标页面元素关联的目标数据。
S503,获取应用程序运行过程中产生的目标数据流。
S504,基于目标数据流,生成应用程序的测试用例。
步骤S503-S504的相关内容可参见上述实施例,这里不再赘述。
S505,在执行环境中执行测试用例,以对应用程序进行测试。
比如,继续以图2为例,可在执行环境中执行测试用例C1(图中未示出),以对应用程序的页面元素A1、A4进行测试,可在执行环境中执行测试用例C2(图中未示出),以对应用程序的页面元素A2、A4进行测试,可在执行环境中执行测试用例C3(图中未示出),以对应用程序的页面元素A3、A4进行测试。
需要说明的是,测试用例C1至C3均可重复执行多次,对测试用例C1至C3的执行顺序不做过多限定。
综上,根据本公开实施例的应用程序的测试方法,获取应用程序的数据库的备份文件,基于备份文件,生成测试用例的执行环境,即执行环境是基于唯一的备份文件生成的,有助于提高执行环境的稳定性,在执行环境中执行测试用例,以对应用程序进行测试,相较于相关技术中大多需要人工比对执行环境是否一致,节省了人力物力,提高了应用程序的测试效率和准确性。
在上述任一实施例的基础上,如图6所示,应用程序601、数据库602之间可进行数据传输,应用程序601、测试***603之间可进行数据传输,数据库602、测试***603之间可进行数据传输。测试***603包括采集模块6031、编写模块6032、展示模块6033、存储模块6034、执行模块6035和验证模块6036。
采集模块6031用于获取应用程序运行过程中产生的目标数据流。
编写模块6032用于基于目标数据流,生成应用程序的测试用例。
展示模块6033用于展示目标数据流,以便用户可查看到目标数据流,并根据目标数据流,人工编写出应用程序的测试用例。由此,该方法中可实现目标数据流的可视化,以便人工编写测试用例。
存储模块6034用于获取所述应用程序的数据库的备份文件,并将所述备份文件存储至目标存储空间。
执行模块6035用于执行测试用例。
验证模块6036用于得到应用程序的测试结果。
在一些例子中,以执行主体为浏览器为例,测试***603可部署在浏览器中。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种应用程序的测试装置,用于实现上述的应用程序的测试方法。
图7是根据本公开第一实施例的应用程序的测试装置的框图。
如图7所示,本公开实施例的应用程序的测试装置700,包括:获取模块701、生成模块702和测试模块703。
获取模块701用于获取应用程序运行过程中产生的目标数据流;
生成模块702用于基于所述目标数据流,生成所述应用程序的测试用例;
测试模块703用于基于所述测试用例,对所述应用程序进行测试。
在本公开的一个实施例中,所述获取模块701还用于:对所述应用程序的代码文件进行插桩处理,生成插桩文件;运行所述插桩文件,以运行所述应用程序,并采集所述目标数据流。
在本公开的一个实施例中,所述获取模块701还用于:对所述代码文件进行解析,得到所述代码文件的抽象语法树;遍历所述抽象语法树,得到所述应用程序的源数据流;在所述源数据流之间进行插桩处理,生成所述插桩文件。
在本公开的一个实施例中,所述目标数据流包括数据对象和数据处理代码;其中,所述生成模块702还用于:基于所述数据处理代码,生成所述测试用例的执行方式;基于所述数据对象,生成所述测试用例的参考执行结果。
在本公开的一个实施例中,所述测试模块703还用于:按照所述执行方式执行所述测试用例,得到所述测试用例的实际执行结果;基于所述实际执行结果和所述参考执行结果,得到所述应用程序的测试结果。
在本公开的一个实施例中,所述获取应用程序运行过程中产生的目标数据流之前,所述获取模块701还用于:获取所述应用程序的数据库的备份文件;基于所述备份文件,生成所述测试用例的执行环境。
在本公开的一个实施例中,所述测试模块703还用于:在所述执行环境中执行所述测试用例,以对所述应用程序进行测试。
在本公开的一个实施例中,所述获取模块701还用于:将所述备份文件存储至目标存储空间。
在本公开的一个实施例中,所述目标数据流与所述应用程序的页面元素之间具有关联关系。
综上,本公开实施例的应用程序的测试装置,获取应用程序运行过程中产生的目标数据流,基于目标数据流,生成应用程序的测试用例,基于测试用例,对应用程序进行测试。由此,可基于应用程序运行过程中产生的目标数据流,自动生成测试用例,在生成测试用例时不需要定位页面元素,相较于相关技术中生成测试用例时大多需要人工手动定位页面元素,简化了测试用例的生成过程,节省了人力物力,提高了应用程序的测试效率。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储电子设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如图1至图6所述的应用程序的测试方法。例如,在一些实施例中,应用程序的测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到电子设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的应用程序的测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用程序的测试方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现本公开上述实施例所述的应用程序的测试方法的步骤。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (21)

1.一种应用程序的测试方法,包括:
获取应用程序运行过程中产生的目标数据流;
基于所述目标数据流,生成所述应用程序的测试用例;
基于所述测试用例,对所述应用程序进行测试。
2.根据权利要求1所述的方法,其中,所述获取应用程序运行过程中产生的目标数据流,包括:
对所述应用程序的代码文件进行插桩处理,生成插桩文件;
运行所述插桩文件,以运行所述应用程序,并采集所述目标数据流。
3.根据权利要求2所述的方法,其中,所述对所述应用程序的代码文件进行插桩处理,生成插桩文件,包括:
对所述代码文件进行解析,得到所述代码文件的抽象语法树;
遍历所述抽象语法树,得到所述应用程序的源数据流;
在所述源数据流之间进行插桩处理,生成所述插桩文件。
4.根据权利要求1所述的方法,其中,所述目标数据流包括数据对象和数据处理代码;
其中,所述基于所述目标数据流,生成所述应用程序的测试用例,包括:
基于所述数据处理代码,生成所述测试用例的执行方式;
基于所述数据对象,生成所述测试用例的参考执行结果。
5.根据权利要求4所述的方法,其中,所述基于所述测试用例,对所述应用程序进行测试,包括:
按照所述执行方式执行所述测试用例,得到所述测试用例的实际执行结果;
基于所述实际执行结果和所述参考执行结果,得到所述应用程序的测试结果。
6.根据权利要求1所述的方法,其中,所述获取应用程序运行过程中产生的目标数据流之前,还包括:
获取所述应用程序的数据库的备份文件;
基于所述备份文件,生成所述测试用例的执行环境。
7.根据权利要求6所述的方法,其中,所述基于所述测试用例,对所述应用程序进行测试,包括:
在所述执行环境中执行所述测试用例,以对所述应用程序进行测试。
8.根据权利要求6所述的方法,其中,还包括:
将所述备份文件存储至目标存储空间。
9.根据权利要求1-8中任一项所述的方法,其中,所述目标数据流与所述应用程序的页面元素之间具有关联关系。
10.一种应用程序的测试装置,包括:
获取模块,用于获取应用程序运行过程中产生的目标数据流;
生成模块,用于基于所述目标数据流,生成所述应用程序的测试用例;
测试模块,用于基于所述测试用例,对所述应用程序进行测试。
11.根据权利要求10所述的装置,其中,所述获取模块,还用于:
对所述应用程序的代码文件进行插桩处理,生成插桩文件;
运行所述插桩文件,以运行所述应用程序,并采集所述目标数据流。
12.根据权利要求11所述的装置,其中,所述获取模块,还用于:
对所述代码文件进行解析,得到所述代码文件的抽象语法树;
遍历所述抽象语法树,得到所述应用程序的源数据流;
在所述源数据流之间进行插桩处理,生成所述插桩文件。
13.根据权利要求10所述的装置,其中,所述目标数据流包括数据对象和数据处理代码;
其中,所述生成模块,还用于:
基于所述数据处理代码,生成所述测试用例的执行方式;
基于所述数据对象,生成所述测试用例的参考执行结果。
14.根据权利要求13所述的装置,其中,所述测试模块,还用于:
按照所述执行方式执行所述测试用例,得到所述测试用例的实际执行结果;
基于所述实际执行结果和所述参考执行结果,得到所述应用程序的测试结果。
15.根据权利要求10所述的装置,其中,所述获取应用程序运行过程中产生的目标数据流之前,所述获取模块,还用于:
获取所述应用程序的数据库的备份文件;
基于所述备份文件,生成所述测试用例的执行环境。
16.根据权利要求15所述的装置,其中,所述测试模块,还用于:
在所述执行环境中执行所述测试用例,以对所述应用程序进行测试。
17.根据权利要求15所述的装置,其中,所述获取模块,还用于:
将所述备份文件存储至目标存储空间。
18.根据权利要求10-17中任一项所述的装置,其中,所述目标数据流与所述应用程序的页面元素之间具有关联关系。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-9中任一项所述的应用程序的测试方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如权利要求1-9中任一项所述的应用程序的测试方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-9中任一项所述的应用程序的测试方法的步骤。
CN202211412339.3A 2022-11-11 2022-11-11 应用程序的测试方法、装置、电子设备和存储介质 Pending CN115687141A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211412339.3A CN115687141A (zh) 2022-11-11 2022-11-11 应用程序的测试方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211412339.3A CN115687141A (zh) 2022-11-11 2022-11-11 应用程序的测试方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN115687141A true CN115687141A (zh) 2023-02-03

Family

ID=85051824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211412339.3A Pending CN115687141A (zh) 2022-11-11 2022-11-11 应用程序的测试方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115687141A (zh)

Similar Documents

Publication Publication Date Title
CN108776696B (zh) 节点配置方法及装置、存储介质和电子设备
WO2023142451A1 (zh) 工作流生成方法、装置、电子设备
US10592304B2 (en) Suggesting application programming interfaces based on feature and context analysis
KR20230007268A (ko) 임무 처리 방법, 임무 처리 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램
CN112506854A (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN112015468A (zh) 一种接口文档处理方法、装置、电子设备以及存储介质
CN109710523B (zh) 视觉稿的测试用例生成方法及装置、存储介质、电子设备
CN113778849A (zh) 用于测试代码的方法、装置、设备以及存储介质
CN115186738B (zh) 模型训练方法、装置和存储介质
CN109684207B (zh) 操作序列封装的方法、装置、电子设备及存储介质
CN114168119B (zh) 代码文件编辑方法、装置、电子设备以及存储介质
CN113642295B (zh) 页面排版方法、装置及计算机程序产品
CN115421831A (zh) 生成活动组件调用关系的方法、装置、设备及存储介质
CN111949549B (zh) 测试请求筛选方法、***、电子设备和存储介质
CN115687141A (zh) 应用程序的测试方法、装置、电子设备和存储介质
CN114218166A (zh) 数据处理方法、装置、电子设备及可读存储介质
CN114218313A (zh) 数据管理方法、装置、电子设备、存储介质及产品
CN114048137A (zh) 一种应用测试方法、装置及电子设备
CN111176718A (zh) 脚本上线方法、装置、存储介质及电子设备
CN111178014A (zh) 一种处理业务流程的方法和装置
CN113835893B (zh) 数据处理的方法、装置、设备、存储介质及程序产品
CN113836291B (zh) 数据处理方法、装置、设备和存储介质
CN114281981B (zh) 新闻简报的生成方法、装置和电子设备
CN114817058A (zh) 并发风险检测方法、装置、电子设备及存储介质
CN114115854A (zh) 一种sdk文件生成方法、装置、设备以及存储介质

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