一种应用程序APP的测试方法、装置和介质与流程

文档序号:11230359阅读:918来源:国知局
一种应用程序APP的测试方法、装置和介质与流程

本发明的实施方式涉及测试领域,更具体地,本发明的实施方式涉及一种应用程序app的测试方法、装置和介质。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

在智能终端越来越普遍的时代,应用在智能终端中的app(application,应用程序)也慢慢得到普及,人们使用app的频次逐渐增加。由于用户对app的类型和功能的要求不断提高,因此,为了满足用户的不同需求,开发商开发了具备不同功能的app。

一般情况下,需要对新开发的app进行测试,目前主要采用如下几种测试方法:

1、采用单一的手机进行测试:例如,有道词典的所有版本均使用安卓5.0的华为p8青春版进行测试,由于手机的淘汰速率非常快,2015年的旗舰机,到2017年时很可能已经成为比较落伍的配置了,市场占有率可能已经低于1%了,此时,测试结果已经不能反映实际用户量最多或者普遍意义上的性能指标,因此,如果采用单一机型进行测试的话,一般一年半左右就需要改用其他新的旗舰机来进行测试了,因此,存在测试结果的有效性维持时间较短的缺陷;

2、采用第三方提供的topn的终端进行测试:由于第三方提供的topn的终端并不是使用被测应用的topn的终端,存在准确度较低的缺陷。



技术实现要素:

因此,目前的app的测试方法存在测试结果的有效性维持时间较短、准确度较低的缺陷,这是非常令人烦恼的过程。

为此,非常需要一种改进的app测试方法,以解决现有技术中存在的有效性维持时间较短、准确度较低的缺陷。

在本上下文中,本发明的实施方式期望提供一种新的app的测试方法和装置。

在本发明实施方式的第一方面中,提供了一种应用程序app的测试方法,包括:

判断日志系统中是否存在待测app的用户日志,根据判断结果确定用于测试待测app的n个终端型号,所述n为>0的整数;

通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据。

在一个实施方式中,根据本发明的上述实施方式所述的方法,所述用户日志包括在每一个终端型号下分别使用所述待测app的用户数量信息。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,根据判断结果确定用于测试待测app的n个终端型号,包括:

若所述日志系统中存在待测app的用户日志,针对每一个终端型号,分别计算使用所述待测app的用户数量,将计算得到的用户数量进行排序,并将排序后从最大用户数量开始的前n个用户数量对应的终端型号作为确定出的n个终端型号;

若所述日志系统中不存在待测app的用户日志,将按照特定规则排序后的前n个终端型号作为确定出的n个终端型号。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据,包括:

对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app进行功能测试,得到功能测试数据。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app进行功能测试,包括:

对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app均进行如下操作:

获取测试脚本,对所述测试脚本进行校验,若校验成功,根据所述测试脚本对所述待测app进行功能测试;若校验失败,对所述待测app进行monkey测试。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据,包括:

针对目标参数中的任意一目标参数,采用如下方式计算所述待测app的所述任意一目标参数的性能测试数据:

a=(x1*y1+……+xi*yi+……+xn*yn)/(y1+……+yi+……+yn)

其中,a为所述待测app的所述任意一目标参数的性能测试数据;

若所述日志系统中存在待测app的用户日志,y1表示采用所述待测app的终端型号1的终端在所有终端中的比例、yi表示采用所述待测app的终端型号i的终端在所有终端中的比例、yn表示采用所述待测app的终端型号n的终端在所有终端中的比例;若所述日志系统中不存在待测app的用户日志,y1表示终端型号1的终端在市场中的占有率、yi表示终端型号i的终端在市场中的占有率、yn表示终端型号n的终端在市场中的占有率;

x1表示所述待测app在终端型号1的终端中时所述任意一目标参数的数值、xi表示所述待测app在终端型号i的终端中时所述任意一目标参数的数值、xn表示所述待测app在终端型号n的终端中时所述任意一目标参数的数值。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,xi采用如下方式计算:

xi=((a1+a2+……+aj)/j)*m%+((b1+b2+……+bk)/k)*(1-m%)

其中,j为所述待测app在终端型号i的终端上首次启动的次数,a1表示所述待测app在终端型号i的终端上第一次首次启动时的所述任意一目标参数的数值、a2表示所述待测app在终端型号i的终端上第二次首次启动时的所述任意一目标参数的数值、……、aj表示所述待测app在终端型号i的终端上第j次首次启动时的所述任意一目标参数的数值;

k为所述待测app在终端型号i的终端上非首次启动的次数,b1表示所述待测app在终端型号i的终端上第一次非首次启动时的所述任意一目标参数的数值、b2表示所述待测app在终端型号i的终端上第二次非首次启动时的所述任意一目标参数的数值、……、bk表示所述待测app在终端型号i的终端上第k次非首次启动时的所述任意一目标参数的数值;

m%为所述待测app在终端型号i的终端上首次启动次数在总的启动次数中所占的比例。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述目标参数包括启动时间、流量、耗电量、所述待测app所占内存的大小、所述待测app对中央处理器cpu的占有率、帧率中的至少一种。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述方法还包括:采用系统系数对所述待测app的该目标参数的性能测试数据进行优化。

在本发明实施方式的第二方面中,提供了一种应用程序app的测试装置,包括:

确定单元,用于判断日志系统中是否存在待测app的用户日志,根据判断结果确定用于测试待测app的n个终端型号,所述n为>0的整数;

测试单元,用于通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据。

在一个实施方式中,根据本发明的上述实施方式所述的装置,所述用户日志包括在每一个终端型号下分别使用所述待测app的用户数量信息。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述确定单元根据判断结果确定用于测试待测app的n个终端型号时,具体为:

若所述日志系统中存在待测app的用户日志,针对每一个终端型号,分别计算使用所述待测app的用户数量,将计算得到的用户数量进行排序,并将排序后从最大用户数量开始的前n个用户数量对应的终端型号作为确定出的n个终端型号;

若所述日志系统中不存在待测app的用户日志,将按照特定规则排序后的前n个终端型号作为确定出的n个终端型号。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述测试单元通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据时,具体为:

对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app进行功能测试,得到功能测试数据。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述测试单元对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app进行功能测试时,具体为:

对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app均进行如下操作:

获取测试脚本,对所述测试脚本进行校验,若校验成功,根据所述测试脚本对所述待测app进行功能测试;若校验失败,对所述待测app进行monkey测试。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述测试单元通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据时,具体为:

针对目标参数中的任意一目标参数,采用如下方式计算所述待测app的所述任意一目标参数的性能测试数据:

a=(x1*y1+……+xi*yi+……+xn*yn)/(y1+……+yi+……+yn)

其中,a为所述待测app的所述任意一目标参数的性能测试数据;

若所述日志系统中存在待测app的用户日志,y1表示采用所述待测app的终端型号1的终端在所有终端中的比例、yi表示采用所述待测app的终端型号i的终端在所有终端中的比例、yn表示采用所述待测app的终端型号n的终端在所有终端中的比例;若所述日志系统中不存在待测app的用户日志,y1表示终端型号1的终端在市场中的占有率、yi表示终端型号i的终端在市场中的占有率、yn表示终端型号n的终端在市场中的占有率;

x1表示所述待测app在终端型号1的终端中时所述任意一目标参数的数值、xi表示所述待测app在终端型号i的终端中时所述任意一目标参数的数值、xn表示所述待测app在终端型号n的终端中时所述任意一目标参数的数值。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,xi采用如下方式计算:

xi=((a1+a2+……+aj)/j)*m%+((b1+b2+……+bk)/k)*(1-m%)

其中,j为所述待测app在终端型号i的终端上首次启动的次数,a1表示所述待测app在终端型号i的终端上第一次首次启动时的所述任意一目标参数的数值、a2表示所述待测app在终端型号i的终端上第二次首次启动时的所述任意一目标参数的数值、……、aj表示所述待测app在终端型号i的终端上第j次首次启动时的所述任意一目标参数的数值;

k为所述待测app在终端型号i的终端上非首次启动的次数,b1表示所述待测app在终端型号i的终端上第一次非首次启动时的所述任意一目标参数的数值、b2表示所述待测app在终端型号i的终端上第二次非首次启动时的所述任意一目标参数的数值、……、bk表示所述待测app在终端型号i的终端上第k次非首次启动时的所述任意一目标参数的数值;

m%为所述待测app在终端型号i的终端上首次启动次数在总的启动次数中所占的比例。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述目标参数包括启动时间、流量、耗电量、所述待测app所占内存的大小、所述待测app对中央处理器cpu的占有率、帧率中的至少一种。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述装置还包括优化单元,用于采用系统系数对所述待测app的该目标参数的性能测试数据进行优化。

在本发明实施方式的第三方面中,提供了一种应用程序app的测试装置,包括:

一个或者多个处理器;

存储器,存储有程序,当所述程序被所述一个或者多个处理器执行时,所述程序使所述app的测试装置执行如第一方面或者第一方面的任意一种实施方式所述的方法。

在本发明实施方式的第四方面中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行如第一方面或者第一方面的任意一种实施方式所述的方法。

