CN110337641A - 使用屏幕截图元数据确定应用测试结果 - Google Patents

使用屏幕截图元数据确定应用测试结果 Download PDF

Info

Publication number
CN110337641A
CN110337641A CN201780086479.7A CN201780086479A CN110337641A CN 110337641 A CN110337641 A CN 110337641A CN 201780086479 A CN201780086479 A CN 201780086479A CN 110337641 A CN110337641 A CN 110337641A
Authority
CN
China
Prior art keywords
screenshot capture
screenshot
cluster
instruction
capture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780086479.7A
Other languages
English (en)
Other versions
CN110337641B (zh
Inventor
克里斯蒂娜·埃琳娜·布杜雷安
理查德·迈克尔·盖伍德
弗格斯·杰勒德·赫尔利
约翰尼斯·托诺洛
迪诺·德雷克·休斯
菲利普·詹姆斯·亚当斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN110337641A publication Critical patent/CN110337641A/zh
Application granted granted Critical
Publication of CN110337641B publication Critical patent/CN110337641B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management

Abstract

系统生成由测试应用的目标设备显示的应用的图形用户界面(GUI)的屏幕截图。每一个屏幕截图包括GUI的图像和指示存在于图像中的GUI的元素或在生成图像时的应用或目标设备的状态的元数据。系统基于来自第一屏幕截图集合的屏幕截图的元数据和来自第二屏幕截图集合的屏幕截图的元数据来确定屏幕截图是否相似,并且如果是,则系统将来自第二屏幕截图集合的屏幕截图指派至包括来自第一屏幕截图集合的屏幕截图的聚类。系统输出对指示屏幕截图之间的相似度或差异的聚类的指示(例如,通知或图形指示)。

Description

使用屏幕截图元数据确定应用测试结果
背景技术
在向终端用户发布应用之前,软件开发者或设计者可以测试应用以了解应用在由目标设备提供的执行环境中执行时将如何显现和运行。一些这样的软件测试可以涉及使用测试系统在由各种不同目标设备提供的各种不同执行环境中运用应用。也就是说,测试系统可以生成对应用的输入,所述输入模拟可以由用户提供的输入(例如手势输入、文本输入或其他输入)。测试系统可以使用闪存有或以其他方式加载有测试器定义的软件和/或固件配置的实际生产设备,从而能够跨可由不同终端用户使用的大范围设备和设备配置来测试应用。
作为测试结果,测试系统可以输出在应用测试期间应用导致的在目标设备上显示的图形用户界面(GUI)的屏幕截图。测试系统可以针对运用应用的每个执行环境输出屏幕截图集合并且每一个屏幕截图集合可以具有大量图像。软件开发者或设计者可以跨不同集合分析屏幕截图以识别问题、异常或以其他方式了解GUI的外观可能如何根据执行环境和/或显示GUI的目标设备的变化而改变。一些软件开发者或设计者可能会承担过多的人工筛选多个屏幕截图集合以验证应用的设计和操作的任务。
发明内容
本公开的技术总体上涉及使应用测试系统能够识别和聚类在应用的自动测试期间生成的相似的屏幕截图,即使应用测试系统跨大范围的不同目标设备和/或在各种不同执行环境中执行自动测试。本公开提供了一种能够有效且高效地执行图像的复杂聚类的测试系统和相关联的方法,从而减少处理时间和功耗并提供可靠的、反应灵敏的测试系统。本公开使得能够实现这种聚类的结果的快速且有效的输出,从而允许对大范围和大量不同目标设备的有效的、自动的测试,所述大范围和大量不同目标设备可以是测试场(test farm)的一部分。确定屏幕截图是否是相似的可以包括评估相似度函数以确定指示屏幕截图之间的相似度的量的相似度分值并且确定相似度分值高于、低于或等于预定阈值。应用测试系统可以基于相似度的某些结构阈值对相似的屏幕截图进行分组,而不是根据特定图像特征对屏幕截图进行分组。也就是说,应用测试系统使用与屏幕截图相关联的元数据而不是分析屏幕截图的图像数据来对相似的屏幕进行聚类或分组。
在对应用的自动测试期间生成的屏幕截图可以包括在自动测试期间,在目标设备执行应用时,正在目标设备的显示屏幕上显示的应用图形用户界面(GUI)的图像(例如,像素信息)。屏幕截图可以还包括指示构成图像中的GUI的结构元素的元数据。元数据可以定义在生成屏幕截图时在目标设备的显示屏幕上并且在GUI中可见的一个或多个GUI元素(例如布局、按钮、背景、抽屉或侧边栏或GUI的另一组件)以及对应的元素特性。另外或替换地,元数据可以定义在生成屏幕截图时的目标设备的状态(例如,设备类型、方向、本地环境、时间、测试执行以及目标设备或应用的任何其他参数或特性)。元数据还可以包括针对在特定屏幕截图被拍摄时存在于设备屏幕上的每一个GUI元素的元素标识符。针对每一个GUI元素的元素标识符可以基于类名、资源标识符以及与该特定GUI元素相关联的序列。可以通过将序列中的每个层与相应的资源id和类名进行映射来创建元素标识符,从而产生以使得聚类模块能够跨设备配置比较GUI元素的方式来识别GUI元素的更特定的方式。
为了减轻否则必须筛选从应用测试生成的多个屏幕截图集合以验证应用的设计和操作的负担,示例测试系统可以自动地将来自不同集合的屏幕截图分组为相似的屏幕截图的聚类。聚类可以包括共享由屏幕截图的元数据所定义的相似的元素结构的屏幕截图,而不是必须共享共同的图像特征。换句话说,聚类可以包括GUI的屏幕截图,所述GUI由在屏幕截图的元数据中的特定的元素结构定义,即使(在已经在不同的执行环境中或从不同目标设备的显示屏幕中捕获之后)GUI元素中的一些在该聚类中的全部屏幕截图中可能不是共同的。应用测试系统可以输出对聚类的图形指示(例如,经由应用测试GUI),应用测试系统的用户可以通过所述图形指示更容易和快速地评估应用的性能。示例测试系统的用户可以关注特定聚类中的屏幕截图以了解GUI的外观如何根据执行环境和/或显示GUI的目标设备的变化而变化。
通过根据屏幕截图的元数据中定义的元素结构进行聚类,而不是根据图像特征(例如像素信息)进行聚类,即使由于在执行环境和/或目标设备特性中的可变性导致屏幕截图不完全相同,应用测试系统也能够快速且有效地识别看起来相似的屏幕截图。例如,对于执行基于像素的图像特征分析的一些其他系统看似不可能的,应用测试系统可能能够仅使用元数据来识别两个或更多个相似的屏幕截图:从不同尺寸的屏幕(例如,移动电话相比平板计算设备)取得的、从不同执行环境(例如,不同的操作系统、相同操作系统的不同版本等)取得的,包括不同地对准的GUI元素的(例如,由于区域和/或语言差异)、具有不同的随机内容的(例如,不同背景图像、不同广告等),具有不同的文本的(例如,显示不同的时间或日历日期、不同语言等)、具有不同长度的列表的等。
因此,示例应用测试系统可能能够快速并且有效地执行对相似的但不一定完全相同的GUI屏幕截图的复杂聚类,从而在执行自动测试之后帮助应用测试系统的用户更快速并且更容易地验证应用的设计和操作。使用传统的专注于识别相似的图像特征而不是识别相似的元素结构的图像分析技术,如果不是不可能的话,以这种方式对屏幕截图进行聚类可能是困难的。
在一个示例中,本公开涉及一种方法,所述方法包括:响应于应用的第一测试,在第一测试期间,在所述应用的图形用户界面由第一目标设备显示的同时,生成所述图形用户界面的第一屏幕截图集合;以及响应于应用的第二测试,在第二测试期间,在所述图形用户界面由第二目标设备显示的同时,生成所述图形用户界面的第二屏幕截图集合。来自第一屏幕截图集合的每一个屏幕截图和来自第二屏幕截图集合的每一个屏幕截图包括图形用户界面的相应图像和相应元数据,相应元数据指示以下中的至少一个:存在于相应图像中的图形用户界面的一个或多个元素或在生成相应图像时的应用或相应目标设备的状态。所述方法进一步包括:基于来自所述第一屏幕截图集合的屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的屏幕截图的所述相应元数据,确定来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图是否是相似的,以及响应于确定所述第一屏幕截图集合与来自所述第二屏幕截图集合的所述屏幕截图是相似的:将来自所述第二屏幕截图集合的所述屏幕截图指派至包括来自所述第一屏幕截图集合的所述屏幕截图的聚类,以及输出对包括来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像的一部分的所述聚类的图形指示以用于显示。
在一个示例中,本公开涉及一种系统,该系统包括用于响应于应用的第一测试在第一测试期间在所述应用的图形用户界面由第一目标设备显示的同时生成所述图形用户界面的第一屏幕截图集合的装置以及用于响应于应用的第二测试在第二测试期间在所述图形用户界面由第二目标设备显示的同时生成所述图形用户界面的第二屏幕截图集合的装置。来自第一屏幕截图集合的每一个屏幕截图和来自第二屏幕截图集合的每一个屏幕截图包括图形用户界面的相应图像和相应元数据,相应元数据指示以下中的至少一个:在相应图像中存在的图形用户界面的一个或多个元素或在生成相应图像时的应用或相应目标设备的状态。所述系统进一步包括:用于基于来自所述第一屏幕截图集合的屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的屏幕截图的所述相应元数据确定来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图是否是相似的装置,以及响应于确定所述第一屏幕截图集合与来自所述第二屏幕截图集合的所述屏幕截图是相似的:将来自所述第二屏幕截图集合的所述屏幕截图指派至包括来自所述第一屏幕截图集合的所述屏幕截图的聚类的装置,以及用于输出对包括来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像的一部分的所述聚类的图形指示以用于显示的装置。
在一个示例中,本公开涉及一种包括至少一个处理器的计算系统,所述至少一个处理器被配置为:接收用于测试应用的请求;响应于在请求之后的应用的第一测试,在第一测试期间,在所述应用的图形用户界面由第一目标设备显示的同时,生成所述图形用户界面的第一屏幕截图集合;以及响应于在请求之后的应用的第二测试,在第二测试期间,在所述图形用户界面由第二目标设备显示的同时,生成所述图形用户界面的第二屏幕截图集合。来自第一屏幕截图集合的每一个屏幕截图和来自第二屏幕截图集合的每一个屏幕截图包括图形用户界面的相应图像和相应元数据,相应元数据指示以下中的至少一个:在相应图像中存在的图形用户界面的一个或多个元素或在生成相应图像时的应用或相应目标设备的状态。所述至少一个处理器进一步被配置为:基于来自所述第一屏幕截图集合的屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的屏幕截图的所述相应元数据,确定来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图是否是相似的,以及响应于确定所述第一屏幕截图集合与来自所述第二屏幕截图集合的所述屏幕截图是相似的:将来自所述第二屏幕截图集合的所述屏幕截图指派至包括来自所述第一屏幕截图集合的所述屏幕截图的聚类,以及输出对包括来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像的一部分的所述聚类的图形指示以用于显示。
在一个示例中,本公开涉及一种包括指令的计算机可读存储介质,所述指令在被执行时,使计算系统的至少一个处理器:响应于应用的第一测试,在第一测试期间,在所述应用的图形用户界面由第一目标设备显示的同时,生成所述图形用户界面的第一屏幕截图集合;以及响应于应用的第二测试,在第二测试期间,在所述图形用户界面由第二目标设备显示的同时,生成所述图形用户界面的第二屏幕截图集合。来自第一屏幕截图集合的每一个屏幕截图和来自第二屏幕截图集合的每一个屏幕截图包括图形用户界面的相应图像和相应元数据,相应元数据指示以下中的至少一个:在相应图像中存在的图形用户界面的一个或多个元素或在生成相应图像时的应用或相应目标设备的状态。所述指令在被执行时,进一步使至少一个处理器:基于来自所述第一屏幕截图集合的屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的屏幕截图的所述相应元数据,确定指示来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图是否是相似的,以及响应于确定所述第一屏幕截图集合与来自所述第二屏幕截图集合的所述屏幕截图是相似的:将来自所述第二屏幕截图集合的所述屏幕截图指派至包括来自所述第一屏幕截图集合的所述屏幕截图的聚类,以及输出对包括来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像的一部分的所述聚类的图形指示以用于显示。
在附图和以下描述中阐述了一个或多个示例的细节。根据说明书和附图以及根据权利要求,本公开的其他特征、目的和优点将是显而易见的。
附图说明
图1是示出根据本公开的一个或多个方面的被配置为识别和聚类在应用测试期间生成的相似屏幕截图的示例计算系统的概念图。
图2是示出根据本公开的一个或多个方面的被配置为识别和聚类在应用测试期间生成的相似屏幕截图的示例计算系统的框图。
图3是示出根据本公开的一个或多个方面的由被配置为识别和聚类在应用测试期间生成的相似屏幕截图的示例计算系统执行的示例操作的流程图。
具体实施方式
图1是示出根据本公开的一个或多个方面的被配置为识别和聚类在应用测试期间生成的相似的屏幕截图的示例计算系统的概念图。系统100包括经由网络130与计算设备110进行通信的应用测试系统(“ATS”)160。虽然被示出为是单独的设备或计算系统,但是ATS 160和计算设备110可以是执行归属于系统100的操作的单个计算系统。ATS 160包括开发者服务模块162、屏幕截图164和一个或多个目标设备166A-166N(统称“测试目标设备166”)。计算设备110包括用户界面组件(“UIC”)112和开发者客户端模块120。
网络130表示用于在计算系统、服务器和计算设备之间传输数据的任何公共或专用通信网络,例如,蜂窝、Wi-Fi和/或其他类型的网络。网络130可以包括一个或多个网络集线器、网络交换机、网络路由器或任何其他可操作地相互耦合的网络设备,从而提供ATS160与计算设备110之间的信息交换。ATS 160和计算设备110可以使用任何合适的通信技术在网络130上传输和接收数据。
ATS 160和计算设备110均可以使用相应的网络链路被可操作地耦合到网络130。将ATS 160和计算设备110耦合到网络130的链路可以是以太网、ATM或其他类型的网络连接并且这种连接可以是无线连接和/或有线连接。
ATS 160表示作为应用测试服务的一部分的能够经由网络130交换信息的一个或多个任何合适的计算系统(例如,一个或多个台式计算机、一个或多个膝上型计算机、一个或多个大型机、一个或多个服务器、一个或多个云计算系统或一个或多个其他类型的远程计算系统)。也就是说,ATS 160可以经由网络130接收应用包(例如,应用包122)并且在由各种不同的诸如目标设备166的目标设备提供的各种不同的执行环境中运用应用包。ATS 160可以在测试期间和/或响应于测试而生成诸如屏幕截图164的屏幕截图并经由网络130将屏幕截图输出为测试结果(例如,测试结果168)。
应用包122表示被配置为在操作系统的应用层操作的机器可读的、可执行的代码。处理器可以执行应用包122。例如,ATS 160可以使目标设备166在测试期间执行应用包122。在测试期间,目标设备166可以显示由应用包122定义的GUI,并且在应用包122在目标设备166处执行的同时,GUI可以响应于由ATS 160提供至应用包122的输入而改变。
目标设备166表示虚拟的和物理的生产设备的组合,所述生产设备闪存有或以其他方式配置为执行测试器定义的软件和/或固件配置,从而使得ATS 160能够跨由不同终端用户使用的大范围的设备和设备配置执行对应用包的测试。目标设备166的示例包括移动电话、平板计算机、膝上型计算机、台式计算机、服务器、大型机、电视、可穿戴设备(例如,计算机化手表等)、家庭自动化设备、助理设备、游戏系统、媒体播放器、电子书阅读器、移动电视平台、汽车导航或信息娱乐系统或被配置为执行正在由ATS 160测试的应用包和显示正在由ATS 160测试的应用包的GUI的任何其他类型的移动、非移动、可穿戴和非可穿戴的计算设备。
开发者服务模块162可以提供ATS 160与访问由ATS 160提供的服务的诸如计算设备110的客户端设备之间的接口。开发者服务模块162被配置为接收用于测试的应用包,作为进行测试的一部分使目标设备166执行应用包并且经由网络130封装和输出测试的结果。模块162可以使用存在于ATS 160中和/或在ATS 160处执行的软件、硬件、固件或硬件、软件和固件的混合来执行本文描述的操作。ATS 160可以作为在底层硬件上执行的虚拟机、作为操作系统或计算平台的一个或多个服务和/或作为在ATS 160的计算平台的应用层处的一个或多个可执行程序来使用多个处理器或多个设备执行模块162。
计算设备110表示能够经由网络130交换信息以访问由ATS 160提供的应用测试服务的任何合适的计算设备或系统(例如,一个或多个台式计算机、一个或多个膝上型计算机、移动设备或任何其他类型的计算设备)。也就是说,计算设备110可以是软件开发者或设计者工作站,所述软件开发者或设计者工作站被配置为经由网络130将应用包(例如,应用包122)发送至ATS 160并且请求ATS 160在由各种不同的诸如目标设备166的目标设备提供的各种不同的执行环境中执行应用包。计算设备110还可以被配置为经由网络130从ATS160接收由ATS 160在应用测试期间或响应于应用测试而生成的测试结果,诸如测试结果168和屏幕截图164。
开发者客户端模块120可以提供计算设备110与ATS 160之间的接口。例如,开发者客户端模块120可以是在计算设备110处执行的独立应用和/或在计算设备110处执行的互联网浏览器内执行(例如,作为互联网应用)并且向ATS 160发送信息以及从ATS 160接收信息。开发者客户端模块120被配置为经由网络130向ATS 160发送将要被测试的应用包(例如,应用包122)并且经由网络130从ATS 160接收测试的结果(例如,测试结果168)。模块120可以使用存在于计算设备110中和/或在计算设备110处执行的软件、硬件、固件或硬件、软件和固件的混合来执行本文描述的操作。计算设备110可以作为在底层硬件上执行的虚拟机、作为操作系统或计算平台的一个或多个服务和/或作为在计算设备110的计算平台的应用层处的一个或多个可执行程序来使用多个处理器或多个设备执行模块162。
计算设备110的UIC 112可以用作计算设备110的输入和/或输出设备。可以使用各种技术来实现UIC 112。例如,UIC 112可以用作使用存在敏感输入屏幕、麦克风技术、红外传感器技术或其他输入设备技术的输入设备以在接收用户输入中使用。UIC 112可以用作被配置为使用任何一个或多个显示设备、扬声器技术、触觉反馈技术或其他输出设备技术向用户呈现输出的输出设备以在向用户输出信息中使用。
开发者客户端模块120可以使UIC 112输出与由ATS 160提供的应用测试服务相关联的GUI。例如,如图1所示,开发者客户端模块120可以向UIC 112发送指令,所述指令使UIC112在UIC 112的显示屏幕上显示GUI 114。GUI 114包括对屏幕截图聚类116-116N(统称“聚类116”)的图形指示。
对屏幕截图聚类116的图形指示中的每一个包括该聚类中包括的一个或多个屏幕截图图像中的至少一部分。例如,屏幕截图聚类116A包括图像117A、117B和117C中的至少一部分。屏幕截图聚类116B包括图像117D和117E中的至少一部分。并且屏幕截图聚类116N包括图像117N中的至少一部分。
如下面更详地细描述的,聚类116中的每一个包括具有如一个或多个屏幕截图164的元数据所定义的相似的元素结构的一个或多个屏幕截图164。以这种方式,聚类116中的每一个的屏幕截图164可以与在应用测试的特定部分期间正在被测试的应用的共同特征有关。每一个聚类116中的屏幕截图164可以在执行应用测试期间,在不同的目标设备166处或在不同的执行环境(例如,在单个的目标设备中的一个处,但是针对测试的每一个部分使用不同软件、硬件或固件配置)中拍摄。换句话说,即使屏幕截图164中的每一个可以包括不同的图像特征,但是聚类116可以包括共享相似的GUI元素的屏幕截图164,这些不同的图像特征已经在不同的执行环境中被捕获或来自目标设备166中的不同的一个的显示屏幕。
在操作中,计算设备110的用户(例如,应用包122的软件开发者或设计者)可能希望了解与应用包122相关联的GUI在被显示在由各种不同目标设备提供的各种不同执行环境中时如何显现并运行。用户可以在显示GUI 114的UIC的位置处或附近的UIC 112的存在敏感屏幕处提供输入。UIC 112可以向开发者客户端模块120提供关于输入的信息,并且开发者客户端模块120可以响应于关于输入的信息而利用由ATS 160提供的测试服务来启动应用包122的测试。
开发者客户端模块120可以经由网络130向ATS 160发送对应用包122的指示(例如,包括应用包122的实际数据或存储包括应用包的数据的计算设备110的存储器中的位置)以及使应用包122被测试的请求。请求可以指定测试的要求,包括但不限于:在测试中使用的设备的类型(例如,硬件、软件和固件配置)、测试的持续时间、测试的复杂性、特定的基准或测试协议或任何和全部其他测试要求。
ATS 160的开发者服务模块162可以接收对应用包122的指示和请求。响应于该请求,开发者服务模块162可以配置目标设备166以根据由该请求指定的要求来执行对应用包122的测试。
开发者服务模块162可以使测试目标设备166执行对应用包122的测试。在测试期间,开发者服务模块162可以拍摄并存储由正在执行测试的目标设备166中的每一个显示的应用包122的GUI的屏幕截图164。例如,开发者服务模块162可以在测试期间在目标设备166A显示GUI的同时,向目标设备166A提供输入,该输入使得目标设备166A记录并存储应用包122的GUI的第一屏幕截图集合作为一个或多个屏幕截图164,开发者服务模块162可以在测试期间在目标设备166N显示GUI的同时,向目标设备166N提供输入,该输入使得目标设备166N记录并存储应用包122的GUI的第二屏幕截图集合作为一个或多个屏幕截图164等等。
存储在ATS 160处的屏幕截图164中的每一个可以包括在来自目标设备166中的该特定目标设备在自动测试期间执行应用的同时在目标设备166中的一个的显示屏幕上显示的GUI的图像(例如,像素信息),并且还包括指示存在于图像中的GUI中的一个或多个元素(例如,布局、按钮、背景、抽屉或侧边栏或GUI的另一组件)以及GUI中的一个或多个元素的特性的元数据(例如,非像素信息)。另外地或替换地,元数据可以定义在做出屏幕截图164时的目标设备166的状态(例如,设备类型、方向、本地环境、时间、测试执行以及目标设备或应用的任何其他参数或特性)。例如,屏幕截图164中的一个的元数据可以包括关于GUI的图形按钮的信息以及关于图形按钮的尺寸、定位、位置、颜色、标签或其他信息。在一些示例中,屏幕截图164中的一个的元数据可以包括关于屏幕方向、尺寸、应用状态的信息或在该做出特定屏幕截图164时关于目标设备或应用的其他信息。
为了减轻否则必须筛选从已经跨大范围的不同目标设备166和/或在各种不同执行环境中执行的单个自动测试生成的多个屏幕截图164集合的负担,ATS 160可以在与开发者客户端模块120共享测试结果168之前将屏幕截图164自动分组为聚类116。ATS 160可以识别在应用包122的测试期间拍摄的具有GUI的图像的屏幕截图164,所述GUI的图像具有相似的元素结构但不必需具有相似的图像特征。不是对屏幕截图164中的每一个的原始图像(例如,像素信息)执行计算密集型图像分析技术以识别相似的屏幕截图,而是ATS 160可以遍历屏幕截图164中的每一个的屏幕截图元数据(即,非像素数据)以识别共享共同的GUI特征的屏幕截图164。
开发者服务模块162可以基于来自由目标设备166A拍摄的第一屏幕截图164集合的第一屏幕截图的元数据和来自由目标设备166N拍摄的第二屏幕截图164集合的每一个屏幕截图的元数据来确定来自由目标设备166N拍摄的第二屏幕截图164集合的与来自由目标设备166A拍摄的第一屏幕截图之间共享相似度分值的第二屏幕截图,该相似度分值大于由目标设备166A拍摄的第一屏幕截图与来自由目标设备166N拍摄的第二屏幕截图集合的任何其他屏幕截图之间共享的相似度分值。换句话说,开发者服务模块162可以确定由目标设备166A拍摄的屏幕截图164的元数据与由目标设备166N拍摄的屏幕截图164的元数据之间的相似度分值。如果由目标设备166A拍摄的屏幕截图164中的特定屏幕截图与由目标设备166N拍摄的屏幕截图164中的任一个屏幕截图之间的最高相似度分值满足分值阈值,则开发者服务模块162可以将与最高相似度分值相关联的屏幕截图164中的两个屏幕截图聚类。然而,如果由目标设备166A拍摄的屏幕截图164中的一个屏幕截图与由目标设备166N拍摄的屏幕截图164中的任一个屏幕截图之间的最高相似度分值不满足分值阈值,则开发者服务模块162可以针对由目标设备166A拍摄的屏幕截图164中的该特定一个屏幕截图创建新聚类。
由开发者服务模块162遍历的屏幕截图元数据可以被组织为树结构或其他类型的层次数据结构,使得开发者服务模块162能够快速比较两个或更多个屏幕截图164之间的元数据以确定如果有的话有什么差异。例如,使用树比较技术,开发者服务模块162可以确定两个屏幕截图164的元数据是否是同构的,如果不是,两个元数据树结构之间的差异是什么。开发者服务模块162可以确定在两个屏幕截图164的元数据之间未共享的附加元素所占据的屏幕截图的百分比。如果附加元素所占据的屏幕区域的百分比小于区域阈值,则开发者服务模块162可以将相似度函数应用于两个屏幕截图164的元数据并返回相似度分值。否则,两个屏幕截图164可以确定两个屏幕不兼容并且因此不值得费心相似度分值。
开发者服务模块162可以确定相似度分值是否满足相似度阈值。例如,开发者服务模块162可以确定与在由测试目标设备166N拍摄的全部屏幕截图164之外的由测试目标设备166A拍摄的屏幕截图最相似的由测试目标设备166N拍摄的屏幕截图164中的特定一个屏幕截图是足够相似的以使开发者服务模块162将这两个屏幕截图164聚类。响应于确定相似度分值满足相似度阈值,开发者服务模块162可以将第二屏幕截图指派至包括第一屏幕截图的聚类。并且响应于确定相似度分值不满足相似度阈值,开发者服务模块162可以创建包括第二屏幕截图的新聚类。
开发者服务模块162可以使用其他聚类技术来聚类由不同测试目标设备166拍摄的相似的屏幕截图。例如,开发者服务模块162可以将汉明距离技术应用于与由测试目标设备166A和测试目标设备166N拍摄的屏幕截图相关联的元数据。开发者服务模块162可以确定与由测试目标设备166A和166N拍摄的屏幕截图相关联的两个元数据集合之间的汉明距离并确定相似的屏幕截图是屏幕截图之间具有最小汉明距离的屏幕截图。也可以使用其他聚类技术。简而言之,开发者服务模块162从屏幕截图164取得元数据作为输入并将聚类技术应用于元数据以生成在不同目标测试设备166之间拍摄的屏幕截图164的聚类或分组作为输出。
开发者服务模块162可以在测试结束时与开发者客户端模块120共享测试结果168。测试结果168可以包括关于屏幕截图164和聚类116的信息。
开发者客户端模块120可以响应于接收到测试结果168而使UIC112输出GUI 114。也就是说,开发者客户端模块120可以使UIC 112输出,用于显示对包括在聚类116中包括的屏幕截图164的一个或多个图像的一部分的该聚类116的图形指示。例如,开发者客户端模块120可以使UIC 112显示对包括图像117A、117B和117C的至少一部分的屏幕截图聚类116A的图形指示、对包括图像117D和117E的至少一部分的屏幕截图聚类116B的图形指示和对包括图像117N的至少一部分的屏幕截图聚类116N的图形指示。
以这种方式,根据所描述的技术操作的应用测试系统可以(例如经由应用测试GUI)输出对聚类的图形指示,软件开发者、设计者或应用测试系统的其他用户可以根据所述图形指示更容易和快速地评估在应用在不同的执行环境和/或不同的目标设备上执行时应用GUI的外观如何变化。
通过分析元数据,而不是分析屏幕截图的图像特征或像素信息,即使由于执行环境和/或目标设备特性的可变性导致屏幕截图不是完全相同的,应用测试系统也能够识别看起来相似的屏幕截图。例如,对于执行原始或基于像素的图像分析的一些其他系统可能看似是不可能的任务,应用测试系统可能能够仅使用元数据来识别两个或更多个相似的屏幕截图,所述屏幕截图是:从不同尺寸的屏幕(例如,移动电话相比平板计算设备)取得的、从不同的执行环境(例如,不同的操作系统、相同操作系统的不同版本等)取得的、(例如,由于区域和/或语言差异)包括不同地对准的GUI元素的、具有不同的随机内容的(例如,不同的背景图像、不同的广告等)、具有不同的文本的(例如,显示不同的时间或日历日期、不同的语言等)、具有不同长度的列表的等。因此,示例应用测试系统不仅能够聚类或以其他方式分组从自动应用测试中拍摄的屏幕截图,即使在这种聚类使用传统图像分析技术是非常困难的情况下,示例应用测试系统可能还能够快速并且有效地对屏幕截图进行聚类,从而帮助应用测试系统的用户在进行自动测试后更快速、更容易地验证应用的设计和操作。
图2是示出根据本公开的一个或多个方面的被配置为识别和聚类在应用测试期间所生成的相似的屏幕截图的示例计算系统的框图。下面将图2的应用测试系统(ATS)260描述为图1的ATS 160的示例。图2仅示出了ATS 260的一个特定示例并且ATS 260的许多其他示例可以在其他实例中使用并且可以包括示例ATS 260中包括的组件的子集或者可以包括图2中未示出的附加组件。
如图2的示例中所示,ATS 260包括一个或多个处理器270、一个或多个通信单元272、一个或多个目标设备266A-266N(统称“目标设备266”)和经由通信信道274通信地耦合的一个或多个存储组件276。存储组件276包括应用包222、开发者服务模块262和测试结果268。开发者服务模块262包括UI模块280、测试模块282和聚类模块284。聚类模块284包括聚类290。测试结果268包括屏幕截图264。屏幕截图264包括图像数据286和元数据288。
通信信道274可以(物理地、通信地和/或可操作地)互连组件266、270、272和276中的每一个以进行组件间通信。在一些示例中,通信信道274可以包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其他方法。
ATS 260的一个或多个通信单元272可以经由一个或多个有线和/或无线网络通过在一个或多个网络上传输和/或接收网络信号来与外部设备通信。通信单元272的示例包括网络接口卡(例如,诸如以太网卡)、光学收发器、射频收发器、GPS接收器或可以发送和/或接收信息的任何其他类型的设备。通信单元272的其他示例可以包括短波无线电、蜂窝数据无线电、无线网络无线电以及通用串行总线(USB)控制器。
ATS 260内的一个或多个存储组件276可以存储信息以在ATS 260的操作期间进行处理(例如,在ATS 260处在执行期间,ATS 260可以存储由模块270、274、276和278和数据存储272和273访问的数据)。在一些示例中,存储组件276是临时存储器,这意味着存储组件276的主要目的不是长期存储。ATS 260上的存储组件276可以被配置为易失性存储器以用于信息的短期存储并且因此如果关机,不保留所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和本领域中已知的其他形式的易失性存储器。
在一些示例中,存储组件276还包括一个或多个计算机可读存储介质。在一些示例中,存储组件276包括一个或多个非暂时性计算机可读存储介质。存储组件276可以被配置为存储比通常由易失性存储器所存储的信息量更大的信息量。存储组件276还可以被配置为非易失性存储空间以用于信息的长期存储并且在开机/关机循环之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。存储组件276可以存储与模块262、280、282和284相关联的程序指令和/或信息(例如,数据)、测试结果268和应用包222。存储组件276可以包括被配置为存储与模块262、280、282和284相关联的数据或其他信息、测试结果268和应用包222的存储器。
一个或多个处理器270可以实现功能和/或执行与ATS 260相关联的指令。处理器270的示例包括应用处理器、显示控制器、图形处理器、辅助处理器、一个或多个传感器集线器和配置为用作处理器、处理单元或处理设备的任何其他硬件。模块262、280、282和284可由处理器270操作以执行ATS 260的各种动作、操作或功能。例如,ATS 260的处理器270可以检索并执行由存储组件276存储的指令,所述指令使处理器270执行操作模块262、280、282和284。指令在由处理器270执行时,可以使ATS 260在存储组件276内存储信息。
目标设备266可以与图1的目标设备166相似。目标设备266可以是ATS 260的物理上的一部分或者可以被可操作地耦合到ATS 260,但在物理上与ATS 260分开。目标设备266可以包括测试设备的“测试场(test farm)”。
开发者服务模块262可以包括图1的ATS 160的开发者服务模块162和图1的计算设备110的客户服务模块120的全部功能并且可以执行与模块162和120相似的操作以提供使用来自从测试生成的屏幕截图的元数据自动地聚类屏幕截图的应用测试服务。也就是说,开发者服务模块262可以在各种目标设备266处执行对应用包222的测试,将测试的结果存储为包括在测试期间拍摄的屏幕截图264的测试结果268并且还可以基于对屏幕截图264中的每一个的元数据的分析来聚类屏幕截图264。
UI模块280可以提供与由开发者服务模块262提供的应用测试服务相关联的用户界面。例如,UI模块280可以托管web接口,诸如计算设备110的客户端可以从所述web接口通过在计算设备110处执行或从计算设备110可用的web浏览器或其他应用(例如,开发者客户端模块120)访问由开发者服务模块262提供的服务。UI模块280可以向客户端发送使客户端显示诸如图1的GUI 114的用户界面的信息,所述用户界面包括对在测试期间生成的屏幕截图264的聚类的图形指示。
测试模块282可以配置并使目标设备266执行应用测试。也就是说,测试模块282可以解释由UI模块280接收到的用于启动应用测试的请求。测试模块282可以接收指定测试的要求的这种请求。测试模块282可以基于测试的要求来配置目标设备266中的一些或全部以执行测试。例如,测试模块282可以配置目标设备266中的每一个的软件、硬件和/或固件,使得所述软件、硬件和/或固件在被执行时满足测试的要求。
测试模块282可以使目标设备闪存有由请求指定的特定软件和固件负载。测试模块282可以安装并使目标设备266执行与请求一起接收的应用包,诸如应用包222。在测试期间,测试模块282可以向目标设备266提供输入,该输入使目标设备拍摄并在存储组件276处存储由正在执行测试的目标设备266中的每一个显示的应用包的GUI的屏幕截图264。测试模块282可以使被存储为屏幕截图264的每一个屏幕截图包括图像数据286和元数据288两者。测试模块282可以使目标设备266在测试期间生成屏幕截图264的多个集合,其中屏幕截图264的每一个集合记录针对在自动测试期间执行应用的特定执行环境和/或特定目标设备266的应用GUI的外观。
图像数据286表示在自动测试期间在目标设备266中的一个执行应用的同时在该目标设备的显示屏幕上显示的应用GUI的图像(例如,像素信息)。元数据288表示指示构成图像数据286中的GUI的结构元素的信息。元数据288可以定义在做出屏幕截图时在目标设备266中的一个的显示屏幕上和GUI中可见的一个或多个GUI元素(例如,布局、按钮、背景、抽屉或侧边栏或者GUI的其他组件)以及对应的元素特性。
元数据288可以包括屏幕标识符,所述屏幕标识符指示与设备配置标识符(例如,设备名称、操作系统版本、本地环境等)并置的设备类型标识符。元数据288还可以包括在特定屏幕截图264被拍摄时的针对存在于设备屏幕上的每一个GUI元素的元素标识符。针对每一个GUI元素的元素标识符可以是基于类名、资源标识符和与该特定GUI元素相关联的序列。可以通过将序列中的每个层与对应的资源id和类名映射来创建元素标识符,从而产生以使得聚类模块284能够跨设备配置比较GUI元素的方式来识别GUI元素的更具体方式。
在UI模块280与访问由ATS 260提供的应用测试服务的用户或客户端设备共享测试结果268之前,聚类模块284可以自动将屏幕截图264分组为聚类。通过对屏幕截图264进行聚类,聚类模块284可以改进应用测试服务的可用性,使得能够实现浏览或排序聚类的有限集合,与必需浏览或分类从已跨大范围的不同目标设备266和/或各种不同执行环境执行的单个自动测试生成大量的单独的屏幕截图264相反。
聚类模块284可以基于元数据288来识别在对诸如应用包222的应用包的测试期间拍摄的具有GUI图像的屏幕截图264的集合,所述GUI图像具有相似的元素结构但是不必需具有相似的图像特征。例如,聚类模块284可以比较存在于不同屏幕截图264的元数据288中的屏幕和元素标识符以确定屏幕截图264中的任何一个的相应的元素标识符是否相似。
聚类模块284可以接收屏幕截图264作为输入并输出聚类模块284将其存储为聚类290的聚类列表。针对被存储为聚类290中的一个的每一个聚类,聚类模块284可以包括被指派至该特定聚类的一个或多个屏幕截图264。聚类290中的聚类的第一层可以包括对表示该聚类的屏幕截图264中的特定一个的指示(例如,指针)。聚类290中的聚类的第二层可以包括对在测试中使用的每个不同目标设备266和/或每个不同设备配置的屏幕截图264中的特定一个的指示。聚类290中的聚类的第三层可以包括对该聚类中包括的屏幕截图264中的每一个的指示。
聚类模块284可以从聚类290的空集开始递增地创建聚类290。屏幕截图264中的每一个可以与聚类290中的现存的一个聚类匹配或者聚类模块284可以在聚类290内针对屏幕截图264中的不匹配的一个屏幕截图创建新聚类。聚类模块284可以确定用于屏幕截图264中的每一个的相似度分值和被存储在聚类290处的每一个现存的聚类。只要最高相似度分值满足高于最小得分阈值,聚类模块284可以将每一个屏幕截图添加至聚类290中的与该屏幕截图共享最高相似度分值的一个聚类。如果最高相似度分值不满足最小得分阈值,则聚类模块284可将该屏幕截图视为不匹配的屏幕截图并创建在聚类290内的包括该不匹配的屏幕截图的新聚类。在将屏幕截图添加至聚类或创建新聚类时,聚类模块284可以将对屏幕截图的指示附加至该聚类的第三层。
聚类模块284可以以一种或多种方式确定屏幕截图264中的每一个与聚类290中的每一个之间的相似度分值。聚类模块284可以通过确定屏幕截图264中的一个屏幕截图与包括在聚类290中的一个聚类中的任何一个屏幕截图之间的最大分值来确定用于该屏幕截图与该聚类的相似度分值。聚类模块284可以通过确定屏幕截图264中的一个屏幕截图与聚类290中的一个聚类中包括的任何一个屏幕截图之间的最小分值来确定用于该屏幕截图与该聚类的相似度分值。聚类模块284可以通过确定屏幕截图264中的一个屏幕截图与包括在聚类290中的一个聚类中的全部屏幕截图之间的平均分值来确定用于该屏幕截图与该聚类的相似度分值。
为了确定特定屏幕截图与包括在聚类中的任何屏幕截图之间的最大分值,聚类模块284可以基于该聚类中的每一个屏幕截图的元素标识符来确定包括在该聚类中的哪个屏幕截图与该特定屏幕截图具有最多共同的(例如,由该屏幕截图的元素标识符指示的)GUI元素。聚类模块284可以确定由特定屏幕截图中的非共同的元素占据的屏幕区域的百分比,并且如果由非共同的元素占据的屏幕区域的百分比小于区域阈值,则聚类模块284可以将相似度函数应用于两个屏幕截图的元素标识符。否则,如果由非共同的元素占据的屏幕区域的百分比不小于区域阈值,则聚类模块284可以确定特定屏幕截图与聚类不兼容。
在一些示例中,聚类模块284可以使用相似度函数以确定针对特定屏幕截图和包括在聚类中的屏幕截图的相似度分值,如等式1所定义的:
sim(A,B)=[(2*|A∩B|)-|A-B|-|B-A|)]/(|A|+|B|) 等式1在等式1中,A和B是由两个不同屏幕截图264的元素标识符定义的唯一元素的集合。如果A和B相同,则等式1可以返回+1,如果A和B没有共同元素,则等式1可以返回-1,并且如果A和B共享一些共同元素,则等式1可以返回大于0且小于+1的值。如果从等式1返回的值(也称为相似度分值)大于相似度阈值(例如,0.5),则聚类模块284可以确定两个屏幕截图是相似的。例如,如果|A|=10,|A交(intersect)B|=5,并且|B|=5,则sim(A,B)=(2*5-5-0)/(10+5)=1/3=0.33并且因此A和B可以是相似的(例如,如果相似度阈值小于0.33)或者可以是不相似的(例如,如果相似度阈值是0.5或大于0.33的某个其他值)。如果|A|=10,|A交B|=10,并且|B|=10,则sim(A,B)=(2*10-0-0)/(10+10)=20/20=1并且因此A和B可以是相同的。并且如果|A|=5,|A交B|=0,并且|B|=5,则sim(A,B)=(2*0-5-5)/(5+5)=-10/10=-1并且因此A和B可能不具有共同元素。
图3是示出根据本公开的一个或多个方面的由被配置为识别并聚类在应用测试期间生成的相似的屏幕截图的示例计算系统执行的示例操作的流程图。操作400-440可以由诸如ATS 160、ATS 260、计算设备110或其组合的应用测试系统执行。为了便于描述,在图2的ATS 260的背景下描述图3。
如图3所示,在操作中,ATS 260可以响应于应用的第一测试而在该第一测试期间在应用的图形用户界面由第一目标设备显示的同时生成所述图形用户界面的第一屏幕截图集合(300)并且可以响应于应用的第二测试而在该第二测试期间在该图形用户界面由第二目标设备显示的同时生成图形用户界面的第二屏幕截图集合(302)。例如,测试模块282可以配置并使目标设备266A和266N执行应用包222以进行同时测试。在同时测试期间或响应于同时测试,目标设备266A和266N可以将测试结果268存储在存储组件276处。
目标设备266A和266N可以将屏幕截图264作为测试结果268的一部分存储在存储组件276处。例如,目标设备266A可以存储第一屏幕截图264集合并且目标设备266N可以存储第二屏幕截图264集合。来自第一屏幕截图集合的每一个屏幕截图和来自第二屏幕截图集合的每一个屏幕截图包括图像数据286(例如,应用包222的图形用户界面的图像)和指示存在于图像数据286中的图形用户界面的一个或多个元素的元数据288。
ATS 260可以基于来自第一屏幕截图集合的第一屏幕截图的元数据和来自第二屏幕截图集合的第二屏幕截图的元数据来确定第二屏幕截图和第一屏幕截图是否相似(304)。例如,聚类模块284可以针对第一和第二屏幕截图中的每一个生成元素标识符。聚类模块284可以首先创建包括对第一屏幕截图的指示的新聚类290。然后,聚类模块284可以对第一屏幕截图和第二屏幕截图的元素标识符进行比较以确定由两个屏幕截图中的每一个中的图形元素所覆盖的屏幕区域的量是大于还是小于区域阈值。响应于确定屏幕区域的量小于区域阈值,聚类模块284可以确定两个屏幕截图之间的相似度分值。响应于确定区域量大于或等于区域阈值,聚类模块284可以创建包括第二屏幕截图的新聚类。
响应于确定第一屏幕截图和第二屏幕截图是相似的(306,是),ATS 260可以将第二屏幕截图指派至包括第一屏幕截图的聚类(308)并输出对包括第二屏幕截图的图像的一部分的聚类的图形指示用于显示(310)。例如,聚类模块284可以包括对包括第一屏幕截图的聚类中的第二屏幕截图的指示,使得在UI模块280使对聚类的图形指示(例如,作为由诸如计算设备110的客户端计算设备访问的服务的图形用户界面的一部分)要被显示时,对包括第一屏幕截图的聚类的图形指示可以包括第二屏幕截图的图像的至少一部分。
在一些示例中,聚类可以包括在一个或多个目标设备处拍摄的屏幕截图,聚类的第一层包括对包括在该聚类中的、表示该聚类的单个屏幕截图的指示,聚类的第二层包括对包括在该聚类中的、在一个或多个目标设备中的每一个目标设备处拍摄的相应的屏幕截图的指示并且聚类的第三层包括对包括在该聚类中的每一个屏幕截图的指示。在这种情况下,ATS 260可以通过至少输出包括在聚类中的、表示聚类的单个屏幕截图的图像来输出对聚类的图形指示。例如,除了第二屏幕截图的图像的部分之外,UI模块280可以使对包括第一屏幕截图的聚类的图形指示包括聚类的单个代表性屏幕截图的图像。单个代表性屏幕截图可以是聚类中的第一屏幕截图、第二个屏幕截图或某个其他屏幕截图。
响应于确定第一屏幕截图和第二屏幕截图是不相似的(306,否),ATS 260可以创建包括第二屏幕截图的新聚类(312)并且可以输出对第二聚类的图形指示以用于显示。对第二聚类的图形指示可以包括第二屏幕截图的图像的部分,对第二聚类的图形指示可以与对第一聚类的图形指示不同,并且第二聚类可以与第一聚类不同。例如,聚类模块284可以创建包括对第二屏幕截图的指示的新聚类,使得在UI模块280使对聚类的图形指示(例如,作为由诸如计算设备110的客户端计算设备访问的服务的图形用户界面的一部分)要被显示时,对包括第二屏幕截图的新聚类的图形指示可以包括第二屏幕截图的图像的至少一部分。
在一些示例中,ATS 260可以基于包括在聚类中的两个或更多个屏幕截图的元数据来识别包括在聚类中的两个或更多个屏幕截图的相应的图像之间的差异并且可以输出对差异的图形指示以用于显示。换句话说,ATS 260的开发者服务模块262可以执行对聚类290中的每一个中的屏幕截图的附加分析以确定是否可以从元数据268中收集到任何问题、异常或其他信息。
在一些示例中,开发者服务模块262可以从分析聚类中的屏幕截图的元数据来检测叠加问题。根据元数据,开发者服务模块262可以检测子GUI元素是否超出边界,或者换句话说,子元素的表面区域是否超出父元素的边界。
在一些示例中,开发者服务模块262可以检测先前(例如,在应用的先前版本中)被支持的UI元素内的文本的新转换何时不再被正在被测试的当前应用支持。UI模块280可以输出应用的新版本缺失应用的旧版本所支持的转换的通知。开发者服务模块262可以识别在旧版本的测试期间拍摄的屏幕截图的元数据中的UI元素文本与在当前版本的测试期间拍摄的屏幕截图的对应的元数据中的UI元素文本不同。
在一些示例中,开发者服务模块262可以检测应用的两个不同版本上的相同屏幕何时不以相同的方式渲染。例如,通过具有屏幕截图聚类和对应的元数据,开发者服务模块262可以查看当前应用版本和先前应用版本并比较相同的关键屏幕以识别版本之间的任何UI变化。UI模块280可以输出对UI变化的图形指示或其他通知以用于显示。
在一些示例中,开发者服务模块262可以确定应用何时在新屏幕截图中的一个上包括在最新应用版本中引入的新特征或新屏幕(即“关键屏幕”)。例如,通过具有屏幕截图聚类和对应的元数据,开发者服务模块262可以查看当前应用版本和先前应用版本并比较相同的关键屏幕以识别是否存在被添加到先前存在的部分上的新应用版本中的新元素或是否存在新版本中引入的新屏幕(或许以及新特征)。UI模块280可以输出对新特征和/或新屏幕的图形指示或其他通知以用于显示。
在一些示例中,开发者服务模块262可以执行对聚类中的屏幕截图的逐像素的比较以确定是否任何一个特定的目标设备配置不能很好地缩放设计以匹配黄金设计——即,由软件作者提供的作为已知良好的比较点的基准母版图像(reference master image)。UI模块280可以输出对任何未对准的图形指示或其他通知以用于显示。
条款1.一种方法,包括:响应于对应用的第一测试,在所述第一测试期间在所述应用的图形用户界面被第一目标设备显示的同时生成所述图形用户界面的第一屏幕截图集合;响应于对所述应用的第二测试,在所述第二测试期间在所述图形用户界面被第二目标设备显示的同时生成所述图形用户界面的第二屏幕截图集合,其中来自所述第二屏幕截图集合的每一个屏幕截图包括所述图形用户界面的相应图像和相应元数据,所述相应元数据指示以下中的至少一个:存在于所述相应图像中的所述图形用户界面的一个或多个元素或在做出所述相应图像时所述应用或相应目标设备的状态;基于来自所述第一屏幕截图集合的屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的屏幕截图的所述相应元数据,确定指示来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图之间的相似度的量的相似度分值;确定所述相似度分值是否满足相似度阈值;以及响应于确定所述相似度分值满足所述相似度阈值:将来自所述第二屏幕截图集合的所述屏幕截图指派至包括来自所述第一屏幕截图集合的所述屏幕截图的聚类;并且输出对包括来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像的一部分的所述聚类的图形指示以用于显示。
条款2.根据条款1所述的方法,其中,所述聚类是第一聚类,其中所述相似度分值是第一相似度分值,其中来自所述第一屏幕截图集合的所述屏幕截图是来自所述第一屏幕截图集合的第一屏幕截图,并且其中来自所述第二屏幕截图集合的所述屏幕截图是来自所述第二屏幕截图集合的第一屏幕截图,所述方法还包括:基于来自所述第一屏幕截图集合的第二屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的第二屏幕截图的所述相应元数据,确定指示来自所述第一屏幕截图集合的所述第二屏幕截图与来自所述第二屏幕截图集合的所述第二屏幕截图之间的相似度的量的第二相似度分值;确定所述第二相似度分值是否满足相似度阈值;响应于确定所述第二相似度分值不满足所述相似度阈值:创建包括来自所述第二屏幕截图集合的所述第二屏幕截图的第二聚类;以及输出对所述第二聚类的图形指示以用于显示,其中:对所述第二聚类的所述图形指示包括来自所述第二屏幕截图集合的所述第二屏幕截图的所述相应图像的一部分;对所述第二聚类的图形指示与对所述第一聚类的图形指示不同;并且所述第二聚类与所述第一聚类不同。
条款3.根据条款1-2中任一项所述的方法,还包括:基于来自所述第一屏幕截图集合的所述屏幕截图的所述相应元数据,确定来自所述第一屏幕截图集合的所述屏幕截图的元素标识符;基于来自所述第二屏幕截图集合的所述屏幕截图的所述相应元数据,确定来自所述第一屏幕截图集合的所述屏幕截图的元素标识符;以及基于来自所述第一屏幕截图集合的所述屏幕截图的所述元素标识符和来自所述第二屏幕截图集合的所述屏幕截图的所述元素标识符,确定指示来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图之间的相似度的所述量的所述相似度分值。
条款4.根据条款3所述的方法,其中:确定来自所述第一屏幕截图集合的所述屏幕截图的所述元素标识符包括将由来自所述第一屏幕截图集合的所述屏幕截图的所述相应元数据定义的序列中的每一层与来自存在于来自所述第一屏幕截图集合的所述屏幕截图的所述相应图像中的所述一个或多个图形元素的特定元素的对应的资源id和类名进行映射;并且确定来自所述第二屏幕截图集合的所述屏幕截图的所述元素标识符包括将由来自所述第二屏幕截图集合的所述屏幕截图的所述相应元数据定义的序列中的每一层与来自存在于来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像中的所述一个或多个图形元素的特定元素的对应的资源id和类名进行映射。
条款5.根据条款1-4中任一项所述的方法,其中,来自所述第二屏幕截图集合的所述屏幕截图是来自所述第二屏幕截图集合的第一屏幕截图,其中所述相似度分值是第一相似度分值,并且其中确定所述第一相似度分值包括:基于来自所述第一屏幕截图集合的所述屏幕截图的所述相应元数据和来自第二屏幕截图集合的每一个屏幕截图的所述相应元数据,确定来自所述第二屏幕截图集合的每一个屏幕截图的相应相似度分值,来自所述第二屏幕截图集合的特定屏幕截图的每一个相应相似度分值指示在来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述特定屏幕截图之间的相似度的量,其中:所述第一相似度分值与来自所述第二屏幕截图集合的所述屏幕截图的全部相应相似度分值中的最大分值相对应;并且来自所述第二屏幕截图集合的所述第一屏幕截图是与所述最大分值相关联的所述特定屏幕截图。
条款6.根据条款1-5中任一项所述的方法,其中:所述聚类包括在一个或多个目标设备处拍摄的一个或多个屏幕截图;所述聚类的第一层包括对表示所述聚类的来自所述一个或多个屏幕截图的单个屏幕截图的指示;所述聚类的第二层包括对来自在所述一个或多个目标设备中的每一个目标设备处拍摄的所述一个或多个屏幕截图的相应屏幕截图的指示;并且所述聚类的第三层包括对被包括在聚类中的来自所述一个或多个屏幕截图的每一个屏幕截图的指示。
条款7.根据条款6所述的方法,其中,输出对所述聚类的所述图形指示包括输出表示所述聚类的来自所述一个或多个屏幕截图的所述单个屏幕截图的图像。
条款8.根据条款1-7中任一项所述的方法,还包括:基于被包括在所述聚类中的两个或更多个屏幕截图的相应元数据,识别被包括在所述聚类中的两个或更多个屏幕截图的所述相应图像之间的差异;以及输出对所述差异的指示。
条款9.一种计算系统,包括:至少一个处理器,所述至少一个处理器被配置为:接收测试应用的请求;响应于所述请求之后的所述应用的第一测试,在所述第一测试期间在所述应用的图形用户界面被第一目标设备显示的同时生成所述应用的图形用户界面的第一屏幕截图集合;响应于所述请求之后的所述应用的第二测试,在所述第二测试期间在所述图形用户界面被第二目标设备显示的同时生成所述图形用户界面的第二屏幕截图集合;其中来自所述第一屏幕截图集合的每一个屏幕截图和来自所述第二屏幕截图集合的每一个屏幕截图包括所述图形用户界面的相应图像和相应元数据,所述相应元数据指示存在于所述相应图像中的所述图形用户界面的一个或多个元素或在做出所述相应图像时所述应用或相应目标设备的状态;基于来自所述第一屏幕截图集合的屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的屏幕截图的所述相应元数据,确定指示来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图之间的相似度的量的相似度分值;确定所述相似度分值是否满足相似度阈值;以及响应于确定所述相似度分值满足所述相似度阈值:将来自所述第二屏幕截图集合的所述屏幕截图指派至包括来自所述第一屏幕截图集合的所述屏幕截图的聚类;并且输出对包括来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像的一部分的所述聚类的图形指示以用于显示。
条款10.根据条款9所述的计算系统,其中,所述聚类是第一聚类,其中所述相似度分值是第一相似度分值,其中来自所述第一屏幕截图集合的所述屏幕截图是来自所述第一屏幕截图集合的第一屏幕截图,并且其中来自所述第二屏幕截图集合的所述屏幕截图是来自所述第二屏幕截图集合的第一屏幕截图,所述至少一个处理器还被配置为:基于来自所述第一屏幕截图集合的第二屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的第二屏幕截图的所述相应元数据,确定指示来自所述第一屏幕截图集合的所述第二屏幕截图与来自所述第二屏幕截图集合的所述第二屏幕截图之间的相似度的量的第二相似度分值;确定所述第二相似度分值是否满足相似度阈值;响应于确定所述第二相似度分值不满足所述相似度阈值:创建包括来自所述第二屏幕截图集合的所述第二屏幕截图的第二聚类;以及输出对所述第二聚类的图形指示以用于显示,其中:对所述第二聚类的所述图形指示包括来自所述第二屏幕截图集合的所述第二屏幕截图的所述相应图像的一部分;对所述第二聚类的图形指示与对所述第一聚类的图形指示不同;并且所述第二聚类与所述第一聚类不同。
条款11.根据条款9-10中任一项所述的计算系统,其中,所述第一目标设备与所述第二目标设备不同并且所述计算系统包括所述第一目标设备和所述第二目标设备。
条款12.根据条款9-11中任一项所述的计算系统,其中,对所述聚类的所述图形指示被作为由客户端计算设备访问的服务的图形用户界面的一部分被输出以用于显示。
条款13.根据条款9-12中任一项所述的计算系统,其中,所述第一目标设备和所述第二目标设备是单个目标设备,并且其中所述第一屏幕截图集合和所述第二屏幕截图集合是单个屏幕截图集合。
条款14.一种包括指令的计算机可读存储介质,所述指令在被执行时,使计算系统的至少一个处理器:响应于对应用的第一测试,在所述第一测试期间在所述应用的图形用户界面被第一目标设备显示的同时生成所述图形用户界面的第一屏幕截图集合;响应于对所述应用的第二测试,在所述第二测试期间在所述图形用户界面被第二目标设备显示的同时生成所述图形用户界面的第二屏幕截图集合,其中来自所述第一屏幕截图集合的每一个屏幕截图和来自所述第二屏幕截图集合的每一个屏幕截图包括所述图形用户界面的相应图像和相应元数据,所述相应元数据指示存在于所述相应图像中的所述图形用户界面的一个或多个元素或在做出所述相应图像时所述应用或相应目标设备的状态;基于来自所述第一屏幕截图集合的屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的屏幕截图的所述相应元数据,确定指示来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图之间的相似度的量的相似度分值;确定所述相似度分值是否满足相似度阈值;以及响应于确定所述相似度分值满足所述相似度阈值:将来自所述第二屏幕截图集合的所述屏幕截图指派至包括来自所述第一屏幕截图集合的所述屏幕截图的聚类;并且输出对包括来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像的一部分的所述聚类的图形指示以用于显示。
条款15.根据条款14所述的计算机可读存储介质,其中,所述聚类是第一聚类,其中所述相似度分值是第一相似度分值,其中来自所述第一屏幕截图集合的所述屏幕截图是来自所述第一屏幕截图集合的第一屏幕截图,并且其中来自所述第二屏幕截图集合的所述屏幕截图是来自所述第二屏幕截图集合的第一屏幕截图,并且所述指令在被执行时还使所述至少一个处理器:基于来自所述第一屏幕截图集合的第二屏幕截图的所述相应元数据和来自所述第二屏幕截图集合的第二屏幕截图的所述相应元数据,确定指示来自所述第一屏幕截图集合的所述第二屏幕截图与来自所述第二屏幕截图集合的所述第二屏幕截图之间的相似度的量的第二相似度分值;确定所述第二相似度分值是否满足相似度阈值;响应于确定所述第二相似度分值不满足所述相似度阈值:创建包括来自所述第二屏幕截图集合的所述第二屏幕截图的第二聚类;以及输出对所述第二聚类的图形指示以用于显示,其中:对所述第二聚类的图形指示包括来自所述第二屏幕截图集合的所述第二屏幕截图的所述相应图像的一部分;对所述第二聚类的图形指示与对所述第一聚类的所述图形指示不同;并且所述第二聚类与所述第一聚类不同。
条款16.根据条款14-15中任一项所述的计算机可读存储介质,其中,所述指令在被执行时还使所述至少一个处理器:基于来自所述第一屏幕截图集合的所述屏幕截图的所述相应元数据,确定来自所述第一屏幕截图集合的所述屏幕截图的元素标识符;基于来自所述第二屏幕截图集合的所述屏幕截图的所述相应元数据,确定来自所述第一屏幕截图集合的所述屏幕截图的元素标识符;以及基于来自所述第一屏幕截图集合的所述屏幕截图的所述元素标识符和来自所述第二屏幕截图集合的所述屏幕截图的所述元素标识符,确定指示来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图之间的相似度的所述量的所述相似度分值。
条款17.根据条款16所述的计算机可读存储介质,其中,所述指令在被执行时还使所述至少一个处理器:至少通过将由来自所述第一屏幕截图集合的所述屏幕截图的所述相应元数据定义的序列中的每一层映射与来自存在于来自所述第一屏幕截图集合的所述屏幕截图的所述相应图像中的所述一个或多个图形元素的特定元素的对应的资源id和类名进行映射,确定来自所述第一屏幕截图集合的所述屏幕截图的所述元素标识符;并且至少通过将由来自所述第二屏幕截图集合的所述屏幕截图的所述相应元数据定义的序列中的每一层与来自存在于来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像中的所述一个或多个图形元素的特定元素的对应的资源id和类名进行映射,确定来自所述第二屏幕截图集合的所述屏幕截图的所述元素标识符。
条款18.根据条款16所述的计算机可读存储介质,其中,来自所述第二屏幕截图集合的所述屏幕截图是来自所述第二屏幕截图集合的第一屏幕截图,其中所述相似度分值是第一相似度分值,并且其中所述指令在被执行时还使所述至少一个处理器至少通过以下各项确定所述第一相似度分值:基于来自所述第一屏幕截图集合的所述屏幕截图的所述相应元数据和来自第二屏幕截图集合的每一个屏幕截图的所述相应元数据,确定来自所述第二屏幕截图集合的每一个屏幕截图的相应相似度分值,来自所述第二屏幕截图集合的特定屏幕截图的每一个相应相似度分值指示在来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述特定屏幕截图之间的相似度的量,其中:所述第一相似度分值与来自所述第二屏幕截图集合的所述屏幕截图的全部所述相应相似度分值中的最大分值相对应;并且来自所述第二屏幕截图集合的所述第一屏幕截图是与所述最大分值相关联的所述特定屏幕截图。
条款19.根据条款14-18中任一项所述的计算机可读存储介质,其中:所述聚类包括在一个或多个目标设备处拍摄的一个或多个屏幕截图;所述聚类的第一层包括对表示所述聚类的来自所述一个或多个屏幕截图的单个屏幕截图的指示;所述聚类的第二层包括对来自在所述一个或多个目标设备中的每一个目标设备处拍摄的所述一个或多个屏幕截图的相应屏幕截图的指示;并且所述聚类的第三层包括对被包括在聚类中的来自所述一个或多个屏幕截图的每一个屏幕截图的指示。
条款20.根据条款19所述的计算机可读存储介质,其中所述指令在被执行时还使所述至少一个处理器响应于确定所述相似度分值满足所述相似度阈值而向在评估所述应用时使用的不同系统输出对所述聚类的指示。
条款21.一种系统,包括用于执行条款1-8中任一项所述的方法的装置。
条款22.一种计算系统,包括被配置为执行条款1-8中任一项所述的方法的至少一个处理器。
作为示例而不是限制,这种计算机可读存储介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储设备,闪存或任何其他可用于以指令或数据结构的形式存储期望的程序代码并且可由计算机访问的存储介质。而且,任何连接都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术从网站、服务器或其他远程源传送指令,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波的无线技术都被包括在介质的定义中。然而,应该理解的是,计算机可读存储介质和媒介以及数据存储介质不包括连接、载波、信号或其他暂时性媒介,而是涉及非暂时性、有形存储介质。如本文所使用的,磁盘和光盘包括高密度光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据而光盘使用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。因此,如本文所使用的,术语“处理器”,可以指任何前述结构或适合于实现本文所述的技术的任何其他结构。此外在一些方面,可以在专用硬件和/或软件模块内提供本文所述的功能。而且技术可以在一个或多个电路或逻辑元件中完全实现。
本发明的技术可在各种设备或装置中实现,包括无线手持机、集成电路(IC)或IC集(例如芯片集)。在本公开中描述了各种组件、模块或单元以强调被配置为执行所公开的技术的设备的功能方面,但不必需需要由不同的硬件单元实现。而是如上所述,各种单元可以结合合适的软件和/或固件来被组合在硬件单元中或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合提供。
已经描述了各种实施例。这些和其他实施例在所附权利要求书的范围内。

