CN105453033A - 程序测试服务 - Google Patents

程序测试服务 Download PDF

Info

Publication number
CN105453033A
CN105453033A CN201480030256.5A CN201480030256A CN105453033A CN 105453033 A CN105453033 A CN 105453033A CN 201480030256 A CN201480030256 A CN 201480030256A CN 105453033 A CN105453033 A CN 105453033A
Authority
CN
China
Prior art keywords
test
program
equipment
request
developer
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
Application number
CN201480030256.5A
Other languages
English (en)
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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
Priority claimed from US13/875,945 external-priority patent/US20140331209A1/en
Priority claimed from US13/875,955 external-priority patent/US20140331205A1/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105453033A publication Critical patent/CN105453033A/zh
Pending legal-status Critical Current

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
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种服务提供商网络包括具有连接到其上的各种计算设备的主机。为了测试程序的操作,开发人员创建程序和用于在测试所述程序中使用的一个或多个测试案例。所述开发人员还识别所述服务提供商网络中用于在测试所述程序中使用的设备。一旦已做出这种选择,测试请求就被提交给所述服务提供商网络。当所述服务提供商网络接收所述测试请求时,所述程序被安装在测试将要在其上执行的所述设备上。随后,利用所供应的测试案例来在所述设备上测试所述程序的所述操作的各方面。一旦已完成所述程序的所述测试,就可将所述测试的结果传输给所述开发人员。可利用类似的过程来在各种设备模拟器上测试程序。

Description