本发明实施例中,提出一种应用程序app的测试方法,包括:判断日志系统中是否存在待测app的用户日志,根据判断结果确定用于测试待测app的n个终端型号,所述n为>0的整数;通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据。在该方案中,是通过所述n个终端型号对应的终端对所述待测app进行测试,并不是采用单一机型来测试的,因此,提高了测试结果的有效性的维持时长,此外,测试app的终端是根据该app来确定的,提高了待测试的app和进行测试的终端之间的相关性,因此,还可以提高测试结果的准确度。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1a示意性地示出了根据本发明实施方式的app的测试方法的流程图;

图1b示意性地示出了根据本发明实施方式的示例app的测试方法的流程图;

图2示意性地示出了根据本发明实施方式的app的测试装置的一种示意图;

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种应用程序app的测试方法、装置和介质。

在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

本发明人发现,可以采用无人值守的方式来测试app,具体为,先判断日志系统中是否存在待测app的用户日志,通过这种方式来查看待测试的app是否为市场中已经存在的app,如果待测试的app是市场中已经存在的app,则根据用户对app的使用情况来确定出n个终端型号,如果待测试的app不是市场中已经存在的app,则采用其他方式来确定出n个终端型号,然后通过确定出的n个终端型号对应的终端对待测试的app进行测试,得到测试结果,这样,是通过所述n个终端型号对应的终端对所述待测app进行测试,并不是采用单一机型来测试的,因此,提高了测试结果的有效性的维持时长,此外,测试app的终端是根据该app来确定的,提高了待测试的app和进行测试的终端之间的相关性,因此,还可以提高测试结果的准确度。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

应用场景总览

例如,欲对app1进行测试,先判断日志系统中是否存在app1的用户日志,如果有,说明app1在市场中已经有用户使用app1,此时,可以确定出使用app1的用户数量排名前三的终端型号,如:终端型号1、终端型号2和终端型号3,接下来,通过终端型号1对应的终端对app1进行测试,通过终端型号2对应的终端对app1进行测试,通过终端型号3对应的终端对app1进行测试,得到测试结果。这样,是通过3个终端型号对应的终端对所述待测app进行测试,并不是采用单一机型来测试的,因此,提高了测试结果的有效性的维持时长,此外,测试app1的终端是根据app1来确定的,提高了app1和进行测试的终端之间的相关性,因此,还可以提高测试结果的准确度。

如果日志系统中不存在app1的用户日志,此时,可以将按照特定规则排序后的终端型号中的三个终端型号作为确定出的终端型号,例如第三方提供的当前市场上使用的终端型号按照用户使用量排序后的前三种终端型号作为确定出的终端型号。

示例性方法

下面结合上面描述的应用场景,参考图1来描述根据本发明示例性实施方式的用于app的测试方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

参阅图1a所示,本发明实施例中,提出一种app的测试方法10,包括如下步骤:

步骤100:判断日志系统中是否存在待测app的用户日志,根据判断结果确定用于测试待测app的n个终端型号,所述n为>0的整数;

步骤110:通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据。

本发明实施例中,可选地,所述用户日志包括在每一个终端型号下分别使用所述待测app的用户数量信息。例如,终端型号1使用待测app的用户数量为10万,终端型号2使用待测app的用户数量为20万,终端型号3使用待测app的用户数量为12万,以此类推。

当然,上述只是用户日志的一种示例,用户日志中还可能包括其他信息,在此不做具体限定。

本发明实施例中,根据判断结果确定用于测试待测app的n个终端型号的方式有多种,可选地,可以采用如下方式:

若所述日志系统中存在待测app的用户日志,针对每一个终端型号,分别计算使用所述待测app的用户数量,将计算得到的用户数量进行排序,并将排序后从最大用户数量开始的前n个用户数量对应的终端型号作为确定出的n个终端型号;

若所述日志系统中不存在待测app的用户日志,将按照特定规则排序后的前n个终端型号作为确定出的n个终端型号。

例如,待测app为app1,日志系统中存在app1的用户日志,需要确定出3个终端型号,若日志系统中的终端型号为10个:终端型号1、终端型号2、……、终端型号10,针对这10个终端型号分别计算每一个终端型号使用app1的用户数量,如计算得到终端型号1使用app1的用户数量为x1、计算得到终端型号2使用app1的用户数量为x2、计算得到终端型号3使用app1的用户数量为x3,以此类推,直至计算得到终端型号10使用app1的用户数量为x10,对x1、x2、x3、……x10进行排序,如果采用降序排序的方式,则将从首位开始的前3个终端型号作为确定出的终端型号,如果采用升序排序的方式,则将从末位开始的后3个终端型号作为确定出的终端型号。

又例如,待测app为app2,日志系统中不存在app2的用户日志,需要确定出3个终端型号,此时,可以将按照特定规则排序后的终端型号中的三个终端型号作为确定出的终端型号。

本发明实施例中,可选地,特定规则可以是第三方提供的当前市场上使用的终端型号按照用户使用量的排序列表。当然,还可以是其他规则,在此不做具体限定。

本发明实施例中,通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据时,可选地,可以采用如下方式:

对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app进行功能测试,得到功能测试数据。

例如,确定出5个终端型号:终端型号1、终端型号2、终端型号3、终端型号4和终端型号5,取5个终端,终端型号1对应的终端1、终端型号2对应的终端2、终端型号3对应的终端3、终端型号4对应的终端4和终端型号5对应的终端5,在终端1、终端2、终端3、终端4和终端5上均安装待测app,进行功能测试,得到功能测试数据。

本发明实施例中,对待测app进行测试主要是测试两方面,一方面是测试功能(也可以说是测试稳定性),另一方面是测试性能。

本发明实施例中,对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app进行功能测试时,可选地,可以采用如下方式:

对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app均进行如下操作:

获取测试脚本,对所述测试脚本进行校验,若校验成功,根据所述测试脚本对所述待测app进行功能测试;若校验失败,对所述待测app进行monkey测试。

下面对前面所说的性能测试进行说明,如通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据时,可选地,可以采用如下方式:

针对目标参数中的任意一目标参数,采用如下方式计算所述待测app的所述任意一目标参数的性能测试数据:

a=(x1*y1+……+xi*yi+……+xn*yn)/(y1+……+yi+……+yn)(公式一)

其中,a为所述待测app的所述任意一目标参数的性能测试数据;

若所述日志系统中存在待测app的用户日志,y1表示采用所述待测app的终端型号1的终端在所有终端中的比例、yi表示采用所述待测app的终端型号i的终端在所有终端中的比例、yn表示采用所述待测app的终端型号n的终端在所有终端中的比例;若所述日志系统中不存在待测app的用户日志,y1表示终端型号1的终端在市场中的占有率、yi表示终端型号i的终端在市场中的占有率、yn表示终端型号n的终端在市场中的占有率;

x1表示所述待测app在终端型号1的终端中时所述任意一目标参数的数值、xi表示所述待测app在终端型号i的终端中时所述任意一目标参数的数值、xn表示所述待测app在终端型号n的终端中时所述任意一目标参数的数值。

需要说明的是,当所述日志系统中不存在待测app的用户日志,各个终端型号的终端在市场中的占有率可以是第三方提供的,当然,还可以采用其他方式来获得的,在此不做具体限定。

例如,待测app为app1,如果所述日志系统中存在app1的用户日志,公式一中的yi表示的是使用app1的终端型号i的终端在所有终端中的比例,如果所述日志系统中不存在app1的用户日志,公式一中的yi表示的是终端型号i的终端在市场中的占有率。

本发明实施例中,可选地,xi采用如下方式计算:

xi=((a1+a2+……+aj)/j)*m%+((b1+b2+……+bk)/k)*(1-m%)(公式二)

其中,j为所述待测app在终端型号i的终端上首次启动的次数,a1表示所述待测app在终端型号i的终端上第一次首次启动时的所述任意一目标参数的数值、a2表示所述待测app在终端型号i的终端上第二次首次启动时的所述任意一目标参数的数值、……、aj表示所述待测app在终端型号i的终端上第j次首次启动时的所述任意一目标参数的数值;

k为所述待测app在终端型号i的终端上非首次启动的次数,b1表示所述待测app在终端型号i的终端上第一次非首次启动时的所述任意一目标参数的数值、b2表示所述待测app在终端型号i的终端上第二次非首次启动时的所述任意一目标参数的数值、……、bk表示所述待测app在终端型号i的终端上第k次非首次启动时的所述任意一目标参数的数值;

m%为所述待测app在终端型号i的终端上首次启动次数在总的启动次数中所占的比例。

本发明实施例中,可选地,所述目标参数包括启动时间、流量、耗电量、所述待测app所占内存的大小、所述待测app对cpu的占有率、帧率中的至少一种。

例如,目标参数为启动时间、流量、耗电量、app1所占内存的大小、app1对cpu的占有率、帧率,要通过3个终端型号的终端测试性能。

针对启动时间:

通过终端型号1的终端计算启动时间的方式为:

启动时间1=((a1+a2+a3)/3)*m1%+((b1+b2+b3+b4)/4)*(1-m1%)

a1表示app1在终端型号1的终端上第1次首次启动时的启动时间的数值、a2表示app1在终端型号1的终端上第2次首次启动时的启动时间的数值、a3表示app1在终端型号1的终端上第3次首次启动时的启动时间的数值;b1表示app1在终端型号1的终端上第1次非首次启动时的启动时间的数值、b2表示app1在终端型号1的终端上第2次非首次启动时的启动时间的数值、b3表示app1在终端型号1的终端上第3次非首次启动时的启动时间的数值、b4表示app1在终端型号1的终端上第4次非首次启动时的启动时间的数值;m1%为app1在终端型号1的终端上首次启动次数在总的启动次数中所占的比例;

