掌桥专利:专业的专利平台
掌桥专利
首页

界面样式异常检测方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 20:01:30


界面样式异常检测方法、装置、电子设备及存储介质

技术领域

本发明涉及自动化测试技术领域,具体而言,涉及一种界面样式异常检测方法、装置、电子设备及存储介质。

背景技术

目前通过UI自动化测试进行UI界面异常检测时,需要提供以下功能模块才能实现:其一,触发UI操作模块,该模块需要用户针对每种场景均编写具体的UI测试用例;其二,采集测试数据模块,该模块当测试用例在目标界面稳定时,可以调用对应的采集数据接口;其三,界面异常检测模块,该模块针对界面用户关心的元素区域,进行自动化检测以及人工核实,以判断是否存在UI界面样式异常。

上述进行UI自动化测试的方案由于需要用户针对每种场景均编写具体的UI测试用例,存在成本高操作繁琐的问题,且在界面样式异常检测时还需要结合人工核实,存在人工审核误判的风险。

发明内容

有鉴于此,本发明的目的在于提供一种界面样式异常检测方法、装置、电子设备及存储介质,以强化UI自动化测试能力,减少人工审核误判。

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

第一方面,本发明实施例提供一种界面样式异常检测方法,应用于电子设备;

所述方法包括:

在监听到待测试界面的操作事件的情况下,等待预设时间后采集所述待测试界面的测试数据,其中,所述测试数据包括所述待测试界面的截图数据和控件树数据;

对所述截图数据和控件树数据进行分析,以判断所述待测试界面的样式是否异常。

在可选的实施方式中,所述在监听到待测试界面的操作事件的情况下,等待预设时间后采集所述待测试界面的测试数据的步骤之前,所述方法还包括:

获取所述待测试界面的原始控件树数据,其中,所述原始控件树数据包括所述待测试界面中各控件的属性;

根据各所述控件的属性更新测试信息。

在可选的实施方式中,所述在监听到待测试界面的操作事件的情况下,等待预设时间后采集所述待测试界面的测试数据的步骤,包括:

在监听到待测试界面的操作事件的情况下,等待预设时间后采集所述待测试界面的截图数据和控件树数据;

对所述原始控件树数据进行扩充。

在可选的实施方式中,各所述控件的属性包括各所述控件的颜色、坐标和大小,所述方法还包括:

对所述原始控件树数据中各所述控件的颜色、坐标和大小进行分析,以判断所述待测试界面的样式是否异常。

在可选的实施方式中,所述对所述截图数据和控件树数据进行分析,以判断所述待测试界面的样式是否异常的步骤,包括:

对所述控件树数据进行结构分析,以判断所述待测试界面中各控件所处的位置,根据所述待测试界面中各控件所处的位置以及所述截图数据判断所述待测试界面的样式是否异常。

在可选的实施方式中,所述控件树数据包括待测试界面的界面标题、各控件类型和各控件间的层级关系;

所述对所述控件树数据进行结构分析,以判断所述待测试界面中各控件所处的位置,根据所述待测试界面中各控件所处的位置以及所述截图数据判断所述待测试界面的样式是否异常的步骤,包括:

对所述待测试界面的界面标题、各控件类型和各控件间的层级关系进行结构分析,以判断所述待测试界面中各控件所处的位置,根据所述待测试界面中各控件所处的位置以及所述截图数据判断所述待测试界面的样式是否异常。

在可选的实施方式中,所述对所述截图数据和控件树数据进行分析,以判断所述待测试界面的样式是否异常的步骤之后,所述方法还包括:

根据所述截图数据和控件树数据对所述待测试界面的各控件进行标识,其中,各所述控件的标识不同。

第二方面,本发明实施例提供一种界面样式异常检测装置,应用于电子设备;

所述装置包括:

监听采集模块,用于在监听到待测试界面的操作事件的情况下,等待预设时间后采集所述待测试界面的测试数据,其中,所述测试数据包括所述待测试界面的截图数据和控件树数据;

异常检测模块,用于对所述截图数据和控件树数据进行分析,以判断所述待测试界面的样式是否异常。

第三方面,本发明实施例提供一种电子设备,包括存储器和处理器;

所述存储器用于存储计算机程序;

所述处理器用于执行所述计算机程序,以实现如上述第一方面实施例和/或结合上述第一方面实施例可能的实施方式提供的界面样式异常检测方法。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面实施例和/或结合上述第一方面实施例可能的实施方式提供的界面样式异常检测方法。

本发明实施例的有益效果包括,例如:

本发明实施例提供的一种界面样式异常检测方法、装置、电子设备及存储介质,不需要开发测试用例,在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据,强化了自动化UI测试能力,扩展了利用相应检测工具(例如,monkey检测工具)检测界面样式异常的测试能力。

进一步地,由于需要对截图数据和控件树数据进行分析,以判断待测试界面样式是否异常,上述结合截图数据和控件树数据进行分析的方式可以有效减少人工审核排除误判的成本。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的一种电子设备的示例性结构框图;

图2示出了本发明实施例提供的一种界面样式异常检测方法的流程示意图;

图3示出了本发明实施例提供的一种界面样式异常检测方法的流程示意图之二;

图4示出了本发明实施例提供的一种界面样式异常检测方法的流程示意图之三;

图5示出了本发明实施例提供的一种界面样式异常检测方法的流程示意图之四;

图6示出了本发明实施例提供的一种界面样式异常检测方法的流程示意图之五;

图7示出了本发明实施例提供的一种界面样式异常检测方法的流程示意图六;

图8示出了本发明实施例提供的一种界面样式异常检测方法的流程示意图七;

图9示出了本发明实施例提供的一种界面样式异常检测装置的示例性框图。

图标:110-电子设备;1101-存储器;1102-处理器;1103-通信接口;300-界面样式异常检测装置;301-监听采集模块;302-异常检测模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。

目前通过UI自动化测试进行UI界面异常检测时,需要提供以下功能模块才能实现:其一,触发UI操作模块,该模块可以查找指定的区域,模拟触发点击、滑动等用户操作,该模块需要用户针对每种场景均需编写具体的UI测试用例;其二,采集测试数据模块,该模块可以采集界面截图,原生控件树,业务日志等数据,当测试用例在目标界面稳定时,可以调用对应的采集数据接口;其三,界面异常检测模块,该模块可以对界面的颜色对比度,黑屏,白屏等进行异常检测,该模块针对界面用户关心的元素区域,进行自动化检测以及人工核实,以判断是否存在UI界面样式异常。

上述进行UI自动化测试的过程由于需要用户针对每种场景均需编写具体的UI测试用例,存在成本高操作繁琐的问题,且在异常检测时还需要结合人工核实,存在人工审核误判的风险。

基于此,本发明实施例提供了一种界面样式异常检测方法,通过监听到待测试界面的操作事件后,再采集待测试界面的截图数据和控件树数据,并通过截图数据和控件树数据进行分析以解决上述问题。

请参阅图1,图1示出了本发明实施例提供的一种电子设备110的示例性结构框图,该电子设备110可以为能够进行UI自动化测试的服务器、处理平台等,例如,可以为PC等智能终端。如图1所示,该电子设备110包括:存储器1101、处理器1102和通信接口1103,该存储器1101、处理器1102和通信接口1103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

存储器1101可用于存储软件程序及模块,处理器1102通过执行存储在存储器1101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口1103可用于与其他节点设备进行信令或数据的通信。

其中,存储器1101可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。

处理器1102可以是一种集成电路芯片,具有信号处理能力。该处理器1102可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

基于上述电子设备110,下面以电子设备110为执行主体,对本发明实施例提供的一种界面样式异常检测方法进行示例性说明,请参阅图2,图2示出了本发明实施例提供的一种界面异常检测方法的流程示意图。

如图2所示,上述界面样式异常检测方法应用于电子设备110,上述界面样式异常检测方法可以包括以下步骤:

S210,在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据。

其中,测试数据包括待测试界面的截图数据和控件树数据。

S220,对截图数据和控件树数据进行分析,以判断待测试界面的样式是否异常。

上述步骤实现了对待测试界面的样式进行异常检测的过程。

其中,步骤S210为在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据的过程。

示例性地,可以利用相应检测工具(例如,monkey检测工具)检测界面样式异常,传统情况下,monkey测试不需要写任何测试用例,目标是用来发现与界面无关的问题,比如崩溃,内存泄漏等问题。

进一步地,由于大多数界面的变化都是由用户操作引起的,因此可以通过监听待测试界面的操作事件,在监听到待测试界面的操作事件的情况下(即,在monkey触发界面操作的情况下,例如,点击、拖曳、双击等操作的情况下),延迟数秒等待界面稳定后,触发采集测试数据。整个过程可以对途径的任何待测试界面采集测试数据,进而进一步进行自动化的界面样式异常检测。

需要说明的是,上述在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据的方法可以同样适用在普通UI用例测试上,传统的普通UI用例测试只可以在该用例指定的目标界面触发测试数据的采集,通过上述在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据的方法可以将测试数据扩大到全部途径的待测试界面。

在本发明实施例中,在步骤S210采集待测试界面的测试数据的过程,具体可以通过采集待测试界面的截图数据和控件树数据来实现。传统的方式一般只采集待测试界面的截图数据并对截图数据进行分析,本发明实施例通过采集待测试界面的截图数据和控件树数据可以获取到更全面的测试数据以供后续分析。

进一步地,对于Android,IOS系统,受系统开放的能力限制,对上述系统中的待测试界面只能跨进程采集到有限的控件树数据:例如,控件树数据可以包括控件类型、TextView、ImageView、控件之间的层级关系等。

在本发明实施例中,在采集待测试界面的测试数据后,则继续执行步骤S220,对截图数据和控件树数据进行分析,以判断待测试界面的样式是否异常。

具体地,步骤S220可以通过对控件树数据进行结构分析,以判断待测试界面中各控件所处的位置,并根据待测试界面中各控件所处的位置以及截图数据判断待测试界面的样式是否异常来实现。

需要说明的是,由于传统的界面样式异常检测仅通过传统图像处理算法,机器学习分类对采集到的截图数据进行异常检测,上述方式存在两点不足:其一,上述方式需要制造大量异常样本进行学习分类;其二,当APP界面很复杂时,比如存在弹窗,处于控件边界线等,单纯图像分析无法很好理解控件布局,会出现误判的情况,即把正常的界面样式分类为界面异常样式。

因此,通过本发明实施例中对截图数据结合控件树数据进行分析,以判断待测试界面的样式是否异常的方式可以有效地解决上述问题。即步骤S220中通过对控件树数据进行结构分析,以判断待测试界面中各控件所处的位置,根据待测试界面中各控件所处的位置以及截图数据判断待测试界面的样式是否异常的方式。

例如,通过对控件树数据进行结构分析,可以判断界面中的各控件是否和弹窗重叠、各控件是否处于列表的边界处、各控件的ID是否属于白名单,上述方式可以有效避免传统方式在异常检测时需要结合人工核实,存在人工审核误判风险的问题。

本发明实施例提供的一种界面样式异常检测方法、电子设备及存储介质,不需要开发测试用例,在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据,强化了自动化UI测试能力,扩展了利用相应检测工具(例如,monkey检测工具)检测界面样式异常的测试能力。

进一步地,由于需要对截图数据和控件树数据进行分析,以判断待测试界面样式是否异常,上述结合截图数据和控件树数据进行分析的方式可以有效减少人工审核排除误判的成本。

可选地,在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据的步骤之前,还需要获取待测试界面的原始控件树数据,以后续在对待测试界面样式进行异常检测时,对该原始控件树数据进行分析。上述具体过程可以通过下述步骤实现:

在图2的基础上,请参阅图3,图3示出了本发明实施例提供的界面样式异常检测方法的流程示意图之二,S210步骤中在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据的步骤之前,该界面样式异常检测方法还包括:

S200,获取待测试界面的原始控件树数据。

其中,原始控件树数据包括待测试界面中各控件的属性。

S201,根据各控件的属性更新测试信息。

上述步骤实现了获取待测试界面的原始控件树数据并根据该原始控件树数据更新测试信息的过程。

在本发明实施例中,为了实现更强大的自动化UI检测能力,上述过程可以具体通过对被测APP集成SDK,在运行时获取更丰富的控件属性(例如,控件的文本颜色、背景颜色、文本大小等信息)来实现。

可选地,在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据的具体过程可以通过下述步骤实现:

在图3的基础上,请参阅图4,图4示出了本发明实施例提供的一种界面样式异常检测方法的流程示意图之三,S210步骤中在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据的步骤,包括:

S211,在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的截图数据和控件树数据。

S212,对原始控件树数据进行扩充。

上述步骤实现了采集待测试界面的测试数据的过程,通过进一步对原始控件树数据进行扩充可以后续基于该原始控件树数据进行分析,以更有效发现待测试界面的样式异常。

可选地,对于能获取有效控件树的场景,可以仅对获取的待测试界面的原始控件树数据进行分析,以判断待测试界面的样式是否异常,上述具体过程可以通过下述步骤实现:

在图4的基础上,请参阅图5,图5示出了本发明实施例提供的界面样式异常检测方法的流程示意图之四,各控件的属性包括各控件的颜色、坐标和大小,该界面样式异常检测方法还包括:

S220a,对原始控件树数据中各控件的颜色、坐标和大小进行分析,以判断待测试界面的样式是否异常。

上述步骤实现了根据原始控件树数据来判断待测试界面的样式是否异常的过程。

在本发明实施例中,由于各控件的属性可以包括各控件的颜色、坐标和大小,因此,步骤S220a具体可以对原始控件树数据中各控件的颜色、坐标和大小进行分析,以判断待测试界面的样式是否异常,该方式可以不需要对待检测界面进行截图分析,仅通过分析原始控件树的相关数据就能发现待测试界面的一些样式异常问题。例如,上述方式可以发现待测试界面文本前景背景对比度低、文本重叠等界面样式异常问题。

基于上述方式,对于大部分能获取有效控件树的场景,无需繁重的图像处理和图像分类计算,仅分析原始控件树信息即可以发现界面样式异常,降低了界面样式异常检测成本。

可选地,对截图数据和控件树数据进行分析,以判断待测试界面的样式是否异常的具体过程可以通过下述步骤实现:

在图4的基础上,请参阅图6,图6示出了本发明实施例提供的界面样式异常检测方法的流程示意图之五,S220步骤中对截图数据和控件树数据进行分析,以判断待测试界面的样式是否异常的步骤,包括:

S221,对控件树数据进行结构分析,以判断待测试界面中各控件所处的位置,根据待测试界面中各控件所处的位置以及截图数据判断待测试界面的样式是否异常。

上述步骤实现了对截图数据和控件树数据进行分析,以判断待测试界面的样式是否异常的过程。

可选地,对控件树数据进行结构分析,以判断待测试界面中各控件所处的位置,根据待测试界面中各控件所处的位置以及截图数据判断待测试界面的样式是否异常的具体过程可以通过下述步骤实现:

在图6的基础上,请参阅图7,图7示出了本发明实施例提供的界面样式异常检测方法的流程示意图之六,控件树数据包括待测试界面的界面标题、各控件类型和各控件间的层级关系,S221步骤中对控件树数据进行结构分析,以判断待测试界面中各控件所处的位置,根据待测试界面中各控件所处的位置以及截图数据判断待测试界面的样式是否异常的步骤,包括:

S2211,对待测试界面的界面标题、各控件类型和各控件间的层级关系进行结构分析,以判断待测试界面中各控件所处的位置,根据待测试界面中各控件所处的位置以及截图数据判断待测试界面的样式是否异常。

上述步骤实现了对待测试界面的界面标题、各控件类型和各控件间的层级关系进行结构分析,以最终判断待测试界面的样式是否异常的过程。

可选地,通过对控件树数据进行结构分析,结合采集的截图数据进行分析后,还可以按业务场景对各控件进行唯一标识,该方式可以更有效地把最终发现的待测试界面的样式异常进行去重、归类和跟踪处理。基于此,上述过程可以具体描述如下:

在图7的基础上,请参阅图8,图8示出了本发明实施例提供的界面样式异常检测方法的流程示意图之七,S220步骤中对截图数据和控件树数据进行分析,以判断待测试界面的样式是否异常的步骤之后,该界面样式异常检测方法还包括:

S230,根据截图数据和控件树数据对待测试界面的各控件进行标识。

其中,各控件的标识不同。

上述步骤实现了根据业务场景对各控件进行唯一标识的过程。

在本发明实施例中,通过上述过程可以精确标识发现异常界面样式所属的控件,在后续对同一待测试界面继续进行检测时,可以减少重复问题、无效问题的干扰,同时可以进一步跟进有效问题的解决情况。

基于同一发明构思,本发明实施例还提供一种界面样式异常检测装置300,该界面样式异常检测装置300用以执行上述实施例中的各流程步骤,并实现相应的技术效果。

具体地,请参阅图9,该界面样式异常检测装置300应用于电子设备110,该界面样式异常检测装置300包括监听采集模块301和异常检测模块302。

其中,监听采集模块301用于在监听到待测试界面的操作事件的情况下,等待预设时间后采集待测试界面的测试数据,其中,测试数据包括待测试界面的截图数据和控件树数据。

异常检测模块302用于对截图数据和控件树数据进行分析,以判断待测试界面的样式是否异常。

基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器1102执行时实现上述实施例中提供的一种界面样式异常检测方法。

其中,前述计算机程序运行时执行的各步骤,在此不再一一赘述,可参考前文对所述一种界面样式异常检测方法的解释说明。

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

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120116561340