程序测试服务
背景技术
在最近的几年里,智能手机和平板电脑计算设备的可用型号的数量已经呈指数型增长。例如,在最近若干年里,被配置来执行安卓(ANDROID)操作系统的可用智能手机型号的数量已显著增长。被配置来执行ANDROID操作系统的平板计算设备的可用型号的数量也发生了类似的增长。执行ANDROID操作系统的其他类型的计算设备也显示了显著增长。执行其他操作系统的智能手机、平板电脑和其他计算设备的可用型号的数量近来也显示了极大增长。
上述智能手机、平板电脑和其他计算设备的各种型号时常具有不同的硬件配置,即使当这些设备被配置来执行相同的操作系统时。例如,基于ANDROID操作系统的不同的智能手机型号可包括不同的处理器、不同量的存储器,以及不同的外部设备如摄像头、全球定位系统(“GPS”)传感器等。这些设备还可包括在软件配置方面的显著变化。例如,一些型号可配置有不同版本的ANDROID操作系统和/或配置有由设备的制造商安装在设备上的不同的软件。执行来自其他制造商的其他操作系统的智能手机和平板电脑还可包括在硬件和软件方面的巨大变化。
智能手机、平板电脑和其他类型的计算设备的软件和硬件配置方面的显著变化可使开发商难以创建在范围广泛的设备上正确执行的程序。例如,开发人员可在他们拥有的单个设备上测试他们的程序的操作。然而,购买许多物理设备以用于测试对于开发人员来说通常是成本高昂的。尽管开发人员可利用设备模拟器来测试程序的执行,但是设备模拟器也可能具有能够执行的测试的类型和深度方面的限制。另外,设备模拟器可能并不是对于所有可用设备来说都是可用的。由此,由开发人员创建的程序可能不会在除了物理设备或者开发人员能够在其上明确测试程序的执行的设备之外的设备上最佳地执行。未正确执行的程序可能会令开发人员和购买程序的客户均感到沮丧。
本文所作的公开内容正是对于这些和其他考虑而呈现。
附图说明
图1是示出本文所描述的根据本文所公开的一个实施方案的用于利用程序测试服务来测试程序的操作的一个示例性机构的综述的网络体系结构图;
图2是示出本文所描述的根据本文所公开的一个实施方案的用于将请求提交给程序测试服务来测试程序的操作的一个示例性机构的方面的网络体系结构图;
图3是示出本文所描述的根据本文所公开的一个实施方案的用于测试程序的操作并在所述测试后将测试结果返回给请求者的一个示例性机构的方面的网络体系结构图;
图4是示出根据本文所公开的一个实施方案的用于请求程序服务测试程序、以及用于接收和呈现程序的测试的结果的开发人员计算机的操作的方面的流程图;
图5是示出根据本文所公开的一个实施方案的服务提供商网络中用于测试程序的操作并且用于提供测试的结果的部件的操作的方面的流程图;
图6是示出本文所描述的根据本文所公开的一个实施方案的用于利用开发人员计算机与服务提供商网络中的设备之间的直接连接来测试程序的操作的一个示例性机构的方面的网络体系结构图;
图7是示出本文所公开的根据本文所公开的一个实施方案的用于利用开发人员计算机与服务提供商网络中的设备之间的直接连接来测试程序的操作的一个示例性例程的方面的流程图;并且
图8是示出用于实现可利用来实现本文所呈现的各个实施方案的方面的计算设备的一个示例性计算机硬件体系结构的计算机体系结构图。
具体实施方式
以下详细描述涉及用于提供和利用程序测试服务的技术。利用本文所描述的技术,服务提供商可提供基于网络的程序测试服务,所述测试服务包括用于准许开发人员在广泛多种物理计算设备和/或设备模拟器上测试程序的操作的功能。通过使用这种程序测试服务,开发人员可快速、容易并经济地在许多计算设备(如智能手机、平板电脑以及潜在地其他类型的设备)上测试程序的操作。通过这类型型的测试,开发人员可提高他们的程序将在范围广泛的计算设备上正确执行的可能性。
根据本文所呈现的一个方面,公开了用于提供并利用基于网络的程序测试服务的计算机可实现的机构。根据一个实施方案,服务提供商操作包括具有连接到它们的各种计算设备的主机的服务提供商网络。例如,服务提供商网络中的主机可具有一定数量(例如六至十六)的智能手机或平板计算设备或连接到它们的其他类型的移动计算设备。作为一个实例,服务提供商网络中的主机可具有利用适当连接类型(如通用串行总线(“USB”)连接)连接到它们的十六个智能手机。所连接的设备可具有不同的硬件和/或软件配置。其他类型的设备也可连接到主机以用于在测试程序中使用。如将会在以下更详细地描述的,开发人员可利用本文所公开的机构来在连接到服务提供商网络中的主机的设备上测试程序的执行。
在一些实现方式中,服务提供商网络也可包括具有在其上执行的设备模拟器的主机。例如,主机可被配置来在虚拟机器实例中执行一定数量(例如二至三个)的设备模拟器。设备模拟器可模拟设备的物理硬件,像具有不同的硬件和/或软件配置的智能手机或平板电脑。也如将会在以下更详细地描述的,开发人员可利用本文所公开的机构来在服务提供商网络中的主机上执行的设备模拟器上测试程序的执行。
为了测试程序的操作,开发人员首先以约定的方式创建程序。例如,开发人员可利用合适的程序开发环境来创建程序。随后,开发人员创建一个或多个测试案例用于在测试程序中使用。测试案例描述程序应该被测试的方式。以下将会呈现关于测试案例的另外的细节。
一旦开发人员已创建程序以及用于程序的至少一个测试案例,那么可呈现给开发人员用于在测试程序的操作中使用的可用设备和/或设备模拟器的列表。随后,可准许开发人员选择用于在测试程序的操作中使用的一个或多个设备和/或设备模拟器。一旦已完成这种选择,那么测试请求被提交给服务提供商网络中的部件。测试请求可包括程序、至少一个测试案例以及识别应该用于测试程序的操作的设备和/或设备模拟器的数据。可通过由服务提供商网络提供的页面(如Web门户中的Web页面)以电子邮件消息或以另一种方式通过程序开发环境将测试请求传输到服务提供商网络。
当服务提供商网络接收测试要求时,服务提供商网络中的工作流协调器或另一个部件可确定程序将要在其上测试的计算设备和/或设备模拟器是否可加以使用(即,不在测试另一个程序中使用)。如果程序将要在其上测试的设备和/或设备模拟器不可加以使用,那么工作流部件可使得测试请求排队直到请求用于测试的设备和/或设备模拟器变得可加以使用为止。
如果设备和/或设备模拟器可加以使用,那么工作流协调器结合服务提供商网络中的其他部件可使得程序安装在测试将要在其上执行的设备和/或设备模拟器上。随后,程序在设备和/或设备模拟器上执行,并且利用所供应的测试案例或测试案例来测试程序的操作的各种方面。可在许多设备和/或设备模拟器上同时执行测试。在程序的测试期间也可给开发人员提供实时测试数据。例如,可将由测试在其上执行的设备或设备模拟器产生的文本数据或视频屏幕数据传输给开发人员。
一旦已完成程序的测试,就可收集测试的结果并将其传输给程序的开发人员。结果可包括概要结果(例如,特定测试是通过还是失败);详细结果,如由程序或测试案例产生的记录文件,在测试之前、期间和/或之后截取的屏幕截图以及潜在地在测试期间从设备和/或设备模拟器捕获的视频。随后,开发人员可利用测试结果来修改程序的操作的各方面。以这种方式,开发人员可利用上述测试服务来快速、容易并经济地在许多物理计算设备(如智能手机或平板电脑和/或用于许多不同的计算设备的设备模拟器)上测试程序的操作。以下将相对于图1-6呈现有关上述用于提供和利用基于网络的程序测试服务的各种部件和过程的另外的细节。
应理解,本文所呈现的主题可实现为计算机过程、计算机控制的装置、计算系统或如计算机可读存储介质的制品。尽管在一个或多个计算设备上执行的程序模块的上下文中呈现了本文所描述的主题,但是本领域的技术人员应认识到可结合其他类型的程序模块执行其他实现方式。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、部件、数据结构以及其他类型的结构。
本领域的技术人员还将理解,本文所描述的主题的方面可在除了本文所描述的这些之外的其他计算机系统配置上实践或者可结合所述其他计算机系统配置实践,所述其他计算机系统配置包括:多处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机、手持计算机、个人数字助理、电子阅读器、蜂窝电话设备、专用硬件设备、网络应用等。如以上简要提及的,可在分布式计算环境中实践本文所描述的实施方案,在所述分布式计算环境中可由通过通信网络链接的远程计算设备来执行任务。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
在以下详细描述中,对形成本文的一部分并通过说明示出了具体实施方案或实例的附图进行参考。本文的附图未按比例绘制。贯穿若干图式(其在本文中可被称为“图(FIG.)”或“图(FIGS.)”),相同的数字表示相同的元件。
图1是示出本文所描述的根据本文所公开的一个实施方案的用于利用基于网络的程序测试服务来测试程序108的操作的一个示例性机构的综述的网络体系结构图。如图1中所示,开发人员102可利用适当的开发人员计算机106来执行程序开发环境104。如本领域所已知的,程序开发环境104是允许用户创建、编译和执行程序(如程序108)的环境。例如,在本文所公开的一个示例性实施方案中,程序开发环境104是来自ECLIPSEFOUNDATION的ECLIPSE集成开发环境(“IDE”)。然而应理解,来自其他供应商的其他IDE和其他类型的程序开发环境104也可在本文所公开的机构中利用。
在一个实现方式中,程序108是配置用于在计算设备,如智能手机、平板计算设备、电子阅读器设备或另一类型的计算设备上执行的可执行或翻译的程序。在这方面,应理解,尽管本文所公开的实施方案主要呈现在智能手机计算设备的上下文中,但是本文所公开的各实施方案也可在其他类型的计算设备中利用。例如,并且非限制性地,本文所公开的实施方案可在平板电脑计算设备、视频游戏设备、机顶盒设备和其他类型的计算设备中利用。本文所公开的实施方案不应被解释为对智能手机设备或来自特定制造商的设备的限制。
为了利用多种计算设备测试程序108的操作,开发人员102可通过网络126建立到服务提供商网络110的连接。如将在以下更详细描述的,服务提供商网络110由服务提供商操作,并且被配置来提供用于在多种计算设备上测试程序(如程序108)的基于网络的服务。开发人员计算机106可通过适当的网络126(如因特网)连接至服务提供商网络110。应理解,图1和其他图中所示的网络拓扑结构仅是说明性的,并且可利用更多的网络、网络设备、计算系统和软件部件来实现本文所公开的在图中所示的各个实施方案。
为了在多种设备上测试程序108,开发人员102可首先限定用于在指定的设备上测试程序108的操作中使用的一个或多个测试案例114。测试案例114描述当程序108在各种计算设备上执行时应该在程序108上执行的测试或多个测试。例如,测试案例114可限定呈现给程序108在其上测试的设备的模拟用户输入事件。在其他实现方式中,测试案例114可限定取向、配置的改变和/或模拟外部设备的存在或移除。测试案例114还可限定当程序108被测试时发送伪随机事件给设备的压力测试。测试案例114还可限定被配置来测试程序108的操作的各种方面的其他类型的测试,如对电池寿命、处理器或存储器使用或其他操作性方面的影响。在某些实施方案中,服务提供商还可提供用于由开发人员102使用的预定义的测试案例114。例如,可提供预定义的测试案例114以用于执行程序108并确定是否遇到任何错误、用于压力测试程序108和/或用于对程序108执行其他类型的测试。
当程序108在其上测试的设备是基于来自谷歌有限公司(GOOGLE,INC.)的ANDROID操作系统时,可利用安卓设备测试框架(ANDROIDINSTRUMENTATIONTESTINGFRAMEWORK)来限定测试案例114。当用来测试程序108的设备配置有来自其他制造商的操作系统时,可利用其他格式来限定测试案例114。在这方面,应理解,尽管本文所描述的实施方案主要呈现在利用ANDROID操作系统在计算设备上测试程序108的上下文中,但是本文所呈现的实施方案不局限于在这些设备中使用。例如,可利用本文所公开的实施方案来在执行来自其他制造商的其他类型的操作系统的设备上测试程序108。
在一些实施方案中,还可提供各种开发工具来协助开发人员102创建测试案例114以用于在与通过服务提供商网络110提供的测试服务中使用。例如,在一个实现方式中,可提供允许开发人员102记录用户接口交互的基于用户接口(“UI”)的软件开发工具。随后,可利用这些UI交互来在由服务提供商网络110提供的各种计算设备上测试程序108的功能。应理解,还可提供其他类型的软件工具以用于由开发人员102在利用并与由如本文所描述的服务提供商网络110提供的各种设施的交互中使用。
一旦开发人员102已完成程序108和测试案例114的创建,就可准许开发人员102选择服务提供商网络110内的将要用于测试程序108的操作的一个或多个计算设备118。例如,在各个实施方案中,可用设备118的列表可呈现给开发人员102。在其他实现方式中,可通过对程序108的任何分析来选择程序将要在其上测试的特定的设备118或多个设备118。例如,如果程序108已被创建用于在特定操作系统或设备类型中使用,那么可利用所述信息来选择程序108将要在其上测试的设备118或多个设备。
在一些实施方案中,还可准许开发人员102在由服务提供商网络110提供的设备模拟器122上测试程序108的操作。如本领域已知的,设备模拟器122是计算设备的软件模拟。利用所述机构,开发人员102可在实际物理计算设备118以及在设备模拟器122上同时测试程序108的操作。
根据各个实施方案,开发人员102可选择开发人员102希望程序108将要在其上测试的具体的设备或多个设备。还可准许开发人员102通过设备执行的操作系统版本来选择设备。在其他实现方式中,还可准许开发人员102基于设备的硬件、软件或其他方面的类型来选择用于测试的设备。例如,开发人员102可请求程序108在具有摄像头和特定版本的ANDROID操作系统的设备上测试。在这方面,应理解,可准许开发人员102选择设备和/或设备模拟器,用于在基于以下中的一个或多个测试程序108中使用:设备制造商、设备类型、设备版本、设备硬件、操作系统版本、其他软件版本或设备的其他属性。
一旦开发人员102已产生了程序108、创建了测试案例114并且选择了程序108应该在其上测试的设备和/或模拟器,就可将测试请求112传输至服务提供商网络110。测试请求112包括程序108、测试案例114以及识别程序108应该在其上测试的设备和/或模拟器的数据。在其他实施方案中,可将上述测试请求112的各种部件储存在其他位置,并且对这些位置的参考可包括在测试请求112中。在其他实现方式中,可以其他方式给服务提供商网络110提供测试请求112中的上述各种数据。
响应于接收测试请求112,服务提供商网络110内的各种部件被配置来使得测试案例114所描述的测试在指定的设备和/或设备模拟器上执行的同时在程序108上执行。例如,在图1中所示的实例中,服务提供商网络110包括主机116B,所述主机116B具有附接在其上的若干计算设备118A-118N。在一个实现方式中,计算设备118A-118N是执行ANDROID操作系统的智能手机或平板电脑计算设备的各种型号。计算设备118A-118N可通过合适的有线连接(如USB连接)连接至主机116B。计算设备118A-118N还可通过合适的无线连接连接至主机116B。
在另一个实现方式中,计算设备118A-118N是仅包括设备独有的硬件的智能手机设备。例如,设备118可以是仅包括移动计算设备的特定型号独有的处理器和存储器的开发母板。由移动计算设备所利用的、各种设备中所常见的其他硬件设备可由在主机116上执行的软件模拟。以这种方式,可降低设备118A-118N中的每一个的成本。其他类型的开发板和/或平台也可连接至服务提供商网络110中的主机116以用于以本文所公开的方式在测试中使用。
在图1中所示的实例中,服务提供商网络110还包括执行大量设备模拟器122A-122N的主机116A。设备模拟器122A-122N可在主机116A的物理硬件上执行,或者在其他实施方案中可在在主机116A上执行的虚拟机内执行。也可利用用于执行设备模拟器122A-122N的其他机构。
为了测试程序108的操作,首先将程序108安装在由开发人员102指定的计算设备118A-118N和/或设备模拟器122A-122N上。一旦已将程序108安装在适当的计算设备118A-118N和/或设备模拟器122A-122N上,就可利用测试案例114来在各种计算设备118和/或设备模拟器122上测试程序108的操作。应理解,可同时执行这些测试,从而允许开发人员102在多种计算设备118和设备模拟器122上同时测试程序108的操作。
如将在以下更详细描述的,服务提供商网络110可在执行程序108的测试时给开发人员102提供实时测试数据。例如,可将描述测试的各方面的文本数据提供给开发人员计算机106。在其他实现方式中,可在执行程序108的测试时给开发人员计算机106提供由计算设备118A-118N和/或设备模拟器122A-122N输出的显示。也可在执行指定的测试期间给开发人员计算机106提供其他类型的数据以用于由开发人员102使用。
当已完成程序108的测试时,服务提供商网络110被配置来将测试结果124传输给开发人员计算机106。如将在以下更详细描述的,测试结果124可包括用于测试在其上执行的每个计算设备118A-118N和设备模拟器122A-122N的信息。测试结果124可概述测试的结果和/或提供关于测试的执行的更详细的信息。例如,测试结果124可描述测试的成功或失败,可提供在执行测试期间从计算设备118和/或设备模拟器122收集的记录和/或其他信息,并且可提供其他实施方案中的其他信息。也如以下将更详细描述的,测试结果124还可包括在执行测试期间从计算设备118A-118N和/或设备模拟器122A-122N捕获的屏幕显示。在其他实施方案中,测试结果124还可包括其他信息。
一旦开发人员102已接收测试结果124,开发人员102就可利用测试结果124来修改程序108的操作。随后,开发人员102可重复利用上述测试服务来继续测试程序108的操作。以下将会参考图2-5提供关于在开发人员计算机106上和服务提供商网络110内的各种部件的操作的另外的细节。
图2是示出本文所描述的根据本文所公开的一个实施方案的用于给程序测试服务提交测试请求112来测试程序108的操作的一个示例性机构的方面的网络体系结构图。如上所简要描述的,开发人员102可利用开发人员计算机106上的各种软件部件来给上述服务提供商网络110传输测试请求112。图2提供关于可用在各个实施方案中来给服务提供商网络110提交测试请求112的各种部件的另外的方面。
在一个实现方式中,提供属于程序开发环境104的插件201以用于给服务提供商网络110提交测试请求112A。插件201可在程序开发环境104内执行,并且提供用于呈现用于在测试程序108的操作中使用的可用计算设备118A-118N和/或设备模拟器122A-122N的列表的功能。一旦开发人员102已选择用于在测试程序108中使用的计算设备118A-118N和/或设备模拟器122A-122N,插件201就可将测试请求112A传输至服务提供商网络110。
如图2中所示并且如上所简要描述的,测试请求112A包括:将要测试的程序108;描述测试应该如何发生的一个或多个测试案例114;以及识别测试应该在其上执行的计算设备118A-118N和/或设备模拟器122A-122N的数据202。如上所提及的,可在测试请求112A中而不是在实际程序108和测试案例114中提供对程序108和/或测试案例114的参考。也可利用其他机构来给服务提供商网络110供应程序108和测试案例114。
在另一个实现方式中,服务提供商网络110被配置来提供开发人员102可通过其来传输测试请求112的Web门户206或另一种类型的信息页面。例如,在图2中所示的实例中,服务提供商网络110被配置来提供开发人员102可通过其来传输测试请求112B的Web门户206。也如图2中所示,可利用Web浏览器程序204或其他合适的程序来访问Web门户206并传输测试请求112B。Web门户206还可包括用于允许开发人员102指定程序108应该在其上测试的计算设备118A-118N和/或设备模拟器122A-122N的功能。
在又一个实现方式中,开发人员102可利用在开发人员计算机106上执行的电子邮件程序208来创建并传输包括测试请求112C的电子邮件信息210。程序108、测试案例114以及识别用于测试的计算设备118和/或设备模拟器122的数据202可被附接至电子邮件信息210。另外,电子邮件信息210可包括对程序108、测试案例114以及识别应该用来测试程序108的操作的计算设备118A-118N和/或设备模拟器122A-122N的数据202的网络位置的参考。
应理解,参考图2描述的机构仅仅是说明性的。在其他实现方式中,可利用其他机构以便允许开发人员102给为测试程序108提供服务的服务提供商网络110传输测试请求112。图2中所示的机构仅仅是说明性的并且其所附的权利要求书不应局限于这些特定的机构。
图3是示出本文所描述的根据本文所公开的一个实施方案的用于测试程序108的操作并在测试之后给请求者返回测试结果124的一个示例性机构的方面的网络体系结构图。如图3中所示并且如上所简要描述的,服务提供商网络110提供用于测试程序108的操作的基于网络的服务。如上所提及的,可将程序108以测试请求112或以另一种方式提交给服务提供商网络110。
在一个实现方式中,服务提供商网络110内的工作流协调器302接收测试请求112。如本文将更详细描述的,工作流协调器302是被配置来给服务提供商网络110内的主机116A-116C分配测试请求112的部件。工作流协调器302还可从各种主机116A-116C接收测试结果124并将测试结果124提供给提交测试请求112的开发人员计算机106。以下将会提供关于测试结果124的细节。
响应于接收测试请求112,在一个实施方案中工作流协调器302被配置来确定在测试请求112中所请求的计算设备118A-118N和/或设备模拟器122A0-122N是否可在测试程序108中加以使用。如果所请求的计算设备118A-118N和/或设备模拟器122A-122N不可用,那么工作流协调器302可利用排队部件304来使测试请求112排队,(这样)所请求的计算设备118A-118N和/或设备模拟器122A-122N就变的可用。在一些实现方式中,如果计算设备118A-118N或设备模拟器122A-122N中的任一个是不可用的,那么可使测试请求112所请求的全部测试排队。在其他实施方案中,仅可使注定用于不可用计算设备118A-118N和/或不可用设备模拟器122A-122N的测试请求112所请求的这些测试排队。在其他实现方式中,还可利用其他机构来使测试请求112排队。
如果程序108的测试将要在其上执行的计算设备118A-118N和/或设备模拟器122A-122N是可用的,那么工作流协调器302将测试请求112传输至在主机116A-116C上执行的工作流客户端306。例如,如果测试请求112指示测试在计算设备118A上执行的同时应该在程序108上执行,那么工作流协调器302可将测试请求112传输至在主机116B上执行的工作流客户端306。以类似的方式,如果测试请求112指示将要使用设备模拟器122A执行测试,那么工作流协调器302可将测试请求112传输至在主机116A上执行的工作流客户端306。
在主机116A-116C中的每个上执行的工作流客户端306被配置来从工作流协调器302接收测试请求112。响应于接收测试请求112,工作流客户端306使得开发桥接器308将程序108安装在将要测试的计算设备118或设备模拟器122上。开发桥接器308提供用于与连接的计算设备118或设备模拟器122交互的机构。在一个特定的实现方式中,开发桥接器308是ANDROID调试桥接器。当计算设备118A-118N和/或设备模拟器122A-122N利用ANDROID操作系统时,利用ANDROID调试桥接器。当利用配置有来自其他制造商的其他操作系统的计算设备118A-118N和/或设备模拟器122A-122N来测试程序108的操作时,也可利用其他类型的桥接器。
一旦将要测试的程序108已被安装在测试应该在其上发生的计算设备118A-118N和/或设备模拟器122A-122N上,就可利用与测试请求112一起提交的测试案例114来测试程序108的操作。如以上参考图1所描述的,测试案例114可在目标计算设备118A-118N和/或设备模拟器122A-122N上测试程序108的操作的各种方面。例如,测试案例114可测试用户与程序108交互的能力、给程序108发送用户行为(如按键)、模仿计算设备118A-118N和/或设备模拟器122A-122N的取向的改变、以编程方式维护用在程序108中的不同的变量、证实和/或维护由程序108在UI元件中不同显示的文本并提供其他种类的测试。
在一个特定的实现方式中,主机116A-116C被配置来当执行程序108的测试时给开发人员计算机106传输实时测试数据318。例如,在一些实现方式中,实时测试数据318包括描述在特定的计算设备118A-118N或设备模拟器122A-122N上持续测试程序108的文本数据。在其他实现方式中,实时测试数据318可包括由用来测试的计算设备118A-118N和/或设备模拟器122A-122N中的一个产生的视频显示输出。随后,可将实时测试数据318呈现在开发人员计算机106上以便由开发人员102查看。以这种方式,开发人员102可查看程序108在计算设备118A-118N或设备模拟器122A-122N上的实时操作性测试。当同时执行多个测试时,可在开发人员计算机106处利用允许开发人员102选择实时测试数据318为其显示的计算设备118A-118N和/或设备模拟器122A-122N的机构。
一旦已在计算设备118A-118N和/或设备模拟器122A-122N上完成程序108的测试,主机116A-116C的每个就给工作流协调器302提供测试结果124。反过来,工作流协调器302给开发人员计算机106提供测试结果124。如图3中所示,测试结果124可包括指示特定测试是通过还是失败的结果概要310。测试结果124还可包括详细结果312,所述详细结果312包括关于在计算设备118A-118N和/或设备模拟器122A-122N上执行测试的详细信息。例如,详细结果312可包括由计算设备118、模拟器122和/或开发人员桥接器308在计算设备118A-118N和/或设备模拟器122A-122N上测试程序108期间所产生的记录文件和/或其他详细结果。
在一些实现方式中,测试结果124还包括在程序108的测试期间在计算设备118和/或设备模拟器122上截取的一个或多个屏幕截图314。类似地,测试结果124还可包括在程序108的测试的全部或一部分期间从计算设备118和/或设备模拟器122捕获的视频316。在这方面,应理解,图3中所示的测试结果124的内容仅仅是说明性的并且测试结果124中可提供其他类型的信息。
也可在开发人员计算机106处提供适当的功能用于将测试结果124呈现给开发人员102。利用测试结果124,开发人员102可利用程序开发环境104对程序108作出改变。随后,开发人员102可将程序108重新提交给服务提供商110用于以上述方式继续测试。
图4是示出根据本文所公开的一个实施方案的说明用于请求基于网络的程序服务来测试程序108、以及用于接收和呈现程序108的测试的结果124的开发人员计算机106的操作的方面的示例性例程400的流程图。应理解,本文相对于图4和其他图所描述的逻辑运算可实现为(1)在计算系统上运行的计算机实现的行为或程序模块的序列和/或(2)计算系统内互连的机器逻辑电路或电路模块。
本文所述的各种部件的实现方式是取决于计算系统的性能和其他要求的选择问题。因此,本文所描述的逻辑运算被不同地称为操作、结构设备、行为或模块。这些操作、结构设备、行为和模块可在软件、固件、专用数字逻辑以及其任何组合中实现。还应理解,可执行比各图中示出和本文描述的更多或更少的操作。这些操作也可以与本文中所描述的那些并行地执行或以与其不同的次序来执行。
例程400在操作402处开始,在所述操作402处,将设施提供在开发人员计算机106上用于开发程序108。如上所述,可在各个实施方案中利用程序开发环境104来开发程序108。也如以上所提及,也可在开发人员计算机106处提供用于限定应该用于测试程序108的操作的测试案例114的设施。这发生在例程400的操作404处。
一旦开发人员102已开发程序108和测试案例114,就可呈现通过用于在测试程序108的操作中使用的服务提供商网络110可用的计算设备118A-118N和/或设备模拟器122A-122N的列表。如上所提及的,可通过程序开发环境104中所提供的插件201或者通过由服务提供商网络110所提供的Web门户206来呈现这种列表。还可利用其他机构来提供用于测试程序108的操作的可用计算设备118A-118N和设备模拟器122A-122N的列表。
例程400从操作406行进至操作408,在所述操作408处,从开发人员102接收用于在测试程序108的操作中使用的选择的计算设备118A-118N和/或设备模拟器122A-122N。响应于此,例程400行进至操作410,在所述操作410处测试请求112被传输至服务提供商网络110。如上所讨论的,测试请求112可包括程序108或对程序108、测试案例114以及识别测试应该在其上发生的计算设备118A-118N和/或设备模拟器122A-122N的数据的参考。
例程400从操作410行进至操作412,在所述操作412处开发人员计算机106可从服务提供商网络110接收实时测试数据318。如上所述,实时测试数据318可包括由主机116在程序108的测试期间所产生的文本或图形图像。可利用开发人员计算机106上的适当的部件,如插件201或Web浏览器程序204来将实时测试数据318呈现给开发人员102。
例程400从操作412行进至操作414,在所述操作414处做出关于程序108在服务提供商网络110上的测试是否已完成的确定。如果测试未完成,那么例程400可返回至操作412,在所述操作412处可给开发人员102持续呈现实时测试数据318。如果测试完成,那么例程400从操作414行进至操作416。
在操作416处,开发人员计算机106接收并呈现测试结果124。如上所讨论的,在各个实施方案中,测试结果124可包括结果概述310、详细结果312、屏幕截图314和/或视频316。可利用在开发人员计算机106上执行的适当的部件,如插件201或Web浏览器程序204来将实时测试结果124呈现给开发人员102。例程400从操作416行进至操作418,在所述操作418处结束。
图5是示出根据本文所公开的一个实施方案的说明服务提供商网络110中用于测试程序108的操作以及用于提供测试的结果124的部件的操作的方面的一个示例性例程500的流程图。例程500在操作502处开始,在所述操作502处服务提供商网络110接收测试请求112。响应于接收测试请求112,服务提供商网络110内的工作流协调器302或另一个部件确定所请求的计算设备118A-118N和/或设备模拟器122A-122N是否可在测试程序108中加以使用。如果所请求的计算设备118和/或设备模拟器122不可用,那么例程500可行进至操作506,在所述操作506处可使测试请求112排队。如上所讨论的,可在服务提供商网络110中提供排队部件304以便使测试请求112排队直到所请求的计算设备118A-118N和/或设备模拟器122A-122N变得可用。
如果在操作504处工作流协调器302确定所请求的计算设备118A-118N和/或设备模拟器122A-122N是可用的,那么例程500从操作504行进至操作508。在操作508处,工作流协调器302给主控测试应该在其上发生的计算设备118A-118N和/或设备模拟器122A-122N的主机116A-116C提供包括程序108的测试请求112。随后,例程500行进至操作510,在所述操作510处在各自的主机116上的开发桥接器308将程序108安装在测试将要在其上发生的计算设备118和/或设备模拟器122上。
一旦已安装程序108,例程500就行进至操作512,在所述操作512处可利用提供有测试请求112的测试案例114来在测试请求112所指定的计算设备118A-118N和/或设备模拟器122A-122N上测试程序108的操作。如上所提及的,在程序108的测试期间可将实时测试数据318传输至开发人员计算机106。这在操作514处发生。
例程500从操作514行进至操作516,在所述操作516处做出关于程序108的测试是否已完成的确定。如果测试未完成,那么例程500返回至操作514,在所述操作514处服务提供商网络110可继续来以上述方式将实时测试数据318传输给开发人员计算机106。然而,如果已完成程序108的测试,那么服务提供商网络110产生测试结果124。如上所提及的,在各个实施方案中,测试结果124可包括结果概述310、详细结果312、屏幕截图314、和/或视频316。测试结果124还可包括本文未具体提及的其他数据。
例程500从操作518行进至操作520,在所述操作520处将测试结果124传输至开发人员计算机106以用于呈现给开发人员102或以另一种方式使用。一旦已将测试结果124传输至开发人员计算机106,就可利用服务提供商网络110内的部件(如开发桥接器308)来重新设定测试在其上发生的计算设备118A-118N和/或设备模拟器122。以这种方式,可将计算设备118和/或设备模拟器122放置到基线状态中以用于将来测试。例程500从操作522行进至操作524,在所述操作524处结束。
在一些实施方案中,可储存上述测试的结果以便由开发人员102将来使用。例如,可将测试结果124储存在服务提供商网络110处、开发人员计算机106处或在另一个位置。也可提供用于允许开发人员102检查所储存的测试结果124的机构。例如,可提供Web门户或其他类型的合适的用户接口以便预先检查所产生和所储存的测试结果124。
应理解,尽管本文所公开的实施方案已主要呈现在测试程序108的上下文中,但是本文所公开的实施方案可用于其他类型的测试。例如,在一个特定的实现方式中,可利用上述测试服务来测试Web页面。在这种实现方式中,将要测试的Web页面可由在计算设备118A-118N和/或设备模拟器122A-122N中的一个或多个上执行的Web浏览器应用加载。随后,可利用适当的测试案例114来测试Web页面的呈现和操作。随后,可以上述方式提供测试结果124。
在另一个实现方式中,图6中所示并且以下相对于图7更详细地描述的,开发人员计算机106可被配置来建立到计算设备118A-118N和/或设备模拟器122A-122N中的一个的直接网络连接以便在测试程序108的操作中使用。通过这种连接,开发人员102可与设备118或模拟器122交互来提供用户输入604以便在设备118或模拟器122上测试程序108的操作。开发人员102还可查看由模拟器122或设备118产生的显示输出606。
在图6中所示的实施方案中,在开发人员计算机106上执行的程序开发环境104、属于程序开发环境104的插件或另一个程序可被配置来将直接连接请求602传输给服务提供商网络110来建立到计算设备118A-118N中的一个或设备模拟器122A-122N中的一个的直接网络连接。响应于接收这种请求602,主控所请求的模拟器122或设备118的主机116A或116B可确定已向其请求直接连接的模拟器122或设备118是否可用。
如果已向其请求直接连接的模拟器122或设备118不可用,那么可拒绝建立直接网络连接的请求602。例如,在图6中所示的实施方案中,请求602是在开发人员计算机106与设备118N之间建立直接网络连接。在这种情况下,如果设备118N由另一个开发人员使用或者以其他方式不可用,那么可拒绝请求602。在这种情况下,可使请求602排队或者可指导开发人员102来稍后再次重新提交请求602。
如果所请求的模拟器122或设备118是可用的,那么可利用合适的网络协议来在所请求的模拟器122或设备118与开发人员计算机106之间建立直接网络连接。使用这种直接网络连接,开发人员102可与模拟器122或设备118直接交互来测试程序108的操作的方面或者执行其他类型的操作。例如,在图6中所示的实例中,已在开发人员计算机106与设备118N之间建立直接网络连接。在这个实施方案中,开发人员102可给开发人员计算机106提供用户输入604,如触摸屏输入、键盘输入和其他类型的输入。
随后,通过直接网络连接将所接收的用户输入604传输给设备118N。随后,将用户输入604呈现给设备118N,好像开发人员102使用户输入604直接到设备118N而不是到开发人员计算机102。以这种方式,开发人员102可利用设备118N,好像开发人员102与设备118N物理上共址。具体而言,开发人员102可利用这种机构来在设备118N上利用程序108并测试程序108的操作。
在图6中所示的实施方案中,已向其建立直接网络连接的模拟器122或设备118还可被配置来将模拟器122或设备118的显示输出606传输给开发人员计算机106。也可以类似的方式传输模拟器122或设备118的音频输出。可利用各种协议来传输模拟器122或设备118的显示输出606和/或音频输出,所述各种协议如虚拟网络计算(“VNC”)协议、远程桌面协议(“RDP”)或另一种合适的协议。
开发人员计算机106可随后接收并呈现所连接的模拟器122或设备118的显示输出606。例如,在图6中所示的实例中,设备118N将其显示输出606传输给开发人员计算机106以便显示给开发人员102。以这种方式,开发人员102可响应于用户输入604查看设备118N的输出。因此,开发人员102可在模拟器122或设备118上测试程序108的操作,所述模拟器122或设备118在服务提供商网络110中以本质上与模拟器122或设备118好像是开发人员计算机106本机的相同的方式操作。以下相对于图7提供关于这个过程的另外的细节。
图7是示出本文所公开的根据本文所公开的一个实施方案的用于利用如开发人员计算机106的计算设备与服务提供商网络110中的模拟器122或设备118之间的直接网络连接来测试程序108的操作的一个示例性例程700的方面的流程图。例程700在操作702处开始,在所述操作702处开发人员计算机106将直接连接请求602传输到服务提供商网络110中的部件,如主机116B。直接连接请求602可包括识别向其请求直接网络连接的特定的模拟器122或设备118的数据。
例程700从操作702行进至操作704,在所述操作704处开发人员计算机106确定是否已同意直接连接请求602。如果未同意请求602,那么例程700行进至操作716,在所示操作716处结束。然而,如果同意直接连接请求602,那么例程700从操作706行进至操作708。
在操作708处,开发人员计算机106建立到服务提供商网络110中所请求的模拟器122或设备118的直接网络连接。例如,服务提供商网络110可响应于请求602给开发人员计算机106提供模拟器122或设备118的网络地址。利用所提供的网络地址,开发人员计算机106可利用合适的网络通信协议建立到所请求的模拟器122或设备188的直接网络连接。
一旦已建立直接网络连接,例程700就从操作706行进至操作707,在所述操作707处可将将要测试的程序108加载到已对其建立直接网络连接的模拟器122或设备188上。一旦已安装程序108,程序108的执行就开始。随后,例程700从操作707行进至操作708。
在操作708处,开发人员计算机106从开发人员102或其他用户接收用户输入604。随后,开发人员计算机106将用户输入604传输到所连接的模拟器122或设备118。如上所提及的,随后可将用户输入604呈现给所连接的模拟器122或设备118,好像用户输入604被本地化到模拟器122或设备118。
例程700从操作708行进至操作710,在所述操作710处所连接的模拟器122或设备118产生显示输出606并将显示输出606传输到开发人员计算机106。例如,显示输出606可由在特定的模拟器122或设备118上执行的程序108做出。如上所提及的,可利用合适的协议,如VNC或RDP格式化显示输出606。随后,在操作710处开发人员计算机106接收显示输出606并显示所述显示输出606。如上所提及的,所连接的模拟器122或设备118还可将音频传输到开发人员计算机106以便由开发人员计算机106以类似的方式回放。
例程700从操作710行进至操作711,在所述操作711处可以上述方式记录在模拟器122或设备188上执行的活动。可在利用直接网络连接时或者在直接连接会话之后将来自活动记录的数据实时地提供给开发人员102(在操作718处,下面进行描述)。
例程700从操作711行进至操作712,在所述操作712处开发人员计算机106确定开发人员102是否已请求结束到模拟器122或设备118的直接网络连接。如果开发人员102未请求结束直接网络连接,那么例程700返回到操作708,在所述操作708处可将用户输入604持续地提供给所连接的模拟器122或设备118,并且行进到操作710,在所述操作710处可在开发人员计算机106处持续地接收并呈现由所连接的模拟器122或设备118所产生的显示输出606。在一些实施方案中,直接网络连接一段时间可能是有时间限制的。例如,开发人员102可被限制15分钟或某一其他时间段来利用直接网络连接以上述方式测试设备118。
如果开发人员102(或服务提供商网络110)已请求停止直接网络连接或者会话时间限制已期满,那么例程700行进至操作714,在所述操作714处直接网络连接结束。例程700随后从操作714行进至操作716,在所述操作716处程序108从模拟器122或设备188移除。例程700随后行进至操作718,在所述操作718处可将上述活动记录传输给开发人员计算机106。例程700从操作718行进至操作720,在所述操作720处结束。
图8示出用于能够执行上述用于提供并利用基于网络的程序测试服务的程序部件的计算机800的示例性计算机体系结构。图8中所示的计算机体系结构示出常规服务器计算机、工作站、台式计算机、膝上型计算机、平板电脑计算设备、网络应用、个人数字助理(“PDA”)、电子阅读器、数字蜂窝电话或其他计算设备,并且可用来执行本文所呈现的软件部件的任何方面。例如,可利用图8中所示的计算机体系结构来执行工作流协调器302、开发桥接器308、程序开发环境104和/或图1-3示出且上文进行描述的其他部件。
计算机800包括基板802、或“母板”,它是大量部件或设备可通过系统总线或其他电子通信路径连接到的印刷电路板。在一个示例性实施方案中,一个或多个中央处理单元(“CPU”)804结合芯片组806操作。CPU804可以是执行计算机800的操作所必要的算术和逻辑运算的标准可编程处理器。
CPU804通过操纵互相区分的开关元件从一个离散的物理状态转换到下一个来执行操作并且改变这些状态。开关元件通常可包括维持两个二进制状态中的一个的电子电路(如触发器),以及基于一个或多个其他开关元件的状态的逻辑组合提供输出状态的电子电路(如逻辑门)。可结合这些基本的开关元件来创建更多复杂的逻辑电路,包括寄存器、加减器、算术逻辑单元、浮点单元等。
芯片组806提供基板802上的部件和设备的CPU804与剩余部分之间的接口。芯片组806可提供随机访问存储器(“RAM”)808的接口作为主存储器在计算机800中使用。芯片组806可进一步提供到计算机可读存储介质,如用于存储有助于启动计算机800并且在各种部件和设备之间转移信息的基本例程的只读存储器(“ROM”)810或非易失性RAM(“NVRAM”)的接口。根据本文所述的实施方案,ROM810或NVRAM还可存储计算机800的操作所必要的其他软件部件。
计算机800可使用通过网络(如局域网820)到远程计算设备和计算机系统的逻辑连接在网络化的环境中操作。芯片组806可包括用于通过NIC812(如千兆比特以太网适配器)提供网络连通性的功能。NIC812能够通过网络820将计算机800连接到其他计算设备。应理解,多个NIC812可存在于计算机800中,将计算机连接到其他类型的网络和远程计算机系统。
计算机800可连接到为计算机提供非易失性存储的大容量存储设备818。大容量存储设备818可存储系统程序、应用程序、其他程序模块和数据,这在本文中已更详细地描述过。大容量存储设备818可通过连接到芯片组806的存储控制器814连接到计算机800。大容量存储设备818可由一个或多个物理存储单元组成。存储控制器814可通过串行附接SCSI(“SAS”)接口、串行高级技术附接(“SATA”)接口、光纤通道(“FC”)接口或其他类型的接口与物理存储单元相互作用以便物理连接计算机和物理存储单元并且在它们之间转移数据。
计算机800可通过转换物理存储单元的物理状态来反映存储的信息来将数据存储在大容量存储设备818上。在该描述的不同实现方式中,物理状态的具体转换可基于各种因素。这类因素的实例可包括但不限于用于实现物理存储单元的技术,不管大容量存储设备818的特征为主要或次要存储等。
例如,计算机800可通过存储控制器814发布指令将信息存储到大容量存储设备818上来改变磁盘驱动单元内的特定位置的磁性特性;光学存储单元中的特定位置的反射或折射特性;或者固态存储单元中的特定电容器、晶体管、或其他离散部件的电子特性。在不脱离本描述的范围和精神的情况下,物理介质的其他转换是可能的,同时提供先前的实例仅用来促进该描述。计算机800可通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来进一步从大容量存储设备818读取信息。
除了上述大容量存储设备818之外,计算机800可访问其他计算机可读存储介质来存储并检索信息,如程序模块、数据结构或其他数据。本领域的技术人员应理解,计算机可读存储介质可为提供用于非暂时性数据的存储并且可通过计算机800访问的任何可用介质。
通过举例的方式,并且非限制性的,计算机可读存储介质可包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除的介质。计算机可读存储介质包括但不限于,RAM、ROM、可擦除可编程ROM(“EPROM”)、电子可擦除可编程ROM(“EEPROM”)、闪存或其他固态存储技术、光盘ROM(“CD-ROM”)、数字通用光盘(“DVD”)、高清DVD(“HD-DVD”)、蓝光光碟或其他光学存储装置、磁性录音带、磁带、磁盘存储装置或其他磁性存储设备或可用来以非暂时性方式存储所需信息的任何其他介质。
大容量存储设备818可存储用来控制计算机800的操作的操作系统830。根据一个实施方案,操作系统包括LINUX操作系统。根据另一个实施方案,操作系统包括来自微软公司的SERVER操作系统。根据另一个实施方案,操作系统可包括UNIX或SOLARIS操作系统。应理解,还可利用其他操作系统。大容量存储设备818可存储计算机800所利用的其他系统或应用程序以及数据,如工作流协调器302、开发桥接器308、程序开发环境104和/或上述其他软件部件和数据的任何一个。大容量存储设备818还可存储本文未具体识别的其他程序和数据。
在一个实施方案中,使用计算机可执行的指令编码大容量存储设备818或其他计算机可读存储介质,当被加载到计算机800中时,所述计算机可执行的指令将计算机从通用计算系统转换成能够实现本文所描述的实施方案的专用计算机。如上所述,这些计算机可执行的指令通过指定CPU804如何在各状态之间转变来转换计算机800。根据一个实施方案,计算机800具有对存储计算机可执行的指令的计算机可读存储介质的访问权,当由计算机800执行时,所述计算机可执行的指令执行以上相对于图4和图5所描述的各种例程。计算机800还可包括用于执行本文所描述的任何其他的计算机实现的操作的计算机可读存储介质。
计算机800还可包括用于接收和处理来自大量输入设备,如键盘、鼠标、触摸板、触摸屏、电子笔或其他类型的输入设备的输入的一个或多个输入/输出控制器816。类似地,输入/输出控制器816可提供输出到显示器,如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪或其他类型的输出设备。将理解,计算机800可不包括图8中所示的所有部件,但可包括图8中未明确示出的其他部件,或者可利用与图8中所示完全不同的体系结构。
基于前述内容,应理解,本文已呈现了用于实现和利用基于网络的程序测试服务的技术。此外,尽管已经用专用于计算机结构特征、方法论行为和计算机可读介质的语言对本文所呈现的主题进行了描述,但应当理解,所附权利要求中定义的发明不一定限制于本文所描述的具体的特征、行为或介质。相反,具体的特征、行为和介质是作为实现权利要求书的示例性形式而公开。
上述主题是仅通过说明的方式提供的并且不应被解释为限制性的。此外,所要求保护的主题并不局限于解决本公开中任何部分所记录的任何或所有缺点的实现方式。可在不遵循所示和所述示例性实施方案和应用的情况下、并且在不背离以下权利要求书中阐述的本发明的真实精神和范围的情况下对本文所描述的主题作各种修改和改变。

Claims (20)

1.一种具有存储在其上的计算机可执行指令的计算机可读存储介质,当被计算机执行时,所述计算机可执行指令使得所述计算机:
在服务提供商网络处接收在多个智能手机上测试程序的操作的请求,所述请求包括描述当所述程序在所述多个智能手机上执行时将要在所述程序上执行的一个或多个测试的一个或多个测试案例;
响应于接收所述请求,使得当所述程序在所述多个智能手机上执行时所述一个或多个测试在所述程序上执行,所述多个智能手机连接到所述服务提供商网络中的一个或多个主机;并且
响应于所述请求提供所述一个或多个测试的结果。
2.如权利要求1所述的计算机可读存储介质,其中在所述多个智能手机上测试所述程序的操作的所述请求由程序开发环境产生。
3.如权利要求1所述的计算机可读存储介质,其中在所述多个智能手机上测试所述程序的操作的所述请求通过由所述服务提供商网络所提供的页面产生。
4.如权利要求1所述的计算机可读存储介质,其中在所述多个智能手机上测试所述程序的操作的所述请求由电子邮件消息产生。
5.如权利要求1所述的计算机可读存储介质,其中基于所述程序选择所述程序的所述操作在其上测试的所述多个智能手机。
6.如权利要求1所述的计算机可读存储介质,其还具有存储在其上的计算机可执行指令,当被所述计算机执行时,所述计算机可执行指令使得所述计算机:
当所述一个或多个测试正在所述程序上执行时捕获由所述智能手机的至少一个输出的一个或多个屏幕显示,并且其中所述测试结果包括所述一个或多个所捕获的屏幕显示。
7.如权利要求1所述的计算机可读存储介质,其还具有存储在其上的计算机可执行指令,当被所述计算机执行时,所述计算机可执行指令使得所述计算机在所述一个或多个测试在所述多个智能手机上执行期间提供实时测试数据。
8.如权利要求1所述的计算机可读存储介质,其中所述实时测试数据包括由所述智能手机中的至少一个所产生的显示输出。
9.一种用于测试程序的系统,所述系统包括:
服务提供商网络中连接到配置为执行程序的多个计算设备的至少一个计算机,并且其中所述服务提供商网络中的所述至少一个计算机进一步配置为接收在所述多个计算设备上测试程序的请求,以使得所述程序被安装在所述多个计算设备上并在所述多个计算设备上测试,并且响应于所述请求产生并返回所述测试的结果。
10.如权利要求9所述的系统,其中测试所述程序的所述请求包括描述在所述程序上执行以便在所述多个计算设备上测试所述程序的所述操作的一个或多个测试的测试案例。
11.如权利要求9所述的系统,其中所述测试请求还包括识别所述程序在其上安装和测试的所述多个计算设备的数据。
12.如权利要求9所述的系统,其中所述系统还包括所述服务提供商网络中被配置为接收在多个计算设备模拟器上测试程序的请求的至少一个计算机,以使得所述程序被安装在所述多个计算设备模拟器上并在所述多个计算设备模拟器上测试,并且响应于所述请求产生并返回所述测试的结果。
13.如权利要求9所述的系统,其中所述主机还被配置为当所述测试在所述程序上执行时捕获由所述计算设备中的至少一个输出的一个或多个屏幕显示,并且其中所述测试结果包括所述一个或多个所捕获的屏幕显示。
14.如权利要求9所述的系统,其中所述主机还被配置为在测试在所述多个计算设备上执行期间提供实时测试数据。
15.如权利要求14所述的系统,其中所述实时测试数据包括由所述计算设备中的至少一个产生的显示输出。
16.一种用于测试程序的操作的计算机实现的方法,所述方法包括执行计算机实现的操作用于:
暴露用于在多个计算设备上测试程序的操作的网络服务;
通过所述网络服务接收在所述多个计算设备上执行所述程序的操作的测试的请求;
响应于接收所述请求,使得所述程序的所述操作的所述测试在所述多个计算设备上执行;以及
响应于所述请求返回所述程序的所述操作的所述测试的结果。
17.如权利要求16所述的计算机实现的方法,其中所述多个计算设备包括连接到服务提供商网络中提供所述网络服务的一个或多个主机的智能手机计算设备。
18.如权利要求16所述的计算机实现的方法,还包括在所述程序的所述操作在所述多个计算设备上测试期间给所述测试的请求者提供实时测试数据。
19.如权利要求16所述的计算机实现的方法,其中所述方法还包括当执行所述程序的所述操作的所述测试时捕获由所述计算设备中的至少一个输出的一个或多个屏幕显示,并且其中所述测试的所述结果包括所述一个或多个所捕获的屏幕显示。
20.如权利要求16所述的计算机实现的方法,其中执行所述程序的所述操作的测试的所述请求包括:描述当所述程序在所述多个计算设备上执行时在所述程序上执行的一个或多个测试的测试案例,以及识别所述程序的所述操作在其上测试的所述多个计算设备的数据。
CN201480030256.5A 2013-05-02 2014-05-02 程序测试服务 Pending CN105453033A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/875,945 US20140331209A1 (en) 2013-05-02 2013-05-02 Program Testing Service
US13/875,955 2013-05-02
US13/875,945 2013-05-02
US13/875,955 US20140331205A1 (en) 2013-05-02 2013-05-02 Program Testing Service
PCT/US2014/036640 WO2014179731A1 (en) 2013-05-02 2014-05-02 Program testing service

Publications (1)

Publication Number Publication Date
CN105453033A true CN105453033A (zh) 2016-03-30

Family

ID=51843991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480030256.5A Pending CN105453033A (zh) 2013-05-02 2014-05-02 程序测试服务

Country Status (5)

Country Link
EP (1) EP2992419A4 (zh)
JP (1) JP6283096B2 (zh)
CN (1) CN105453033A (zh)
CA (1) CA2910977A1 (zh)
WO (1) WO2014179731A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291616A (zh) * 2017-06-05 2017-10-24 广州诚予国际市场信息研究有限公司 一种项目报告在线生成平台
CN108536579A (zh) * 2017-03-01 2018-09-14 维布络有限公司 资源受限设备测试系统和方法
CN110618944A (zh) * 2019-09-20 2019-12-27 百度在线网络技术(北京)有限公司 设备模拟方法、装置、电子设备及存储介质
CN111414309A (zh) * 2020-03-27 2020-07-14 武汉联影医疗科技有限公司 应用程序的自动化测试方法、计算机设备和存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6914901B2 (ja) * 2018-09-21 2021-08-04 Kddi株式会社 オープン化設備の検証装置、検証方法、およびプログラム
CN111506508A (zh) * 2020-04-17 2020-08-07 北京百度网讯科技有限公司 边缘计算测试方法、装置、设备和可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120198279A1 (en) * 2011-02-02 2012-08-02 Salesforce.Com, Inc. Automated Testing on Mobile Devices
CN202795345U (zh) * 2012-10-08 2013-03-13 北京云测信息技术有限公司 应用软件测试系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334162B1 (en) * 2003-01-29 2008-02-19 Sun Microsystems, Inc. Dynamic distribution of test execution
US20070005281A1 (en) * 2005-05-31 2007-01-04 David Haggerty Systems and Methods Providing Reusable Test Logic
WO2008144692A1 (en) * 2007-05-21 2008-11-27 W2Bi, Inc Mobile device throughput testing
JP5646650B2 (ja) * 2010-01-08 2014-12-24 ソース ラブズ, インコーポレイテッドSauce Labs, Inc. ウェブアプリケーションのリアルタイム検証
WO2012027886A1 (en) * 2010-08-31 2012-03-08 Google Inc. Platform specific application test

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120198279A1 (en) * 2011-02-02 2012-08-02 Salesforce.Com, Inc. Automated Testing on Mobile Devices
CN202795345U (zh) * 2012-10-08 2013-03-13 北京云测信息技术有限公司 应用软件测试系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536579A (zh) * 2017-03-01 2018-09-14 维布络有限公司 资源受限设备测试系统和方法
CN108536579B (zh) * 2017-03-01 2021-04-16 维布络有限公司 资源受限设备测试系统和方法
CN107291616A (zh) * 2017-06-05 2017-10-24 广州诚予国际市场信息研究有限公司 一种项目报告在线生成平台
CN110618944A (zh) * 2019-09-20 2019-12-27 百度在线网络技术(北京)有限公司 设备模拟方法、装置、电子设备及存储介质
CN111414309A (zh) * 2020-03-27 2020-07-14 武汉联影医疗科技有限公司 应用程序的自动化测试方法、计算机设备和存储介质
CN111414309B (zh) * 2020-03-27 2022-03-01 武汉联影医疗科技有限公司 应用程序的自动化测试方法、计算机设备和存储介质

Also Published As

Publication number Publication date
JP2016525731A (ja) 2016-08-25
WO2014179731A1 (en) 2014-11-06
JP6283096B2 (ja) 2018-02-21
EP2992419A1 (en) 2016-03-09
EP2992419A4 (en) 2016-11-23
CA2910977A1 (en) 2014-11-06

Similar Documents

Publication Publication Date Title
US11934301B2 (en) System and method for automated software testing
US20240037020A1 (en) System and Method for Automated Software Testing
US20140331209A1 (en) Program Testing Service
US10346158B2 (en) Application management platform
US20210279577A1 (en) Testing of Computing Processes Using Artificial Intelligence
Molyneaux The art of application performance testing: from strategy to tools
US9747191B1 (en) Tool to replicate actions across devices in real time for improved efficiency during manual application testing
CN108959068B (zh) 软件界面测试方法、设备及存储介质
US9679090B1 (en) Systematically exploring programs during testing
US9152540B2 (en) System and methods for generating and managing a virtual device
US20190227917A1 (en) Adaptive system for mobile device testing
CN105453033A (zh) 程序测试服务
US20130263090A1 (en) System and method for automated testing
KR20140088551A (ko) 안전 체크 및 미리 보기에 의한 서버 업그레이드 기법
EP2850529A2 (en) System and methods for generating and managing a virtual device
CN105335283A (zh) 终端设备中的应用测试方法及装置
US11237948B2 (en) Rendering engine component abstraction system
US9292423B1 (en) Monitoring applications for compatibility issues
US20140331205A1 (en) Program Testing Service
CN110516447A (zh) 一种识别终端模拟器的方法与设备
US10572247B2 (en) Prototype management system
Tuovenen et al. MAuto: Automatic mobile game testing tool using image-matching based approach
US20140057231A1 (en) Break-fix simulator
Göth Testing techniques for mobile device applications
JP7323755B2 (ja) 情報処理システム、その制御方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160330

WD01 Invention patent application deemed withdrawn after publication