通过终端型号2的终端计算启动时间的方式为:

启动时间2=((c1+c2+c3)/3)*m2%+((d1+d2+d3+d4+d5)/5)*(1-m2%)

c1表示app1在终端型号2的终端上第1次首次启动时的启动时间的数值、c2表示app1在终端型号2的终端上第2次首次启动时的启动时间的数值、c3表示app1在终端型号2的终端上第3次首次启动时的启动时间的数值;d1表示app1在终端型号2的终端上第1次非首次启动时的启动时间的数值、d2表示app1在终端型号2的终端上第2次非首次启动时的启动时间的数值、d3表示app1在终端型号2的终端上第3次非首次启动时的启动时间的数值、d4表示app1在终端型号2的终端上第4次非首次启动时的启动时间的数值、d5表示app1在终端型号2的终端上第5次非首次启动时的启动时间的数值;m2%为app1在终端型号2的终端上首次启动次数在总的启动次数中所占的比例;

通过终端型号3的终端计算启动时间的方式为:

启动时间3=((e1+e2+e3+e4)/4)*m3%+((f1+f2+f3+f4)/4)*(1-m3%)

e1表示app1在终端型号3的终端上第1次首次启动时的启动时间的数值、e2表示app1在终端型号3的终端上第2次首次启动时的启动时间的数值、e3表示app1在终端型号3的终端上第3次首次启动时的启动时间的数值、e4表示app1在终端型号3的终端上第4次首次启动时的启动时间的数值;f1表示app1在终端型号3的终端上第1次非首次启动时的启动时间的数值、f2表示app1在终端型号3的终端上第2次非首次启动时的启动时间的数值、f3表示app1在终端型号3的终端上第3次非首次启动时的启动时间的数值、f4表示app1在终端型号3的终端上第4次非首次启动时的启动时间的数值;m3%为app1在终端型号3的终端上首次启动次数在总的启动次数中所占的比例。

前面描述了通过终端型号1的终端、终端型号2的终端、终端型号3的终端分别计算启动时间的数值的过程,下面对根据启动时间1、启动时间2和启动时间3来计算总的启动时间的数值进行描述,总的启动时间可以采用如下方式计算:

总的启动时间=(启动时间1*30%+启动时间2*20%+启动时间3*10%)/(30%+20%+10%)

30%可以为使用app1的终端型号1的终端在所有终端中的比例、20%可以为使用app1的终端型号2的终端在所有终端中的比例、10%可以为使用app1的终端型号3的终端在所有终端中的比例;

或者,30%可以为终端型号1的终端在市场中的占有率、20%可以为终端型号2的终端在市场中的占有率、10%可以为终端型号3的终端在市场中的占有率,这种情况下的各个终端型号的终端在市场中的占有率可以是第三方提供的,或者也可以通过其他方式获取,在此不做具体限定。

本发明实施例中,为了提高检测的准确度,无论是首次启动还是非首次启动都要模拟用户的真实操作场景。

前面描述了启动时间的计算方式,流量、耗电量、app1所占内存的大小、app1对cpu的占有率、帧率这些参数的计算方式与启动时间的计算方式类似,在此不再进行一一详述。

本发明实施例中,为了进一步提高计算得出的性能数值的准确度,所述方法还包括:采用系统系数对所述待测app的该目标参数的性能测试数据进行优化。

仍以前面描述的例子进行说明,总的启动时间=(启动时间1*30%+启动时间2*20%+启动时间3*10%)/(30%+20%+10%),计算得到总的启动时间后,再将总的启动时间和系统系数相乘,得到优化后的启动时间。

下面对本发明提出的app的测试方法进行举例说明。

参阅图1b所示,针对待测app,判断日志系统中是否存在待测app的用户日志,根据判断结果确定用于测试待测app的n个终端型号,具体为,若所述日志系统中存在待测app的用户日志,针对每一个终端型号,分别计算使用所述待测app的用户数量,将计算得到的用户数量进行排序,并将排序后从最大用户数量开始的前n个用户数量对应的终端型号作为确定出的n个终端型号;若所述日志系统中不存在待测app的用户日志,将按照特定规则排序后的前n个终端型号作为确定出的n个终端型号,在确定出n个终端型号后,在n个终端型号分别对应的终端中均安装待测app,例如,在终端型号1对应的终端1上安装待测app,在终端型号2对应的终端2上安装待测app,在终端型号3对应的终端3上安装待测app,在终端型号4对应的终端4上安装待测app,……,在终端型号n对应的终端n上安装待测app,通过安装了待测app的n个终端分别执行两方面的测试:稳定性测试和性能测试,关于稳定性测试,获取测试脚本,然后校验测试脚本,如果校验成功,进行功能测试,如果校验失败,进行monkey测试;关于性能测试,如要测试6个目标参数的性能测试数据(启动时间、流量、耗电量、待测app所占内存的大小、待测app对cpu的占有率、帧率),针对启动时间,执行步骤s1和步骤s2:步骤s1:分别计算通过终端1、终端2、终端3、……、终端n得到的n个启动时间数值;步骤s2:将得到的n个启动时间数值综合处理得到启动时间的最终的性能测试数据。

