应用测试方法、装置、设备及存储介质与流程

专利2022-06-29  79


本发明涉及应用测试领域,特别是涉及一种应用测试方法、装置、设备及存储介质。



背景技术:

针对应用程序(app)的稳定性测试会发现app的一些异常,但是导致这些异常的原因通常只能通过日志来推断,有时候发生异常的条件不具备可重复性,所以对于解决这些异常带来很多不方便。

举例来说,现有的稳定性测试方案会随机模拟用户输入事件流,这些随机无规律的输入事件会引发app的逻辑变化,例如ui(userinterface,用户界面)的变化,整个过程会同时生成输出日志(log)。通过对输出的日志进行分析,可以推断出app中存在的一些问题。但是,现有的测试方案无法复现测试过程,对于测试过程中不易察觉的ui异常问题(例如ui的不正确的显示或者布局等),无法重现,而仅通过日志分析又无法检测出这些不易察觉的ui异常问题。



技术实现要素:

本发明的一个目的在于提供一种应用测试方案,以解决上述至少一种问题。

根据本发明的第一个方面,提供了一种应用测试方法,包括:响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与测试操作相对应的界面显示的渲染指令;以及保存一个或多个渲染指令。

可选地,该方法还包括:基于一个或多个渲染指令重现至少部分测试过程。

可选地,基于一个或多个渲染指令重现至少部分测试过程的步骤包括:调用渲染引擎执行一个或多个渲染指令,以重现至少部分测试过程。

可选地,该方法还包括:使用测试工具对应用程序进行测试。

可选地,使用测试工具对应用程序进行测试的步骤包括:基于测试工具做出一个或多个测试操作;获取测试过程中记录的日志文件。

可选地,该方法还包括:获取测试过程中生成的核心转储文件,核心转储文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。

根据本发明的第二个方面,还提供了一种应用测试方法,包括:响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与测试操作相对应的界面显示的渲染指令;以及将一个或多个渲染指令发送给服务端,以便服务端基于一个或多个渲染指令重现至少部分测试过程。

可选地,服务端与执行应用测试方法的设备属于不同设备,或者服务端与执行应用测试方法的设备属于同一设备。

可选地,该方法还包括:将测试过程中记录的日志文件发送给服务端。

可选地,该方法还包括:将测试过程中生成的核心转储文件发送给服务端,核心转储文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。

根据本发明的第三个方面,还提供了一种应用测试方法,包括:保存接收到的渲染指令,其中,渲染指令用于实现与测试操作相对应的界面显示,测试操作为针对应用程序执行的与界面显示相关的操作;以及基于一个或多个渲染指令,重现至少部分测试过程。

可选地,重现至少部分测试过程的步骤包括:调用渲染引擎执行一个或多个渲染指令,以重现至少部分测试过程。

可选地,该方法还包括:保存接收到的日志文件和/或核心转储文件,其中,日志文件为测试过程中记录的文件,核心转存文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。

可选地,该方法还包括:在重现至少部分测试过程中,基于日志文件和/或核心转储文件进行分析。

根据本发明的第四个方面,还提供了一种应用测试装置,包括:获取模块,用于响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与测试操作相对应的界面显示的渲染指令;以及保存模块,用于保存一个或多个渲染指令。

可选地,该装置还包括:重现模块,用于基于一个或多个渲染指令重现至少部分测试过程。

可选地,重现模块调用渲染引擎执行一个或多个渲染指令,以重现至少部分测试过程。

可选地,该装置还包括:测试模块,用于使用测试工具对应用程序进行测试。

可选地,测试模块基于测试工具做出一个或多个测试操作,并获取测试过程中记录的日志文件。

可选地,该装置还包括:核心转储文件获取模块,用于获取测试过程中生成的核心转储文件,核心转储文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。

根据本发明的第五个方面,还提供了一种应用测试装置,包括:获取模块,用于响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与测试操作相对应的界面显示的渲染指令;以及发送模块,用于将一个或多个渲染指令发送给服务端,以便服务端基于一个或多个渲染指令重现至少部分测试过程。

可选地,服务端与应用测试装置属于不同设备,或者服务端与应用测试装置属于同一设备。

可选地,发送模块还用于将测试过程中记录的日志文件发送给服务端。

可选地,发送模块还用于将测试过程中生成的核心转储文件发送给服务端,核心转储文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。

根据本发明的第六个方面,还提供了一种应用测试装置,包括:保存模块,用于保存接收到的渲染指令,其中,渲染指令用于实现与测试操作相对应的界面显示,测试操作为针对应用程序执行的与界面显示相关的操作;以及重现模块,用于基于一个或多个渲染指令,重现至少部分测试过程。

可选地,重现模块调用渲染引擎执行一个或多个渲染指令,以重现至少部分测试过程。

可选地,保存模块还用于保存接收到的日志文件和/或核心转储文件,其中,日志文件为测试过程中记录的文件,核心转存文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。

可选地,该装置还包括:分析模块,用于在重现至少部分测试过程中,基于日志文件和/或核心转储文件进行分析。

根据本发明的第七个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本发明第一个方面至第三个方面中任一个方面述及的方法。

根据本发明的第八个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本发明第一个方面至第三个方面中任一个方面述及的方法。

本发明通过保存测试过程中的渲染指令,就可以基于保存的一个或多个渲染指令重现至少部分测试过程。在基于所保存的渲染指令进行重现时,可以重现整个测试过程,也可以重现测试过程中的任意一段,如可以有针对性地重现部分测试过程。由此,可以稳定且反复地复现测试过程中出现的问题,从而可以便于发现测试过程中不易察觉的ui问题。

附图说明

通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施方式中,相同的参考标号通常代表相同部件。

图1是示出了根据本发明一实施例的应用测试方法的示意性流程图。

图2是示出了根据本发明另一实施例的应用测试方法的示意性流程图。

图3是示出了根据本发明另一实施例的应用测试方法的示意性流程图。

图4是示出了根据本发明一实施例的应用测试系统的整体结构框图。

图5是示出了根据本发明一实施例的应用测试装置的结构的示意性方框图。

图6是示出了根据本发明另一实施例的应用测试装置的结构的示意性方框图。

图7是示出了根据本发明另一实施例的应用测试装置的结构的示意性方框图。

图8是示出了根据本发明一实施例的计算设备的结构的示意性方框图。

具体实施方式

下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。

【术语解释】

monkey:monkey是一个稳定性测试工具,可以运行在待测设备或模拟器中,通过发送伪随机(pseudo-random)的用户事件流(如按键输入、触摸屏输入、手势输入等),可以对待测的应用进行稳定性测试。

coredump:内核转储。应用程序在运行过程中出现异常退出或者中止时,通常会生成相应的内核转储文件,内核转储文件中包含了应用程序运行时的内存、寄存器状态、堆栈指针、内存管理信息还有各种函数调用堆栈信息等。通过分析这个文件,可以定位到应用程序异常退出时对应的堆栈调用等信息,找出问题所在并及时解决。

堆栈:这里指的是应用程序发生崩溃时的调用堆栈,主要用于发现程序调用错误。

ui:userinterface,用户界面,包括应用程序的界面显示、用户交互等。

ui异常:包括ui显示错误、ui造成的应用崩溃等问题,稳定性测试可以协助发现这些问题。

renderingcommand:渲染指令(也可称为渲染命令)。

renderingcommandsequence:渲染指令序列(也可称为渲染命令序列)。

与应用程序的ui相关的显示、布局、特效等是通过底层渲染引擎执行相应的渲染指令(渲染指令序列)来实现的。

【应用测试方法】

图1是示出了根据本发明一实施例的应用测试方法的示意性流程图。其中,图1所示的方法可以由安装了一个或多个应用程序(app)的设备(如手机、ipad等终端设置)执行。也就是说,可以由安装了一个或多个应用程序(app)的设备执行本发明的方法,以对其上安装的应用程序进行测试。

