一种测试方法和装置与流程

文档序号:12824650阅读:208来源:国知局
一种测试方法和装置与流程

本发明涉及安卓设备测试领域,尤其涉及一种测试方法和装置。



背景技术:

安卓产品的cts(compatibilitytestsuite,兼容性测试套件)测试,涵盖了系统软件、应用安装、多媒体、开发者工具与选项、硬件、性能与电源、安全等测试点。

目前对安卓产品进行cts测试主要是采用谷歌公司提供的自动化测试套件,该测试套件中提供了具体项目的测试命令,对于定制程度不高的产品进行cts测试时使用非常方便。

但是,如果一些对安卓系统做了较大改动的产品进行cts测试,尤其在产品开发前期进行cts测试时,采用上述谷歌公司提供的自动化测试套件则有一定的局限性。且由于该测试套件暂不支持有针对性地生成测试任务及自动匹配测试设备,因而并不能在开发环境下快捷高效地运行,使得对安卓产品的cts测试效率低。



技术实现要素:

为解决相关技术问题,本发明提供一种cts测试方法和装置,以提高对安卓设备进行cts测试的测试效率。

为实现上述目的,本发明实施例采用如下技术方案:

第一方面,本发明实施例提供了一种cts测试方法,用于测试基于安卓系统的待测设备,所述方法包括:

接收cts测试指令和所述待测设备的待测程序代码;

确定所述待测程序代码相较于所述安卓系统的源码,所做修改对应的目标类;

根据所述安卓系统的源码,确定所述目标类的相关类,所述相关类不包含所述目标类的父类;

根据所述目标类及相关类对应的全部测试用例,生成目标测试任务;

执行所述目标测试任务,对所述待测设备进行cts测试。

第二方面,本发明实施例还对应地提供了一种cts测试装置,用于测试基于安卓系统的待测设备,所述装置包括:

接收模块,用于接收cts测试指令和所述待测设备的待测程序代码;

目标类确定模块,用于确定所述待测程序代码相较于所述安卓系统的源码,所做修改对应的目标类;

相关类确定模块,用于根据所述安卓系统的源码,确定所述目标类的相关类,所述相关类不包含所述目标类的父类;

目标测试任务生成模块,用于根据所述目标类及相关类对应的全部测试用例,生成目标测试任务;

目标测试任务执行模块,用于执行所述目标测试任务,对所述待测设备进行cts测试。

本发明实施例提供的技术方案带来的有益效果:

本技术方案中,测试主机接收cts测试指令和待测设备的待测程序代码,确定待测程序代码相较于安卓系统的源码,所做修改对应的目标类,根据安卓系统的源码,确定目标类的相关类,相关类不包含目标类的父类,根据目标类及相关类对应的全部测试用例,生成目标测试任务,执行目标测试任务,对待测设备进行cts测试。测试主机根据待测程序代码和安卓系统的源码,确定待测程序代码相对安卓系统的源码所做修改对应的目标类,并确定目标类的相关类,根据目标类及相关类对应的全部测试用例,生成目标测试任务,根据该目标测试任务对待测设备进行cts测试;本方案基于待测程序代码自动生成目标测试任务,避免对待测设备进行过多无关的测试,有针对性地生成目标测试任务,可有效提升对安卓设备进行cts测试的测试效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。

图1是本发明实施例一提供的一种cts测试方法的流程示意图;

图2a是本发明实施例二提供的一种cts测试方法的流程示意图;

图2b是图2a中s204的可选实施方式的流程示意图;

图2c是图2a中s208的可选实施方式的流程示意图;

图3是本发明实施例三提供的一种cts测试装置的架构示意图;

图4是本发明实施例四提供的一种cts测试装置的架构示意图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

请参考图1,其是本发明实施例一提供的一种cts测试方法的流程示意图。本实施例的方法适用于通过测试主机对安卓设备进行cts测试的场景,可以由测试主机来执行。

如图1所示,本实施例提供的一种cts测试方法,用于测试基于安卓系统的待测设备,可以包括如下步骤:

s101:接收cts测试指令和待测设备的待测程序代码。

示例性的,cts测试指令用于通知测试主机开始对已连接的待测设备进行cts测试;待测设备是基于安卓系统的安卓设备产品,如安卓手机、安卓平板电脑等;待测程序代码是指开发者因产品开发需要,修改了安卓系统源代码中部分功能对应的代码后获得的代码,进行cts测试时,主要是对修改部分的目标内容,及与目标内容相关的部分内容进行测试。

s102:确定待测程序代码相较于安卓系统的源码,所做修改对应的目标类。

示例性的,可以通过git命令确定开发者提交的待测程序代码中相较于安卓系统的源码,所做修改的位置,使用“publicfinalclass”及“publicclass”关键字匹配出代码修改对应的目标类。

s103:根据安卓系统的源码,确定目标类的相关类,相关类不包含目标类的父类。

示例性的,类与类之间存在组合关系,例如,类a包含了类b与类c,那么类a为类b的相关类,类a也是类c的相关类,类b或类c的修改都可能会影响到类a的执行逻辑。由于父类的修改可能会影响到子类的执行逻辑,而子类的修改不会影响到父类的执行逻辑,因此,在确定目标类的相关类中不包含目标类的父类。

举例来说,确定目标类的相关类的方法,可以具体为:遍历java层的代码(仅cts目录),通过“import”关键字匹配出所有被cts测试使用的类,记为集合all。首先确认目标类是否属于集合all,如果属于集合all,则不再查找相关类,否则使用“import”关键字查找到java层包含目标类的的文件(cts目录除外),找到其实例化的对象所在位置,之后同样使用“publicfinalclass”及“publicclass”关键字匹配出一级相关类,判断一级相关类是否属于集合all,如果是,则不再查找相关类,否则执行递归查找二级相关类,直到n级相关类出现在集合all中。

s104:根据目标类及相关类对应的全部测试用例,生成目标测试任务。

示例性的,cts下每个类都对应包含有相应的测试用例,根据已确定的目标类以及目标类的相关类,可找出涉及到的全部测试用例,将涉及到的全部测试用例加入到测试任务中,生成目标测试任务。

s105:执行目标测试任务,对待测设备进行cts测试。

综上,在本技术方案中,测试主机根据待测程序代码和安卓系统的源码,确定待测程序代码相对安卓系统的源码所做修改对应的目标类,并确定目标类的相关类,根据目标类及相关类对应的全部测试用例,生成目标测试任务,根据该目标测试任务对待测设备进行cts测试;本方案基于待测程序代码自动生成目标测试任务,避免对待测设备进行过多无关的测试,有针对性地生成目标测试任务,可有效提升对安卓设备进行cts测试的测试效率。

实施例二

请参考图2a、图2b和图2c,其中,图2a是本发明实施例二提供的一种cts测试方法的流程示意图,图2b是图2a中s204的可选实施方式的流程示意图,图2c是图2a中s208的可选实施方式的流程示意图。本实施例与实施例一的主要区别在于,实施例二在实施例一的基础上增加了s205、s206、s207、s209和s210的内容,并进一步提供了s204的可选实施方式和s208的可选实施方式。

如图2a所示,本实施例提供的一种cts测试方法,用于测试基于安卓系统的待测设备,可以包括如下步骤:

s201:接收cts测试指令和待测设备的待测程序代码。

s202:确定待测程序代码相较于安卓系统的源码,所做修改对应的目标类。

s203:根据安卓系统的源码,确定目标类的相关类,相关类不包含目标类的父类。

s204:根据目标类及相关类对应的全部测试用例,生成目标测试任务。

可选的,如图2b所示,s204可以包括如下三个步骤:

s2041:遍历cts目录,生成类与测试用例之间的对应关系。

s2042:根据对应关系,确定与目标类及相关类对应的全部测试用例。

s2043:根据全部测试用例生成目标测试任务。

举例来说,测试主机遍历cts目录,在一个java文件中用“import”关键字统计该java文件所含测试用例相关的类,依次确认其实现对象的有效范围,之后使用“publicvoidtest”关键字找出该有效范围中声明的测试方法,这样即可得到一个类与测试用例的关系树状图。有多个相关类时,使用同样的方式获取其映射关系,当整个cts目录的java文件都解析完后即可得到一组关系树状图。

s205:根据待测设备及待测设备的待测程序代码,确定待测设备的属性值。

示例性的,待测设备的属性值可以包括测试设备的机芯、机型和待测程序代码的编译时间等,其中,机芯和机型由测试设备的硬件决定,编译时间由待测设备的软件代码决定。

s206:根据属性值生成可唯一识别待测设备的测试标识。

示例性的,测试标识是测试主机从多个空闲测试设备中匹配到待测设备的依据,可以由上述属性值组合生成测试标识,测试标识相同的多个设备,表明它们的硬件和软件代码均相同,测试主机根据测试标识从多个设备中确定其中的多个待测设备。

s207:将测试者邮箱、测试结果所在目录和测试标识更新到预置的测试列表中。

示例性的,预先生成测试列表,将开发者提供的测试者邮箱、选择的测试结果所在目录和上述生成的测试标识更新到测试列表中。其中,测试结果所在目录用于在该目录下查找测试结果,通过测试者邮箱将测试结果发邮件通知给测试者。

s208:执行目标测试任务,对待测设备进行cts测试。

可选的,如图2c所示,s208可以包括如下步骤:

s2081:将目标测试任务添加到测试等待队列。

s2082:根据预置的状态参数确定测试主机当前处于测试就绪状态。

示例性的,状态参数用于表示测试主机当前状态为测试就绪状态还是测试准备状态。

由于cts在分发测试任务时并不能区分接入的安卓设备是否具有相同的测试标识,因此,用测试就绪状态和测试准备状态这两种状态保证每次分发到的安卓设备具备相同的测试标识,即确定待测设备,这样就能保证一套测试结果的数据来自于同一个型号及版本的待测设备。其中,在下发目标测试任务之前,测试主机处于测试就绪状态;在下发目标测试任务的过程中,测试主机处于测试准备状态,此时,不允许再加入其它测试任务。只需维护一个状态参数即可对测试主机的状态进行区分判断。

s2083:获取测试设备列表,将测试设备列表中全部空闲测试设备与测试标识进行匹配。

s2084:如果空闲测试设备与测试标识均匹配,则从测试等待队列中读取测试任务并执行。

示例性的,收到目标测试任务后,先将目标测试任务加入等待测试队列,判断测试主机是否为测试准备状态,如果处于测试准备状态,则每30秒检查一次状态,以便及时获得状态变更信息。

通过adb命令获取测试设备列表,并进行测试标识匹配动作,如果测试设备列表中不存在满足测试标识的待测设备,则通过邮件通知开发者。通过cts命令获取接入的安卓设备的空闲状态,如果满足测试标识的待测设备非空闲,则将目标测试任务回存测试等待队列;如果存在满足测试标识的空闲的待测设备,同时存在不匹配测试标识的空闲设备,则记录不匹配测试标识的空闲设备信息后再断开与相应设备的连接,保证目标测试任务能正确地分发到待测设备;当空闲设备皆匹配测试标识时,开始新的测试,将待测设备的测试标识,及测试结果所在目录计入测试列表;之后重新连接之前断开连接的空闲设备,修改测试主机的状态为测试就绪状态。

测试主机每分钟检查已分配目标任务的待测设备的连接状态,如果待测设备连接状态正常则等待下一次检查,若待测设备连接中断则查询该待测设备的测试标识,通过测试列表查出触发测试人员的邮件并发邮件通知。

测试主机每五分钟查看一次测试等待队列,如果其中有未执行的测试任务,则从中取出队首测试任务并执行。

在本实施例中,测试主机通过测试标识区分测试设备,根据测试标识自动匹配多个待测设备运行目标测试任务,保证获得的测试结果数据来自于同一个型号及版本的多个待测设备,由于是通过多个待测设备同时运行目标测试任务,因此减少了测试时间,提高了测试效率。

s209:通过测试列表,查询与测试标识对应的测试者邮箱及测试结果所在目录。

s210:根据测试结果所在目录,调取测试结果,将测试结果发送到测试者邮箱。

示例性的,在执行完目标测试任务后,遍历测试列表,根据测试标识索引,查找到测试者邮箱和测试结果所在目录。在测试结果所在目录下找到对应的测试结果(测试报告),通过邮件将测试结果发送给测试者。

综上,在本技术方案中,测试主机根据待测程序代码和安卓系统的源码,确定待测程序代码相对安卓系统的源码所做修改对应的目标类,并确定目标类的相关类,根据目标类及相关类对应的全部测试用例,生成目标测试任务,将测试者邮箱、测试结果所在目录和测试标识更新到预置的测试列表中,根据该目标测试任务对待测设备进行cts测试,并将测试结果发送到测试者邮箱;本方案基于待测程序代码自动生成目标测试任务,避免对待测设备进行过多无关的测试,有针对性地生成目标测试任务,可有效提升对安卓设备进行cts测试的测试效率;同时,通过测试标识区分测试设备,根据测试标识自动匹配多个待测设备运行目标测试任务,保证获得的测试结果数据来自于同一个型号及版本的多个待测设备,由于是通过多个待测设备同时运行目标测试任务,因此减少了测试时间,提高了测试效率。

以下是本发明实施例提供的一种cts测试装置的实施例,一种cts测试装置与一种cts测试方法属于同一个发明构思,在一种cts测试装置的实施例中未详细描述的细节问题,可以参考上述一种cts测试方法的实施例。

实施例三

请参考图3,其是本发明实施例三提供的一种cts测试装置的架构示意图。

本实施例提供的一种cts测试装置300,配置于测试基于安卓系统的待测设备,可以包括如下内容:

接收模块301,用于接收cts测试指令和待测设备的待测程序代码。

目标类确定模块302,用于确定待测程序代码相较于安卓系统的源码,所做修改对应的目标类。

相关类确定模块303,用于根据安卓系统的源码,确定目标类的相关类,相关类不包含目标类的父类。

目标测试任务生成模块304,用于根据目标类及相关类对应的全部测试用例,生成目标测试任务。

目标测试任务执行模块305,用于执行目标测试任务,对待测设备进行cts测试。

综上,在本技术方案中,测试主机根据待测程序代码和安卓系统的源码,确定待测程序代码相对安卓系统的源码所做修改对应的目标类,并确定目标类的相关类,根据目标类及相关类对应的全部测试用例,生成目标测试任务,根据该目标测试任务对待测设备进行cts测试;本方案基于待测程序代码自动生成目标测试任务,避免对待测设备进行过多无关的测试,有针对性地生成目标测试任务,可有效提升对安卓设备进行cts测试的测试效率。

实施例四

请参考图4,其是本发明实施例四提供的一种cts测试装置的架构示意图。本实施例与实施例三的主要区别在于,本实施例在实施例三的基础上增加了属性值确定模块405、测试标识生成模块406、测试列表更新模块407、查询模块409和测试结果发送模块410,并进一步提供了目标测试任务生成模块404的可选实施方式和目标测试任务执行模块408的可选实施方式。

本实施例提供的一种cts测试装置400,配置于测试基于安卓系统的待测设备,可以包括如下内容:

接收模块401,用于接收cts测试指令和待测设备的待测程序代码。

目标类确定模块402,用于确定待测程序代码相较于安卓系统的源码,所做修改对应的目标类。

相关类确定模块403,用于根据安卓系统的源码,确定目标类的相关类,相关类不包含目标类的父类。

目标测试任务生成模块404,用于根据目标类及相关类对应的全部测试用例,生成目标测试任务。

属性值确定模块405,用于根据待测设备及待测设备的待测程序代码,确定待测设备的属性值。

测试标识生成模块406,用于根据属性值生成可唯一识别待测设备的测试标识,其中,测试标识是测试主机从多个空闲测试设备中匹配到待测设备的依据。

测试列表更新模块407,用于将测试者邮箱、测试结果所在目录和测试标识更新到预置的测试列表中。

目标测试任务执行模块408,用于执行目标测试任务,对待测设备进行cts测试。

查询模块409,用于通过测试列表,查询与测试标识对应的测试者邮箱及测试结果所在目录。

测试结果发送模块410,用于根据测试结果所在目录,调取测试结果,将测试结果发送到测试者邮箱。

可选的,目标测试任务生成模块404,具体用于:

遍历cts目录,生成类与测试用例之间的对应关系。

根据对应关系,确定与目标类及相关类对应的全部测试用例。

根据全部测试用例生成目标测试任务。

可选的,目标测试任务执行模块408,具体用于:

将目标测试任务添加到测试等待队列。

根据预置的状态参数确定测试主机当前处于测试就绪状态,状态参数用于表示测试主机当前状态为测试就绪状态还是测试准备状态。

获取测试设备列表,将测试设备列表中全部空闲测试设备与测试标识进行匹配。

如果空闲测试设备与测试标识均匹配,则从测试等待队列中读取测试任务并执行。

综上,在本技术方案中,测试主机根据待测程序代码和安卓系统的源码,确定待测程序代码相对安卓系统的源码所做修改对应的目标类,并确定目标类的相关类,根据目标类及相关类对应的全部测试用例,生成目标测试任务,将测试者邮箱、测试结果所在目录和测试标识更新到预置的测试列表中,根据该目标测试任务对待测设备进行cts测试,并将测试结果发送到测试者邮箱;本方案基于待测程序代码自动生成目标测试任务,避免对待测设备进行过多无关的测试,有针对性地生成目标测试任务,可有效提升对安卓设备进行cts测试的测试效率;同时,通过测试标识区分测试设备,根据测试标识自动匹配多个待测设备运行目标测试任务,保证获得的测试结果数据来自于同一个型号及版本的多个待测设备,由于是通过多个待测设备同时运行目标测试任务,因此减少了测试时间,提高了测试效率。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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