Claims (15)

1.一种方法,包括:
响应于应用的第一测试,在所述第一测试期间,在所述应用的图形用户界面被第一目标设备显示的同时,生成所述图形用户界面的第一屏幕截图集合;
响应于所述应用的第二测试,在所述第二测试期间,在所述图形用户界面被第二目标设备显示的同时,生成所述图形用户界面的第二屏幕截图集合,其中来自所述第一屏幕截图集合的每一个屏幕截图和来自所述第二屏幕截图集合的每一个屏幕截图包括所述图形用户界面的相应图像和相应元数据,所述相应元数据指示以下中的至少一个:存在于所述相应图像中的所述图形用户界面的一个或多个元素或在所述相应图像被生成时的所述应用或相应目标设备的状态;
基于来自所述第一屏幕截图集合的屏幕截图的相应元数据和来自所述第二屏幕截图集合的屏幕截图的相应元数据,确定来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图是否是相似的;以及
响应于确定来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图是相似的:
将来自所述第二屏幕截图集合的所述屏幕截图指派至包括来自所述第一屏幕截图集合的所述屏幕截图的聚类;以及
输出对包括来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像的部分的所述聚类的图形指示以用于显示。
2.根据权利要求1所述的方法,其中,所述聚类是第一聚类,其中来自所述第一屏幕截图集合的所述屏幕截图是来自所述第一屏幕截图集合的第一屏幕截图,并且其中来自所述第二屏幕截图集合的所述屏幕截图是来自所述第二屏幕截图集合的第一屏幕截图,所述方法还包括:
基于来自所述第一屏幕截图集合的第二屏幕截图的相应元数据和来自所述第二屏幕截图集合的第二屏幕截图的相应元数据,确定来自所述第一屏幕截图集合的所述第二屏幕截图与来自所述第二屏幕截图集合的所述第二屏幕截图是否是相似的;
响应于确定来自所述第一屏幕截图集合的所述第二屏幕截图与来自所述第二屏幕截图集合的所述第二屏幕截图不是相似的:
创建包括来自所述第二屏幕截图集合的所述第二屏幕截图的第二聚类;以及
输出对所述第二聚类的图形指示以用于显示,其中:
对所述第二聚类的所述图形指示包括来自所述第二屏幕截图集合的所述第二屏幕截图的相应图像的部分;
对所述第二聚类的所述图形指示与对所述第一聚类的所述图形指示不同;以及
所述第二聚类与所述第一聚类不同。
3.根据权利要求1或2所述的方法,还包括:
基于来自所述第一屏幕截图集合的所述屏幕截图的所述相应元数据,确定来自所述第一屏幕截图集合的所述屏幕截图的元素标识符;
基于来自所述第二屏幕截图集合的所述屏幕截图的所述相应元数据,确定来自所述第一屏幕截图集合的所述屏幕截图的元素标识符;以及
基于来自所述第一屏幕截图集合的所述屏幕截图的所述元素标识符和来自所述第二屏幕截图集合的所述屏幕截图的所述元素标识符,确定指示来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图之间的相似度的量的相似度分值。
4.根据权利要求3所述的方法,其中:
确定来自所述第一屏幕截图集合的所述屏幕截图的所述元素标识符包括将由来自所述第一屏幕截图集合的所述屏幕截图的所述相应元数据定义的序列中的每一层与来自存在于来自所述第一屏幕截图集合的所述屏幕截图的所述相应图像中的所述一个或多个图形元素的特定元素的对应的资源id和类名进行映射;以及
确定来自所述第二屏幕截图集合的所述屏幕截图的所述元素标识符包括将由来自所述第二屏幕截图集合的所述屏幕截图的所述相应元数据定义的序列中的每一层与来自存在于来自所述第二屏幕截图集合的所述屏幕截图的所述相应图像中的所述一个或多个图形元素的特定元素的对应的资源id和类名进行映射。
5.根据权利要求1-3中任一项所述的方法,其中,来自所述第二屏幕截图集合的所述屏幕截图是来自所述第二屏幕截图集合的第一屏幕截图,其中所述相似度分值是第一相似度分值,并且其中确定来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述屏幕截图之间是相似的,包括:
基于来自所述第一屏幕截图集合的所述屏幕截图的所述相应元数据和来自第二屏幕截图集合的每一个屏幕截图的所述相应元数据,确定来自所述第二屏幕截图集合的每一个屏幕截图的相应相似度分值,来自所述第二屏幕截图集合的特定屏幕截图的每个相应相似度分值指示来自所述第一屏幕截图集合的所述屏幕截图与来自所述第二屏幕截图集合的所述特定屏幕截图之间的相似度的量,
其中来自所述第二屏幕截图集合的所述第一屏幕截图是与来自所述第二屏幕截图集合的所述屏幕截图的全部相应相似度分值中的最大分值相关联的特定屏幕截图。
6.根据权利要求1-5中任一项所述的方法,其中:
所述聚类包括在一个或多个目标设备处拍摄的一个或多个屏幕截图;
所述聚类的第一层包括对表示所述聚类的来自所述一个或多个屏幕截图的单个屏幕截图的指示;
所述聚类的第二层包括对在所述一个或多个目标设备中的每一个目标设备处拍摄的来自所述一个或多个屏幕截图的相应屏幕截图的指示;并且
所述聚类的第三层包括对包括在聚类中的来自所述一个或多个屏幕截图中的每一个屏幕截图的指示。
7.根据权利要求6所述的方法,其中,输出对所述聚类的所述图形指示包括输出表示所述聚类的来自所述一个或多个屏幕截图的所述单个屏幕截图的图像。
8.根据权利要求1-7中任一项所述的方法,还包括:
基于被包括在所述聚类中的两个或更多个屏幕截图的相应元数据,识别被包括在所述聚类中的两个或更多个屏幕截图的相应图像之间的差异;以及
输出对所述差异的指示。
9.根据权利要求1-8中任一项所述的方法,其中,所述第一目标设备与所述第二目标设备不同,并且所述计算系统包括所述第一目标设备和所述第二目标设备。
10.根据权利要求1-9中任一项所述的方法,其中,对所述聚类的所述图形指示被输出作为由客户端计算设备访问的服务的图形用户界面的部分来显示。
11.根据权利要求1至10中任一项所述的方法,其中,所述第一目标设备和所述第二目标设备是单个目标设备,并且其中所述第一屏幕截图集合和所述第二屏幕截图集合是单个屏幕截图集合。
12.一种计算系统,包括:被配置为执行根据权利要求1-11中任一项所述的方法的至少一个处理器。
13.一种包括指令的计算机可读存储介质,所述指令在被执行时使计算系统的至少一个处理器执行根据权利要求1-11中任一项所述的方法。
14.一种计算系统,包括用于执行根据权利要求1-11中任一项所述的方法的装置。
15.一种包括程序指令的计算机程序,所述程序指令在计算机上执行时,使所述计算机执行根据权利要求1-11中任一项所述的方法。
CN201780086479.7A 2017-03-17 2017-10-31 使用屏幕截图元数据确定应用测试结果 Active CN110337641B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/462,547 US9934129B1 (en) 2017-03-17 2017-03-17 Determining application test results using screenshot metadata
US15/462,547 2017-03-17
PCT/US2017/059355 WO2018169573A1 (en) 2017-03-17 2017-10-31 Determining application test results using screenshot metadata

Publications (2)

Publication Number Publication Date
CN110337641A true CN110337641A (zh) 2019-10-15
CN110337641B CN110337641B (zh) 2023-03-21

Family

ID=60473618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780086479.7A Active CN110337641B (zh) 2017-03-17 2017-10-31 使用屏幕截图元数据确定应用测试结果

Country Status (4)

Country Link
US (2) US9934129B1 (zh)
EP (1) EP3563243B1 (zh)
CN (1) CN110337641B (zh)
WO (1) WO2018169573A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704474A (zh) * 2021-08-30 2021-11-26 平安银行股份有限公司 银行网点设备操作指引生成方法、装置、设备及存储介质

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017137091A1 (en) * 2016-02-12 2017-08-17 Telefonaktiebolaget Lm Ericsson (Publ) Calculating service performance indicators
EP3640804B1 (en) * 2018-10-17 2020-11-25 Eyevido GmbH Screen recording preparation method for evaluating software usability, computing system, computer program and computer-readable storage medium implementing the method
US10762231B2 (en) * 2018-10-30 2020-09-01 Citrix Systems, Inc. Protecting screenshots of applications executing in a protected workspace container provided in a mobile device
US10761818B2 (en) * 2018-10-31 2020-09-01 Salesforce.Com, Inc. Automatic identification of types of user interface components
CN111143188B (zh) * 2018-11-02 2023-09-22 中移(杭州)信息技术有限公司 一种对应用进行自动化测试的方法及设备
WO2020093352A1 (en) * 2018-11-09 2020-05-14 Citrix Systems, Inc. Automated keyboard mapping for virtual desktops
FR3088785B1 (fr) * 2018-11-16 2020-10-30 Blade Procede de maintenance d’une machine virtuelle hebergee sur un serveur d’un ordinateur hote
US11099972B2 (en) * 2018-11-19 2021-08-24 Microsoft Technology Licensing, Llc Testing user interfaces using machine vision
US11113095B2 (en) 2019-04-30 2021-09-07 Automation Anywhere, Inc. Robotic process automation system with separate platform, bot and command class loaders
CN110347585B (zh) * 2019-05-28 2023-06-06 成都美美臣科技有限公司 一种ui自动化测试图片识别方法
WO2020257970A1 (en) * 2019-06-24 2020-12-30 Citrix Systems, Inc. Previewing application user interface for multiple locales
CN110716778B (zh) * 2019-09-10 2023-09-26 创新先进技术有限公司 应用兼容性测试方法、装置及系统
US11481304B1 (en) 2019-12-22 2022-10-25 Automation Anywhere, Inc. User action generated process discovery
US11176022B2 (en) 2019-12-27 2021-11-16 Bank Of America Corporation Health diagnostics and analytics for object repositories
CN111242187B (zh) * 2020-01-03 2023-07-07 北京字节跳动网络技术有限公司 一种图像相似度处理方法、装置、介质和电子设备
CN113268407A (zh) * 2020-02-17 2021-08-17 北京沃东天骏信息技术有限公司 页面测试方法及装置、计算机存储介质、电子设备
US11182178B1 (en) * 2020-02-21 2021-11-23 Automation Anywhere, Inc. Detection of user interface controls via invariance guided sub-control learning
US10963731B1 (en) * 2020-10-13 2021-03-30 Fmr Llc Automatic classification of error conditions in automated user interface testing
US20230377309A1 (en) * 2022-05-17 2023-11-23 Fmr Llc Methods and systems for automated cross-browser user interface testing

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110314343A1 (en) * 2010-06-21 2011-12-22 Apple Inc. Capturing and Displaying State of Automated User-Level Testing of a Graphical User Interface Application
WO2012027886A1 (en) * 2010-08-31 2012-03-08 Google Inc. Platform specific application test
CN103377109A (zh) * 2012-04-13 2013-10-30 国际商业机器公司 计算机实现的方法和系统
US20140075344A1 (en) * 2012-09-11 2014-03-13 Ebay Inc. Visual state comparator
US20140147051A1 (en) * 2011-06-30 2014-05-29 American Express Travel Related Services Company, Inc. Method and system for webpage regression testing
US20140189576A1 (en) * 2012-09-10 2014-07-03 Applitools Ltd. System and method for visual matching of application screenshots
US20150086115A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Screenshot database for application verification
CN106095679A (zh) * 2016-06-12 2016-11-09 南京大学 基于手绘识别的图形界面测试用例生成方法
CN106484264A (zh) * 2016-10-12 2017-03-08 乐视控股(北京)有限公司 截屏处理方法及装置

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231606B2 (en) * 2000-10-31 2007-06-12 Software Research, Inc. Method and system for testing websites
US6961873B2 (en) * 2001-09-14 2005-11-01 Siemens Communications, Inc. Environment based data driven automated test engine for GUI applications
US7870504B1 (en) * 2003-10-01 2011-01-11 TestPlant Inc. Method for monitoring a graphical user interface on a second computer display from a first computer
US7769773B1 (en) * 2004-08-31 2010-08-03 Adobe Systems Incorporated Relevant rule inspector for hierarchical documents
DE102006036304A1 (de) * 2006-08-03 2008-02-07 Universität Karlsruhe (Th) Verfahren zum Analysieren und/oder Testen zumindest einer Benutzeroberfläche, Datenverarbeitungseinrichtung und Computerprogrammprodukt
US9740795B2 (en) * 2007-03-12 2017-08-22 International Business Machines Corporation Methods, systems, and computer program products for consolidating web pages displayed in multiple browsers
US20080244381A1 (en) * 2007-03-30 2008-10-02 Alex Nicolaou Document processing for mobile devices
CN102033803B (zh) * 2009-09-29 2014-07-09 国际商业机器公司 跨浏览器测试web应用的方法和装置
US8996988B2 (en) * 2009-10-19 2015-03-31 Browsera, LLC Automated application compatibility testing
WO2011073759A1 (en) * 2009-12-01 2011-06-23 Cinnober Financial Technology Ab Methods and systems for automatic testing of a graphical user interface
US20110173589A1 (en) * 2010-01-13 2011-07-14 Microsoft Corporation Cross-Browser Interactivity Testing
US20110214107A1 (en) * 2010-03-01 2011-09-01 Experitest, Ltd. Method and system for testing graphical user interfaces
US9298598B2 (en) * 2010-03-22 2016-03-29 Red Hat, Inc. Automated visual testing
US9009669B2 (en) * 2010-05-07 2015-04-14 Salesforce.Com, Inc. Visual user interface validator
US20110289489A1 (en) * 2010-05-20 2011-11-24 Verizon Patent And Licensing Inc. Concurrent cross browser testing
US8762881B2 (en) * 2010-07-15 2014-06-24 Salesforce.Com, Inc. Taking screenshots of a failed application
US9213625B1 (en) * 2010-07-27 2015-12-15 Intuit Inc. Method and apparatus for performing automated user-interface layout testing
US8498473B2 (en) * 2010-08-24 2013-07-30 Compuware Corporation System for computationally quantifying similarities between images
US9208054B2 (en) * 2011-02-14 2015-12-08 Fujitsu Limited Web service for automated cross-browser compatibility checking of web applications
US9641497B2 (en) * 2011-04-08 2017-05-02 Microsoft Technology Licensing, Llc Multi-browser authentication
US9323418B2 (en) * 2011-04-29 2016-04-26 The United States Of America As Represented By Secretary Of The Navy Method for analyzing GUI design affordances
US8954933B2 (en) * 2011-05-31 2015-02-10 International Business Machines Corporation Interactive semi-automatic test case maintenance
US8805094B2 (en) * 2011-09-29 2014-08-12 Fujitsu Limited Using machine learning to improve detection of visual pairwise differences between browsers
US10025445B2 (en) * 2012-12-21 2018-07-17 International Business Machines Corporation Automated screen captures
US20140317602A1 (en) * 2013-04-19 2014-10-23 International Business Machines Corporation Graphical User Interface Debugger with User Defined Interest Points
US9529699B2 (en) * 2013-06-11 2016-12-27 Wipro Limited System and method for test data generation and optimization for data driven testing
US9135151B2 (en) * 2013-09-18 2015-09-15 Yahoo! Inc. Automatic verification by comparing user interface images
TWI533123B (zh) * 2013-10-03 2016-05-11 緯創資通股份有限公司 自動化測試及結果比對方法及系統
US9600519B2 (en) * 2013-11-26 2017-03-21 Software Ag Method and system to detect changes to graphical user interface screenshots used in documentation
JP5991695B2 (ja) * 2013-12-06 2016-09-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 文書オブジェクトモデルツリーとカスケーディング・スタイル・シートとが取り出されることが可能なアプリケーションのソースコードを変更することによって生じる影響を検知するための方法、並びに、当該影響を検知するためのコンピュータ及びそのコンピュータ・プログラム
US9753840B2 (en) * 2014-04-17 2017-09-05 Devfactory Fz-Llc User interface test coverage
US9852049B2 (en) * 2014-05-27 2017-12-26 International Business Machines Corporation Screenshot validation testing
US9189377B1 (en) * 2014-06-02 2015-11-17 Bank Of America Corporation Automation testing using descriptive maps
US9836385B2 (en) * 2014-11-24 2017-12-05 Syntel, Inc. Cross-browser web application testing tool
US10175960B2 (en) * 2015-11-13 2019-01-08 International Business Machines Corporation User interface area coverage
US9348727B1 (en) * 2015-11-18 2016-05-24 International Business Machines Corporation Enhancing GUI automation testing using video

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110314343A1 (en) * 2010-06-21 2011-12-22 Apple Inc. Capturing and Displaying State of Automated User-Level Testing of a Graphical User Interface Application
WO2012027886A1 (en) * 2010-08-31 2012-03-08 Google Inc. Platform specific application test
US20140147051A1 (en) * 2011-06-30 2014-05-29 American Express Travel Related Services Company, Inc. Method and system for webpage regression testing
CN103377109A (zh) * 2012-04-13 2013-10-30 国际商业机器公司 计算机实现的方法和系统
US20140189576A1 (en) * 2012-09-10 2014-07-03 Applitools Ltd. System and method for visual matching of application screenshots
US20140075344A1 (en) * 2012-09-11 2014-03-13 Ebay Inc. Visual state comparator
US20150086115A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Screenshot database for application verification
CN106095679A (zh) * 2016-06-12 2016-11-09 南京大学 基于手绘识别的图形界面测试用例生成方法
CN106484264A (zh) * 2016-10-12 2017-03-08 乐视控股(北京)有限公司 截屏处理方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704474A (zh) * 2021-08-30 2021-11-26 平安银行股份有限公司 银行网点设备操作指引生成方法、装置、设备及存储介质
CN113704474B (zh) * 2021-08-30 2023-06-02 平安银行股份有限公司 银行网点设备操作指引生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
EP3563243B1 (en) 2023-01-18
US9934129B1 (en) 2018-04-03
WO2018169573A1 (en) 2018-09-20
US20180267885A1 (en) 2018-09-20
EP3563243A1 (en) 2019-11-06
US10387292B2 (en) 2019-08-20
CN110337641B (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
CN110337641A (zh) 使用屏幕截图元数据确定应用测试结果
US20210397541A1 (en) System and method of handling complex experiments in a distributed system
Li et al. IoT-CANE: A unified knowledge management system for data-centric Internet of Things application systems
US11521115B2 (en) Method and system of detecting data imbalance in a dataset used in machine-learning
CN107729246A (zh) 针对目标应用的辅助测试方法、装置、设备及存储介质
US20220269736A1 (en) Identifying web elements based on user browsing activity and machine learning
Kalafatis et al. Context effects in the evaluation of business-to-business brand alliances
CN109062807B (zh) 测试应用程序的方法及装置、存储介质、电子装置
CN111414369A (zh) 一种数据处理方法、装置及设备
Selay et al. Adaptive random testing for image comparison in regression web testing
Youn et al. Forensic analysis for AI speaker with display Echo Show 2nd generation as a case study
Rai et al. Using open source intelligence as a tool for reliable web searching
US11157395B2 (en) Automated test coverage of computing systems
US9117177B1 (en) Generating module stubs
US11379898B2 (en) Touch and pressure-based apparel image searching
US11205092B2 (en) Clustering simulation failures for triage and debugging
KR20180076020A (ko) 애플리케이션 테스트 자동화 장치 및 방법
US20220230233A1 (en) Virtual Environment Arrangement and Configuration
Calvaresi et al. Exploring agent-based chatbots: a systematic literature review
US9715439B1 (en) Embedded defect reporting system
EP4030374A1 (en) Virtual environment arrangement and configuration
Krishna et al. A NOVEL APPROACH TO CONNECT DIFFERENT FOOD STAKEHOLDERS
CN111190811A (zh) 一种资源分配系统的测试方法、装置、设备及存储介质
CN116204424A (zh) 一种算法评估方法、系统、装置、客户端及服务器
Driscoll Trendicator–Fashion Trend Detection: Technical Report

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant