CN105453052A - 使用现场测试在软件程序中自动捕获用户交互并评估用户接口 - Google Patents
使用现场测试在软件程序中自动捕获用户交互并评估用户接口 Download PDFInfo
- Publication number
- CN105453052A CN105453052A CN201480045118.4A CN201480045118A CN105453052A CN 105453052 A CN105453052 A CN 105453052A CN 201480045118 A CN201480045118 A CN 201480045118A CN 105453052 A CN105453052 A CN 105453052A
- Authority
- CN
- China
- Prior art keywords
- application
- user interface
- event
- computing equipment
- parts
- 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
Links
Classifications
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- 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/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种方法包括在第一计算设备上分析来自第二计算设备(多个)的与先前在所述第二计算设备(多个)上执行的应用的用户接口进行的用户交互的数据。所述数据对应于与所述应用的所述用户接口进行的所述用户交互所导致的事件。所述第一计算设备生成所分析的数据的表示(多个)并且输出所述用户交互的表示(多个)。另一方法包括:当应用在计算设备上执行时,由所述计算设备捕获和记录与所述应用的用户接口进行的用户交互所导致的事件。响应于触发器,向另一计算设备发送包括所捕获和记录的事件的数据。再一方法包括将测量库插装到应用中以创建所述应用的插装版本;以及将插装后的应用发送到计算设备(多个)。公开了方法、装置、软件和计算机程序产品。
Description
背景技术
本发明一般地涉及在计算机系统上执行的应用,更具体地说,涉及现场测试这些应用。
本节旨在提供下面描述的发明的背景或上下文。此处的描述可包括能够被执行的理念,这些理念不一定是之前已被构想、实现或描述的理念。因此,除非此处另外明确指示,否则本节中描述的内容并非本申请中的描述的现有技术,也不会通过包含在本节中被认为是现有技术。
随着开发者快速将软件发布到全球市场,移动应用市场的规模也在增大。当移动应用种类中的新种类被创建时,第一时间将应用种类投放市场的现象很快被类似应用产品之间的竞争所取代。只有当应用从多名最终用户那里收到肯定的评论和评级时,才能明确地确定应用种类领导者。具有此类性质的反馈具有主观性,通常描述了用户在与应用交互时的总体体验。决定最大化移动应用影响的开发者需要具备在行动之前评估和分析应用使用情况范例的能力。这给开发者以及产品所有者提出了现实的挑战:如何不仅仅凭借主观度量来测试和分析应用使用情况,以便在总体发布应用之前采取补救性设计/实现措施?
移动软件开发包(MobileSDK)中配备的工具允许设计者/开发者创建顶层视图容器和关联的控件。备选地,开发者能够以编程的方式创建具有自定义布局和控件的视图容器,这些自定义布局和控件被等同地编译为能够被目标移动设备使用的格式。此外,还具有工具以调试编译后的应用,以及分析在“测试”模式下运行的应用内的封装功能的单元测试。但是,这些方法具有一定的限制,因为它们不捕获专注于在真实情况下与用户接口进行的直接交互的应用使用情况(通常称为“现场测试”)。
这种现场测试尽管有用,但是通常受到所谓的“测试员(betatester)”的数量的限制。即使相对简单的软件程序也可能具有许多布局和控件,测试员可能未测试这些布局和控件的全部或多数可能组合。因此,改进软件程序的测试将是有利的。
发明内容
本节具有示例性实施例的可能实现的例子。本节并非旨在限制。
在第一示例性实施例中,一种方法包括在第一计算设备上分析来自至少一个第二计算设备的与先前在所述至少一个第二计算设备上执行的应用的用户接口进行的用户交互的数据。所述数据对应于与所述应用的所述用户接口进行的所述用户交互所导致的事件。所述第一计算设备和所述至少一个第二计算设备不同。所述方法包括由所述第一计算设备生成所分析的数据的一个或多个表示;以及由所述第一计算设备输出与所述应用的所述用户接口进行的所述用户交互的所述一个或多个表示。
在进一步的示例性实施例中,一种计算设备包括:用于在计算设备上分析来自一个或多个其它计算设备的与先前在所述一个或多个其它计算设备上执行的应用的用户接口进行的用户交互的数据的部件,所述数据对应于与所述应用的所述用户接口进行的所述用户交互所导致的事件,其中所述计算设备和所述一个或多个其它计算设备不同;用于由所述计算设备生成所分析的数据的一个或多个表示的部件;以及用于由所述计算设备输出与所述应用的所述用户接口进行的所述用户交互的所述一个或多个表示的部件。
一个附加的示例性实施例是一种计算机程序产品,其包括内含计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括:用于在第一计算设备上分析来自至少一个第二计算设备的数据的与先前在所述至少一个第二计算设备上执行的应用的用户接口进行的用户交互的数据的代码,所述数据对应于与所述应用的所述用户接口进行的所述用户交互所导致的事件,其中所述第一计算设备和所述至少一个第二计算设备不同;用于由所述第一计算设备生成所分析的数据的一个或多个表示的代码;以及用于由所述第一计算设备输出与所述应用的所述用户接口进行的所述用户交互的所述一个或多个表示的代码。
一个附加的示例性实施例是一种计算设备,其包括内含计算机可读代码的存储器以及一个或多个处理单元。所述一个或多个处理单元和所述存储器被配置为:响应于所述计算机可读代码的执行而使所述计算设备执行以下操作:在所述计算设备上分析来自至少一个其它计算设备的与先前在所述至少一个其它计算设备上执行的应用的用户接口进行的用户交互的数据,所述数据对应于与所述应用的所述用户接口进行的所述用户交互所导致的事件,其中所述计算设备和所述至少一个其它计算设备不同;由所述计算设备生成所分析的数据的一个或多个表示;以及由所述计算设备输出与所述应用的所述用户接口进行的所述用户交互的所述一个或多个表示。
一个进一步的示例性实施例是一种方法,其包括:接收应用;以及将测量库插装到所述应用中以创建所述应用的插装版本。所述测量库被定义为在插装后的应用在计算设备上执行时捕获和记录与所述插装后的应用的用户接口进行的用户交互所导致的事件。所述插装后的应用被发送到一个或多个计算设备。
一个进一步的示例性实施例是一种计算机系统,其包括:用于接收应用的部件;用于将测量库插装到所述应用中以创建所述应用的插装版本的部件,其中所述测量库被定义为在插装后的应用在计算设备上执行时捕获和记录与所述插装后的应用的用户接口进行的用户交互所导致的事件;以及用于将所述插装后的应用发送到一个或多个计算设备的部件。
一个附加的示例性实施例是一种计算机程序产品,其包括内含计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括:用于接收应用的代码;用于将测量库插装到所述应用中以创建所述应用的插装版本的代码,其中所述测量库被定义为,在插装后的应用在计算设备上执行时,捕获和记录与所述插装后的应用的用户接口进行的用户交互所导致的事件;以及用于将所述插装后的应用发送到一个或多个计算设备的代码。
一种计算机系统包括内含计算机可读代码的存储器以及一个或多个处理单元。所述一个或多个处理单元和所述存储器被配置为:响应于所述计算机可读代码的执行而使所述计算机系统执行以下操作:接收应用;以及将测量库插装到所述应用中以创建所述应用的插装版本,其中所述测量库被定义为在插装后的应用在计算设备上执行时捕获和记录与所述插装后的应用的用户接口进行的用户交互所导致的事件;以及将所述插装后的应用发送到一个或多个计算设备。
另一示例性实施例是一种方法,其包括当应用在计算设备上执行时,由所述计算设备捕获和记录与所述应用的用户接口进行的用户交互所导致的事件。所述方法包括响应于触发器,向另一计算设备发送包括所捕获和记录的事件的数据。
一个进一步的示例性实施例是一种计算设备,其包括:用于当应用在计算设备上执行时由所述计算设备捕获和记录与所述应用的用户接口进行的用户交互所导致的事件的部件;以及用于响应于触发器,向另一计算设备发送包括所捕获和记录的事件的数据的部件。
一个附加的示例性实施例是一种计算机程序产品,其包括内含计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括:用于当应用在计算设备上执行时,由计算设备捕获和记录与所述应用的用户接口进行的用户交互所导致的事件的代码;以及用于响应于触发器,向另一计算设备发送包括所捕获和记录的事件的数据的代码。
一个附加的示例性实施例是一种计算设备,其包括内含计算机可读代码的存储器以及一个或多个处理单元。所述一个或多个处理单元和所述存储器被配置为:响应于所述计算机可读代码的执行而使所述计算设备执行以下操作:当应用在计算设备上执行时,由所述计算设备捕获和记录与所述应用的用户接口进行的用户交互所导致的事件;以及响应于触发器,向另一计算设备发送包括所捕获和记录的事件的数据。
附图说明
图1是根据本发明一示例性实施例的经由网络通信的计算设备和服务器的框图;
图2示出根据本发明一示例性实施例的网络环境;
图3是示例性系统设计的图示;
图4是测量库的中介的图示;
图5是用户在应用视图之间导航时的执行/交互路径的频率的图示;
图6是跟踪与应用的UI的特定UI控件以及其它区域的定向触摸交互的图示;
图7是用于针对现场测试服务器接口,使用现场测试在软件程序中自动捕获用户交互并评估用户接口的逻辑流程图,该流程图示出根据一示例性实施例的示例性方法的操作、包含在计算机可读存储器中的计算机程序指令的执行结果,和/或在硬件中实现的逻辑所执行的功能;
图8是用于针对具有插装的应用的计算设备,使用现场测试在软件程序中自动捕获用户交互并评估用户接口的逻辑流程图,该流程图示出根据一示例性实施例的示例性方法的操作、包含在计算机可读存储器中的计算机程序指令的执行结果,和/或在硬件中实现的逻辑所执行的功能;以及
图9(包括图9A和9B)是用于针对UI评估工具,使用现场测试在软件程序中自动捕获用户交互并评估用户接口的逻辑流程图,该流程图示出根据一示例性实施例的示例性方法的操作、包含在计算机可读存储器中的计算机程序指令的执行结果,和/或在硬件中实现的逻辑所执行的功能。
具体实施方式
尽管下面重点描述移动应用,但是应用的现场测试同样适用于许多其它类型的应用。例如,许多汽车中具有交互式显示器,这些交互式显示器使用应用来设计和定义。这些应用可进行现场测试。而且,桌上型计算机具有可进行现场测试的应用的用户接口(UI)。另外,应用于移动设备(诸如智能电话和平板计算机)的“应用(app)”模型可以应用到桌上型计算机和便携式计算机,而且将来也可应用到其它平台,诸如机顶盒、智能电视等。因此,本发明的示例性实施例具有广泛适用性,图1和2示出这类广泛适用性。
现在参考图1,该图示出根据本发明一示例性实施例的经由网络通信的计算设备和服务器的框图。图1被用于提供系统概览:在该系统中,可使用示例性实施例并且提供某些示例性实施例的概览。在图1中,具有计算机系统/服务器12,其通过许多其它的通用或专用计算系统环境或配置执行操作。公知的适合与计算机系统/服务器12使用的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、迷你计算机系统、大型机计算机系统,以及包括上述任何系统或设备的分布式云计算环境等。
如图1所示,计算机系统/服务器12被示出为采取通用计算设备的形式。计算机系统/服务器12的组件可包括但不限于:一个或多个处理单元16(例如,处理器(多个))、系统存储器28,连接不同系统组件(其中包括将系统存储器28连接到一个或多个处理单元16)的总线18。总线18表示几类总线结构中的任意一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。计算机系统/服务器12典型地包括多种计算机系统可读介质,诸如存储器28。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,而且这些介质可包括易失性和非易失性介质,可移动的和不可移动的介质。系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓冲存储器32。计算机系统/服务器12可以还包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(未示出,通常称为“硬盘驱动器”)。尽管未示出,可以使用可移动非易失性存储器(例如,存储卡或记忆棒),并且可以提供用于对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个I/O(输入/输出)接口22与总线18相连。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指点设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过例如I/O接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它组件通信。应当明白,尽管图中未示出,其它硬件和/或软件组件可以与计算机系统/服务器12一起使用,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据归档存储系统等。
计算设备12还包括通过总线118互连的存储器128-1、一个或多个处理单元116、一个或多个I/O接口122,以及一个或多个网络适配器120。存储器128可包括非易失性和/或易失性RAM、高速缓冲存储器132,以及存储系统134。根据实现方式,存储器128可包括可移动或不可移动的非易失性存储器。计算设备112可包括显示器124-1(具有UI125-1)或与之相连。根据实现方式,计算设备112能够或者不与外部设备114相连。显示器124例如可以是触摸屏、显示器、监视器、电视机、投影仪。UI125可以是用于特定计算设备112的应用和/或操作系统的任何UI。总线118可以是适合于平台的任何总线,包括上述针对总线18描述的总线。存储器130、132和134可以分别是上述的那些存储器30、32、34。一个或多个网络适配器120可以是有线或无线的网络适配器。I/O接口(多个)122可以是诸如USB(通用串行接口)、SATA(串行AT附接)、HDMI(高清晰度多媒体接口)等之类的接口。一个或多个处理单元16、116可以是用于控制各个计算设备(例如,通用处理器、单核或多核处理器、专用集成电路、片上系统、可编程逻辑等等)的操作的任何适当的控制器(多个)。
图1还示出开发者设备220。开发者设备220可以被认为与计算设备112类似,因此未示出开发者设备220的内部组件(存储器128-2、显示器124-2和UI125-2以外的组件)。开发者设备220包括存储器128-2,该存储器包含应用210和UI评估工具180(包含现场测试数据142)。
在该实例中,计算机系统/服务器12、计算设备112和开发者设备220通过网络150,以及链路51、52和53互连。网络50通常是因特网,但是可以是诸如公司网络之类的其它网络。
图1中的系统的元件以及这些元件之间的交互将在下面更详细地解释。但是现在简单介绍示例性交互。典型的操作可以是应用210的开发者使用开发者设备220将应用210上传到现场测试服务器接口40。现场测试服务器接口40然后插装应用210以创建插装后的应用140。计算设备112例如可以“被推送”插装后的应用140,计算设备112也可下载插装后的应用140,例如作为对计算设备112上已有的非插装版本应用的更新。插装的测量库190在计算设备112的用户使用插装后的应用140时收集现场测试数据142。现场测试数据142可采取许多不同的形式,但是其中一种可能的形式是图4所述的日志。日志提供有关事件交互(用户与插装后的应用140的UI125-1的交互)的详细度量。在一段时间之后,插装后的应用140(例如,在插装的测量库190的指示下,或者通过来自现场测试服务接口40的触发器)将现场测试数据142发送到现场测试服务接口40,现场测试服务接口40然后将现场测试数据142发送到开发者设备220。
使用开发者设备的开发者然后具有有关实际用户如何使用他或她的应用210的数据。UI评估工具180例如可以显示有关计算设备112的用户对应用210的使用的特定信息。该数据142可帮助用户改进应用210。例如,通过使用现场测试数据142,UI评估工具180可示出现场测试数据的多个表示185。通过使用这些表示185,开发者可确定应用210的UI是否具有不清晰的方面(这些特征可能在应用210中使用,也可能不被使用),用户如何与应用交互等等。在示例性实施例中,UI评估工具180是计算机可读代码,该代码响应于处理单元(多个)116对其的执行,而使得开发者设备220执行此处描述的操作。
需要指出,假设在本文的附图中,现场测试数据142在计算机系统/服务器12、计算设备112以及开发者设备220上均相同。但是现场测试数据142可能在这些设备中的一个或多个上不同,并且还可能被“封装”以便在网络50上传送。例如,计算设备112获得的数据可能多于传送到计算机系统/服务器12的数据。作为另一实例,针对封装现场测试数据142,计算设备112可能首先压缩现场测试数据142,然后再将现场测试数据142传送到计算机系统/服务器12,并且也可以将现场测试数据142变为公知的格式,以便计算机系统/服务器12(例如,UI评估工具180)能够解释现场测试数据142的元素。
UI评估工具180在图1中被示为在开发者设备220上执行。但是如果需要,UI评估工具180也可整体或部分地在计算机系统/服务器12上执行。例如,开发者可登录计算机系统/服务器12上的帐户以查看现场测试数据的表示185。
在一个实例中,现场测试服务器接口40是计算机可读代码,该代码响应于处理单元(多个)16对其的执行,而使得计算机系统/服务器12执行此处描述的操作。在一个实例中,插装后的应用140和插装的测量库190是计算机可读代码,该代码响应于处理单元(多个)216对其的执行,而使得计算设备112执行此处描述的操作。
现在参考图2,其中示出根据一示例性实施例的网络环境。在该实例中,计算机系统/服务器12被示为与网络50分离,但是也可以是网络的一部分。示出A到E个不同的计算设备112:智能电话112A、桌上型计算机112B、膝上型计算机112C、平板计算机112D、电视机112E、以及汽车计算机系统112F。同样适用但未示出的设备有机顶盒和游戏控制台。这些设备仅作为例子,也可使用其它设备。因此,尽管下面提供的实例重点描述移动设备(例如智能电话112A或平板计算机112D),本发明的技术也可应用于许多其它计算设备。
到目前为止概述了系统和示例性实施例,现在提供有关其它示例性实施例的更多细节。
此处的示例性实施例描述用于使用现场测试在软件应用中自动捕获用户交互并评估用户接口的系统、方法、制品和装置。需要指出,术语“软件程序”、“软件应用”和“应用”在这里可互换。
此处的示例性实施例的示例性优势使能自动评估应用内的UI,并且为开发者提供理解用户交互模式的优势。另一示例性优势是:示例性实施例使能应用内所有可能的用户控件和视图(包括以编程的方式创建的控件)的呈现,将所述呈现收集为能够被设计者和测试员可视化的序列。
此处的示例性实施例可解决以下问题:
1)应用内实现的用户接口的自动评估对本机用户接口的应用设计具有直接影响,并且给予应用所有者确定接口视图内的个体交互点的优势,同时还提供在运行这些应用期间显示于设备上的用户目标控件的可视化。
2)具有透明库,以解决在开发者未专门包括测量条件(这些条件否则将修改应用的预定执行路径)的情况下,直接测量本机用户接口小部件(widget)的动作度量的问题。
此方法还允许可视化顶层视图集之间的应用内交互路径,从而使得设计者能够理解用户如何在应用生命周期的各状态之间转换。
整体系统可以允许应用设计者针对移动应用执行以下任务中的一项或多项:
-可视地查看屏幕上呈现给用户的所有应用顶层视图;
-检查给定视图内的个体组件,以定量地测量使用交互;
-当最终用户在现场测试期间导航应用内的视图时,观察这些视图之间的交互路径的频率;
-可视化执行中的移动应用的应用屏幕截图;和/或
-可视化可执行移动应用的分层式顶层视图对象及其关联的封装用户接口控件。
现在参考图3,该图是示例性系统设计的图示。图3示出可被用于检查和可视化移动应用的各方面的整体系统。在图3的实例中,计算机系统/服务器12被示为部分地由系统基础结构310表示。使用开发者设备220的开发者将移动应用210上传到系统基础结构310。系统基础结构310例如在现场测试服务器接口40的指示下执行处理320,该处理将测量库325注入应用210中以创建插装后的应用140。如果应用210作为源代码上传,则应用210可将一个或多个链接添加到源代码中,以便可执行应用能够在适当的时候调用测量库325。如果应用210作为可执行文件上传,则可以将测量库325添加到应用210。例如,对于用于移动平台的iOS和Andriod操作系统(此处作为例子使用,但是示例性实施例不限于此)而言,可以将测量库325添加到可执行代码。在iOS(Apple,Inc.开发的移动操作系统)上,例如,测量库325通过方法调配被注入,方法调配是一种能够将对特定方法的调用重定向到其它方法的技术。在Android(Google,Inc.开发的移动操作系统)上,测量库325可通过类加载和/或字节码重写被注入。类似的注入对于其它操作系统也是可能的。注入测量库325之后的插装后的应用140然后包含图1所示的插装的测量库190。
插装后的应用140被传送到计算设备112。响应于用户使用插装后的应用140,插装后的应用140(例如,或者更具体地是指插装的测量库190)执行处理340,该处理对插装后的应用140进行动态分析。相对于插装后的应用140而言,可以采用许多不同类型的现场测试数据142。在图3的实例中,动态分析捕获运行中应用的屏幕截图345-1、345-2和345-3。这些屏幕截图(例如,以JPEG、联合图像专家组或其它格式保存)可被存储为现场测试数据142的一部分。另外,还保留导致屏幕变化的用户动作,以便于在以后检查屏幕序列。
在某一点,插装的测量库190将现场测试数据142发送到系统基础结构130。测量库所发送的现场测试数据142可通过许多方式发生。例如,传输可被设定为每10秒进行一次—这样,到该点为止所收集的任何数据都被发送到服务器。但是,可以初始化库190,以便在连接到Wi-Fi(或其它高速)连接时更频繁地进行传输,或者在蜂窝连接时减小传输频率;或者备选地,可以在本地收集采取压缩形式的数据,然后例如在达到空间限制、应用结束其生命周期、或者库“感测到”(即,接收到通知)存在便于数据上传的最佳网络连接时将数据发送到服务器。此外,数据可通过测试员执行的人工交互发送(例如,在测试之后,用户进入测量库190提供的设置面板并选择“上传收集的数据”)。系统基础结构130然后将现场测试数据142发送到开发者设备220。使用开发者设备220的开发者然后可以创建现场测试数据142的表示185。例如,可以以在插装后的应用140的执行期间屏幕截图出现的顺序表示应用屏幕截图345-1、345-2和345-3。此外,也可以表示导致屏幕变化的用户动作。
插装的测量库190执行动态分析340。如图4所示,客户机测量库能够充当执行中的移动应用与上面执行应用的移动操作系统之间的中介。图4包含计算设备112上的组件的图示。这些组件是移动应用210、插装的测量库190,以及移动操作系统(OS)405。插装后的应用140包括移动应用210和测量库190。
参考标号450示出针对从移动应用210和移动操作系统405传递的事件采取的路径。在方框410,移动应用210执行在显示器124-1的UI125-1上呈现UI控件和视图的操作。事件407由插装的测量库190捕获。这样,在方框415,测量库190执行捕获在UI上执行用户交互(例如,与用户控件(或UI的其它部分)进行交互)时创建的事件(多个)的操作。当用户执行与触摸屏的UI的触摸交互时,触摸交互创建事件407(例如,(短)按下屏幕)。其它事件407例如可以包括长按或划动(例如,包括速度信息)。点击/触摸事件可能触发,也可能不触发动作—具体取决于是否存在接收到“事件”的用户控件。期望捕获所有“事件”而不考虑它们的结果。对于非触摸屏,事件可以是点击鼠标、移动鼠标、敲击键盘等。在一个示例性实施例中,插装的测量库190创建日志490作为现场测试数据142的一部分。在方框420,插装的测量库190将有关事件交互的详细度量记录在日志490中。示出日志490中的示例性条目425。条目425包括大量数据项427:时间戳427-1、事件的绝对坐标427-2、与事件关联的用户接口控件427-3、事件调用目标427-4、以及已捕获的屏幕截图427-5。时间戳只是有关事件发生事件的指示。事件的绝对坐标是用户交互在显示器124上的坐标。与事件关联的用户接口控件是与事件关联的UI控件(即,用户能够与之交互的交互式组件)。此类UI控件例如可以包括按钮、文本字段、查找条、复选框、放大按钮、切换按钮等等。需要指出,可能不存在用于事件的用户控件,例如,如果用户按下没有用户控件的区域中的屏幕。事件调用目标可以是UI上的用户控件,或UI上不与用户控件关联的位置。已捕获的屏幕截图是UI125的屏幕截图(例如,响应于事件的发生而获取),该屏幕截图以诸如JPEG的格式存储。数据项427仅作为示例,可能存在更多或更少的数据项。例如,有关事件407(例如,短按、长按、划动)的信息也可被保留为数据项427。
可以看到,日志490提供相当多的信息,由于每个事件均有时间戳记,因此用户与移动应用210的UI125-1的交互可被重新创建(例如,通过UI评估工具180)。在一个示例性实施例中,将针对每个事件收集所有数据项427(例如,时间戳、事件的绝对坐标、事件的预定目标、屏幕截图—如果之前已经拍摄,则只是对现有屏幕截图的引用)。对于有关“集中交互”的图6实例,存在针对每个交互生成的事件,但是因为交互在标题栏进行并且没有可动作的控件,因此不执行任何动作。尽管如此,仍期望捕获所有交互及其对应的事件,并且记录它们以备分析。
在方框430,插装的测量库190将事件传递到预定目标。该目标是诸如按钮、控件和图像等之类的组件,该组件将自身显示为源自软件开发包(SDK)定义的类(例如,iOS的“UIButton”、Android的“Image”等等)的对象。在方框440,移动操作系统405的预定目标处理该事件。
现在参考图5,其中示出在应用视图之间导航时的执行/交互路径的频率的视图。因此,该示例性实施例允许一种方法和协议跟踪对应用内的顶层视图的导航。在本公开的上下文中,屏幕截图是所拍摄的视图的静态图像。例如,在电话簿目录应用中,可以存在一个显示表中列出的所有联系人的视图(即,viewX);另外还可具有一个视图(即,viewY)来允许用户在其中一个联系人项中更新他或她的信息。作为用例,用户可以在viewY中更新他或她的姓名,然后拍摄该视图的屏幕截图。接下来,用户可以导航到viewX,拍摄该视图的屏幕截图,然后返回到viewY,用户可以将他或她的电话号码保存在viewY中—此操作将触发拍摄另一屏幕截图(即,更新后的视图的屏幕截图)。因此将有两个viewY的屏幕截图,以及一个viewX的屏幕截图。在图5的实例中,执行/交互路径A510-1依次包括视图100-1、100-2、100-4和100-3,其中视图100-1首先出现,视图100-3最后出现。在图5中,每个视图被表示为一个屏幕。该路径A510-1相对于所有路径510而言以X%频率出现。执行/交互路径B510-2依次包括视图100-1、100-3、100-2和100-4,其中视图100-1首先出现,视图100-4最后出现。该路径B510-2相对于所有路径510而言以Y%频率出现。执行/交互路径C510-3依次包括视图100-1、100-4、100-3和100-2,其中视图100-1首先出现,视图100-2最后出现。该路径C510-3相对于所有路径510而言以Z%频率出现。
插装的测量库190存储数据以便允许确定路径510。路径510例如可以由UI评估工具180通过以下方式确定:例如,检查时间戳427-1以及确定一系列视图。例如,可以基于日志内容(例如,时间戳、事件的坐标、事件的预定目标、屏幕截图)构造路径,例如,如下面所示:
○如屏幕截图-1所记录,在时间“t”处,在视图UI-1中的标题栏C上的坐标X,Y处触发事件;
○如屏幕截图-1所记录,在时间“t+1”处,在视图UI-1中的标题栏C上的坐标X+1,Y+1处触发事件;
○如屏幕截图-2所记录,在时间“t+2”处,在视图UI-1中的按钮B上的坐标X+5,Y+7处触发事件;
○如屏幕截图-3所记录,在时间“t+3”处,在视图UI-2中的坐标0,0处触发转变事件;
○如屏幕截图-3所记录,在时间“t+4”处,在视图UI-2中的横幅D上的坐标X,Y处触发事件。
根据上述五个示例性数据点,可以推断从视图UI-到视图UI-2的转变,但是只有在重复地触摸视图UI-1中的标题栏C之后。屏幕截图-1和屏幕截图-2是同一视图UI-1的可视表示,但是它们处于不同的状态(例如,按下前按钮和后按钮B)。由于按下按钮导致新的视图出现,因此拍摄新的屏幕截图-3(视图UI-1的屏幕截图-3)。
因此,UI评估工具180可创建图5作为现场测试数据的表示185,尽管该数据可通过多种其它的方式呈现(例如,提供这样的视图100:在该视图中,每个路径510以文本的形式列出,而非像图5那样由屏幕表示)。
因此,应用设计者可以分析使用应用210、410的用户所采取的路径510。基于以下众多原因,这是有用的:例如设计者确定特定路径510异常(例如,由于编程错误),或者确定特定特征未被使用。
示例性实施例还提供一种跟踪与特定用户接口控件的定向交互的方法和协议。这在图6中示出。图6的图示可由UI评估工具180创建。在计算设备112的显示器124-1的UI125-1(UI125-1的仿真版本)上示出多种不同的触摸交互610。当用户执行与UI的触摸交互时,这些触摸交互创建诸如(短)按下屏幕之类的事件。其它事件也可包括例如长按或划动(例如,包括速度信息)。为简单起见,图6所示的触摸交互610被假设为是短按屏幕。因此,此类触摸交互610是短按(在该实例中)的表示,该表示例如可以由UI评估工具180使用诸如存储在特定屏幕截图427-5的日志490中的事件427-2的绝对坐标来生成。
该实例示出标题栏620和“后退”按钮623。具有数个用户控件625(用户控件A)和630(用户控件B)、图像M635、图像P640、标签L645、按钮650-1到650-5,它们都是选项卡。通过使用触摸交互610,开发者可以确定(参考标号660)在标题栏620上具有集中动作,但是上面没有用户控件。也就是说,在标题栏620上执行触摸交互不会导致动作发生。
对于参考标号670,指示存在大量与静态图像P640(其中“静态”表示图像不是用户控件,而有些图像可以是用户控件)的交互,但是与用户控件B630的交互较少。这可以指示用户认为图像P640应该调用动作,而图像P640未执行此动作。参考标号675指示在标签L645的边缘上存在频繁的交互。对于标签L645上的频繁交互,该分析数据指示用户错误地触摸标签,可能将标签混淆为按钮并且期望动作发生。对于应用创建者而言,这是有价值的反馈,以便考虑对视图的未来更新。参考标号680指示按钮选项卡5、650-5未被使用。这可指示未被使用的特征。
现在参考图7,该图是用于针对现场测试服务器接口,使用现场测试在软件程序中自动捕获用户交互并评估用户接口的逻辑流程图。图7还示出根据一示例性实施例的示例性方法的操作、包含在计算机可读存储器中的计算机程序指令的执行结果,和/或在硬件中实现的逻辑所执行的功能。该图中的互连方框也可被视为用于执行方框中的功能的互连部件。假设现场测试服务器接口40使计算机系统/服务器12执行图7中的方框。图7中的许多操作已经在上面进行描述,例如参考图3描述的操作。
在方框705,计算机系统/服务器12接收应用210。应用210可以是被设计为在诸如智能电话或平板计算机之类的移动计算设备112上执行的移动应用。在方框710,计算机系统/服务器12将测量库325注入应用210中以插装应用并创建插装后的应用140。在方框720,计算机系统/服务器12将插装后的应用140分发到选定的计算设备。例如,可以分发到请求应用的任意计算设备112,计算机系统/服务器12可将应用推送到选定的(可能是所有的)计算设备112等。
在方框725,计算机系统/服务器12触发某些选定的计算设备以发送它们的现场测试数据。此操作是可选的,但是是计算设备112(例如,以及插装的测量库190)确定计算设备112应将自己的现场测试数据142发送到计算机系统/服务器12的一种方式。该触发可以响应于开发者请求执行触发而执行,或者可以例如在某一时间段过去之后执行。在方框730,计算机系统/服务器12从某些(例如,或者全部)选定的计算设备接收现场测试数据142。在一个示例性实施例中,计算机系统/服务器12将现场测试数据142传送到开发者设备220(方框735)。在另一示例性实施例中,计算机系统/服务器12可分析来自计算设备112的数据,从而可以执行图9的操作。在后一实例中,设计者可使用开发者设备220,例如通过Web接口访问计算机系统/服务器12,并且查看或接收与UI进行的用户交互的表示,如下面参考图9所述。
图8是用于针对具有插装后的应用的计算设备,使用现场测试在软件程序中自动捕获用户交互并评估用户接口的逻辑流程图。图8还示出根据一示例性实施例的示例性方法的操作、包含在计算机可读存储器中的计算机程序指令的执行结果,和/或在硬件中实现的逻辑所执行的功能。该图中的互连方框也可被视为用于执行方框中的功能的互连部件。
在方框810,计算设备112接收插装后的应用140。假设方框815和820由计算设备112例如在插装的测量库190的指导下执行。在方框815,插装的测量库190使计算设备112执行图4的方框415、420和430。更具体地说,插装的测量库190使计算设备112执行捕获在UI上执行用户交互(例如,与用户控件(或UI的其它部分)进行交互)时创建的事件(多个)的操作(方框415)。在方框420,插装的测量库190使计算设备112将有关事件交互的详细度量记录在日志490中。在方框430,插装的测量库190使计算设备112将事件传递到预定目标。在方框820,插装的测量库190使计算设备112封装现场测试数据并将该数据传送到计算机系统/服务器12。响应于触发器执行此操作。例如可以从计算机系统/服务器12接收触发器,也可能从开发者设备220接收触发器。触发器也可由插装的测量库190生成(例如,在经过某一时间段之后)。封装可以是简单地将现场测试数据142发送到计算机系统/服务器12,也可以更复杂,例如使用压缩和/或将现场测试数据142变为公知的格式。
现在参考图9(包括图9A和9B),其中示出用于针对UI评估工具,使用现场测试在软件程序中自动捕获用户交互并评估用户接口的逻辑流程图。图9还示出根据一示例性实施例的示例性方法的操作、包含在计算机可读存储器中的计算机程序指令的执行结果,和/或在硬件中实现的逻辑所执行的功能。该图中的互连方框也可被视为用于执行方框中的功能的互连部件。
假设图9中的方框由开发者设备220例如在UI评估工具180的指导下执行。为了便于参考,假设开发者设备220执行各个方框。在方框910,开发者设备220访问现场测试数据142。现场测试数据142例如可以通过计算机系统/服务器12从单个计算设备112接收,也可以例如在某一时间段内从多个计算设备112接收。开发者设备220然后访问存储的现场测试数据142。例如,图9中的方框可以响应于来自设计者的输入,而使用UI评估工具180执行。
在方框920,开发者设备220分析来自一个或多个计算设备的与先前在一个或多个计算设备上执行的应用的用户接口进行的用户交互的数据。如上所述,该数据对应于与应用的UI进行的用户交互所导致的事件。因此,在分析之前并且响应于应用在一个或多个计算设备上的执行而获得该数据。方框922-928是可能的分析的实例。在方框922,开发者设备220确定应用的UI视图之间的交互的路径和路径频率。应用的UI内的视图之间的交互路径频率的实例在图5中示出。在方框924,开发者设备220针对应用的UI视图,确定所跟踪的与UI的特定UI控件以及其它区域的触摸交互。图6示出针对应用的UI视图所跟踪的与UI的特定UI控件以及其它区域的触摸交互的图示。
在方框926,开发者设备220例如沿着时间线确定应用的应用屏幕截图。屏幕截图345的一个实例在图3中示出。在图3的实例中,屏幕截图345可以沿着时间线内出现,从而使得(例如,基于时间线)屏幕截图345-1出现在屏幕截图315-2、315-3之前;屏幕截图315-2出现在屏幕截图345-1之后,但是在屏幕截图315-3之前;并且屏幕截图315-3在屏幕截图315-1、315-2之后最后出现。在另一实例中,可以有利地确定源自单个视图的屏幕。例如,在图5中,视图100-2、100-3和100-4源自视图100-1。有用的是生成从视图100-1开始的一组视图,通过箭头或其它线条连接视图100-1与视图100-2、100-3和100-4。这允许设计者了解可从视图100-1到达的其它视图是否未被使用。
在方框928,开发者设备220确定UI的给定视图内的个体用户组件的定量测量的使用交互。例如,如果设计者对图6的用户控件A625特别感兴趣,则UI评估工具180可以关注该特定的用户控件。
在方框930,开发者设备220生成与UI进行的用户交互的一个或多个表示。方框932-938是方框930的实例,并且方框932-938分别对应于方框922-928。在方框932,开发者设备220生成应用的UI内的视图之间的交互的路径和路径频率的指示。图5是可能针对此情景生成的指示的实例。
在方框934,开发者设备220针对应用的UI视图,生成与UI的特定UI控件以及其它区域的触摸交互的指示。图6是此操作的一个实例。
在方框936,开发者设备220生成应用的应用一组屏幕捕获。图3中的屏幕截图345是该组截图的一个实例。图5也可被视为该组截图的一个实例,前提是视图100被屏幕截图345替代。
在方框938,开发者设备220生成UI的给定视图内的个体用户组件的定量测量的使用交互的指示。如果限于仅示出用户控件A625的触摸交互,则图6(例如)是此操作的实例。
在方框940,开发者工具220输出与UI进行的用户交互的一个或多个表示。此类输出可以是到存储器(方框942)、网络50(方框944)或显示器(方框946)中的一项或多项。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可采取在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质不包括传播信号,例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)将包括以下项:具有一条或多条线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何能够包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用任何多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机或服务器可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上面参照根据本发明的多个实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,生成了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就生成出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(articleofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以生成计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
此处使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如此处所使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特征、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置(means)或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
Claims (43)
1.一种方法,包括:
在第一计算设备上分析来自至少一个第二计算设备的与先前在所述至少一个第二计算设备上执行的应用的用户接口进行的用户交互的数据,所述数据对应于与所述应用的所述用户接口进行的所述用户交互所导致的事件,其中所述第一计算设备和所述至少一个第二计算设备不同;
由所述第一计算设备生成所分析的数据的一个或多个表示;以及
由所述第一计算设备输出与所述应用的所述用户接口进行的所述用户交互的所述一个或多个表示。
2.根据权利要求1所述的方法,其中所述事件包括短按触摸屏、长按触摸屏或划动触摸屏中的一项或多项。
3.根据权利要求1或2中任一项所述的方法,其中:
分析进一步包括确定所述应用的所述用户接口内的视图之间的交互的路径和路径频率;并且
生成进一步包括生成所述应用的所述用户接口的视图之间的交互的所述交互路径和所述路径频率的指示。
4.根据权利要求1至3中任一项所述的方法,其中:
分析进一步包括针对所述应用的所述用户接口的视图,确定所跟踪的与所述用户接口的特定用户接口控件以及其它区域的触摸交互;并且
生成进一步包括针对所述应用的所述用户接口的该视图,生成与所述用户接口的特定用户接口控件以及其它区域的所述触摸交互的指示。
5.根据权利要求1至4中任一项所述的方法,其中:
分析进一步包括确定所述应用的屏幕截图;并且
生成进一步包括生成一组屏幕截图。
6.根据权利要求5所述的方法,其中:
确定进一步包括确定所述应用的屏幕截图,其中所述屏幕截图被确定为位于时间线内,并且
生成进一步包括生成遵循所述时间线的所述一组屏幕截图。
7.根据权利要求5所述的方法,其中:
确定进一步包括确定所述应用的屏幕截图,其中所述屏幕截图被确定为相对于所述应用的所述用户接口的单个视图已被执行;并且
生成进一步包括生成源自所述单个视图的所述一组屏幕截图。
8.根据权利要求1至7中任一项所述的方法,其中:
分析进一步包括确定所述用户接口的给定视图内的个体组件的定量测量的使用交互;并且
生成进一步包括生成所述用户接口的所述给定视图内的所述个体组件的定量测量的使用交互的指示。
9.根据权利要求1至8中任一项所述的方法,其中由所述应用的插装版本中的测量库收集所述数据。
10.根据权利要求1至9中任一项所述的方法,其中输出包括输出到存储器、输出到网络或输出到显示器中的一项或多项。
11.一种方法,包括:
接收应用;
将测量库插装到所述应用中以创建所述应用的插装版本,其中所述测量库被定义为在插装后的应用在计算设备上执行时捕获和记录与所述插装后的应用的用户接口进行的用户交互所导致的事件;以及
将所述插装后的应用发送到一个或多个计算设备。
12.根据权利要求11所述的方法,其中:
所述应用接收自第一计算设备;
发送所述插装后的应用的一个或多个计算设备是不同于所述第一计算设备的一个或多个第二计算设备;
所述方法进一步包括从所述一个或多个第二计算设备接收数据,所述数据包括所捕获和记录的事件。
13.根据权利要求12所述的方法,还包括向所述第一计算设备发送所接收的数据。
14.根据权利要求12所述的方法,还包括:
在所述第一计算设备上分析所述数据以创建与所述应用的所述用户接口进行的用户交互的一个或多个表示;
由所述第一计算设备生成所分析的数据的一个或多个表示;以及
由所述第一计算设备输出与所述应用的所述用户接口进行的所述用户交互的所述一个或多个表示。
15.一种方法,包括:
当应用在计算设备上执行时,由所述计算设备捕获和记录与所述应用的用户接口进行的用户交互所导致的事件;以及
响应于触发器,向另一计算设备发送包括所捕获和记录的事件的数据。
16.根据权利要求15所述的方法,其中所记录的事件的数据包括所述事件发生的时间的时间戳。
17.根据权利要求15或16中任一项所述的方法,其中所记录的事件的数据进一步包括所述事件的绝对坐标。
18.根据权利要求15至17中任一项所述的方法,其中如果存在对应于所述事件的用户控件,则所记录的事件的数据进一步包括对应于所述事件的用户控件。
19.根据权利要求15至18中任一项所述的方法,其中所记录的事件的数据进一步包括所述事件的事件调用目标。
20.根据权利要求15至19中任一项所述的方法,其中所记录的事件的数据进一步包括响应于所述事件的发生而获取的已捕获屏幕截图。
21.一种计算设备,包括:
用于在所述计算设备上分析来自至少一个其它计算设备的与先前在所述至少一个其它计算设备上执行的应用的用户接口进行的用户交互的数据的部件,所述数据对应于与所述应用的所述用户接口进行的所述用户交互所导致的事件,其中所述计算设备和所述至少一个其它计算设备不同;
用于由所述计算设备生成所分析的数据的一个或多个表示的部件;以及
用于由所述计算设备输出与所述应用的所述用户接口进行的所述用户交互的所述一个或多个表示的部件。
22.根据权利要求21所述的计算设备,其中所述事件包括短按触摸屏、长按触摸屏或划动触摸屏中的一项或多项。
23.根据权利要求21或22中任一项所述的计算设备,其中:
用于分析的部件进一步包括用于确定所述应用的所述用户接口内的视图之间的交互的路径和路径频率的部件;并且
用于生成的部件进一步包括用于生成所述应用的所述用户接口内的视图之间的交互的所述交互路径和所述路径频率的指示的部件。
24.根据权利要求21至23中任一项所述的计算设备,其中:
用于分析的部件进一步包括用于针对所述应用的所述用户接口的视图,确定所跟踪的与所述用户接口的特定用户接口控件以及其它区域的触摸交互的部件;并且
用于生成的部件进一步包括用于针对所述应用的所述用户接口的该视图,生成与所述用户接口的特定用户接口控件以及其它区域的所述触摸交互的指示的部件。
25.根据权利要求21至24中任一项所述的计算设备,其中:
用于分析的部件进一步包括用于确定所述应用的屏幕截图的部件;并且
用于生成的部件进一步包括用于生成一组屏幕截图的部件。
26.根据权利要求25所述的计算设备,其中:
用于确定的部件进一步包括用于确定所述应用的屏幕截图的部件,其中所述屏幕截图被确定为位于时间线内,并且
用于生成的部件进一步包括用于生成遵循所述时间线的所述一组屏幕截图的部件。
27.根据权利要求25所述的计算设备,其中:
用于确定的部件进一步包括用于确定所述应用的屏幕截图的部件,其中所述屏幕截图被确定为相对于所述应用的所述用户接口的单个视图已被执行;并且
用于生成的部件进一步包括用于生成源自所述单个视图的所述一组屏幕截图的部件。
28.根据权利要求21至27中任一项所述的计算设备,其中:
用于分析的部件进一步包括用于确定所述用户接口的给定视图内的个体组件的定量测量的使用交互的部件;并且
用于生成的部件进一步包括用于生成所述用户接口的所述给定视图内的所述个体组件的定量测量的使用交互的指示的部件。
29.根据权利要求21至28中任一项所述的计算设备,其中由所述应用的插装版本中的测量库收集所述数据。
30.根据权利要求21至29中任一项所述的计算设备,其中所述输出包括输出到存储器、输出到网络或输出到显示器中的一项或多项。
31.一种计算机系统,包括:
用于接收应用的部件;
用于将测量库插装到所述应用中以创建所述应用的插装版本的部件,其中所述测量库被定义为在插装后的应用在计算设备上执行时捕获和记录与所述插装后的应用的用户接口进行的用户交互所导致的事件;以及
用于将所述插装后的应用发送到一个或多个计算设备的部件。
32.根据权利要求31所述的计算机系统,其中:
所述应用接收自第一计算设备;
发送所述插装后的应用的一个或多个计算设备是不同于所述第一计算设备的一个或多个第二计算设备;
所述计算机系统进一步包括用于从所述一个或多个第二计算设备接收数据的部件,所述数据包括所捕获和记录的事件。
33.根据权利要求32所述的计算机系统,还包括用于向所述第一计算设备发送所接收的数据的部件。
34.根据权利要求32所述的计算机系统,还包括:
用于在所述第一计算设备上分析所述数据以创建与所述应用的所述用户接口进行的用户交互的一个或多个表示的部件;
用于由所述第一计算设备生成所分析的数据的一个或多个表示的部件;以及
用于由所述第一计算设备输出与所述应用的所述用户接口进行的所述用户交互的所述一个或多个表示的部件。
35.一种计算设备,包括:
用于当应用在计算设备上执行时,由所述计算设备捕获和记录与所述应用的用户接口进行的用户交互所导致的事件的部件;以及
用于响应于触发器,向另一计算设备发送包括所捕获和记录的事件的数据的部件。
36.根据权利要求35所述的计算设备,其中所记录的事件的数据包括所述事件发生的时间的时间戳。
37.根据权利要求35至36中任一项所述的计算设备,其中所记录的事件的数据进一步包括所述事件的绝对坐标。
38.根据权利要求35至37中任一项所述的计算设备,其中如果存在对应于所述事件的用户控件,则所记录的事件的数据进一步包括对应于所述事件的用户控件。
39.根据权利要求35至38中任一项所述的计算设备,其中所记录的事件的数据进一步包括所述事件的事件调用目标。
40.根据权利要求35至39中任一项所述的计算设备,其中所记录的事件的数据进一步包括响应于所述事件的发生而获取的已捕获屏幕截图。
41.一种系统,包括根据权利要求21至31中任一项所述的计算设备,以及根据权利要求35至40中任一项所述的计算设备。
42.一种计算机程序,包括用于执行根据权利要求1至20中任一项所述的方法的程序代码。
43.根据权利要求42所述的计算机程序,其中所述计算机程序是包括计算机可读介质的计算机程序产品,所述计算机可读介质中承载与计算机一起使用的计算机程序代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/968,872 | 2013-08-16 | ||
US13/968,872 US9836193B2 (en) | 2013-08-16 | 2013-08-16 | Automatically capturing user interactions and evaluating user interfaces in software programs using field testing |
PCT/US2014/051236 WO2015023930A2 (en) | 2013-08-16 | 2014-08-15 | Automatically capturing user interactions and evaluating user interfaces in software programs using field testing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105453052A true CN105453052A (zh) | 2016-03-30 |
CN105453052B CN105453052B (zh) | 2018-08-24 |
Family
ID=52467773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480045118.4A Active CN105453052B (zh) | 2013-08-16 | 2014-08-15 | 用于评估用户接口的方法和计算设备 |
Country Status (3)
Country | Link |
---|---|
US (3) | US9836193B2 (zh) |
CN (1) | CN105453052B (zh) |
WO (1) | WO2015023930A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956478A (zh) * | 2016-04-25 | 2016-09-21 | 北京珊瑚灵御科技有限公司 | 一种基于iOS Method Swizzling技术的数据隔离系统和方法 |
CN107340954A (zh) * | 2017-07-03 | 2017-11-10 | 国家计算机网络与信息安全管理中心 | 一种信息提取方法和装置 |
CN111164950A (zh) * | 2017-07-31 | 2020-05-15 | 范普莱耶公司 | 用于用户分段即服务的方法和系统 |
CN112948239A (zh) * | 2021-02-04 | 2021-06-11 | 深圳市镜玩科技有限公司 | 应用程序的测试方法、系统、终端设备及计算机存储介质 |
US12073002B2 (en) | 2021-04-07 | 2024-08-27 | Fanplayr Inc. | Enhancing user identification with privacy protection across web servers |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582482B1 (en) * | 2014-07-11 | 2017-02-28 | Google Inc. | Providing an annotation linking related entities in onscreen content |
US10474481B2 (en) * | 2014-09-17 | 2019-11-12 | Ent. Services Development Corporation Lp | User interface layout comparison |
US9983853B2 (en) * | 2015-04-29 | 2018-05-29 | Facebook Inc. | Controlling data logging based on a lifecycle of a product |
CN107924361B (zh) * | 2015-05-12 | 2021-06-15 | 思优泰斯特有限公司 | 用于自动化软件应用测试过程的方法和系统 |
US10055340B2 (en) | 2015-06-10 | 2018-08-21 | International Business Machines Corporation | Dynamic test topology visualization |
US9772930B2 (en) * | 2015-06-22 | 2017-09-26 | Adobe Systems Incorporated | Techniques for evaluating applications through use of an auxiliary application |
US10503341B2 (en) * | 2015-07-09 | 2019-12-10 | International Business Machines Corporation | Usability analysis for user interface based systems |
US10235266B2 (en) * | 2015-07-10 | 2019-03-19 | Ca, Inc. | Application screen mapping for mobile analytics |
EP3360046A4 (en) * | 2015-10-08 | 2019-07-03 | Verto Analytics OY | METHOD, DEVICE AND ARRANGEMENT FOR MEASURING THE USE OF AN APPLICATION BASED ON VISUAL CHARACTERISTICS |
US10101870B2 (en) * | 2015-10-16 | 2018-10-16 | Microsoft Technology Licensing, Llc | Customizing program features on a per-user basis |
US20180336122A1 (en) * | 2015-11-30 | 2018-11-22 | Entit Software Llc | Generating application flow entities |
WO2017123203A1 (en) * | 2016-01-12 | 2017-07-20 | Entit Software Llc | Determining visual testing coverages |
US10102109B2 (en) | 2016-05-31 | 2018-10-16 | Red Hat, Inc. | Exception resolution in a software development session |
US11188449B2 (en) * | 2016-05-31 | 2021-11-30 | Red Hat, Inc. | Automated exception resolution during a software development session based on previous exception encounters |
US10725797B2 (en) * | 2016-09-05 | 2020-07-28 | Microsoft Technology Licensing, Llc | Service-driven dynamic user interface technology |
US10425692B2 (en) * | 2016-12-01 | 2019-09-24 | Synamedia Limited | Method and device for field testing user interfaces based on a flexible hierarchy structure |
US11392277B2 (en) * | 2017-10-13 | 2022-07-19 | Rainforest Qa, Inc. | Electronic product testing systems |
US10248543B2 (en) * | 2017-04-25 | 2019-04-02 | Dennis Lin | Software functional testing |
US11157924B2 (en) * | 2018-02-23 | 2021-10-26 | Blue Green Brands, Llc | System and method for customer journey analytics in e-commerce and digital marketing |
CN108710574A (zh) * | 2018-05-23 | 2018-10-26 | 百度在线网络技术(北京)有限公司 | 用户界面测试方法和装置 |
US10776252B1 (en) | 2018-11-27 | 2020-09-15 | Walgreen Co. | Crowd-sourced automatic generation of user interface tests for enterprise-specific mobile applications |
CN109840201B (zh) * | 2018-12-15 | 2023-07-18 | 中国平安人寿保险股份有限公司 | Ui测试方法、装置、电子设备及计算机可读存储介质 |
CN109783388B (zh) * | 2019-01-16 | 2022-03-01 | 北京金山云网络技术有限公司 | Ui自动化测试方法、装置及电子设备 |
US11455084B2 (en) * | 2019-08-28 | 2022-09-27 | ForgeDX LLC | System for building simultaneous interactive experiences |
US11132113B1 (en) | 2020-07-23 | 2021-09-28 | Microsoft Technology Licensing, Llc | Interaction signal processing in distributed computing systems |
KR20230016980A (ko) * | 2021-07-27 | 2023-02-03 | 현대자동차주식회사 | Gui 테스트 케이스 생성 장치 및 그 방법 |
US11917025B2 (en) * | 2021-08-30 | 2024-02-27 | Cisco Technology, Inc. | System for lifecycle progression leveraging adoption journey of networking and computing equipment |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070174490A1 (en) * | 2006-01-25 | 2007-07-26 | Greystripe Inc. | System and methods for managing content in pre-existing mobile applications |
US20100153548A1 (en) * | 2000-01-27 | 2010-06-17 | Jinsheng Wang | Method and system for tracking screen activities |
CN101821707A (zh) * | 2007-09-04 | 2010-09-01 | 苹果公司 | 应用菜单用户界面 |
CN102142016A (zh) * | 2010-01-29 | 2011-08-03 | 微软公司 | 跨浏览器交互活动记录、回放以及编辑 |
CN102193862A (zh) * | 2010-03-10 | 2011-09-21 | 微软公司 | 在多个执行环境中测试用户界面 |
CN102279791A (zh) * | 2010-06-11 | 2011-12-14 | 微软公司 | 用户界面清单 |
US20130019170A1 (en) * | 2011-07-11 | 2013-01-17 | International Business Machines Corporation | Automating execution of arbitrary graphical interface applications |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600789A (en) | 1992-11-19 | 1997-02-04 | Segue Software, Inc. | Automated GUI interface testing |
US6158049A (en) * | 1998-08-11 | 2000-12-05 | Compaq Computer Corporation | User transparent mechanism for profile feedback optimization |
US7379600B2 (en) | 2004-01-28 | 2008-05-27 | Microsoft Corporation | Method and system for automatically determining differences in a user interface throughout a development cycle |
US20050182750A1 (en) * | 2004-02-13 | 2005-08-18 | Memento, Inc. | System and method for instrumenting a software application |
US7886281B2 (en) * | 2004-03-30 | 2011-02-08 | Symantec Corporation | System and methods for cross-tier transaction tracing |
US9817963B2 (en) | 2006-04-10 | 2017-11-14 | International Business Machines Corporation | User-touchscreen interaction analysis authentication system |
US20080282230A1 (en) | 2007-05-07 | 2008-11-13 | International Business Machines Corporation | Product, method and system for using window authentication in testing graphical user interface applications |
US7739666B2 (en) * | 2007-06-15 | 2010-06-15 | Microsoft Corporation | Analyzing software users with instrumentation data and user group modeling and analysis |
US8495579B2 (en) | 2008-04-09 | 2013-07-23 | International Business Machines Corporation | Testing notification-based software applications |
US20100161506A1 (en) * | 2008-12-19 | 2010-06-24 | Nurago Gmbh | Mobile device and method for providing logging and reporting of user-device interaction |
US8499288B2 (en) | 2010-05-19 | 2013-07-30 | Microsoft Corporation | User interface analysis management |
US8533532B2 (en) * | 2010-06-23 | 2013-09-10 | International Business Machines Corporation | System identifying and inferring web session events |
US9606705B2 (en) * | 2012-09-06 | 2017-03-28 | Apple Inc. | Techniques for capturing and displaying user interaction data |
GB2508190A (en) * | 2012-11-22 | 2014-05-28 | Wonga Technology Ltd | Monitoring user interaction with webpages using unique identifiers for page components |
US9961127B2 (en) * | 2013-03-15 | 2018-05-01 | Foresee Results, Inc. | System and method for capturing interaction data relating to a host application |
US9405654B2 (en) * | 2013-06-20 | 2016-08-02 | Microsoft Technology Licensing, Llc | Monitoring mobile application performance |
-
2013
- 2013-08-16 US US13/968,872 patent/US9836193B2/en not_active Expired - Fee Related
-
2014
- 2014-08-15 WO PCT/US2014/051236 patent/WO2015023930A2/en active Application Filing
- 2014-08-15 CN CN201480045118.4A patent/CN105453052B/zh active Active
-
2015
- 2015-10-27 US US14/923,519 patent/US10268350B2/en active Active
- 2015-10-27 US US14/923,534 patent/US10222955B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100153548A1 (en) * | 2000-01-27 | 2010-06-17 | Jinsheng Wang | Method and system for tracking screen activities |
US20070174490A1 (en) * | 2006-01-25 | 2007-07-26 | Greystripe Inc. | System and methods for managing content in pre-existing mobile applications |
CN101821707A (zh) * | 2007-09-04 | 2010-09-01 | 苹果公司 | 应用菜单用户界面 |
CN102142016A (zh) * | 2010-01-29 | 2011-08-03 | 微软公司 | 跨浏览器交互活动记录、回放以及编辑 |
CN102193862A (zh) * | 2010-03-10 | 2011-09-21 | 微软公司 | 在多个执行环境中测试用户界面 |
CN102279791A (zh) * | 2010-06-11 | 2011-12-14 | 微软公司 | 用户界面清单 |
US20130019170A1 (en) * | 2011-07-11 | 2013-01-17 | International Business Machines Corporation | Automating execution of arbitrary graphical interface applications |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956478A (zh) * | 2016-04-25 | 2016-09-21 | 北京珊瑚灵御科技有限公司 | 一种基于iOS Method Swizzling技术的数据隔离系统和方法 |
CN105956478B (zh) * | 2016-04-25 | 2020-01-03 | 北京珊瑚灵御科技有限公司 | 一种基于iOS Method Swizzling技术的数据隔离系统和方法 |
CN107340954A (zh) * | 2017-07-03 | 2017-11-10 | 国家计算机网络与信息安全管理中心 | 一种信息提取方法和装置 |
CN111164950A (zh) * | 2017-07-31 | 2020-05-15 | 范普莱耶公司 | 用于用户分段即服务的方法和系统 |
CN111164950B (zh) * | 2017-07-31 | 2022-03-08 | 范普莱耶公司 | 用于用户分段即服务的方法和系统 |
US11394810B2 (en) | 2017-07-31 | 2022-07-19 | Fanplayr Inc. | Method and system for segmentation as a service |
US12003598B2 (en) | 2017-07-31 | 2024-06-04 | Fanplayr, Inc. | Method and system for segmentation as a service |
CN112948239A (zh) * | 2021-02-04 | 2021-06-11 | 深圳市镜玩科技有限公司 | 应用程序的测试方法、系统、终端设备及计算机存储介质 |
CN112948239B (zh) * | 2021-02-04 | 2024-05-14 | 深圳市仁凯网络科技有限公司 | 应用程序的测试方法、系统、终端设备及计算机存储介质 |
US12073002B2 (en) | 2021-04-07 | 2024-08-27 | Fanplayr Inc. | Enhancing user identification with privacy protection across web servers |
Also Published As
Publication number | Publication date |
---|---|
US10268350B2 (en) | 2019-04-23 |
WO2015023930A3 (en) | 2015-04-23 |
US10222955B2 (en) | 2019-03-05 |
WO2015023930A2 (en) | 2015-02-19 |
US9836193B2 (en) | 2017-12-05 |
CN105453052B (zh) | 2018-08-24 |
US20160048302A1 (en) | 2016-02-18 |
US20150052503A1 (en) | 2015-02-19 |
US20160048443A1 (en) | 2016-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453052A (zh) | 使用现场测试在软件程序中自动捕获用户交互并评估用户接口 | |
Bernal-Cárdenas et al. | Translating video recordings of mobile app usages into replayable scenarios | |
Joorabchi et al. | Real challenges in mobile app development | |
US10248541B2 (en) | Extraction of problem diagnostic knowledge from test cases | |
CN109739855B (zh) | 实现数据表拼接及自动训练机器学习模型的方法和系统 | |
US20140317602A1 (en) | Graphical User Interface Debugger with User Defined Interest Points | |
US9292413B2 (en) | Setting breakpoints in a code debugger used with a GUI object | |
CN104809056B (zh) | 一种接口测试代码的生成方法和装置 | |
AU2017327823B2 (en) | Test case generator built into data-integration workflow editor | |
US20110173589A1 (en) | Cross-Browser Interactivity Testing | |
US20080186276A1 (en) | Evaluation of visual content usage | |
US20180060222A1 (en) | Building signatures of application flows | |
Paganelli et al. | Tools for remote usability evaluation of Web applications through browser logs and task models | |
CN104572067A (zh) | 用于由源代码指定的用户界面的可视化的方法和系统 | |
CN104461903A (zh) | 基于浏览器的测试客户端的方法和装置 | |
US11816479B2 (en) | System and method for implementing a code audit tool | |
JP2017527901A (ja) | ユーザセッション間にわたる操作のアンドゥサポートを用いた自動保存 | |
US11308504B2 (en) | Product test orchestration | |
CN105453033A (zh) | 程序测试服务 | |
US9229846B1 (en) | Testing application code changes using a state assertion framework | |
CN111654495A (zh) | 用于确定流量产生来源的方法、装置、设备及存储介质 | |
Losada et al. | Applying Usability Engineering in InterMod Agile Development Methodology. A Case Study in a Mobile Application. | |
US20140258991A1 (en) | Trace coverage analysis | |
US11520692B1 (en) | Performing software testing with best possible user experience | |
Tarhan et al. | Cosmic solver: A tool for functional sizing of java business applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |