CN108351828A - 用于设备无关的自动应用测试的技术 - Google Patents
用于设备无关的自动应用测试的技术 Download PDFInfo
- Publication number
- CN108351828A CN108351828A CN201580080370.3A CN201580080370A CN108351828A CN 108351828 A CN108351828 A CN 108351828A CN 201580080370 A CN201580080370 A CN 201580080370A CN 108351828 A CN108351828 A CN 108351828A
- Authority
- CN
- China
- Prior art keywords
- user interface
- computing device
- interface object
- user
- measuring
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
Abstract
用于进行设备无关的应用测试的技术包括主机计算设备和一个或多个测试计算设备。该主机计算机设备记录由测试计算设备的应用生成的用户界面事件以及指示该应用的显示界面的视频数据。该主机计算设备使用计算机视觉算法来检测视频数据中对应于用户界面事件的用户界面对象,该计算机视觉算法可包括图像特征检测或光学字符识别。该主机计算设备生成标识用户界面对象和用户交互的基于对象的测试脚本。该主机计算设备可使用计算机视觉算法在由不同的测试计算设备执行的应用的显示界面中标识该用户界面对象。该主机计算设备对检测到的用户界面对象执行该指定的用户交互。描述了其他实施例并要求它们的权利。
Description
背景
当前,巨大数量且各种各样的应用程序(“应用”)可用于许多不同的计算平台。然而,随着应用的数目以及可执行这些应用的计算设备的数目的增加,应用验证和测试变成越来越困难的问题。应用验证和测试可要求测试者设计出模仿与应用的现实世界人类交互的测试实例。在一些情况下,测试者可被要求针对具有不同形状因素(例如,屏幕尺寸、长宽比等)的多个计算设备来验证同一应用。
典型的应用测试系统可能对于缩放以支持在大量不同的设备上测试一应用有困难。例如,某些应用测试系统可用硬编码坐标系来记录描述到该应用的用户输入的脚本。然而,那些基于坐标的系统无法跨具有不同形状因素的设备缩放。作为另一实例,某些应用测试系统可允许测试者基于操纵操作系统级用户界面控件(诸如由AndroidTM提供的UIAutomator框架)来通过编程写脚本。然而,编程用户界面脚本化通常比记录脚本要劳动密集的多,并且无法用于基于不同的底层操作系统和/或用户界面框架来测试应用。具体地,许多游戏不使用系统提供的用户界面框架,并且因此无法用编程用户界面脚本化来进行测试。
附图简述
在所附的附图中,以示例方式而不是以限制方式示出本文中中所述的多个概念。为说明简单和清楚起见,附图中所示出的元件不一定是按比例绘制的。在认为合适的情况下,已在多个附图之间重复了参考标号以指示对应的或类似的元件。
图1是用于进行设备无关的自动化应用测试的系统的至少一个实施例的简化框图;
图2是可由图1的系统建立的各环境的至少一个实施例的简化框图;
图3是可由图1和图2的计算设备执行的用于记录基于对象的测试脚本的方法的至少一个实施例的简化流程图;
图4是可由图1和图2的计算设备执行的用于回放基于对象的测试脚本的方法的至少一个实施例的简化流程图;以及
图5是可由图1和图2的系统执行的用于进行设备无关的应用测试的方法的示意性图示。
具体实施方式
尽管本公开的概念易于具有各种修改和替代形式,但是,在附图中已作为示例示出了并将在本文中详细描述本公开的特定实施例。然而,应该理解,没有将本公开的概念限制于所公开的特定形式的意图,而相反,意图旨在涵盖符合本公开和所附权利要求书的所有修改、等效方案和替代方案。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可包括或可以不一定包括该特定特征、结构或特性。此外,此类短语不一定是指同一个实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合无论是否明确描述的其他实施例来实施这样的特征、结构或特性在本领域技术人员的知识范围之内。附加地,应当领会,以“A、B和C中的至少一者”的形式包括列表中的项可意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中的至少一者”的形式列出的项可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在一些情况下,所公开的各实施例可在硬件、固件、软件或其任何组合中实现。所公开的多个实施例也可被实现为由一个或多个瞬态或非瞬态机器可读(例如,计算机可读)存储介质承载或被存储在其上的指令,这些指令可由一个或多个处理器读取和执行。机器可读存储介质可以被具体化为用于以可由机器可读取的形式存储或传输信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
在附图中,某些结构或方法特征可按特定安排和/或排序示出。然而,应当理解,此类特定安排和/或排序可能不是必需的。相反,在某些实施例中,这样的特征可按与在说明性附图中示出的不同的方式和/或顺序来安排。此外,在特定附图中包括结构或方法特征不意味着暗示在所有实施例中都需要这样的特征,并且在某些实施例中,可以不包括这样的特征,或它们可以与其他特征相结合。
现参考图1,在一说明性实施例中,用于进行设备无关的应用测试的系统100包括可通过网络106进行通信的主机计算设备102和一个或多个测试计算设备104。说明性系统100包括两个测试计算设备104a、104b;然而,应当理解,在一些实施例中,系统100可包括不同数目的测试计算设备104。在使用时,如以下更详细描述的,主机计算设备102连接到测试集散设备104a并开始应用测试会话。在应用测试会话期间,用户操作测试计算设备104a的应用,例如进行用户界面交互以测试应用的功能。在应用测试会话期间,主机计算设备102记录用户界面事件以及由测试计算设备104a生成的显示界面的视频。主机计算设备102使用计算机视觉算法分析视频数据以标识与用户界面事件相关联的用户界面对象(例如,按钮、菜单项等),并基于应用测试会话来生成基于对象的测试脚本。在生成测试脚本后,主机计算设备102可开始与另一测试计算设备104b的应用测试会话。测试计算设备104a、104b可具有不同的形状因素、不同的操作系统,或在其他方面不同。主机计算设备102通过分析测试计算设备104b的显示界面以标识用户界面对象并对用户界面对象执行脚本化动作来回放基于对象的测试脚本。由此,系统100可促成对各种不同的测试计算设备104的自动化测试,同时要求用户仅记录单个应用测试会话。此外,与编程测试脚本化相比,系统100可通过允许脚本记录来改进效率,并可用于测试支持不同脚本化环境的计算设备104(例如,测试具有不同的底层操作系统和/或用户界面框架的计算设备104)。
主机计算设备102可被具体化为能够执行本文中描述的功能的任何类型的计算或计算机设备,包括而不限于计算机、台式计算机、工作站、膝上型计算机、笔记本计算机、平板计算机、可移动计算设备、可穿戴计算设备、网络设备、web设备、分布式计算系统、基于处理器的系统和/或消费电子设备。如图1中所示,作为说明,主机计算设备102包括处理器120、输入/输出子系统122、存储器124、数据存储设备126以及通信电路系统128。当然,在其他实施例中,主机计算设备102可包括其他或额外的组件,诸如通常在台式计算机中发现的那些设备(例如,各种输入/输出设备)。另外,在某些实施例中,说明性组件中的一者或多者可以被合并在另一组件中,或能以其他方式形成另一组件的部分。例如,在某些实施例中,存储器124或其多个部分可以被合并在处理器120中。
处理器120可以被具体化为能够执行本文中所描述的功能的任何类型的处理器。例如,处理器120可以被具体化为(诸)单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。类似地,存储器124可以具体化为能够执行本文中所描述的功能的任何类型的易失性或非易失性存储器或数据存储设备。在操作中,存储器124可以存储在主机计算设备102的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库以及驱动程序。存储器124可经由I/O子系统122通信地耦合到处理器120,该I/O子系统122可以具体化为用于促进与主机计算设备102的处理器120、存储器124以及其他组件之间的输入/输出操作的电路系统和/或组件。例如,I/O子系统122可以具体化为或以其他方式包括,存储器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即,点对点链路、总线链路、线路、电缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他组件和子系统。在一些实施例中,I/O子系统122可以形成片上系统(SoC)的部分,并可与主机计算设备102的处理器120、存储器124及其他组件一起被合并在单个的集成电路芯片上。
数据存储设备126可以被具体化为配置成用于数据的短期或长期存储的任何类型的设备,诸如例如,存储器设备和电路、存储器卡、硬盘驱动器,固态驱动器,或其他数据存储设备。主机计算设备102的通信电路系统128可以被具体化为使得能够在主机计算设备102、测试计算设备104和/或其他远程设备之间直接地或通过网络106进行通信的任何通信电路、设备或其集合。通信电路系统128可被配置成使用任何一种或更多种通信技术(例如,无线或有线通信)和相关联的协议(例如,直接串行通信、USB通信、以太网、 WiMAX等)来实行这样的通信。
此外,主机计算设备102还可包括显示器130和相机132。显示器130可被具体化为能够显示数字信息的任何类型的显示器,诸如液晶显示器(LCD)、发光二极管(LED)、激光显示器、阴极射线管(CRT)或其他类型的显示设备。如以下所描述的,显示器130可被用于向主机算设备102的用户显示图像用户界面或其他信息。此外,在一些实施例中,主机计算设备102可包括耦合到显示器130的触摸屏。触摸屏可被用来记录与测试计算设备104的用户输入类似的用户输入,如以下进一步描述的。
相机132可被具体化为与主机计算设备102集成或以其他方式与其通信地耦合的数字相机或其他数字成像设备。相机132包括诸如有源像素传感器(APS)之类的电子图像传感器,例如互补式金属氧化物半导体(CMOS)传感器或电荷耦合器件(CCD)。相机132可被用来捕捉由测试计算设备104中的一者或多者呈现的用户界面的图像,在一些实施例中包括捕捉静止图像或视频图像。
测试计算设备104中的每一者都被配置成执行被测试的应用,并且在一些实施例中,向主机计算设备102提供关于用户交互及应用的界面的数据,和/或对主机计算设备102发起的命令作出响应。每一测试计算设备104可被具体化为能够执行本文中描述的功能的任何类型的计算或计算机设备,包括而不限于移动计算设备、智能电话、平板计算机、可穿戴计算设备、计算机、膝上型计算机、台式计算机、多处理器系统、服务器、安装在支架上的服务器、刀片服务器、网络设备、web设备、分布式计算系统、基于处理器的系统和/或消费电子设备。每一测试计算设备104都可包括通常在智能电话或类似的计算设备中发现的组件和设备,诸如处理器140、I/O子系统142、存储器144、数据存储设备146、通信电路系统148、显示器150和/或其他外围设备。测试计算设备104的那些个体组件可以类似于主机计算设备102的对应组件,对主机计算设备102的描述适用于测试计算设备104的对应组件,此处不作重复,以免使本公开含糊。
此外,在一些实施例中,每一测试计算设备104可包括触摸屏152。触摸屏152可被具体化为能够响应于测试计算设备104的用户的触摸而生成输入数据的任何类型的触摸屏。触摸屏152可被具体化为例如电阻式触摸屏、电容式触摸屏,或基于相机的触摸屏。
如以下更详细讨论的,主机计算设备102和测试计算设备104可被配置成通过网络106彼此和/或与系统100的其他设备传送和接收数据。网络106可被具体化为任意数量的各种有线和/或无线网络。例如,网络106可被具体化为或以其他方式包括,有线或无线局域网(LAN)、有线或无线广域网(WAN)、蜂窝网络、和/或诸如因特网之类的可公开地访问的全球网络。如此,网络106可包括任意数量的额外的设备,诸如用于促成系统100的设备之间的通信的额外的计算机、路由器和交换机。附加地或替换地,主机计算设备102可例如通过直接串行连接、直接USB连接、直接无线连接,或其他直接连接与一个或多个测试计算设备104直接通信。
虽然被解说为包括诸分开的测试计算设备104,但应理解,在一些实施例中,这些测试计算设备104中的一者或多者的功能可由主机计算设备102来执行。例如,主机计算设备102可执行与一个或多个测试计算设备104相关联的平台模拟器。
现参考图2,在说明性实施例中,测试计算设备104在操作期间建立环境200。说明性环境200包括测试界面模块202和应用模块204。环境200的各种模块可被具体化为硬件、固件、软件或其组合。例如,环境200的各模块、逻辑和其他组件可形成测试计算设备104的处理器140或其他硬件组件的一部分,或以其他方式由测试计算设备104的处理器140或其他硬件组件建立。由此,在一些实施例中,环境200的诸模块中的任何一者或多者可被具体化为电气设备的电路或集合(例如,测试界面电路或应用电路等)。
测试界面模块202被配置成在应用测试会话期间与主机计算设备102进行通信。例如,测试界面模块202可被配置成接收来自主机计算设备102的开始或停止应用测试记录会话或应用测试回放会话的命令,并且测试界面模块202可被配置成接收来自主机计算设备102的对应于所请求的用户界面动作的命令。测试界面模块202还可被配置成向主机计算设备102传送信息,诸如用户界面事件数据或显示界面数据。
应用模块204被配置成在应用测试会话期间执行应用206。在一些实施例中,应用模块204可被配置成例如通过向应用206发出合成用户界面事件来控制应用206。应用206可被具体化为由测试计算设备104执行的计算机程序,诸如本机应用、web应用、字节代码应用或任何其他可执行应用。应用206的特定格式、底层操作系统或应用工具包、或者其他特性可取决于执行应用206的特定测试计算设备104。在执行期间,应用206创建和/或管理显示界面208,该用户界面208可被显示在测试计算设备104的显示器150上。显示界面208可被具体化为图形用户界面,并且可包括多个用户界面对象,诸如按钮、菜单项、文本标签、图像或其他用户界面控件。显示界面208的尺寸、布局、外观、语言和其他特性也可取决于执行应用206的特定测试计算设备104。
仍参考图2,在说明性实施例中,主机计算设备102在操作期间建立环境220。说明性环境220包括记录模块222、对象检测模块224、脚本变换模块230、测试评估模块232和自动化模块234。环境220的各种模块可被具体化为硬件、固件、软件或其组合。例如,环境220的各模块、逻辑和其他组件可形成主机计算设备102的处理器120或其他硬件组件的一部分,或以其他方式由主机计算设备104的处理器140或其他硬件组件建立。由此,在一些实施例中,环境220的诸模块中的任何一者或多者可被具体化为电气设备的电路或集合(例如,记录电路、对象检测电路等)。
记录模块222被配置成记录由测试计算设备104生成的用户界面事件。每一用户界面事件对应于与由测试计算设备104的应用206生成的显示界面208的用户交互。记录模块222被进一步配置成记录指示测试计算设备104的显示界面208的视频数据。视频数据对应于所记录的用户界面事件。记录模块222可被配置成使用主机计算设备102的屏幕捕捉软件和/或相机132来捕捉视频。
对象检测模块224被配置成用计算机视觉算法来检测与视频数据中的用户界面事件相关联的一个或多个用户界面对象。计算机视觉算法可包括任何合适的算法,诸如图像特征检测算法和/或光学字符识别算法。对象检测模块224可被进一步配置成确定特定用户界面对象是否用计算机视觉算法在由应用206(例如在被不同的测试计算设备104执行时)生成的显示界面208中被检测到。在一些实施例中,那些功能可由一个或多个子模块(诸如特征检测模块226和/或光学字符识别模块228)执行。
脚本变换模块230被配置成生成基于对象的测试脚本,包括一个或多个基于对象的命令。每一基于对象的脚本命令都标识用户界面对象及相关联的用户交互。基于对象的脚本命令可使用可由对象检测模块224用计算机视觉算法检测到的数据(诸如参考图像)来标识用户界面对象。基于对象的脚本命令可被存储在脚本数据236中,例如作为脚本文件或其他计算机程序。
测试评估模块232被配置成从测试脚本中(例如,从脚本数据236中)读取基于对象的脚本命令。如上所述,每一基于对象的脚本命令都标识用户界面对象及相关联的用户交互。用户界面对象的标识可被对象检测模块224用来确定是否在测试计算设备104的显示界面208中检测到了该用户界面对象,如以上所描述的。测试评估模块232可被配置成在该用户界面对象被检测到的情况下指示测试成功,并在该用户界面对象没有被检测到的情况下指示测试失败。测试评估模块232可被进一步配置成在用户界面对象没有被自动检测到的情况下,基于用户输入来确定该用户界面对象的偏移。
自动化模块234被配置成对测试计算设备104的应用206的相关联的用户界面对象执行由测试脚本命令指定的用户交互。例如,自动化模块234可被配置成用测试计算设备104生成对用户界面对象的合成用户选择,或用机器人致动器来操作测试计算设备104。
虽然环境200被解说为由分开的测试计算设备104建立,但应当理解,在一些实施例中,环境200的部分或全部可由主机算设备102建立。例如,在一些实施例中,测试界面模块202和/或应用模块204可由主机计算设备102使用与一个或多个测试计算设备104相关联的平台模拟器来建立。
现在参考图3,在使用中,主机计算设备102可执行用于记录基于对象的测试脚本的方法300。方法300始于框302,在框302,主机计算设备102连接到测试计算设备104a。如上所述,主机计算设备102可使用,例如,直接串行连接、直接USB连接、或直接无线连接来直接连接到测试计算设备104a。在一些实施例中,主机计算设备102可使用网络106连接到测试计算设备104a。
在框304,主机计算设备102开始针对由测试计算设备104a执行的应用206的应用测试记录会话。主机计算设备102可执行使得测试计算设备104a执行被测试的应用206所需的任何配置、初始化或其他操作。例如,主机计算设备102可侧向加载或以其他方式向测试计算设备104a提供与应用206相对应的二进制代码。在一些实施例中,在框306,主机计算设备102可使得测试计算设备104a启动应用206。例如,主机计算设备105可向测试计算设备104a发送消息或其他命令来启动应用206。在一些实施例中,测试计算设备104a可用特殊的测试模式或包括特殊的测试代码(例如,调试模式、操纵的执行等)启动应用206。附加地或替换地,在一些实施例中,用户可在测试计算设备104a上手动地启动应用206。
在框308,主机计算设备102记录由用户用测试计算设备104a执行的应用测试会话。作为应用测试会话的一部分,用户操作测试计算设备104a来例如测试应用206所提供的功能。用户可选择应用206中的用户界面对象、录入数据、并以其他方式与应用206所提供的显示界面208进行交互。
在框310,主机计算设备102记录由测试计算设备104a生成的用户界面事件。每一用户界面事件对应于与测试计算设备104a的用户交互或用户交互群组。例如,用户界面事件可被具体化为选择事件、鼠标点击事件、触摸事件、键盘事件或其他用户界面事件。主机计算设备102可以记录处于各种粒度水平的用户界面事件(例如,诸如点击、轻击、滑扫等较高水平事件,和/或诸如鼠标按下、鼠标抬起、触摸按下、触摸抬起等较低水平事件)。用户界面事件包括基于坐标的数据,该基于坐标的数据可被用来标识在应用206的显示界面208中的与用户界面事件(例如,触摸点或点击点)相关联的位置。主机计算设备102可使用任何技术来记录用户界面事件;例如,主机计算设备102可接收来自窗口服务器、输入设备驱动器、或测试计算设备104a的其他组件的用户界面事件。在一些实施例中,主机计算设备102可接收或生成基于坐标的脚本文件,该基于坐标的脚本文件包括对应于用户界面事件中的每一者的脚本命令。
在框312,主机计算设备102记录由测试计算设备104a执行的应用206的显示界面208的视频。主机计算设备102可例如使用相机132来在应用206的执行期间记录测试计算设备104a的显示器150的内容的视频。在一些实施例中,主机计算设备102和/或测试计算设备104a可使用高速屏幕捕捉软件来记录视频,以记录表示由应用206生成的显示界面208的帧缓存数据或其他图像数据,而无需使用相机132。
在框314,主机计算设备102确定用户是否完成了记录应用测试会话。主机计算设备102可,例如,确定用户是否已终止了应用206、已选择了用于停止记录的用户界面命令、或者已以其他方式指示了应用测试会话被完成。如果应用测试记录会话没有被完成,则方法300循环回到框308以继续记录应用测试会话。如果应用测试会话已完成,则方法300前进到框316。
在框316,主机计算设备102通过用一个或多个计算机视觉算法分析视频数据来检测与用户界面事件相关联的用户界面对象。用户界面对象可包括按钮、菜单项、文本标签、图像、或由用户选择或以其他方式操纵的其他用户界面控件。在一些实施例中,在框318,主机计算设备102可执行图像特征检测来检测用户界面对象。例如,主机计算设备102可从用户界面事件的坐标(例如,触摸坐标)开始寻找最接近100的特征点(或者另一数目的特征点)。主机计算设备102可使用任何合适的特征检测算法,诸如SIFT、SURF和/或AKAZE。在一些实施例中,在框320,主机计算设备102可执行光学字符识别来检测用户界面对象。例如,主机计算设备102可确定位于用户界面事件的坐标处的按钮的文本标签。附加地或替换地,主机计算设备102可执行任何其他合适的算法或算法组合来检测用户界面对象。例如,在一些实施例中,主机计算设备102可执行利用机器学习的通用对象检测。
在框322,主机计算设备102生成基于对象的测试脚本,该基于对象的测试脚本包括一个或多个基于对象的脚本命令。每一基于对象的脚本命令指定要对界面对象执行的动作。指定的动作可对应于记录的用户界面事件(例如,触摸、点击或其他事件),并且界面对象对应于用计算机视觉算法检测到的界面对象。用户界面对象可使用由以上结合框316描述的计算机视觉算法产生的任何数据和/或可由计算机视觉算法检测到的任何数据来标识。例如,主机计算设备102可存储与用户界面元素相关联的图像数据、与用户界面对象相关联的文本标签或其他信息。在一些实施例中,主机计算设备102可通过用基于对象的脚本命令替换基于坐标的脚本命令来将基于坐标的测试脚本变换为基于对象的脚本。主机计算设备102可将基于对象的测试脚本作为文本文件、计算机程序、或其他数据存储在脚本数据236中和/或其他易失性或非易失性存储中。如以下结合图4进一步描述的,基于对象的测试脚本可稍后由主机计算设备102回放以测试应用206。在一些实施例中,在框324,主机计算设备102可存储可用于标识用户界面对象的一个或多个参考对象。例如,主机计算设备102可存储包括与如以上结合框318来描述的用户界面对象相关联的最接近100的特征点的图像文件。
在于框322生成基于对象的测试脚本后,方法300循环回到框302,在框302,主机计算设备102可继续记录应用测试会话。附加地或替换地,虽然被描述为顺序地记录应用会话、检测用户界面对象和生成基于对象的测试脚本,但应当理解,主机计算设备102可按任何合适的次序或平行地执行那些操作。
现在参考图4,在使用中,主机计算设备102可执行用于回放基于对象的测试脚本的方法400。方法400始于框402,在框402,主机计算设备102连接到测试计算设备104b。如上所述,主机计算设备102可使用例如直接串行连接、直接USB连接、或直接无线连接来直接连接到测试计算设备104b。在一些实施例中,主机计算设备102可使用网络106连接到测试计算设备104b。
在框404,主机计算设备102针对由测试计算设备104b执行的应用206开始应用测试回放会话。主机计算设备102可执行使得测试计算设备104b执行应用206所需的任何配置、初始化或其他操作。例如,主机计算设备102可侧向加载或以其他方式向测试计算设备104b提供与应用206相对应的二进制代码。在一些实施例中,在框406,主机计算设备102可使得测试计算设备104b启动应用206。例如,主机计算设备105可向测试计算设备104a发送消息或其他命令来启动应用206。在一些实施例中,测试计算设备104b可用特殊的测试模式或包括特殊的测试代码(例如,调试模式、操纵的执行等)启动应用206。附加地或替换地,在一些实施例中,用户可在测试计算设备104b上手动地启动应用206。
在框408,主机计算设备102读取用于标识要对用户界面对象执行的用户界面动作的一个或多个测试脚本命令。主机计算设备102可从包括如以上结合图3所描述的由主机计算设备102在先前记录的测试脚本在内的脚本数据236中读取测试脚本命令。由此,可能已使用与当前应用测试回放会话的测试计算设备104b不同的测试计算设备104a记录了测试脚本。在一些实施例中,测试计算设备104a、104b可具有不同的形状因素(例如,不同的显示器150尺寸、高宽比、和/或分辨率)、不同的用户输入设备、和其他不同的硬件。在一些实施例中,测试计算设备104a、104b可具有不同的软件环境(例如,不同的操作系统、不同的应用工具包、不同的语言设置等)。当然,虽然被解说为在不同的测试计算设备104a、104b上记录和回放测试脚本,但应当理解,在一些实施例中,测试脚本可使用相同的测试计算设备104来记录和回放。在一些实施例中,在框410,主机计算设备102读取与测试脚本命令相关联的参考对象。例如,主机计算设备102可读取与用户界面对象相关联的参考图像文件。
在框412,主机计算设备102在由测试计算设备104b的应用206生成的显示界面208中检测用户界面对象。如上所述,用户界面对象可包括按钮、菜单项、文本标签、图像、或可由用户选择或以其他方式操纵的其他用户界面控件。主机计算设备102通过对显示界面208的图像数据执行一个或多个计算机视觉算法来检测用户界面对象。检测用户界面对象可包括确定在与用户界面对象相关联的显示界面208内的坐标和/或边界。
在一些实施例中,在框414,主机计算设备102可执行图像特征检测来检测用户界面对象。例如,计算设备可寻找显示界面208内具有匹配与测试脚本相关联的参考图像的特征的图像数据。如上所述,主机计算设备102可使用任何合适的特征检测算法,诸如SIFT、SURF和/或AKAZE。
在一些实施例中,在框416,主机计算设备102可执行光学字符识别来检测用户界面对象。例如,主机计算设备102可确定显示界面208中的按钮或其他用户界面对象的文本标签,并搜索匹配与测试脚本相关联的文本标签的文本标签。在一些实施例中,在框418,主机计算设备102可在搜索文本界面对象时将字典映射应用于与测试脚本和/或显示界面208相关联的文本数据。例如,该文本可被映射成另一自然语言(例如,被从英语转换为中文)以测试已被本地化或以其他方式转换为不同语言的应用206。
在框420中,主机计算设备102确定是否在显示界面208中成功检测到用户界面对象。如果如此,则方法400向前分支到框428,如以下所描述的。如果没有检测到用户界面对象,则方法400前进到框422。
在框422,主机计算设备102确定是否允许对用户界面对象检测的手动超驰。如以下所描述的,手动超驰可允许主机计算设备102的用户手动地指定合适的用户界面对象。为了确定是否允许手动超驰,主机计算设备102可例如提示用户是否要执行手动超驰。在一些实施例中,主机计算设备102可能不支持手动超驰,并且由此可总是确定不允许手动超驰。如果主机计算设备102允许手动超驰,则方法400前进到框426,如以下所描述的。如果主机计算设备102不允许手动超驰,则方法400分支到框424,在框424,主机计算设备102可指示测试失败。主机计算设备102可使用任何技术来指示失败,诸如通知用户,执行失败脚本命令和/或记录错误。在指示测试失败后,方法400可完成。在一些实施例中,在指示了测试失败后,方法400可向前分支到框430以处理附加的测试脚本命令,如以下所描述的。
回过头参考框422,如果手动超驰是可用的,则方法400前进到框426,在框426,主机计算设备102基于用户输入确定到用户界面对象的偏移。手动指定的偏移可允许主机计算设备102标识改变了外观(例如,图形外观、文本标签等),但与显示界面208的可标识特征维持相同的相对位置的用户界面对象。例如,主机计算设备102可根据显示界面208的可标识特征(诸如图形图像)来确定与用户选择的相对偏移。作为另一示例,主机计算设备102可基于用户选择在测试计算设备104b的显示界面208和/或显示器150内的位置来确定绝对偏移。在确定该偏移之后,方法400前进到框428。
回过头参考框420,如果用户界面对象被检测到,则方法400向前分支到框428,在框428,主机计算设备102对用户界面对象执行由(诸)测试脚本命令指定的动作。主机计算设备102可执行测试脚本命令中描述的任何合适的用户界面动作。例如,主机计算设备102可执行触摸事件、执行鼠标点击、执行按键按压、等待预定事件或执行另一用户界面动作。在一些实施例中,主机计算设备102可例如通过向测试计算设备104b传送命令来使得测试计算设备104b生成合成用户界面事件。附加地或替换地,主机计算设备102可通过使用机器人致动器操作测试计算设备104b来执行用户界面动作。例如,主机计算设备102可使用机器人手指来触摸测试计算设备104b的触摸屏152上的用户界面对象。
在框430,主机计算设备102确定测试脚本中是否还余留附加的测试脚本命令。如果如此,则方法400循环回框408以继续处理测试脚本命令。如果没有附加的测试脚本命令余留,则方法400前进到框432,在框432,主机计算设备102可指示测试成功。主机计算设备102可使用任何技术来指示成功,诸如通知用户,执行成功脚本命令和/或记录成功。在指示测试成功后,方法400可完成。主机计算设备102可重复地执行方法400来测试附加的测试计算设备104和/或附加的应用206。
现参考图5,示意图500示出用于进行设备无关的应用测试的系统100的一个潜在实施例的操作。如以上结合图3所描述的,主机计算设备102可记录测试计算设备104a所执行的应用测试会话。在说明性实施例中,测试计算设备104a的应用206是生成显示界面502的游戏。如所示出的,显示界面502包括若干用户界面对象,包括自定义图形和按钮。
在记录应用测试会话时,用户在点504处触摸显示界面502。如上所述,测试计算设备104a可生成与那个触摸事件相关联的一个或多个用户界面事件。在该说明性实施例中,测试计算设备104a生成由基于坐标的测试脚本506解说的向下触摸事件和触摸抬起事件。说明性的基于坐标的测试脚本506中的每一语句都包括数字标签、时间戳、操作码、以及与操作码相关联的参数。由此,该说明性的基于坐标的测试脚本506包括具有分别对应于由测试计算设备104a生成的向下触摸事件和触摸抬起事件的操作码OPCODE_TOUCHDOWN和OPCODE_TOUCHUP的语句508、510。在该说明性实施例中,语句508、510的参数表示触摸点504在显示界面502内的经标准化的绝对坐标。
如以上结合图3的框316描述的,主机计算设备102分析显示界面502的视频数据以标识与用户界面事件相关联的用户界面对象。在该说明性实施例中,主机计算设备102执行图像特征检测算法来标识显示界面502的包括最接近触摸点504的100个特征点的区域512。主机计算设备102可提取区域512以生成对应于用户界面对象的参考图像514。附加地或替换地,主机计算设备102可执行光学字符识别来标识包括触摸点504的用户界面对象。例如,在该说明性实施例中,主机计算设备102可确定文本标签“开始游戏”所表示的用户界面对象。
如以上结合图3的框322所描述的,主机计算设备102基于记录的用户界面事件以及检测到的用户界面对象来生成基于对象的测试脚本516。在该说明性实施例中,基于对象的测试脚本516使用与基于坐标的测试脚本506类似的语法,但包括一个或多个基于对象的操作码。例如,在该说明性实施例中,语句518包括操作码OPCODE_IF_MATCH_IMAGE_WAIT,该操作码对应于确定应用206是否在指定时间限制内显示了参考图像,并基于是否检测到该参考图像而分支到指定的脚本语句。在该说明性实施例中,语句518对应于在5000毫秒的时间限制内检测参考图像514,并指示不管是否检测到该图像都应执行语句520。当然,在一些实施例中,如果没有检测到该图像,则可执行替换语句(诸如,错误报告、手动超驰或其他功能)。附加地或替换地,基于对象的测试脚本可对应于使用其他算法或多个算法的组合来匹配用户界面对象。例如,脚本命令可包括用于使用光学字符识别算法来标识用户界面对象的文本数据(例如,该说明性实施例中的文本数据“开始游戏”)。
基于对象的测试脚本516中的语句520包括操作码OPCODE_TOUCHDOWN_MATCHED_IMAGE_XY,该操作码对应于在相对于匹配的参考图像的特定坐标处生成向下触摸事件。在该说明性实施例中,语句520对应于在相对于参考图像514的坐标-3,-45处生成向下触摸事件。语句520还包括在没有检测到参考图像514的情况下可使用的经标准化的绝对坐标。语句522包括操作码OPCODE_TOUCHUP_MATCHED_IMAGE_XY,该操作码类似地对应于在相对于匹配的参考图像的指定坐标处生成触摸抬起事件。
如以上结合图4描述的,主机计算设备102可回放基于对象的测试脚本516以在与用于记录基于对象的测试脚本516的测试计算设备104a不同的测试计算设备104b上测试应用206.在说明性实施例中,在回放期间,测试计算设备104b的应用206生成显示界面524。如所示出的,显示界面524具有与原始显示界面502相比不同的高宽比,并且由此具有用户界面对象的不同布局。如以上所描述的,在其他实施例中,显示界面502、524也可具有不同的尺寸、分辨率或其他特性。
在回放基于对象的测试脚本516时,主机计算设备102读取脚本命令,并分析显示界面524来标识用户界面对象。例如,主机计算设备102可读取语句518,并随后分析显示界面524来定位匹配参考图像514的区域512。在匹配参考图像514后,主机计算设备102可读取语句520,并且随后在匹配参考图像514的区域512内的触摸点526处生成向下触摸事件。如所示出的,触摸点526具有与原始触摸点504相比不同的绝对坐标。类似地,主机计算设备102可读取语句522,并且随后在触摸点526处生成触摸抬起事件。由此,测试计算设备104b可基于由主机计算设备102生成的用户界面动作继续执行应用206。
附加地或替换地,在一些实施例中,主机计算设备102可使用其他算法或算法组合来匹配在基于对象的测试脚本516中指定的用户界面对象。例如,在一些实施例中,主机计算设备102可对显示界面524执行光学字符识别以检测指定的用户界面对象。由此,在该说明性实施例中,主机计算设备102可在显示界面524中搜索文本数据“开始游戏”。如以上所描述的,在一些实施例中,主机计算设备102可将基于对象的测试脚本和/或显示界面524的文本数据转换成可被用来匹配用户界面对象的替换语言。
示例
下面提供了本文中所公开的技术的说明性示例。这些技术的实施例可包括下面所描述的示例中的任何一个或多个以及其任何组合。
示例1包括一种用于进行应用测试的计算设备,所述计算设备包括:记录模块、对象检测模块、以及脚本变换模块,所述记录模块用于(i)记录由测试计算设备生成的用户界面事件,其中所述用户界面事件对应于与由所述测试计算设备的应用生成的显示界面的用户交互,以及(ii)记录指示所述测试计算设备的显示界面的视频数据,其中所述视频数据对应于所述用户界面事件;所述对象检测模块用于检测所述视频数据中的用户界面对象,其中所述用户界面对象与所述用户界面事件相关联;所述脚本变换模块用于生成基于对象的脚本命令,其中所述基于对象的脚本命令标识所述用户界面对象以及所述用户交互。
示例2包括如示例1所述的主题,并且其中所述用户界面事件包括用户选择事件。
示例3包括如示例1和2中的任一项所述的主题,并且其中所述用户选择事件包括触摸事件、点击事件或定点事件。
示例4包括如示例1-3中的任一项所述的主题,并且其中检测所述视频对象中的用户界面对象包括用图像特征检测计算机视觉算法来检测所述用户界面对象。
示例5包括如示例1-4中的任一项所述的主题,并且其中生成基于对象的脚本命令包括存储与所述用户界面对象相关联的图像数据。
示例6包括如示例1-5中的任一项所述的主题,并且其中检测所述视频对象中的用户界面对象包括用光学字符识别计算机视觉算法来检测所述用户界面对象。
示例7包括如示例1-6中的任一项所述的主题,并且其中生成基于对象的脚本命令包括存储与所述用户界面对象相关联的文本数据。
示例8包括如示例1-7中的任一项所述的主题,并且其中记录所述视频数据包括用所述计算设备的相机来记录所述视频数据。
示例9包括如示例1-8中的任一项所述的主题,并且其中所述对象检测模块还用于确定所述用户界面对象是否在由第二测试计算设备的应用生成的第二显示界面中被检测到;以及所述计算设备进一步包括自动化模块,所述自动化模块用于响应于对所述用户界面对象被检测到的确定来对所述第二测试计算设备的应用的所述用户界面对象执行所述用户交互。
示例10包括如示例1-9中的任一项所述的主题,并且进一步包括用于响应于所述用户交互的执行而指示测试成功的测试评估模块。
示例11包括如示例1-10中的任一项所述的主题,并且进一步包括用于响应于对所述用户界面对象没有被检测到的确定而指示测试失败的测试评估模块。
示例12包括如示例1-11中的任一项所述的主题,并且进一步包括用于响应于对所述用户界面对象没有被检测到的确定而基于用户输入来确定所述用户界面对象的偏移的测试评估模块;其中执行所述用户交互进一步包括基于所述用户界面对象的偏移来执行所述用户交互。
示例13包括如示例1-12中的任一项所述的主题,并且其中所述记录模块还用于用所述计算设备的相机来捕捉所述第二测试计算设备的所述第二显示界面;并且确定所述用户界面对象是否被检测到包括响应于所述第二测试计算设备的所述第二显示界面的捕捉而确定所述用户界面对象是否被检测到。
示例14包括如示例1-13中的任一项所述的主题,并且其中确定所述用户界面对象是否被检测到进一步包括使用字典映射将与所述用户界面对象相关联的文本数据映射成第二文本数据。
示例15包括如示例1-14中的任一项所述的主题,并且其中对所述第二测试计算设备的应用的用户界面对象执行所述用户交互包括用所述第二测试计算设备生成对所述用户界面对象的合成用户选择。
示例16包括如示例1-15中的任一项所述的主题,并且其中对所述第二测试计算设备的应用的用户界面对象执行所述用户交互包括用机器人致动器操作所述第二测试计算设备。
图17包括一种用于进行应用测试的计算设备,所述计算设备包括:测试评估模块、对象检测模块、以及自动化模块,所述测试评估模块用于读取来自测试脚本的基于对象的脚本命令,其中所述基于对象的脚本命令标识用户界面对象和用户交互;所述对象检测模块用于确定所述用户界面对象是否在由测试计算设备的应用生成的显示界面中被检测到;所述自动化模块用于响应于对所述用户界面对象被检测到的确定而对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互。
示例18包括如示例17所述的主题,并且其中所述测试评估模块进一步用于响应于所述用户交互的执行而指示测试成功。
示例19包括如示例17和18中的任一项所述的主题,并且其中所述测试评估模块还用于响应于对所述用户界面对象没有被检测到的确定而指示测试失败。
示例20包括如示例17-19中的任一项所述的主题,并且其中所述测试评估模块还用于响应于对所述用户界面对象没有被检测到的确定而基于用户输入来确定所述用户界面对象的偏移;并且执行所述用户交互进一步包括基于所述用户界面对象的偏移来执行所述用户交互。
示例21包括如示例17-20中的任一项所述的主题,并且还包括用于用所述计算设备的相机来捕捉所述测试计算设备的所述第二显示界面的记录模块;其中确定所述用户界面对象是否被检测到包括响应于所述测试计算设备的所述显示界面的捕捉而确定所述用户界面对象是否被检测到。
示例22包括如示例17-21中的任一项所述的主题,并且其中确定所述用户界面对象是否在所述显示界面中被检测到包括确定所述用户界面对象是否用图像特征检测计算机视觉算法在所述显示界面中被检测到。
示例23包括如示例17-22中的任一项所述的主题,并且其中确定所述用户界面对象是否在所述显示界面中被检测到包括用光学字符识别计算机视觉算法确定所述用户界面对象是否在所述显示界面中被检测到。
示例24包括如示例17-23中的任一项所述的主题,并且其中确定所述用户界面对象是否被检测到进一步包括使用字典映射将与所述用户界面对象相关联的文本数据映射成第二文本数据。
示例25包括如示例17-24中的任一项所述的主题,并且其中对所述测试计算设备的应用的用户界面对象执行所述用户交互包括用所述测试计算设备生成对所述用户界面对象的合成用户选择。
示例26包括如示例17-25中的任一项所述的主题,并且其中对所述测试计算设备的应用的用户界面对象执行所述用户交互包括用机器人致动器操作所述测试计算设备。
示例27包括一种用于进行应用测试的方法,所述方法包括:由计算设备记录由测试计算设备生成的用户界面事件,其中所述用户界面事件对应于与由所述测试计算设备的应用生成的显示界面的用户交互;由所述计算设备记录指示所述测试计算设备的显示界面的视频数据,其中所述视频数据对应于所述用户界面事件;由所述计算设备检测所述视频数据中的用户界面对象,其中所述用户界面对象与所述用户界面事件相关联;以及,由所述计算设备生成基于对象的脚本命令,其中所述基于对象的脚本命令标识所述用户界面对象以及所述用户交互。
示例28包括如示例27所述的主题,并且其中记录所述用户界面事件包括记录对所述用户界面对象的用户选择。
示例29包括示例27和28中的任一项所述的主题,并且其中记录所述用户选择包括记录触摸事件、点击事件或定点事件。
示例30包括如示例27-29中的任一项所述的主题,并且其中检测所述用户界面对象包括执行图像特征检测计算机视觉算法。
示例31包括如示例27-30中的任一项所述的主题,并且其中生成基于对象的脚本命令包括存储与所述用户界面对象相关联的图像数据。
示例32包括如示例27-31中的任一项所述的主题,并且其中检测所述用户界面对象包括执行光学字符识别计算机视觉算法。
示例33包括如示例27-32中的任一项所述的主题,并且其中生成基于对象的脚本命令包括存储与所述用户界面对象相关联的文本数据。
示例34包括如示例27-33中的任一项所述的主题,并且其中记录所述视频数据包括用所述计算设备的相机来记录所述视频数据。
示例35包括如示例27-34中的任一项所述的主题,并且进一步包括由所述计算设备确定所述用户界面对象是否在由第二测试计算设备的应用生成的第二显示界面中被检测到;以及由所述计算设备响应于确定所述用户界面对象被检测到而对所述第二测试计算设备的应用的所述用户界面对象执行所述用户交互。
示例36包括如示例27-35中的任一项所述的主题,并且进一步包括由所述计算设备响应于执行所述用户交互而指示测试成功。
示例37包括如示例27-36中的任一项所述的主题,并且进一步包括由所述计算设备响应于确定所述用户界面对象没有被检测到而指示测试失败。
示例38包括如示例27-37中的任一项所述的主题,并且进一步包括由所述计算设备响应于确定所述用户界面对象没有被检测到而基于用户输入来确定所述用户界面对象的偏移;其中执行所述用户交互进一步包括基于所述用户界面对象的偏移来执行所述用户交互。
示例39包括如示例27-38中的任一项所述的主题,并且进一步包括由所述计算设备用所述计算设备的相机来捕捉所述第二测试计算设备的所述第二显示界面;其中确定所述用户界面对象是否被检测到包括响应于捕捉所述第二测试计算设备的所述第二显示界面而确定所述用户界面对象是否被检测到。
示例40包括如示例27-39中的任一项所述的主题,并且其中确定所述用户界面对象是否被检测到进一步包括使用字典映射将与所述用户界面对象相关联的文本数据映射成第二文本数据。
示例41包括如示例27-40中的任一项所述的主题,并且其中对所述第二测试计算设备的应用的用户界面对象执行所述用户交互包括用所述第二测试计算设备生成对所述用户界面对象的合成用户选择。
示例42包括如示例27-41中的任一项所述的主题,并且其中对所述第二测试计算设备的应用的用户界面对象执行所述用户交互包括用机器人致动器操作所述第二测试计算设备。
图43包括一种用于进行应用测试的方法,所述方法包括:由计算设备读取来自测试脚本的基于对象的脚本命令,其中所述基于对象的脚本命令标识用户界面对象和用户交互;由所述计算设备确定所述用户界面对象是否在由测试计算设备的应用生成的显示界面中被检测到;以及由所述计算设备响应于确定所述用户界面对象被检测到而对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互。
示例44包括如示例43所述的主题,并且进一步包括由所述计算设备响应于执行所述用户交互而指示测试成功。
示例45包括如示例43和44中的任一项所述的主题,并且进一步包括由所述计算设备响应于确定所述用户界面对象没有被检测到而指示测试失败。
示例46包括如示例43-45中的任一项所述的主题,并且进一步包括由所述计算设备响应于确定所述用户界面对象没有被检测到而基于用户输入来确定所述用户界面对象的偏移;其中执行所述用户交互进一步包括基于所述用户界面对象的偏移来执行所述用户交互。
示例47包括如示例43-46中的任一项所述的主题,并且进一步包括由所述计算设备用所述计算设备的相机来捕捉所述测试计算设备的所述显示界面;其中确定所述用户界面对象是否被检测到包括响应于捕捉所述测试计算设备的所述第显示界面而确定所述用户界面对象是否被检测到。
示例48包括如示例43-47中的任一项所述的主题,并且其中确定所述用户界面对象是否被检测到包括执行图像特征检测计算机视觉算法。
示例49包括如示例43-48中的任一项所述的主题,并且其中确定所述用户界面对象是否被检测到包括执行光学字符识别计算机视觉算法。
示例50包括如示例43-49中的任一项所述的主题,并且其中确定所述用户界面对象是否被检测到进一步包括使用字典映射将与所述用户界面对象相关联的文本数据映射成第二文本数据。
示例51包括如示例43-50中的任一项所述的主题,并且其中对所述测试计算设备的应用的用户界面对象执行所述用户交互包括用所述测试计算设备生成对所述用户界面对象的合成用户选择。
示例52包括如示例43-51中的任一项所述的主题,并且其中对所述测试计算设备的应用的用户界面对象执行所述用户交互包括用机器人致动器操作所述测试计算设备。
示例53包括一种计算设备,所述计算设备包括:处理器;以及其次存储有多个指令的存储器,所述多个指令在由所述处理器执行时使得所述计算设备执行如权利要求27-52中的任一项所述的方法。
示例54包括一种或多种机器可读存储介质,包括存储于其上的多个指令,响应于执行所述多个指令,导致计算设备执行示例27-52中的任一项所述的方法。
示例55包括一种计算设备,包括用于执行示例27-52中的任一项所述的方法的装置。
示例56包括一种用于进行应用测试的计算设备,所述计算设备包括:用于记录由测试计算设备生成的用户界面事件的装置,其中所述用户界面事件对应于与由所述测试计算设备的应用生成的显示界面的用户交互;用于记录指示所述测试计算设备的所述显示界面的视频数据的装置,其中所述视频数据对应于所述用户界面事件;用于检测所述视频数据中的用户界面对象的装置,其中所述用户界面对象与所述用户界面事件相关联;以及,用于生成基于对象的脚本命令的装置,其中所述基于对象的脚本命令标识所述用户界面对象以及所述用户交互。
示例57包括如示例56所述的主题,并且其中用于记录所述用户界面事件的装置包括用于记录对所述用户界面对象的用户选择的装置。
示例58包括如示例56和57中的任一项所述的主题,其中用于记录所述用户选择的装置包括用于记录触摸事件、点击事件或定点事件的装置。
示例59包括如示例56-58中的任一项所述的主题,并且其中用于检测所述用户界面对象的装置包括用于执行图像特征检测计算机视觉算法的装置。
示例60包括如示例56-59中的任一项所述的主题,并且其中用于生成基于对象的脚本命令的装置包括用于存储与用户界面对象相关联的图像数据的装置。
示例61包括如示例56-60中的任一项所述的主题,并且其中用于检测所述用户界面对象的装置包括用于执行光学字符识别计算机视觉算法的装置。
示例62包括如示例56-61中的任一项所述的主题,并且其中用于生成基于对象的脚本命令的装置包括用于存储与所述用户界面对象相关联的文本数据的装置。
示例63包括如示例56-62中的任一项所述的主题,并且其中用于记录所述视频数据的装置包括用于用所述计算设备的相机来记录所述视频数据的装置。
示例64包括如示例56-63中的任一项所述的主题,并且进一步包括用于确定所述用户界面对象是否在在由第二测试计算设备的应用生成的第二显示界面中被检测到的装置,以及用于响应于确定所述用户界面对象被检测到而对所述第二测试计算设备的应用的所述用户界面对象执行所述用户交互。
示例65包括如示例56-64中的任一项所述的主题,并且进一步包括由所述计算设备响应于执行所述用户交互而指示测试成功。
示例66包括如示例56-65中的任一项所述的主题,并且进一步包括用于响应于确定所述用户界面对象没有被检测到而指示测试失败的装置。
示例67包括如示例56-66中的任一项所述的主题,并且进一步包括用于响应于确定所述用户界面对象没有被检测到而基于用户输入来确定所述用户界面对象的偏移的装置;其中用于执行所述用户交互的装置进一步包括用于基于所述用户界面对象的偏移来执行所述用户交互的装置。
示例68包括如示例56-67中的任一项所述的主题,并且进一步包括用于用所述计算设备的相机来捕捉所述第二测试计算设备的所述第二显示界面的装置;其中用于确定所述用户界面对象是否被检测到的装置包括用于响应于捕捉所述第二测试计算设备的所述第二显示界面而确定所述用户界面对象是否被检测到的装置。
示例69包括如示例56-68中的任一项所述的主题,并且其中用于确定所述用户界面对象是否被检测到的装置进一步包括用于使用字典映射将与所述用户界面对象相关联的文本数据映射成第二文本数据的装置。
示例70包括如示例56-69中的任一项所述的主题,并且其中用于对所述第二测试计算设备的应用的用户界面对象执行所述用户交互的装置包括用于用所述第二测试计算设备生成对所述用户界面对象的合成用户选择的装置。
示例71包括如示例56-70中的任一项所述的主题,并且其中用于对所述第二测试计算设备的应用的用户界面对象执行所述用户交互的装置包括用于用机器人致动器操作所述第二测试计算设备的装置。
图72包括一种用于进行应用测试的计算设备,所述计算设备包括:用于读取来自测试脚本的基于对象的脚本命令的装置,其中所述基于对象的脚本命令标识用户界面对象和用户交互;用于确定所述用户界面对象是否在由测试计算设备的应用生成的显示界面中被检测到的装置;以及用于响应于确定所述用户界面对象被检测到而对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互的装置。
示例73包括如示例72所述的主题,并且进一步包括用于响应于执行所述用户交互而指示测试成功的装置。
示例74包括如示例72和73中的任一项所述的主题,并且进一步包括用于响应于确定所述用户界面对象没有被检测到而指示测试失败的装置。
示例75包括如示例72-74中的任一项所述的主题,并且进一步包括用于响应于确定所述用户界面对象没有被检测到而基于用户输入来确定所述用户界面对象的偏移的装置;其中用于执行所述用户交互的装置进一步包括用于基于所述用户界面对象的偏移来执行所述用户交互的装置。
示例76包括如示例72-75中的任一项所述的主题,并且进一步包括用于用所述计算设备的相机来捕捉所述测试计算设备的所述显示界面的装置;其中用于确定所述用户界面对象是否被检测到的装置包括用于响应于捕捉所述测试计算设备的所述显示界面而确定所述用户界面对象是否被检测到的装置。
示例77包括如示例72-76中的任一项所述的主题,并且其中用于确定所述用户界面对象是否被检测到的装置包括用于执行图像特征检测计算机视觉算法的装置。
示例78包括如示例72-77中的任一项所述的主题,并且其中用于确定所述用户界面对象是否被检测到的装置包括用于执行光学字符识别计算机视觉算法的装置。
示例79包括如示例72-78中的任一项所述的主题,并且其中用于确定所述用户界面对象是否被检测到的装置进一步包括用于使用字典映射将与所述用户界面对象相关联的文本数据映射成第二文本数据的装置。
示例80包括如示例72-79中的任一项所述的主题,并且其中用于对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互的装置包括用于用所述测试计算设备生成对所述用户界面对象的合成用户选择的装置。
示例81包括如示例72-80中的任一项所述的主题,并且其中用于对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互的装置包括用于用机器人致动器操作所述测试计算设备的装置。
Claims (25)
1.一种用于进行应用测试的计算设备,所述计算设备包括:
记录模块,所述记录模块用于(i)记录由测试计算设备生成的用户界面事件,其中所述用户界面事件对应于与由所述测试计算设备的应用生成的显示界面的用户交互,以及(ii)记录指示所述测试计算设备的所述显示界面的视频数据,其中所述视频数据对应于所述用户界面事件;
对象检测模块,所述对象检测模块用于检测所述视频数据中的用户界面对象,其中所述用户界面对象与所述用户界面事件相关联;以及
脚本变换模块,所述脚本变换模块用于生成基于对象的脚本命令,其中所述基于对象的脚本命令标识所述用户界面对象以及所述用户交互。
2.如权利要求1所述的计算设备,其特征在于,所述用户界面事件包括用户选择事件,其中所述用户选择事件包括触摸事件、点击事件或定点事件。
3.如权利要求1所述的计算设备,其特征在于:
检测所述视频数据中的用户界面对象包括用图像特征检测计算机视觉算法来检测所述用户界面对象;以及
生成基于对象的脚本命令包括存储与所述用户界面对象相关联的图像数据。
4.如权利要求1所述的计算设备,其特征在于:
检测所述视频数据中的用户界面对象包括用光学字符识别计算机视觉算法来检测所述用户界面对象;以及
生成基于对象的脚本命令包括存储与所述用户界面对象相关联的文本数据。
5.如权利要求1所述的计算设备,其特征在于,记录所述视频数据包括用所述计算设备的相机来记录所述视频数据。
6.如权利要求1-5中的任一项所述的计算设备,其特征在于:
所述对象检测模块进一步用于确定所述用户界面对象是否在由第二测试计算设备的应用生成的第二显示界面中被检测到;以及
所述计算设备进一步包括自动化模块,所述自动化模块用于响应于对所述用户界面对象被检测到的确定而对所述第二测试计算设备的应用的用户界面对象执行所述用户交互。
7.一种用于进行应用测试的计算设备,所述计算设备包括:
测试评估模块,所述测试评估模块用于从测试脚本读取基于对象的脚本命令,其中所述基于对象的脚本命令标识用户界面对象和用户交互;
对象检测模块,所述对象检测模块用于确定所述用户界面对象是否在由测试计算设备的应用生成的显示界面中被检测到;以及
自动化模块,所述自动化模块用于响应于对所述用户界面对象被检测到的确定而对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互。
8.如权利要求7所述的计算设备,其特征在于,所述测试评估模块进一步用于:
响应于所述用户交互的执行而指示测试成功;
响应于对所述用户界面对象没有被检测到的确定而指示测试失败。
9.如权利要求7所述的计算设备,其特征在于:
所述测试评估模块进一步用于响应于对所述用户界面对象没有被检测到的确定而基于用户输入确定所述用户界面对象的偏移;以及
执行所述用户交互进一步包括基于所述用户界面对象的偏移执行所述用户交互。
10.如权利要求7所述的计算设备,其特征在于,确定所述用户界面对象是否在所述显示界面中被检测到包括:
用光学字符识别计算机视觉算法确定所述用户界面对象是否在所述显示界面中被检测到;以及
使用字典映射将与所述用户界面对象相关联的文本数据映射成第二文本数据。
11.如权利要求7-10中的任一项所述的计算设备,其特征在于,对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互包括:用所述测试计算设备生成对所述用户界面对象的合成用户选择。
12.如权利要求7-10中的任一项所述的计算设备,其特征在于,对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互包括:用机器人致动器来操作所述测试计算设备。
13.一种用于进行应用测试的方法,所述方法包括:
由计算设备,记录由测试计算设备生成的用户界面事件,其中所述用户界面事件对应于与由所述测试计算设备的应用生成的显示界面的用户交互;
由所述计算设备,记录指示所述测试计算设备的所述显示界面的视频数据,其中所述视频数据对应于所述用户界面事件;
由所述计算设备,检测所述视频数据中的用户界面对象,其中所述用户界面对象与所述用户界面事件相关联;以及
由所述计算设备,生成基于对象的脚本命令,其中所述基于对象的脚本命令标识所述用户界面对象以及所述用户交互。
14.如权利要求13所述的方法,其特征在于,记录所述用户界面事件包括记录对所述用户界面对象的用户选择。
15.如权利要求13所述的方法,其特征在于,检测所述用户界面对象包括执行图像特征检测计算机视觉算法。
16.如权利要求13所述的方法,其特征在于,检测所述用户界面对象包括执行光学字符识别计算机视觉算法。
17.如权利要求13所述的方法,其特征在于,进一步包括:
由所述计算设备,确定所述用户界面对象是否在由第二测试计算设备的应用生成的第二显示界面中被检测到;以及
由所述计算设备,响应于确定所述用户界面对象被检测到而对所述第二测试计算设备的应用的所述用户界面对象执行所述用户交互。
18.一种用于进行应用测试的方法,所述方法包括:
由计算设备,读取来自测试脚本的基于对象的脚本命令,其中所述基于对象的脚本命令标识用户界面对象和用户交互;
由所述计算设备,确定所述用户界面对象是否在由测试计算设备的应用生成的显示界面中被检测到;以及
由所述计算设备,响应于确定所述用户界面对象被检测到而对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互。
19.如权利要求18所述的方法,其特征在于,进一步包括:
由所述计算设备,响应于执行所述用户界面而指示测试成功;以及
由所述计算设备,响应于确定所述用户界面对象没有被检测到而指示测试失败。
20.如权利要求18所述的方法,其特征在于,进一步包括:
由所述计算设备,响应于确定所述用户界面对象没有被检测到而基于用户输入确定所述用户界面对象的偏移;
其中执行所述用户交互进一步包括基于所述用户界面对象的偏移来执行所述用户交互。
21.如权利要求18所述的方法,其特征在于,对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互包括:用所述测试计算设备生成对所述用户界面对象的合成用户选择。
22.如权利要求18所述的方法,其特征在于,对所述测试计算设备的所述应用的所述用户界面对象执行所述用户交互包括:用机器人致动器来操作所述测试计算设备。
23.一种计算设备,包括:
处理器;以及
其中存储有多个指令的存储器,所述多个指令在由所述处理器执行时,使得述计算设备执行如权利要求13-22中的任一项所述的方法。
24.一种或多种机器可读存储介质,包括存储于其上的多个指令,响应于执行所述多个指令,所述多个指令导致计算设备执行如权利要求13-22中的任一项所述的方法。
25.一种计算设备,包括用于执行权利要求13-22中的任一项所述的方法的装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/082542 WO2016206113A1 (en) | 2015-06-26 | 2015-06-26 | Technologies for device independent automated application testing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108351828A true CN108351828A (zh) | 2018-07-31 |
Family
ID=57584593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580080370.3A Pending CN108351828A (zh) | 2015-06-26 | 2015-06-26 | 用于设备无关的自动应用测试的技术 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180173614A1 (zh) |
EP (1) | EP3314440A4 (zh) |
CN (1) | CN108351828A (zh) |
WO (1) | WO2016206113A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111298434A (zh) * | 2020-02-25 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置、设备及存储介质 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11288169B2 (en) * | 2016-11-10 | 2022-03-29 | Eggplant Limited | Method of, and apparatus for, handling reference images for an automated test of software with a graphical user interface |
US10663505B2 (en) * | 2016-12-07 | 2020-05-26 | Rohde & Schwarz Gmbh & Co. Kg | Test system and test method for performing EMC test efficiently |
US10860461B2 (en) * | 2017-01-24 | 2020-12-08 | Transform Sr Brands Llc | Performance utilities for mobile applications |
US10445224B2 (en) | 2017-04-25 | 2019-10-15 | Microsoft Technology Licensing, Llc | Visible elements-based application testing |
EP3619610A1 (en) * | 2017-05-02 | 2020-03-11 | Soroco Private Limited | Systems and methods for detecting anomalies in execution of computer programs |
US11200140B2 (en) * | 2017-06-09 | 2021-12-14 | Dennis Lin | Software performance testing |
JP6939105B2 (ja) * | 2017-06-09 | 2021-09-22 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
CN108170611B (zh) * | 2018-01-23 | 2019-07-16 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN108536596A (zh) * | 2018-04-09 | 2018-09-14 | 武汉斗鱼网络科技有限公司 | 基于对象构造数据的自动化测试方法、可读介质及设备 |
US10936475B2 (en) * | 2018-11-05 | 2021-03-02 | Sap Se | Automated scripting and testing system |
US11704230B2 (en) | 2019-01-11 | 2023-07-18 | Micro Focus Llc | Test script generation based on event data and video frames |
WO2020181417A1 (en) * | 2019-03-08 | 2020-09-17 | Entit Software Llc | Internationalization of automated test scripts |
EP3953822A4 (en) | 2019-04-12 | 2023-01-11 | Gamedriver, Inc. | VIDEO GAMES TESTING AND AUTOMATION FRAMEWORK |
US11249729B2 (en) | 2019-10-14 | 2022-02-15 | UiPath Inc. | Providing image and text data for automatic target selection in robotic process automation |
US10885423B1 (en) | 2019-10-14 | 2021-01-05 | UiPath Inc. | Systems and methods of activity target selection for robotic process automation |
US11232170B1 (en) * | 2020-09-08 | 2022-01-25 | UiPath, Inc. | Application-specific graphical element detection |
US11507259B2 (en) | 2020-09-08 | 2022-11-22 | UiPath, Inc. | Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both |
CN112148608B (zh) * | 2020-09-24 | 2021-11-05 | 上海交通大学 | 一种基于控件功能标注的移动端自动化软件测试方法 |
CN112214410A (zh) * | 2020-10-16 | 2021-01-12 | 四川长虹电器股份有限公司 | 一种自动化统计Android播放器性能数据的系统及方法 |
US20230236910A1 (en) * | 2022-01-24 | 2023-07-27 | UiPath Inc. | Systems and Methods for Executing Robotic Process Automation (RPA) Within a Web Browser |
US11736556B1 (en) | 2022-03-31 | 2023-08-22 | UiPath Inc. | Systems and methods for using a browser to carry out robotic process automation (RPA) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011164759A (ja) * | 2010-02-05 | 2011-08-25 | Nec Corp | Biosアップデート方法、biosアップデート装置及びbiosアップデートプログラム |
CN103365773A (zh) * | 2012-03-30 | 2013-10-23 | 索尼在线娱乐有限责任公司 | 自动测试的系统和方法 |
CN103928038A (zh) * | 2014-04-29 | 2014-07-16 | 广东欧珀移动通信有限公司 | 电子设备的测试录制及回放方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1818812B1 (en) * | 2006-01-25 | 2016-01-06 | Brandt Technologies Limited | System and method for effecting simultaneous control of remote computers |
US7827486B2 (en) * | 2007-02-01 | 2010-11-02 | Sap Ag | Evaluation of visual content usage |
US20090327973A1 (en) * | 2008-04-29 | 2009-12-31 | International Business Machines Corporation | Preserving a complete history of a set of application actions when non-linear interactions are permitted |
US9098313B2 (en) * | 2009-08-24 | 2015-08-04 | Kryon Systems Ltd. | Recording display-independent computerized guidance |
US8448142B2 (en) * | 2009-08-25 | 2013-05-21 | International Business Machines Corporation | Incremental runtime compliance validation of renderable objects |
WO2011073759A1 (en) * | 2009-12-01 | 2011-06-23 | Cinnober Financial Technology Ab | Methods and systems for automatic testing of a graphical user interface |
US8793578B2 (en) * | 2011-07-11 | 2014-07-29 | International Business Machines Corporation | Automating execution of arbitrary graphical interface applications |
US9411782B2 (en) * | 2012-11-09 | 2016-08-09 | Adobe Systems Incorporated | Real time web development testing and reporting system |
CN104956339B (zh) * | 2013-01-31 | 2018-04-03 | 慧与发展有限责任合伙企业 | 从视频生成软件测试脚本 |
US9749397B2 (en) * | 2013-09-20 | 2017-08-29 | Infosys Limited | Methods, systems, and computer-readable media for testing applications on a handheld device |
US9424167B2 (en) * | 2014-05-21 | 2016-08-23 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
CN104598380B (zh) * | 2015-01-16 | 2017-08-01 | 广东欧珀移动通信有限公司 | 一种基于控件的自动化测试方法及系统 |
-
2015
- 2015-06-26 CN CN201580080370.3A patent/CN108351828A/zh active Pending
- 2015-06-26 WO PCT/CN2015/082542 patent/WO2016206113A1/en active Application Filing
- 2015-06-26 EP EP15896009.6A patent/EP3314440A4/en not_active Withdrawn
- 2015-06-26 US US15/576,491 patent/US20180173614A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011164759A (ja) * | 2010-02-05 | 2011-08-25 | Nec Corp | Biosアップデート方法、biosアップデート装置及びbiosアップデートプログラム |
CN103365773A (zh) * | 2012-03-30 | 2013-10-23 | 索尼在线娱乐有限责任公司 | 自动测试的系统和方法 |
CN103928038A (zh) * | 2014-04-29 | 2014-07-16 | 广东欧珀移动通信有限公司 | 电子设备的测试录制及回放方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111298434A (zh) * | 2020-02-25 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置、设备及存储介质 |
CN111298434B (zh) * | 2020-02-25 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20180173614A1 (en) | 2018-06-21 |
EP3314440A1 (en) | 2018-05-02 |
EP3314440A4 (en) | 2019-03-20 |
WO2016206113A1 (en) | 2016-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108351828A (zh) | 用于设备无关的自动应用测试的技术 | |
CN108763068B (zh) | 一种基于机器学习的自动化测试方法及终端 | |
EP3112965A1 (en) | Robotic process automation | |
US8902198B1 (en) | Feature tracking for device input | |
CN110785736A (zh) | 自动代码生成 | |
CN109344793A (zh) | 用于识别空中手写的方法、装置、设备以及计算机可读存储介质 | |
Qian et al. | Roscript: a visual script driven truly non-intrusive robotic testing system for touch screen applications | |
US11508105B2 (en) | Using augmented reality for accessing legacy transaction terminals | |
US20220351361A1 (en) | Automatic determination process device, automatic determination process method, inspection system, program, and recording medium | |
CN111507354B (zh) | 信息抽取方法、装置、设备以及存储介质 | |
CN107194213A (zh) | 一种身份识别方法及装置 | |
US20210263963A1 (en) | Electronic device and control method therefor | |
CN110490237B (zh) | 数据处理方法、装置、存储介质及电子设备 | |
WO2017049649A1 (en) | Technologies for automated application exploratory testing | |
CN110779460B (zh) | 离线指导装置、测量控制装置和存储介质 | |
CN110414393A (zh) | 一种基于深度学习的自然交互方法及终端 | |
CN112036315A (zh) | 字符识别方法、装置、电子设备及存储介质 | |
CN105808460B (zh) | 外部设备识别方法、装置及电子设备 | |
CN116089256B (zh) | 终端测试方法、装置及存储介质 | |
CN115905016A (zh) | 一种BIOS Setup搜索功能测试方法、装置、电子设备及存储介质 | |
CN104484078A (zh) | 一种基于射频识别的人机交互系统及方法 | |
Xue et al. | Learning-replay based automated robotic testing for mobile app | |
Pan et al. | Research on functional test of mobile app based on robot | |
Xie et al. | NiCro: Purely Vision-based, Non-intrusive Cross-Device and Cross-Platform GUI Testing | |
CN114895836B (zh) | 基于智能全流程数据触摸屏触控方法、装置及电子设备 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180731 |
|
WD01 | Invention patent application deemed withdrawn after publication |