应用兼容性测试方法、装置及系统
技术领域
本说明书实施例涉及测试领域,尤其涉及一种应用兼容性测试方法、装置及系统。
背景技术
伴随着移动互联网的快速发展,目前市面上测试终端的品牌和型号层出不穷,不同品牌和型号的移动设备具有不同的大小,分辨率,屏幕,版本和硬件。为了同一款APP在不同测试终端上能够稳定、有效运行,APP的兼容性显得越来越重要,就需要在每一版APP上线之前进行兼容性测试,以定位到APP的兼容性问题,兼容性测试主要是对App在各类机型、系统上的兼容情况进行测试。
发明内容
本说明书实施例提供一种应用兼容性测试方法、装置及系统,对App在各类机型、系统上的兼容情况进行测试。
第一方面,本说明书实施例提供一种应用兼容性测试方法,应用于服务端,所述方法包括:获取目标页面截图集,其中,由M个测试终端针对目标应用执行兼容性测试任务,并在任务执行过程中生成至少一组测试页面截图,所述目标页面截图集是从所述至少一组测试页面截图中剔除第一类异常页面截图后的截图集,所述第一类异常页面截图是通过异常目标检测模型确定出,所述M个测试终端中包含至少两个不同的测试终端,M为大于2的整数;对所述目标页面截图集进行聚类分析,得到N个业务场景中每个业务场景的第二类异常页面截图,N为正整数;根据所述N个业务场景中每个业务场景的第二类异常页面截图,确定出对所述目标应用的兼容性测试结果。
第二方面,本说明书实施例提供一种应用兼容性测试装置,应用于服务端,所述装置包括:截图获取单元,用于获取目标页面截图集,其中,由M个测试终端针对目标应用执行兼容性测试任务,并在任务执行过程中生成至少一组测试页面截图,所述目标页面截图集是从所述至少一组测试页面截图中剔除第一类异常页面截图后的截图集,所述第一类异常页面截图是通过异常目标检测模型确定出,所述M个测试终端中包含至少两个不同的测试终端,M为大于2的整数;异常图片聚类单元,用于对所述目标页面截图集进行聚类分析,得到N个业务场景中每个业务场景的第二类异常页面截图,N为正整数;第一结果确定单元,用于根据所述N个业务场景中每个业务场景的第二类异常页面截图,确定出对所述目标应用的兼容性测试结果。
第三方面,本说明书实施例提供一种应用兼容性测试系统,包括:服务端和M个测试终端,所述M个测试终端挂载在一个以上的宿主设备上;所述M个测试终端,用于针对目标应用执行兼容性测试任务,并在执行所述兼容性测试任务的过程中生成至少一组测试页面截图;服务端,用于获取目标页面截图集,所述目标页面截图集是从所述至少一组测试页面截图中剔除第一类异常页面截图后的截图集,所述第一类异常页面截图是通过异常目标检测模型确定出,所述M个测试终端中包含至少两个不同的测试终端,M为大于2的整数;对所述目标页面截图集进行聚类分析,得到N个业务场景中每个业务场景的第二类异常页面截图,N为正整数;根据所述N个业务场景中每个业务场景的第二类异常页面截图,确定出对所述目标应用的兼容性测试结果。
第四方面,本说明书实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的应用兼容性测试方法。
第五方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的应用兼容性测试方法。
本说明书实施例提供的一个或者多个技术方案,至少具有如下技术效果或者优点:
通过异常目标检测模型从测试页面截图中剔除第一类异常页面截图后得到目标页面截图集,从而可以将多数异常的页面截图进行过滤掉,保证目标页面截图集中的正样本(正常页面截图)多于负样本(异常页面截图),有效解决了异常图片聚类时类别不平衡的问题,可以确保在异常图片聚类时能够定位出少而不同的异常页面截图,避免了异常图片聚类时出现负样本数量大于正样本数量的极端情况,进而避免了正常页面截图被识别成异常页面截图的可能性,因此,能够提高聚类结果的可信度,进而有利于提高兼容性异常的识别准确率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1A~图1B为本说明书实施例提供的应用兼容性测试系统的示意图;
图2为本说明书实施例中应用在服务端的应用兼容性测试方法的流程示意图;
图3为本说明书实施例提供的应用兼容性测试装置的结构示意图;
图4为本说明书实施例提供的电子设备的结构示意图。
具体实施方式
为使本说明书实施例的目的、技术方案和优点更加清楚,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
参考图1A和图1B所示,本说明书实施例中应用兼容性测试系统,包括:
云测中心10,云测中心10包括展示层、业务层和数据层。
服务端20,与云测中心10通信连接,服务端20上包括调度层,用于调度每个与服务端通信连接的宿主设备30,以及每个宿主设备30上挂载的每个移动终端40。服务端20基于GPU集群训练异常目标检测模型和聚类算法。
宿主设备30,该应用兼容性测试系统包括一个以上的宿主设备30(图1A中示意出3个宿主设备30),每个宿主设备30与云测中心10的服务端11建立有通信连接。具体可以是无线或者有线的通信连接。每个宿主设备30上挂载有一个或者多个移动终端40(图1A中示意出:在每个宿主设备30上挂载有3个移动终端40,而在实际应用过程中,每个宿主设备30上可以挂载更多的移动终端)。具体的,宿主设备30管控挂载的每个移动终端40。挂载的移动终端40可以为手机、平板、穿戴设备等中的任意一种。
移动终端40,用于执行兼容性测试任务,针对需要测试的目标应用执行测试用例,在执行兼容性测试任务的过程中,截取多个业务场景的测试页面截图。
用户通过云测中心发起任务构建操作。其中,用户发起的任务构建操作包括:目标应用(需要被测试的安装包)的选择操作以及针对目标应用的测试配置项选择操作。其中,针对目标应用的测试配置项选择操作,包括:选择用于对目标应用进行兼容性测试的测试终端;或者同时包括:选择用于对目标应用进行兼容性测试的测试终端以及针对目标应用进行兼容性测试所用的测试用例。
需要说明的是,每个测试终端针对目标应用进行兼容性测试会使用到多条测试用例,用户选择多条针对目标应用进行兼容性测试的测试用例。
服务端获取到用户发起的任务构建操作,则根据任务构建操作构建兼容性测试任务。对于任务构建操作中没有选择的测试配置项,可以使用默认配置。具体来讲:如果任务构建操作中没有选择测试用例,可以由服务端根据目标应用的应用类型确定测试用例。如果任务构建操作中没有选择M个测试终端,可以配置为随机确定M个测试终端或者配置为上一次选择的M个测试终端,M为大于2的整数。
在本说明书实施例中,M个测试终端中包含至少两个不同的测试终端。两个测试终端之间的不同可以是:测试终端的终端型号不同和/或所搭载操作系统的版本不同。通过在任务操作中选择测试终端的型号、操作系统的版本。当然,在具体实施过程中,可以是M个测试终端互不相同。具体而言,M个测试终端中任意两个测试终端的终端型号不同和/或所搭载操作系统的版本不同。
比如,有可能存在:其中两个测试终端的型号相同,但是操作系统的版本不同。也有可能存在:其中两个测试终端的型号不同,操作系统的版本也不同。还有可能存在:其中两个测试终端的型号不同,但是所搭载操作系统的版本相同。
通过上述步骤构建的兼容性测试任务中,携带有如下任务信息:执行本次兼容性测试任务的测试终端的标识信息、执行本次兼容性测试任务使用的测试用例、本次兼容性测试任务的测试对象,即:目标应用。具体的,针对目标应用执行兼容性测试任务使用的测试用例包括多个。
服务端在构建兼容性测试任务之后,向与服务端通信连接的每个宿主设备下发兼容性测试任务,使得与服务端通信连接的每个宿主设备,将兼容性测试任务与该宿主设备上挂载的移动终端进行匹配,从该宿主设备上挂载的移动终端中,匹配出用于执行兼容性测试任务的一个以上测试终端,匹配到至少一个测试终端的宿主设备,控制匹配到的每个测试终端执行兼容性测试任务,即控制匹配到的每个测试终端针对目标应用执行测试用例,每个测试终端在执行兼容性测试任务的过程中,截取N个业务场景的测试页面截图。
从与服务端通信连接的所有宿主设备所挂载的多个移动终端中,能够匹配到M个测试终端。从而匹配到的M个测试终端挂载在同一宿主设备上,或者匹配到的M个测试终端中至少两个测试终端挂载在不同的宿主设备上。
具体的,宿主设备将兼容性测试任务中携带的测试终端的标识信息与该宿主设备上挂载的每个移动终端的标识信息进行匹配,匹配出用于针对目标应用进行兼容性测试的测试终端(标识信息相同,则匹配成功,否则不成功),标识信息可以为设备唯一ID,或者该兼容性测试系统下的自定义编码。
举例来讲,在构建的兼容性测试任务中,用户选择测试终端02,05、08、09;与服务端通信连接的宿主设备K1上挂载有移动终端01、02、03、04、05;与服务端通信连接的宿主设备K2上挂载有移动终端06、07、08、09。与服务端通信连接的宿主设备K3上挂载有移动终端10、11。匹配出宿主设备K1上挂载的移动终端02、05以及宿主设备K2上挂载的移动终端08、09作为针对目标应用执行兼容性测试任务的测试终端。
在宿主设备根据兼容性测试任务中携带的测试终端的标识信息,确定出用于针对目标应用进行兼容性测试的M个测试终端之后,M个测试终端中每个测试终端,在所挂载在的宿主设备的管控下,针对目标应用执行如下兼容性测试过程:
步骤1、每个测试终端根据服务端下发的兼容性测试任务,确定针对目标应用的X个测试用例,X为正整数。具体的,确定的测试用例可以是:用户选择的测试用例,或者根据目标应用的应用类型自动适配的测试用例。
步骤2、每个测试终端使用X个测试用例对目标应用进行兼容性测试,并在兼容性测试的过程中,采集N个业务场景的测试页面截图,N为正整数。
在本说明书实施例中,在针对目标应用进行兼容性测试的过程中,会经过多个业务场景(多于或等于N)。具体来讲,每个测试终端针对目标应用进行兼容性测试的过程中会产生多次应用页面的跳转,每一次跳转的应用页面对应一个业务场景。兼容性测试的过程中时,通过用户在测试终端上对目标应用的操作,会触发应用页面的跳转。每操作一步,应用页面发生相应跳转。因此,每个测试终端在针对目标应用进行兼容性测试的过程中会涉及多个业务场景。比如,登陆页面对应一个业务场景。主页页面对应一个业务场景,设置页面对应一个页面场景,每一步测试点击操作会进行一次应用页面的跳转,从目标应用的一个应用页面跳转至另一应用页面。与应用页面跳转相应的,从目标应用的一个业务场景切换至另一个业务场景。
N个业务场景可以是目标应用的全部业务场景或者部分业务场景。具体来讲,可以是对目标应用进行兼容性测试的过程中每个业务场景采集测试页面截图,也可以是对目标应用进行兼容性测试的过程中重要业务场景采集测试页面截图。具体来讲,重要业务场景可以是预先确定。比如,登录场景、首页场景等等。
从M个测试终端采集的至少一组测试页面截图中,确定出目标页面截图集。
具体的,通过异常目标检测模型将测试页面截图与异常模型库比对,确定出第一类异常页面截图并剔除,得到目标页面截图集。
需要说明的是,异常模型库可以为:动态链接库(Dynamic Link Library或者Dynamic-link Library,缩写为DLL),包含函数和数据的模块的集合。具体的,本说明书实施例中,异常模型库为预先下发并配置在每个宿主设备所挂载的移动终端上。
具体来讲,由服务端搜集历史兼容性测试过程中的第一类异常页面截图。第一类异常页面截图具体是显示异常的页面截图,比如可以是:页面截图中有空坑、图片加载不全、黑白屏等等。服务端基于历史搜集的各种第一类异常页面截图进行训练初始的目标检测模型,得到异常目标检测模型。
在具体实施过程中,可以是:由服务端从M个测试终端采集的至少一组测试页面截图中确定出目标页面截图集。或者是:服务端获取M个测试终端中每个测试终端上传的剩余页面截图,服务端基于M个测试终端的剩余页面截图得到目标页面截图集,其中,每个测试终端上传的剩余页面截图是该测试终端从该测试终端生成的多个测试页面截图中剔除第一类异常页面截图。
实施方式一、如果是服务端完成从M个测试终端采集的至少一组测试页面截图中确定出目标页面截图集,具体过程如下:
服务端接收M个测试终端在执行兼容性测试任务过程中生成的至少一组测试页面截图,并通过异常目标检测模型从至少一组测试页面截图中剔除第一类异常页面截图后,得到目标页面截图集。M个测试终端执行兼容性测试任务的过程是相互独立的,直至执行本次兼容性测试任务的所有测试终端都运行结束,服务端接收到M个测试终端中最后一个执行兼容性测试任务的测试终端任务执行完成并生成相应的测试页面截图。
服务端通过异常目标检测模型从每组测试页面截图中确定出第一类异常页面截图后,得到目标页面截图集,其中,第一类异常页面截图的异常程度大于第二类异常页面截图的异常程度。
具体来讲,服务端通过异常目标检测模型,将每组测试页面截图中每个测试页面截图(具体可以是逐张测试页面截图)与异常模型库比对,比对出每个测试页面截图中是否存在异常目标,如果存在,则表征该测试页面截图属于第一类异常页面截图,需要被剔除;如果不存在,则表征该测试页面截图不属于第一类异常页面截图,需要被保留。
在本实施方式一下,可以通过与服务端通信连接的宿主设备,获得该宿主设备上挂载的用于执行兼容性测试任务的每个测试终端采集的每个测试页面截图。
实施方式二:如果是在每个测试终端上完成剔除第一类异常页面截图的过程,具体实现方式如下:
服务端接收M个测试终端中每个测试终端上传的剩余页面截图,并基于M个测试终端中每个测试终端上传的剩余页面截图得到目标页面截图集,其中,每个测试终端上传的剩余页面截图是该测试终端通过异常目标检测模型,从该测试终端生成的测试页面截图中剔除第一类异常页面截图后剩余的页面截图。
具体来讲,M个测试终端中每个测试终端剔除第一类异常页面截图的过程相互独立。每个测试终端通过异常目标检测模型,将该测试终端采集的每个测试页面截图与异常模型库比对,比对出每个测试页面截图中是否存在异常目标;如果存在,则表征该测试页面截图属于第一类异常页面截图,剔除该测试页面截图,如果不存在,则表征该测试页面截图不属于第一类异常页面截图,保留该该测试页面截图。每个测试终端将剔除第一类异常页面截图后剩余的页面截图上传至服务端。
下面,通过异常目标检测模型对测试页面截图进行检测是否存在异常目标的实现过程,进行详细描述:
对于单个测试页面截图而言,若该测试页面截图与异常模型库进行匹配,若匹配成功,则认定该测试页面截图中存在异常目标,则将该测试页面截图打上第一异常图片标签;若不匹配,则认定该测试页面截图中不存在异常目标,给该测试页面截图打上正常图片标签。从而区别第一类异常页面截图与剩余页面截图。异常目标可以是:空坑区域、空白区域、黑白屏等等。
在本说明书实施例中,可以将打上第一异常图片标签的测试页面截图,(即第一类异常页面截图)写入结果文件中。
需要说明的是,异常模型库可以为:动态链接库(Dynamic Link Library或者Dynamic-link Library,缩写为DLL),包含函数和数据的模块的集合。具体的,本说明书实施例中,若是由移动终端剔除第一类异常页面截图,则服务端基于历史搜集的第一类异常页面截图训练得到的异常目标检测模型适应宿主设备所挂载的每个移动终端。并将训练出的异常模型库为预先下发并配置在宿主设备所挂载的每个移动终端上。具体的,由服务端将训练出的异常目标检测模型,以so(share object)库(动态链接库)+模型文件的方式动态推送到宿主设备所挂载的每个移动终端上。
需要说明的是,目标检测(Object Detection):也叫目标提取,是基于目标几何和统计特征的图像分割,它将目标的分割和识别合二为一,对多个目标进行实时处理时,目标自动提取和识别就显得特别重要。
通过上述步骤实现了在测试终端进行有监督的异常目标检测,从而过滤掉明显异常的页面截图,利于后续的聚类分析。
需要说明的是,M个测试终端执行兼容性测试任务的过程可以是独立、分先后的进行,相互之间不影响。
在本实施方式二下,通过与服务端通信连接的宿主设备,获得宿主设备上挂载的执行兼容性测试任务的每个测试终端剔除第一类异常页面截图之后的剩余页面截图,而不会向服务端上传第一类异常页截图。
通过上述实施方式二,将比对测试页面截图是否异常的过程迁移到测试终端完成,而将需要集中处理的聚类分析过程放到服务端完成,从而合理分配使用测试终端和服务端的计算资源,提高了算法执行的效率,进而有利于提高应用兼容性测试的效率。
无论是上述实施方式一或者实施方式二,均能够在执行本次兼容性测试任务的所有测试终端都运行结束后,获得剔除了全部第一类异常页面截图的目标页面截图集。从而,可以在进行聚类分析之前将多数异常页面截图(显示异常)过滤掉,保证异常图片聚类算法进行时,正样本(正常页面截图)多于负样本(异常页面截图)。便于后续应用无监督的算法(异常图片聚类)来定位少而不同的异常样本。有效解决了后续图像聚类算法的样本类别不平衡问题,并且,进一步准确识别出目标页面截图集中的异常页面截图(第二类异常页面截图),确保能够准确定位到目标应用不兼容的具体类型。从而提高了整体的异常图片识别准确率,进而提高了对应用兼容性测试的准确性。
下面,在服务端获取到目标页面截图集之后,服务端针对目标应用进行兼容性测试的过程进行描述。参考图2所示,服务端的方法流程包括如下步骤:
S201、服务端获取目标页面截图集,由M个测试终端针对目标应用执行兼容性测试任务,并在任务执行过程中生成至少一组测试页面截图,目标页面截图集是从各组测试页面截图中剔除第一类异常页面截图后的截图集,第一类异常页面截图是通过异常目标检测模型确定出,M个测试终端中包含至少两个不同的测试终端,M为大于2的整数。具体的,M个测试终端中至少两个测试终端的型号和/或操作系统的版本不同,为了说明书的简洁,此处不再赘述如何获取目标页面截图集的过程。
S202、对目标页面截图集进行聚类分析,得到N个业务场景中每个业务场景的第二类异常页面截图,N为正整数。其中,每个业务场境下的第二类异常页面截图包括一张或者多张。
在一可选的实施方式下,直接对目标页面截图集进行聚类分析,得到N个业务场景中每个业务场景的第二类异常页面截图。在可选的另一实施方式下,步骤S202包括如下两个具体步骤:
步骤S2021、服务端根据N个业务场景对目标页面截图集进行分组,得到N个测试页面截图组。
一个业务场景下对应一个测试页面截图组,一个测试页面截图组包括:同一业务场景下不同测试终端的测试页面截图。举例来讲,将M个测试终端生成的测试页面截图中,属于同一业务场景的多个测试页面截图划分至同一个测试页面截图组。由于测试终端会剔除第一类异常页面截图,则每个测试页面截图组中包括M个或者少于M个的测试页面截图。
由于目标页面截图集中已经剔除黑白屏、空坑、空白区域等第一类异常页面截图,使得目标页面截图集中属于同一业务场景下的页面截图的相似度很高,剩余的异常页面截图只是细小异常,因此,可以基于图片相似度将目标页面截图集划分为N个测试页面截图组,同一测试页面截图组中的测试页面截图同属于一个业务场景。
S2022、对N个测试页面截图组中每个测试页面截图组进行聚类分析,得到N个业务场景中每个业务场景的第二类异常页面截图。
具体的,对测试页面截图组中的测试页面截图进行图像特征提取,得到图像特征矩阵,然后基于目标聚类算法、以及提取的图像特征矩阵,对该测试页面截图组中的测试页面截图进行聚类分析,得到该测试页面截图组中的第二类异常页面截图。
在具体实施过程,对每个测试页面截图组进行如下聚类分析,得到该测试页面截图组中的第二类异常页面截图:
步骤1、对所述测试页面截图组进行聚类,得到多个簇。在本说明实施例中,不指定簇数。
步骤2、从聚类出的多个簇中确定出一个以上目标簇,目标簇的截图数量满足预设条件。
由于通过异常目标检测模型已经过滤掉了大多数异常页面截图,因此测试页面截图组中异常页面截图较少,大多数为正常页面截图,因此,聚类得到的所有簇中:由正常页面截图聚合的簇中,截图数量远远多于由异常页面聚合的每个簇的簇内截图数量。基于此原因,可以将排除截图数量最多的簇之外的剩余簇,作为目标簇。或者,是将簇内截图数量小于预设数量的簇,作为目标簇。
步骤3、将每个目标簇中的测试页面截图标记为第二类异常页面截图。
具体的,通过聚类分析从每个测试页面截图组中区分出正常页面截图和第二类异常页面截图。对聚类确定出的每个第二类异常页面截图打上第二异常图片标签,还可以将识别出的正常页面截图打上正常图片标签。从而进行区分正常页面截图与第二类异常页面截图。
S203、根据N个业务场景中每个业务场景的第二类异常页面截图,确定出对目标应用的兼容性测试结果。
具体来讲,每个第二类异常页面截图将打上第二异常图片标签之后,写入结果文件中。服务端从结果文件中获取所有第二类异常页面截图,根据第二类异常页面截图的相关截图信息,得到对目标应用的兼容性测试结果。
相关截图信息,具体可以包括如下一种或者多种:测试页面截图本身、测试页面截图的异常类型、该测试页面截图对应的业务场景、该测试页面截图来源的测试终端等等。
在得到目标应用的兼容性测试结果之后,展示该兼容性测试结果。展示出的兼容性测试结果,包括如下一种或多种结果信息:
1、目标应用不兼容的测试终端。根据每个第二类异常页面截图的来源确定不兼容的测试终端。
2、目标应用在每个不兼容性测试终端上不兼容的具体业务点,比如登录时、退出时,设置时等等。根据每个第二类异常页面截图的业务场景确定在每个不兼容的测试终端上,不兼容的具体业务点。
3、目标应用在每个不兼容性测试终端上不兼容的具体类型,比如:分辨率不兼容、尺寸不兼容、系统版本不兼容、硬件不兼容等等。识别每个第二类异常页面截图,根据截图显示内容确定是否分辨率异常、确定是否显示尺寸异常、是否系统版本不兼容、以及是否硬件不兼容。
进一步的,为了更准确定位目标应用的兼容性问题,在本说明书实施例中,服务获得M个测试终端中每个测试终端对目标应用的初步测试结果。
在本说明书实施例中,服务端获得M个测试终端中每个测试终端对目标应用的初步测试结果。
具体的,每个测试终端对目标应用的初步测试结果,具体为:该测试终端的第一类异常页面截图,以及每个第一类异常页面截图的截图相关信息。比如,每个第一类异常页面截图对应的业务场景、来源的测试终端、异常类型等等。
具体来讲,在M个测试终端均完成兼容性测试任务并得到初步测试结果,以及服务端得到兼容性测试结果之后,服务端根据兼容性测试结果和M个测试终端中每个测试终端对目标应用的初步测试结果,确定出目标应用的最终兼容性测试结果。
具体的,需要说明的是,第一类异常页面截图包括一个以上的页面截图,第二类异常页面截图包括一个以上的页面截图。服务端从结果文件中获取到每个第一类异常页面截图,以及每个第二类异常页面截图。根据每个第一类异常页面截图的截图相关信息以及每个第二类异常页面截图的截图相关信息,得到目标应用的最终兼容性测试结果。
具体的,分析每一个异常页面截图(第一类异常页面截图、第二类异常页面截图),得到对每个异常页面截图的分析结果。根据每个异常页面截图的分析结果得到的最终兼容性测试结果包括如下一种或者多种结果信息:
1、目标应用不兼容的测试终端的标识信息和/或更多具体信息,根据每个异常页面截图的来源确定不兼容的测试终端。
2、目标应用在每个不兼容性测试终端上不兼容的具体业务点,比如登录时、退出时,设置时等等。根据每个异常页面截图的业务场景确定在每个不兼容的测试终端上,不兼容的具体业务点。
3、目标应用不兼容的类别号,不兼容的类别号:对应目标应用的测试页面截图属于第一类异常页面截图还是第二类异常页面截图,以及属于第一类一场页面截图中的哪一类显示异常(空坑、显示不全、黑白屏等等)。
4、目标应用在不兼容性测试终端上不兼容的具体类型,比如:分辨率不兼容、尺寸不兼容、系统版本不兼容、硬件不兼容等等。识别每个异常页面截图,根据截图显示内容确定是否分辨率异常、确定是否显示尺寸异常、是否系统版本不兼容、以及是否硬件不兼容。
5、基于全部异常页面截图的分析结果,得到目标应用的兼容性总得分,以及对每个测试终端的异常页面截图进行分析,得到目标应用在每个测试终端上的兼容性测试得分。
在得到最终兼容性测试结果之后,通过云测中心的展示层向用户展示对目标应用的最终兼容性测试结果。
通过上述技术方案,实现了将页面截图的异常目标检测在测试终端侧完成,将需要集中处理的图像聚类放到服务端完成,充分利用了终端和服务端的计算资源,提高了应用兼容性测试的效率。
在整个兼容性测试任务执行结束后,准确区分了测试页面截图中的异常页面截图和正常页面截图。根据准确的异常页面截图(包括第一类异常页面截图和第二类异常页面截图),能够更准确定位到目标应用不兼容的机型、以及不兼容的具体类型。
进一步的,为了提高兼容性测试准确性,检测聚类出的正常页面截图中仍然包含新的异常页面截图时,向服务端快速提交新的异常页面截图,基于新的异常页面截图对异常目标检测模型继续训练,形成更新后的异常目标检测模型,可以使模型在使用过程中不断提高泛化能力。从而在下一次兼容性测试任务执行的过程中,就能把这种新发现的异常捕获住。具体的,向服务端的算法平台基于新的异常页面截图进行增量训练(单NVIDIA1080ti机器可在2h内完成训练)。经过不断的使用和迭代,算法的泛化能力可以不断提高,可以有效的识别对应场景的异常类型。一方面大大提升了异常图片检测结果的准确度,另一方面在整个异常页面截图的发现上形成了闭环,大大提升的兼容性测试的效能。
第二方面,基于同一发明构思,本说明书实施例提供一种应用兼容性测试装置,应用于服务端,参考图3所示,该应用兼容性测试装置包括:
截图获取单元301,用于获取目标页面截图集,其中,由M个测试终端针对目标应用执行兼容性测试任务,并在任务执行过程中生成至少一组测试页面截图,所述目标页面截图集是从所述至少一组测试页面截图中剔除第一类异常页面截图后的截图集,所述第一类异常页面截图是通过异常目标检测模型确定出,所述M个测试终端中包含至少两个不同的测试终端,M为大于2的整数;
异常图片聚类单元302,用于对目标页面截图集进行聚类分析,得到N个业务场景中每个业务场景的第二类异常页面截图,N为正整数;
第一结果确定单元303,用于根据N个业务场景中每个业务场景的第二类异常页面截图,确定出对目标应用的兼容性测试结果。
进一步的,在本说明书实施例的一实施方式中,应用兼容性测试装置还包括:
第二结果获取单元304,用于获得M个测试终端中每个测试终端对目标应用的初步测试结果,其中,由M个测试终端中每个测试终端,基于该测试终端生成的第一类异常页面截图,得到该测试终端对目标应用的初步测试结果;
最终测试单元305,用于根据兼容性测试结果和M个测试终端中每个测试终端对目标应用的初步测试结果,确定出对目标应用的最终兼容性测试结果。
在本说明书实施例的一实施方式中,截图获取单元301,具体用于:
接收所述至少一组测试页面截图,并通过所述异常目标检测模型从所述至少一组测试页面截图中剔除所述第一类异常页面截图后,得到所述目标页面截图集;或者
接收所述M个测试终端中每个测试终端上传的剩余页面截图,并基于所述M个测试终端中每个测试终端上传的剩余页面截图得到所述目标页面截图集,其中,每个所述测试终端上传的剩余页面截图是该测试终端通过所述异常目标检测模型,从该测试终端生成的测试页面截图中剔除所述第一类异常页面截图后剩余的页面截图。
在本说明书实施例的一实施方式中,M个测试终端挂载在同一宿主设备上,或者M个测试终端中至少两个测试终端挂载在不同的宿主设备上;
截图获取单元301,具体用于:
通过与服务端通信连接的宿主设备,获得挂载在该宿主设备上的每个测试终端执行兼容性测试任务的过程中采集的每个测试页面截图,或者
通过与服务端通信连接的宿主设备,获得挂载在该宿主设备上的每个测试终端上传的剩余页面截图。
在本说明书实施例的一实施方式中,异常图片聚类单元302,包括:
分组子单元3021,用于根据N个业务场景对目标页面截图集进行分组,得到N个测试页面截图组;
聚类子单元3022,用于对N个测试页面截图组中每个测试页面截图组进行聚类分析,得到N个业务场景中每个业务场景的第二类异常页面截图。
在本说明书实施例的一实施方式中,聚类子单元3022,具体用于:对每个测试页面截图组进行如下处理:对所述测试页面截图组进行聚类,得到多个簇;从所述多个簇中确定出一个以上目标簇,其中,所述目标簇中截图数量满足预设条件;将所述一个以上目标簇中测试页面截图标记为第二类异常页面截图。
在本说明书实施例的一实施方式中,该装置还包括:
任务构建单元306,用于根据用户发起的任务构建操作,构建兼容性测试任务;
任务下发单元307,用于调度与服务端通信连接的一个以上宿主设备,使得每个被调度的宿主设备从该宿主设备上挂载的移动终端中,匹配出用于执行兼容性测试任务的测试终端。
第三方面,基于与前述实施例中应用兼容性测试方法同样的发明构思,本说明书还提供一种电子设备,如图4所示,包括存储器404、处理器402及存储在存储器404上并可在处理器402上运行的计算机程序,处理器402执行所述程序时实现前文所述应用兼容性测试方法实施例中任一实现方式中的步骤。
其中,在图4中,总线架构(用总线400来代表),总线400可以包括任意数量的互联的总线和桥,总线400将包括由处理器402代表的一个或多个处理器和存储器404代表的存储器的各种电路链接在一起。总线400还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口406在总线400和接收器401和发送器403之间提供接口。接收器401和发送器403可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器402负责管理总线400和通常的处理,而存储器404可以被用于存储处理器402在执行操作时所使用的数据。
第四方面,基于与前述应用兼容性测试方法实施例的同样发明构思,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述应用兼容性测试方法实施例中任一实现方式的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。