其中,步骤s1中计算通过每一个终端得到的启动时间的数值的方法采用如下方式:

mi=((f1+f2+……+fj)/j)*m%+((g1+g2+……+gk)/k)*(1-m%)

其中,mi为通过终端i得到的启动时间的数值;j为所述待测app在终端型号i的终端上首次启动的次数,f1表示所述待测app在终端型号i的终端上第一次首次启动时的启动时间的数值、f2表示所述待测app在终端型号i的终端上第二次首次启动时的启动时间的数值、……、fj表示所述待测app在终端型号i的终端上第j次首次启动时的启动时间的数值;

k为所述待测app在终端型号i的终端上非首次启动的次数,g1表示所述待测app在终端型号i的终端上第一次非首次启动时的启动时间的数值、g2表示所述待测app在终端型号i的终端上第二次非首次启动时的启动时间的数值、……、gk表示所述待测app在终端型号i的终端上第k次非首次启动时的启动时间的数值;

m%为所述待测app在终端型号i的终端上首次启动次数在总的启动次数中所占的比例。

步骤s2中计算总的启动时间的数值的方法采用如下方式:

b=(m1*p1+……+mi*pi+……+mn*pn)/(p1+……+pi+……+pn)

其中,b为所述待测app的总的启动时间的性能测试数据;

若所述日志系统中存在待测app的用户日志,p1表示采用所述待测app的终端型号1的终端在所有终端中的比例、pi表示采用所述待测app的终端型号i的终端在所有终端中的比例、pn表示采用所述待测app的终端型号n的终端在所有终端中的比例;若所述日志系统中不存在待测app的用户日志,p1表示终端型号1的终端在市场中的占有率、pi表示终端型号i的终端在市场中的占有率、pn表示终端型号n的终端在市场中的占有率;

m1表示通过终端1测得的启动时间的数值、mi表示通过终端i测得的启动时间的数值、mn表示通过终端n测得的启动时间的数值。

上面描述的是计算启动时间的具体数值的方式,计算流量、耗电量、待测app所占内存的大小、待测app对cpu的占有率、帧率的具体数值的方式与计算启动时间的具体数值的方式相同,在此不再进行详述。

示例性装置

在介绍了本发明示例性实施方式的方法之后,接下来,参考图2对本发明示例性实施方式的、用于app的测试装置20进行说明。

参阅图2所示,提出一种app的测试装置20,包括:

确定单元210,用于判断日志系统中是否存在待测app的用户日志,以及根据判断结果确定用于测试待测app的n个终端型号,所述n为>0的整数;

测试单元220,用于通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据。

本发明实施例中,可选地,所述用户日志包括在每一个终端型号下分别使用所述待测app的用户数量信息。例如,终端型号1使用待测app的用户数量为10万,终端型号2使用待测app的用户数量为20万,终端型号3使用待测app的用户数量为12万,以此类推。

当然,上述只是用户日志的一种示例,用户日志中还可能包括其他信息,在此不做具体限定。

本发明实施例中,所述确定单元210根据判断结果确定用于测试待测app的n个终端型号时,具体为:

若所述日志系统中存在待测app的用户日志,针对每一个终端型号,分别计算使用所述待测app的用户数量,将计算得到的用户数量进行排序,并将排序后从最大用户数量开始的前n个用户数量对应的终端型号作为确定出的n个终端型号;

若所述日志系统中不存在待测app的用户日志,将按照特定规则排序后的前n个终端型号作为确定出的n个终端型号。

例如,待测app为app1,日志系统中存在app1的用户日志,需要确定出3个终端型号,若日志系统中的终端型号为10个:终端型号1、终端型号2、……、终端型号10,针对这10个终端型号分别计算每一个终端型号使用app1的用户数量,如计算得到终端型号1使用app1的用户数量为x1、计算得到终端型号2使用app1的用户数量为x2、计算得到终端型号3使用app1的用户数量为x3,以此类推,直至计算得到终端型号10使用app1的用户数量为x10,对x1、x2、x3、……x10进行排序,如果采用降序排序的方式,则将从首位开始的前3个终端型号作为确定出的终端型号,如果采用升序排序的方式,则将从末位开始的后3个终端型号作为确定出的终端型号。