参见图1,在步骤s110,响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与测试操作相对应的界面显示的渲染指令。

此处述及的应用程序是指需要进行测试的应用程序,其可以是系统应用,也可以是第三方应用。测试操作可以是指按键输入、触摸屏输入、手势输入等针对应用程序执行的与该应用程序的界面显示相关的操作事件。其中,测试操作可以是由用户(如检测人员)做出的,也可以是由测试工具通过向系统发送伪随机(pseudo-random)的用户事件流(如按键输入、触摸屏输入、手势输入等)做出的。

作为示例,可以使用测试工具(例如monkey)对应用程序进行测试。在使用测试工具对应用程序进行测试的过程中,可以基于测试工具做出一个或多个测试操作。例如,可以由测试工具通过向系统发送伪随机(pseudo-random)的用户事件流(如按键输入、触摸屏输入、手势输入等),来做出一个或多个测试操作。

本发明述及的测试操作主要是指与界面(用户界面,ui)显示相关的操作,响应于这类测试操作,可以通过应用程序向渲染引擎发送用于实现与测试操作相对应的界面显示的渲染指令,以便渲染引擎通过执行相应的渲染指令来实现与测试操作相对应的界面显示。作为示例,应用程序可以向系统发出渲染请求,响应于渲染请求,可以由系统生成用于指示渲染引擎执行特定操作以实现与测试操作相对应的界面显示的渲染指令(或渲染指令序列),然后由渲染引擎执行相应的渲染指令(或渲染指令序列)实现与应用程序的ui相关的显示、布局、特效等。因此,可以从渲染引擎获取用于实现与测试操作相对应的界面显示的渲染指令(或渲染指令序列)。

在步骤s120,保存一个或多个渲染指令。

作为示例,在保存渲染指令时,可以依据渲染指令的执行顺序(或生成顺序)进行保存。例如,渲染引擎通常是通过执行一系列的渲染指令(即渲染指令序列)来实现与测试操作相对应的界面显示,因此可以保存由多个渲染指令构成的渲染指令序列。可选地,在保存渲染指令(或渲染指令序列)时,可以将渲染指令(或渲染指令序列)记录到一个特定的文件(即下文述及的渲染指令文件)中,以便于查看。

所保存的渲染指令(或渲染指令序列)与测试过程中针对应用程序执行的测试操作相对应。如此,基于保存的一个或多个渲染指令(或渲染指令序列),就可以重现至少部分测试过程。其中,在基于所保存的渲染指令进行重现时,可以重现整个测试过程,也可以重现测试过程中的任意一段,如可以有针对性地重现部分测试过程。由此,可以稳定且反复地复现测试过程中出现的问题,从而可以便于发现测试过程中不易察觉的ui问题。

具体来说,所保存的渲染指令(或渲染指令序列)主要用于绘制与测试操作相对应的界面显示,因此可以通过调用渲染引擎执行一个或多个渲染指令,来重现至少部分测试过程。也就是说,可以基于保存的渲染指令(或渲染指令序列),对测试过程中所显示的界面的变化过程进行重现,也即重现ui的绘制过程,如此可以发现测试过程中不易发现的界面显示异常,例如ui的不正确的显示或者布局等。

作为示例,还可以获取测试过程中记录的日志文件,并且/或者,还可以获取测试过程中发生崩溃时生成的核心转储文件,核心转储文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。由此,在基于保存的渲染指令(或渲染指令序列)进行重现的过程中,还可以同时参考对应时间点的日志文件和/或核心转储文件,如此可以定位测试过程中不容易重现的崩溃问题,并且可以定位测试过程中不易发现的非崩溃的ui异常问题,例如ui的不正确的显示或者布局等。

图2是示出了根据本发明另一实施例的应用测试方法的示意性流程图。其中,图2所示的方法可以由安装了一个或多个应用程序(app)的设备(如手机、ipad等终端设置)执行。也就是说,可以由安装了一个或多个应用程序(app)的设备执行图2所示的方法,以对其上安装的应用程序进行测试。

参见图2,在步骤s210,响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与测试操作相对应的界面显示的渲染指令。

关于步骤s210涉及的细节可以参见上文结合图1中的步骤s110的描述,此处不再赘述。

在步骤s220,将一个或多个渲染指令发送给服务端,以便服务端基于一个或多个渲染指令重现至少部分测试过程。

在对应用程序进行测试的过程中,可以将渲染引擎执行渲染操作时所依据的渲染指令,发送给服务端,以便服务端基于一个或多个渲染指令重现至少部分测试过程。作为示例,发送渲染指令的操作可以由执行图2所示的方法的设备中的渲染引擎执行。也就是说,设备中的渲染引擎可以将用于实现与测试操作相对应的界面显示的渲染指令(或渲染指令序列)转发给服务端。

作为示例,还可以将测试过程中记录的日志文件发送给服务端,也可以将测试过程中生成的核心转储文件发送给服务端,核心转储文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。关于核心转储文件可以参见上文描述,此处不再赘述。

在本发明中,服务端与执行图2所示的方法的设备可以属于同一设备,也可以属于不同的设备。作为示例,执行图2所示的方法的设备可以是手机、ipad等移动设备,服务端可以是不同于移动设备的pc端。由此,可以利用pc端较为强大的存储能力、处理能力,在pc端配置与执行图2所示的方法的设备中的渲染引擎相同的渲染引擎,在pc端通过使用配置好的渲染引擎来重放接收到的渲染指令(或渲染指令序列),就可以重绘ui过程,如此可以稳定且反复复现测试过程,以便于发现测试过程中出现的问题。另外,在复现过程中,还可以参考对应时间点的核心转储文件和日志文件,如可以在pc端使用多种调试工具进行分析,以对ui异常问题进行定位和调试。

图3是示出了根据本发明另一实施例的应用测试方法的示意性流程图。其中,图3所示的方法可以由不同于执行图2所示的方法的设备执行。

参见图3,在步骤s310,保存接收到的渲染指令,其中,渲染指令用于实现与测试操作相对应的界面显示,测试操作为针对应用执行的与界面显示相关的操作。

作为示例,可以接收来自执行图2所示的方法的设备中的渲染引擎发送的渲染指令,并保存。例如,可以将接收到的渲染指令记录到一个文件(即下文述及的渲染指令文件)中,以便于查看。

在步骤s320,基于一个或多个渲染指令,重现至少部分测试过程。

这里可以通过调用与执行图2所示的方法的设备中的渲染引擎相同的渲染引擎来执行所保存的渲染指令,以重现至少部分测试过程。

在本发明中,还可以保存接收到的日志文件和/或核心转储文件,其中,日志文件为测试过程中记录的文件,核心转存文件包括应用在测试过程中发生应用崩溃时的堆栈调用信息。由此,在重现至少部分测试过程中,还可以基于日志文件和/或核心转储文件进行分析。

作为示例,执行图2所示的方法的设备可以是手机、ipad等移动设备,执行图3所示的方法的设备可以是不同于移动设备的pc端。由此,可以利用pc端较为强大的存储能力、处理能力,在pc端配置与执行图2所示的方法的设备中的渲染引擎相同的渲染引擎,在pc端通过使用配置好的渲染引擎来重放接收到的渲染指令,就可以重绘ui过程,如此可以稳定且反复复现测试过程中,以便于发现测试过程中出现的问题。另外,在复现过程中,还可以参考对应时间点的核心转储文件和日志文件,如可以在pc端使用多种调试工具进行分析,以对ui异常问题进行定位和调试。

图4是示出了根据本发明另一实施例的应用测试系统的整体结构框图。在本实施例中,应用测试方案的执行主体可以分为设备端和服务端。其中,设备端和服务端可以同属于同一设备,也可以属于不同的设备。例如,设备端可以是安装了应用程序并用于对安装的应用程序进行测试的设备(如移动设备),服务端可以是能够基于保存的渲染指令对在设备端上执行的至少部分测试过程进行重现的设备(如pc设备)。

如图4所示,设备端可以安装一个或多个应用程序(app),设备端的app可以通过发送渲染指令(或渲染指令序列)到渲染引擎来实现界面(ui)显示。

服务端上可以运行一个调试器服务(debuggerserver),可以通过调试器服务接收设备端发来的渲染指令(或渲染指令序列),同时服务端还包括一个与设备端中的渲染引擎的配置相同的渲染引擎。

整个应用测试方案的运行过程如下:

1)可以通过启动服务端的调试器服务,来触发设备端的测试工具开始工作。测试工具开始工作后,就会在设备端随机发送用户输入事件,这些输入事件会启动app,并在app上模拟用户操作。

2)设备端的测试工具开始工作之后,相应的系统日志(log)会生成在指定目录中,以得到日志文件。并且如果app发生崩溃,会产生相应的核心转储文件。

3)在app被测试的过程,设备端中渲染引擎的用于转发(forward)渲染指令(或渲染指令序列)的开关会开启,渲染引擎可以将用于实现与测试操作相对应的界面显示的渲染指令(或渲染指令序列)转发给服务端的调试器服务。

4)调试器服务接收到渲染指令(或渲染指令序列)之后,可以根据用户的具体配置,将渲染指令(或渲染指令序列)写入到渲染指令文件,或者将渲染指令文件中的渲染指令(或渲染指令序列)发送给服务端的渲染引擎进行渲染,以重现测试过程。

5)设备端的测试工具可以通过用户主动停止,或者设备发生严重的问题时自动停止。在停止测试之后会生成三种文件:设备端的核心转储文件、日志文件,以及调试器服务接收渲染指令(或渲染指令序列)之后写入到服务端的渲染指令文件。

核心转储文件可以用来确定整个测试过程中发生的崩溃次数和崩溃发生时的堆栈信息。日志文件可以用来协助发现崩溃点附近的日志信息。渲染指令文件可以通过服务端的调试器服务进行回放,来重现整个测试过程中的任意一段。

6)利用上述三种文件,就可以在服务端端调试测试过程中发现可能并不容易重现的崩溃问题和非崩溃的ui异常问题。

作为示例,设备端可以是移动设备,服务端可以是pc端,由此,可以利用pc端较为强大的存储能力、处理能力,在pc端配置与执行图2所示的方法的设备中的渲染引擎相同的渲染引擎,在pc端通过使用配置好的渲染引擎来重放接收到的渲染指令,就可以重绘ui过程,如此可以稳定且反复复现测试过程中,以便于发现测试过程中出现的问题。另外,在复现过程中,还可以参考对应时间点的核心转储文件和日志文件,如可以在pc端使用多种调试工具进行分析,以对ui异常问题进行定位和调试,具体的定位和调试过程,此处不再赘述。

综上,通过渲染指令(或者渲染指令序列)的转发、远程回放和远程调试,可以重现整个测试过程,并且可以稳定地反复复现测试过程中出现的崩溃问题和不易察觉的非崩溃性ui异常问题,如ui的不正确的显示或者布局等,从而可以对测试过程中出现的问题进行精准定位,并便于调试以解决所定位的异常问题。

【应用测试装置】

图5是示出了根据本发明一实施例的应用测试装置的结构的示意性方框图。其中,应用测试装置的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图5所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。

下面就应用测试装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。

参见图5,应用测试装置500包括获取模块510和保存模块520。

获取模块510用于响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与测试操作相对应的界面显示的渲染指令。保存模块520用于保存一个或多个渲染指令。

如图5所示,应用测试装置500还可以可选地包括图中虚线框所示的重现模块530,重现模块530用于基于一个或多个渲染指令重现至少部分测试过程。其中,重现模块530可以调用渲染引擎执行一个或多个渲染指令,以重现至少部分测试过程。

如图5所示,应用测试装置500还可以可选地包括图中虚线框所示的测试模块540,用于使用测试工具对应用程序进行测试。测试模块540可以基于测试工具做出一个或多个测试操作,并获取测试过程中记录的日志文件。

作为本发明的一个示例,应用测试装置500还可以包括核心转储文件获取模块(图中未示出),核心转储文件获取模块可以用于获取测试过程中生成的核心转储文件,核心转储文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。

在本发明中,应用测试装置500可以基于所保存的渲染指令进行重现,可以重现整个测试过程,也可以重现测试过程中的任意一段,如可以有针对性地重现部分测试过程。由此,可以稳定且反复地复现测试过程中出现的问题,从而可以便于发现测试过程中不易察觉的ui问题。并且,在基于保存的渲染指令进行重现的过程中,还可以同时参考对应时间点的日志文件和/或核心转储文件,如此可以定位测试过程中不容易重现的崩溃问题,以及不易发现的非崩溃的ui异常问题。

图6是示出了根据本发明另一实施例的应用测试装置的结构的示意性方框图。其中,应用测试装置的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图5所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。

下面就应用测试装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。

参见图6,应用测试装置600包括获取模块610和发送模块620。获取模块610用于响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与测试操作相对应的界面显示的渲染指令。发送模块620用于将一个或多个渲染指令发送给服务端,以便服务端基于一个或多个渲染指令重现至少部分测试过程。其中,服务端与应用测试装置600可以属于不同设备,也可以属于同一设备。

可选地,发送模块620还可以用于将测试过程中记录的日志文件发送给服务端。

可选地,发送模块620还可以用于将测试过程中生成的核心转储文件发送给服务端,核心转储文件包括应用程序在测试过程中发生崩溃时的堆栈调用信息。

图7是示出了根据本发明另一实施例的应用测试装置的结构的示意性方框图。其中,应用测试装置的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图5所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。

下面就应用测试装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。

参见图7,应用测试装置700包括保存模块710和重现模块720。

保存模块710用于保存接收到的渲染指令,其中,渲染指令用于实现与测试操作相对应的界面显示,测试操作为针对应用程序执行的与界面显示相关的操作。重现模块720用于基于一个或多个渲染指令,重现至少部分测试过程。其中,重现模块720可以调用渲染引擎执行一个或多个渲染指令,以重现至少部分测试过程。

作为示例,保存模块710还可以用于保存接收到的日志文件和/或核心转储文件,其中,日志文件为测试过程中记录的文件,核心转存文件包括应用在测试过程中发生应用崩溃时的堆栈调用信息。

作为示例,应用测试装置700还可以可选地包括图中虚线框所示的分析模块730。分析模块730用于在重现至少部分测试过程中,基于日志文件和/或核心转储文件进行分析,如此可以定位测试过程中不容易重现的崩溃问题,以及不易发现的非崩溃的ui异常问题。

【计算设备】

图8示出了根据本发明一实施例可用于实现上述应用测试方法的计算设备的结构示意图。

参见图8,计算设备800包括存储器810和处理器820。

处理器820可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器820可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器820可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。

存储器810可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器820或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器810可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器810可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器810上存储有可执行代码,当可执行代码被处理器820处理时,可以使处理器820执行上文述及的应用测试方法。

上文中已经参考附图详细描述了根据本发明的应用测试方法、装置、计算设备。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。


技术特征:

1.一种应用测试方法,其特征在于,包括:

响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与所述测试操作相对应的界面显示的渲染指令;以及

保存一个或多个所述渲染指令。

2.根据权利要求1所述的应用测试方法,其特征在于,还包括:

基于所述一个或多个渲染指令重现至少部分测试过程。

3.根据权利要求2所述的应用测试方法,其特征在于,所述基于所述一个或多个渲染指令重现至少部分测试过程的步骤包括:

调用渲染引擎执行所述一个或多个渲染指令,以重现至少部分测试过程。

4.根据权利要求1所述的应用测试方法,其特征在于,还包括:

使用测试工具对所述应用程序进行测试。

5.根据权利要求4所述的应用测试方法,其特征在于,所述使用测试工具对所述应用程序进行测试的步骤包括:

基于所述测试工具做出一个或多个所述测试操作;

获取测试过程中记录的日志文件。

6.根据权利要求1所述的应用测试方法,其特征在于,还包括:

获取测试过程中生成的核心转储文件,所述核心转储文件包括所述应用程序在测试过程中发生崩溃时的堆栈调用信息。

7.一种应用测试方法,其特征在于,包括:

响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与所述测试操作相对应的界面显示的渲染指令;以及

将一个或多个所述渲染指令发送给服务端,以便服务端基于所述一个或多个渲染指令重现至少部分测试过程。

8.根据权利要求7所述的应用测试方法,其特征在于,

所述服务端与执行所述应用测试方法的设备属于不同设备,或者

所述服务端与执行所述应用测试方法的设备属于同一设备。

9.根据权利要求7所述的应用测试方法,其特征在于,还包括:

将测试过程中记录的日志文件发送给所述服务端。

10.根据权利要求7所述的应用测试方法,其特征在于,还包括:

将测试过程中生成的核心转储文件发送给所述服务端,所述核心转储文件包括所述应用程序在测试过程中发生崩溃时的堆栈调用信息。

11.一种应用测试方法,其特征在于,包括:

保存接收到的渲染指令,其中,所述渲染指令用于实现与所述测试操作相对应的界面显示,所述测试操作为针对应用程序执行的与界面显示相关的操作;以及

基于一个或多个所述渲染指令,重现至少部分测试过程。

12.根据权利要求11所述的应用测试方法,其特征在于,所述重现至少部分测试过程的步骤包括:

调用渲染引擎执行所述一个或多个渲染指令,以重现至少部分测试过程。

13.根据权利要求11所述的应用测试方法,其特征在于,还包括:

保存接收到的日志文件和/或核心转储文件,其中,所述日志文件为测试过程中记录的文件,所述核心转存文件包括所述应用程序在测试过程中发生崩溃时的堆栈调用信息。

14.根据权利要求13所述的应用测试方法,其特征在于,还包括:

在重现所述至少部分测试过程中,基于所述日志文件和/或所述核心转储文件进行分析。

15.一种应用测试装置,其特征在于,包括:

获取模块,用于响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与所述测试操作相对应的界面显示的渲染指令;以及

保存模块,用于保存一个或多个所述渲染指令。

16.一种应用测试装置,其特征在于,包括:

获取模块,用于响应于针对应用程序执行的与界面显示相关的测试操作,获取用于实现与所述测试操作相对应的界面显示的渲染指令;以及

发送模块,用于将一个或多个所述渲染指令发送给服务端,以便服务端基于所述一个或多个渲染指令重现至少部分测试过程。

17.一种应用测试装置,其特征在于,包括:

保存模块,用于保存接收到的渲染指令,其中,所述渲染指令用于实现与所述测试操作相对应的界面显示,所述测试操作为针对应用程序执行的与界面显示相关的操作;以及

重现模块,用于基于一个或多个所述渲染指令,重现至少部分测试过程。

18.一种计算设备,包括:

处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至14中任何一项所述的方法。

19.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至14中任一项所述的方法。

技术总结
本发明公开了一种应用测试方法、装置、设备及存储介质。响应于针对应用执行的与界面显示相关的测试操作,获取用于实现与测试操作相对应的界面显示的渲染指令;以及保存一个或多个渲染指令。由此可以基于保存的一个或多个渲染指令,来重现至少部分测试过程。

技术研发人员:姜立娣;沈轲戎;徐庆贺
受保护的技术使用者:阿里巴巴集团控股有限公司
技术研发日:2018.12.03
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-26694.html

最新回复(0)