又例如,待测app为app2,日志系统中不存在app2的用户日志,需要确定出3个终端型号,此时,可以将按照特定规则排序后的终端型号中的三个终端型号作为确定出的终端型号。

本发明实施例中,可选地,特定规则可以是第三方提供的当前市场上使用的终端型号按照用户使用量的排序列表。当然,还可以是其他规则,在此不做具体限定。

本发明实施例中,所述测试单元220通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据时,具体为:

对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app进行功能测试,得到功能测试数据。

例如,确定出5个终端型号:终端型号1、终端型号2、终端型号3、终端型号4和终端型号5,取5个终端,终端型号1对应的终端1、终端型号2对应的终端2、终端型号3对应的终端3、终端型号4对应的终端4和终端型号5对应的终端5,在终端1、终端2、终端3、终端4和终端5上均安装待测app,进行功能测试,得到功能测试数据。

本发明实施例中,对待测app进行测试主要是测试两方面,一方面是测试功能(也可以说是稳定性),另一方面是测试性能。

本发明实施例中,所述测试单元220对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app进行功能测试时,具体为:

对在所述n个终端型号中的每一个终端型号对应的终端上安装的所述待测app均进行如下操作:

获取测试脚本,对所述测试脚本进行校验,若校验成功,根据所述测试脚本对所述待测app进行功能测试;若校验失败,对所述待测app进行monkey测试。这就是前面所说的稳定性测试。

本发明实施例中,所述测试单元220通过所述n个终端型号对应的终端对所述待测app进行测试,得到目标类型测试数据时,具体为:

针对目标参数中的任意一目标参数,采用如下方式计算所述待测app的所述任意一目标参数的性能测试数据:

a=(x1*y1+……+xi*yi+……+xn*yn)/(y1+……+yi+……+yn)

其中,a为所述待测app的所述任意一目标参数的性能测试数据;

若所述日志系统中存在待测app的用户日志,y1表示采用所述待测app的终端型号1的终端在所有终端中的比例、yi表示采用所述待测app的终端型号i的终端在所有终端中的比例、yn表示采用所述待测app的终端型号n的终端在所有终端中的比例;若所述日志系统中不存在待测app的用户日志,y1表示终端型号1的终端在市场中的占有率、yi表示终端型号i的终端在市场中的占有率、yn表示终端型号n的终端在市场中的占有率;

x1表示所述待测app在终端型号1的终端中时所述任意一目标参数的数值、xi表示所述待测app在终端型号i的终端中时所述任意一目标参数的数值、xn表示所述待测app在终端型号n的终端中时所述任意一目标参数的数值。

需要说明的是,当所述日志系统中不存在待测app的用户日志,各个终端型号的终端在市场中的占有率可以是第三方提供的,当然,还可以采用其他方式来获得,在此不做具体限定。

例如,待测app为app1,如果所述日志系统中存在app1的用户日志,公式一中的yi表示的是使用app1的终端型号i的终端在所有终端中的比例,如果所述日志系统中不存在app1的用户日志,公式一中的yi表示的是终端型号i的终端在市场中的占有率。

本发明实施例中,可选地,xi采用如下方式计算:

xi=((a1+a2+……+aj)/j)*m%+((b1+b2+……+bk)/k)*(1-m%)

其中,j为所述待测app在终端型号i的终端上首次启动的次数,a1表示所述待测app在终端型号i的终端上第一次首次启动时的所述任意一目标参数的数值、a2表示所述待测app在终端型号i的终端上第二次首次启动时的所述任意一目标参数的数值、……、aj表示所述待测app在终端型号i的终端上第j次首次启动时的所述任意一目标参数的数值;

k为所述待测app在终端型号i的终端上非首次启动的次数,b1表示所述待测app在终端型号i的终端上第一次非首次启动时的所述任意一目标参数的数值、b2表示所述待测app在终端型号i的终端上第二次非首次启动时的所述任意一目标参数的数值、……、bk表示所述待测app在终端型号i的终端上第k次非首次启动时的所述任意一目标参数的数值;

m%为所述待测app在终端型号i的终端上首次启动次数在总的启动次数中所占的比例。

例如,目标参数为启动时间、流量、耗电量、app1所占内存的大小、app1对cpu的占有率、帧率,要通过3个终端型号的终端测试性能。

针对启动时间:

通过终端型号1的终端计算启动时间的方式为:

启动时间1=((a1+a2+a3)/3)*m1%+((b1+b2+b3+b4)/4)*(1-m1%)

a1表示app1在终端型号1的终端上第1次首次启动时的启动时间的数值、a2表示app1在终端型号1的终端上第2次首次启动时的启动时间的数值、a3表示app1在终端型号1的终端上第3次首次启动时的启动时间的数值;b1表示app1在终端型号1的终端上第1次非首次启动时的启动时间的数值、b2表示app1在终端型号1的终端上第2次非首次启动时的启动时间的数值、b3表示app1在终端型号1的终端上第3次非首次启动时的启动时间的数值、b4表示app1在终端型号1的终端上第4次非首次启动时的启动时间的数值;m1%为app1在终端型号1的终端上首次启动次数在总的启动次数中所占的比例;

通过终端型号2的终端计算启动时间的方式为:

启动时间2=((c1+c2+c3)/3)*m2%+((d1+d2+d3+d4+d5)/5)*(1-m2%)

c1表示app1在终端型号2的终端上第1次首次启动时的启动时间的数值、c2表示app1在终端型号2的终端上第2次首次启动时的启动时间的数值、c3表示app1在终端型号2的终端上第3次首次启动时的启动时间的数值;d1表示app1在终端型号2的终端上第1次非首次启动时的启动时间的数值、d2表示app1在终端型号2的终端上第2次非首次启动时的启动时间的数值、d3表示app1在终端型号2的终端上第3次非首次启动时的启动时间的数值、d4表示app1在终端型号2的终端上第4次非首次启动时的启动时间的数值、d5表示app1在终端型号2的终端上第5次非首次启动时的启动时间的数值;m2%为app1在终端型号2的终端上首次启动次数在总的启动次数中所占的比例;

通过终端型号3的终端计算启动时间的方式为:

启动时间3=((e1+e2+e3+e4)/4)*m3%+((f1+f2+f3+f4)/4)*(1-m3%)

e1表示app1在终端型号3的终端上第1次首次启动时的启动时间的数值、e2表示app1在终端型号3的终端上第2次首次启动时的启动时间的数值、e3表示app1在终端型号3的终端上第3次首次启动时的启动时间的数值、e4表示app1在终端型号3的终端上第4次首次启动时的启动时间的数值;f1表示app1在终端型号3的终端上第1次非首次启动时的启动时间的数值、f2表示app1在终端型号3的终端上第2次非首次启动时的启动时间的数值、f3表示app1在终端型号3的终端上第3次非首次启动时的启动时间的数值、f4表示app1在终端型号3的终端上第4次非首次启动时的启动时间的数值;m3%为app1在终端型号3的终端上首次启动次数在总的启动次数中所占的比例。

前面描述了通过终端型号1的终端、终端型号2的终端、终端型号2的终端分别计算启动时间的数值的过程,下面对根据启动时间1、启动时间2和启动时间3来计算总的启动时间的数值进行描述,总的启动时间可以采用如下方式计算:

总的启动时间=(启动时间1*30%+启动时间2*20%+启动时间3*10%)/(30%+20%+10%)

30%可以为使用app1的终端型号1的终端在所有终端中的比例、20%可以为使用app1的终端型号2的终端在所有终端中的比例、10%可以为使用app1的终端型号3的终端在所有终端中的比例;

或者,30%可以为终端型号1的终端在市场中的占有率、20%可以为终端型号2的终端在市场中的占有率、10%可以为终端型号3的终端在市场中的占有率,这种情况下的各个终端型号的终端在市场中的占有率可以是第三方提供的,或者也可以通过其他方式获取,在此不做具体限定。

本发明实施例中,为了提高检测的准确度,无论是首次启动还是非首次启动都要模拟用户的真实操作场景。

前面描述了启动时间的计算方式,流量、耗电量、app1所占内存的大小、app1对cpu的占有率、帧率这些参数的计算方式与启动时间的计算方式类似,在此不再进行一一详述。

本发明实施例中,为了进一步提高计算得出的性能数值的准确度,进一步的,所述装置还包括优化单元230,用于采用系统系数对所述待测app的该目标参数的性能测试数据进行优化。

示例性装置

在介绍了本发明示例性实施方式的方法和设备之后,接下来,介绍根据本发明的另一示例性实施方式的应用程序app的测试装置。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本发明实施方式的应用程序app的测试装置可以包括至少一个处理单元、以及至少一个存储单元。其中,存储单元存储有程序代码,当程序代码被处理单元执行时,使得处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的应用程序app的测试方法中的步骤。例如,处理单元可以执行如图1a中所示的应用程序app的测试方法的步骤以及细化方案。

示例性程序产品

在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所示程序产品在设备上运行时,所述程序代码用于使设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的应用程序app的测试方法中的步骤,例如,设备可以执行如图1a中所示的应用程序app的测试方法的步骤以及细化方案。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示意性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1