CN116701163A - 云计算环境中的分布式应用程序测试 - Google Patents
云计算环境中的分布式应用程序测试 Download PDFInfo
- Publication number
- CN116701163A CN116701163A CN202211079160.0A CN202211079160A CN116701163A CN 116701163 A CN116701163 A CN 116701163A CN 202211079160 A CN202211079160 A CN 202211079160A CN 116701163 A CN116701163 A CN 116701163A
- Authority
- CN
- China
- Prior art keywords
- application
- user
- test session
- users
- observer
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 352
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000003993 interaction Effects 0.000 claims abstract description 8
- 230000000977 initiatory effect Effects 0.000 claims abstract 3
- 238000012545 processing Methods 0.000 claims description 55
- 230000004044 response Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 18
- 239000012634 fragment Substances 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006397 emotional response Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开涉及云计算环境中的分布式应用程序测试,具体涉及用于在云环境中测试应用程序的装置、系统和技术。一种方法可以包括为测试会话选择在应用程序托管平台的虚拟化计算环境中托管的应用程序。方法还包括:选择与应用程序托管平台相关联的一组用户来在测试会话期间执行该应用程序,选择与应用程序托管平台相关联的一组观察者来监测该组用户。该方法还包括启动测试会话、认证该组用户、使得对应于应用程序的内容数据被流式传输到每个用户的用户设备。该方法还包括使测试会话的视频流被传输到相应观察者的用户设备以在观察者图形用户界面(GUI)中呈现,该视频流反映用户与应用程序内容的交互。
Description
技术领域
至少一个实施例涉及用于在云计算环境中执行和促进软件应用程序的分布式测试的平台。例如,至少一个实施例涉及根据本文描述的各种新技颖术,用于提供并使协调器或开发者能够安全地测试由应用程序托管平台托管的软件应用程序的系统。
背景技术
在发布之前测试软件应用程序以完成构建(build)并在必要时基于反馈进行调整。一些开发者可以通过让用户(例如测试人员)使用软件应用程序并提供反馈来进行测试。开发者可以亲自或现场执行测试。可以将用户带到安全的测试设施,以确保软件应用程序经过测试并且应用程序的预发布构建(pre-release build)不会泄漏,因此软件应用程序的开发者可以观察用户——例如,观察用户对软件应用程序的面部、身体、声音反应等。但是,亲自测试可能包括额外的成本,例如购买和维护设备。此外,可以根据测试站点的地理位置限制潜在用户池。这会使测试总体上更加困难。
附图说明
将参照附图描述根据本公开的各种实施例,其中:
图1示出了根据至少一些实施例的示例云计算环境系统架构的框图。
图2示出了根据至少一些实施例的测试云环境的框图。
图3示出了根据至少一些实施例的测试微服务的框图。
图4示出了根据至少一些实施例的将测试会话流式传输到观察者的示例的图。
图5示出了根据至少一些实施例的向观察者重放测试会话的示例的图。
图6A和图6B示出了根据至少一些实施例的示例图形用户界面的框图。
图7示出了根据至少一些实施例的图示用于在云环境中测试软件应用程序的方法的示例流程图。
图8示出了根据至少一些实施例的计算机系统
图9示出了根据至少一些实施例的计算机系统。
具体实施方式
软件应用程序开发的通用原则通常包括在其发布之前的重要测试(例如,用户、压力、安全性等)。例如,应用程序的开发者可以测试其应用程序的某些构建或方面,并使用测试来进一步开发应用程序——例如,根据所进行的测试修改应用程序。该应用程序可以是游戏应用程序(例如,视频游戏或移动游戏)。在这样的示例中,开发者可以让某些用户(例如,测试人员)玩该应用程序并提供反馈。例如,开发者可以为用户提供预发布版本并监测用户在某些情况下如何玩游戏以进行改进——例如,应用程序的开发者可以监测用户以确定用户是否受到来自软件应用程序的娱乐或足够的挑战,同时确保软件应用程序不会使用户感到沮丧。此外,开发者可以为不同的用户提供不同的构建,以确定哪个更优化。为了避免应用程序被泄露给公共用户(例如,除被选中进行测试的用户以外的用户)或在应用程序准备就绪好之前就被访问,开发者可以采取某些措施来确保安全地进行测试。传统上,开发者可以将测试限制为亲自进行或现场进行。例如,开发者可以将用户带到安全设施,以便用户玩和测试应用程序。一旦到达该设施后,开发者可以监测玩游戏的用户,并确保预发布版本不会离开该建筑。例如,开发者可以通过将用户引入安全设施来监测用户对软件应用程序的情绪反应(例如,满意、快乐、沮丧等)——例如,开发者除了监测软件应用程序的内容之外,还可以监测用户自己。在一些示例中,进行亲自测试可能会带来后勤方面的挑战。例如,现场测试可能会导致开发者配置和维护设备(例如,计算设备(例如,计算机、游戏机、移动电话、智能手机等)、监视设备(例如,网络摄像头、相机等))和设施(例如,用户可以测试应用程序的房间)。此外,由于测试是当面进行的,因此用户必须住在靠近测试设施的地方或前往测试设施——从而可能会限制可用测试人员的数量或需要维护多个分布式测试设施。这可以有效地限制可以测试特定应用程序的不同类型用户的数量——例如,来自不同城市或国家的用户。在一些示例中,由于外部环境,前往站点也可能受到限制或不可能——例如,开发者可能无法将用户带到测试设施。在一些实施例中,现场测试还可以为测试会话的观察者带来后勤挑战——例如,游戏的观察者或贡献者可以位于任何位置,并且进行现场测试可以带来后勤挑战以确保将每个观察者带到现场测试。
本公开的实施方式通过使用云环境对应用程序测试的方面进行虚拟化来解决上述和其他缺陷。例如,应用程序托管平台可以促进测试会话的调度,为选定数量的用户提供对应用程序的安全访问,并监测和观察用户以改进应用程序。例如,开发者可以将应用程序的预发布版本安全地上传到应用程序托管平台。可以向访问应用程序进行测试的用户提供应用程序的内容流(无需在用户位置下载应用程序构建),这允许应用程序托管平台确保可以安全地测试应用程序构建。此外,应用程序托管平台可以包括存储应用程序和与测试应用程序相关联的其他信息的数据库,这些信息可以由协调器(例如,为开发者监督应用程序测试的人)修改。例如,应用程序托管平台可以包括软件或架构(例如,微服务),使协调器能够选择用户进行应用程序测试、开始测试会话的时间、结束测试会话的时间、要测试的应用程序的构建,并选择观察者来监测应用程序的测试。例如,协调器可以选择与应用程序托管平台相关联的用户列表来测试应用程序。在这样的示例中,可以在测试会话期间向列表中的用户提供对应用程序的访问权——例如,应用程序将以其他方式对用户不可用,以确保测试是安全的。可以允许协调器指派特定用户将要测试的构建以及观察测试会话的人员列表。在这样的示例中,应用程序托管平台可以向观察者提供用户和应用程序信息——例如,他们正在观察哪个用户以及相应用户正在测试哪个构建。也就是说,应用程序托管平台可以允许协调器在云环境中组织整个测试会话——例如,用户可以从该环境中测试人们将观察到的应用程序。
在一些示例中,应用程序托管平台可以包括或与能够在云环境中测试应用程序的架构相关联。这种架构可以包括一个或更多个计算机系统,每个计算机系统托管一个或更多个在管理程序或主机操作系统之上运行的虚拟化计算环境(例如,虚拟机或容器)。例如,应用程序托管平台可以请求在虚拟化计算环境(例如,虚拟机或容器)处执行(例如,启动和加载)应用程序。通过在虚拟化计算环境中执行应用程序,可以将应用程序的内容流式传输到用户计算设备。应用程序的内容也可以存储在应用程序托管平台上,并提供给观察者计算设备——例如,由观察者也可以通过应用程序托管平台提供的图形用户界面(GUI)查看显示给用户的流的副本。应用程序托管平台还可以获得用户输入(例如,用户在与应用程序交互时在给定时间使用的控件)。例如,应用程序托管平台可以接收指定用户在播放软件应用程序时按下控制器上的哪些按钮的数据。应用程序托管平台还可以请求创建测试会话的流(通过网络摄像头),以显示用户对观察者的反应。此外,应用程序托管平台可以提供一个GUI,使开发者能够提供观察者应该密切监测应用程序的哪些时刻的范围——例如,开发者可以提供定义观察者应该关注的事件的输入。例如,应用程序托管平台可以提供观察者GUI,使开发者或观察者能够对来自每个会话的事件(例如,当软件应用程序是游戏应用程序的示例时,用户进入第一级)进行注释和时间戳记,并允许记录的流将在之后被索引和访问——例如,观察者可以搜索用户使用软件应用程序中的项目的所有时间。
在一些示例中,观察者可以通过观察者GUI看到测试会话的流,其中流存储在应用程序托管平台处(例如,在数据库或任何其他数据存储库处)。例如,观察者GUI可以为每个测试用户呈现一个流,其中包括他们的应用程序、他们的网络摄像头和他们的输入的流。因此,观察者可以通过观察者GUI来选择要观察的用户。此外,观察者可以选择查看与测试相关的其他信息,例如帧速率性能、空间表示(例如,用户在软件应用程序的地图上的位置)、与应用程序相关的分析、时间表示(用软件应用程序的事件标记的时间线)等。在一些实施例中,观察者还可以对流进行注释——例如,寻找特定事件、创建片段、标记软件应用程序的特别具有挑战性的时刻等。在一些实施例中,应用程序托管平台可以将记录的测试会话流存储在数据存储库中,并允许选定的观察者在随后的时间审查该流。在这样的实施例中,记录的流可以包括注释(例如,与事件相关联的捕获的元数据)并且能够使用元数据作为搜索/过滤标准来过滤和搜索记录的流。
因此,包括上述软件、架构和GUI的所描述的技术允许开发者在云环境中测试他们的应用程序。这可以使开发者能够随时随地选择用户,而不是亲自进行测试。因为应用程序的内容是流式传输的(例如,应用程序构建不是在本地下载),所以可以安全地向用户提供应用程序,同时还允许观察者通过观察GUI观察应用程序的整个执行过程。因此,可以在云环境中减少与应用程序测试相关的后勤挑战。
图1示出了根据至少一个实施例的示例系统架构100的框图。系统架构100(在此也称为“系统”)包括应用程序托管平台102、应用程序开发者平台104、服务器机器106、客户端设备108A-N(统一地且单独地称为客户端设备108),以及数据存储112,每个都连接到网络120。在实施方式中,网络120可以包括公共网络(例如,互联网)、专用网络(例如,局域网(LAN)或广域网(WAN))、有线网络(例如以太网)、无线网络(例如802.11网络或Wi-Fi网络)、蜂窝网络(例如长期演进(LTE)网络)、路由器、集线器、交换机、服务器计算机和/或其组合。
在一些实施方式中,数据存储112是能够存储内容项以及用于标记、组织和索引内容项的数据结构的持久性存储装置。数据存储112可以由一个或更多个存储设备托管,例如主存储器、基于磁或光存储的磁盘、磁带或硬盘驱动器、NAS、SAN等。在一些实施方式中,数据存储112可以是网络连接的文件服务器,而在其他实施例中,数据存储112可以是一些其他类型的持久性存储装置,例如面向对象的数据库、关系数据库或任何其他数据存储库,其可以由平台102或经由网络120耦合到平台102的一台或多台不同机器托管。在一些实施例中,数据存储112能够存储与应用程序130相关的内容。例如,数据存储112可以存储应用程序130的流式传输实例、来自客户端设备108的用户输入、元数据和与测试会话有关的其他信息,如参考图2所描述的。
应用程序托管平台102可以被配置为托管由应用程序开发者(例如,通过应用程序开发者平台104)提供的一个或更多个应用程序(例如,应用程序130A、应用程序130B等)的文件。应用程序开发者平台104可由应用程序开发者(例如,用户、公司、组织等)使用。例如,应用程序开发者可以是开发视频游戏(由应用程序130表示)以供用户在客户端设备108上交互的视频游戏开发者。应用程序托管平台102可以为用户提供对由应用程序开发者平台104通过各自的客户端设备108A-N提供的应用程序130(或应用程序130的实例)的访问。例如,应用程序托管平台102可以允许用户消费、上传、下载和/或搜索应用程序130。在一个或更多个实施例中,应用程序托管平台102可以包括云托管的协作内容创建平台,该平台允许多个开发者或同一开发者的多个代表创建、合并、开发、改进、修改、模拟、渲染、照亮和动画——通常作为内容创建任务的非限制性示例——用于应用程序130的二维和三维资产。在一些实施例中,应用程序托管平台102可以具有网站(例如,一个或更多个网页)或客户端应用程序或组件,其可以用于向用户提供对应用程序130的访问。在一些实施例中,每个应用程序130可以包括通用数据132(例如,不包括用户数据的数据)和用户数据134——例如,应用程序130A的通用数据132A和用户数据134A、应用程序130B的通用数据132B和用户数据134B等。
在一些实施例中,服务器106可以托管运行应用程序130的实例的虚拟化计算环境160。例如,服务器106可以是包括一个或更多个物理设备(例如,处理设备(例如,GPU)、存储器、一个或更多个I/O设备等)和管理一个或更多个虚拟化计算环境160的管理程序和/或主机操作系统的计算机系统。虚拟化计算环境160可以对应于例如运行访客操作系统和一个或更多个访客应用程序的虚拟机,访客应用程序包括应用程序130的实例,或运行应用程序(例如应用程序130的实例)的容器。可以提供一个或更多个服务器106,每个服务器106可以托管一个或更多个虚拟化计算环境160。在一些实施例中,应用程序托管平台102的每个服务器106或任何其他服务器可以对应于关于图8和图9所描述的计算机系统800和/或计算机系统900。
虚拟化计算环境160可以被实例化以促进应用程序130的实例的执行,以供客户端设备108访问,并且可以根据本文提供的实施例,在应用程序实例终止之后按照客户端设备108的用户的请求被解构。例如,通过客户端设备108上的应用程序托管平台GUI访问应用程序实例的用户可以注销与由应用程序托管平台102托管的应用程序130相关联的账户。当检测到用户已经“注销”了关联帐户时,应用程序托管平台102可以向服务器106发送解构请求,这可以使管理程序解构虚拟化计算环境160。
相应客户端设备108的用户可以与应用程序130(例如,通过应用程序托管平台GUI)参与(例如,消费、交互等)以通过相应客户端设备108进展应用程序。在说明性示例中,应用程序130A和130B可以是由视频游戏开发者开发的视频游戏应用程序(例如,软件应用程序)。客户端设备108可以包括设备,包括但不限于:电视、智能电话、蜂窝电话、个人数字助理(PDA)、便携式媒体播放器、上网本、膝上型计算机、电子书阅读器、平板计算机、台式计算机、机顶盒、软件控制台等。如上所述,单独的客户端设备108可以包括应用程序托管平台102的客户端组件(或网络浏览器),其提供允许客户端设备108的用户请求执行应用程序130的GUI。GUI可以提供应用程序130的渲染版本以便在应用程序130的运行时间内呈现,并允许用户在应用程序130的运行时间内提供输入。
在一些实施例中,服务器机器106可以与支持应用程序托管平台102的服务器分离。在其他实施例中,服务器机器106可以是应用程序托管平台102的一部分。在一些实施例中,一个或更多个服务器机器106、应用程序托管平台102、应用程序开发者平台104和数据存储112可以是客户端设备108A-N可以通过网络120访问的云环境的一部分。
应用程序托管平台102可以包括测试服务135。在一些实施例中,应用程序托管平台102可以促进应用程序130(例如,软件应用程序130)的测试会话。例如,测试服务135可以包括微服务,协调器(例如,开发者)可以利用微服务创建和启动测试会话。在一些实施例中,协调器可以选择用户来测试应用程序130的预发布构建,选择观察者(例如,开发者)来监测测试会话,并启动测试会话。客户端设备108的用户可以访问测试会话并通过虚拟化计算环境160测试应用程序130的预发布构建的实例。在至少一个实施例中,测试服务135可以使测试会话的记录被存储在数据存储112或另一个媒体服务器上。因此,观察者可以在随后的时间通过他们各自的客户端设备108访问该测试会话。关于测试服务135的其他细节将参考图2进行描述。
图2示出了根据至少一个实施例的云环境200的框图。在一些实施例中,云环境200包括服务器机器106、客户端设备108、数据存储112、测试服务135、分配器245和观察者客户端255。在一些实施例中,服务器机器106、客户端设备108、数据存储112、测试服务135、分配器245和观察者客户端255可以通过网络120连接,如参考图1所描述的。在一些实施例中,测试服务135可以包括协调器UI 215、观察者UI 220、测试软件开发工具包(SDK)225、测试微服务230和测试数据库235。虚拟化计算环境160可以包括应用程序130的实例和捕获控制组件205。在一些实施例中,观察者客户端255可以包括观察者UI 260和测试SDK 225。
在至少一个实施例中,测试服务135可以被配置为允许开发者(例如,协调器)为软件应用程序130创建和启动测试会话。例如,测试服务135可以提供图形用户界面(GUI或协调器UI 215),其使协调器能够为软件应用程序130的预发布构建创建测试会话。在至少一个实施例中,协调器可以将预发布构建上传或注册到测试数据库235——例如,协调器可以为软件应用程序130上传多个预发布构建以测试各种特征和事件。随后,协调器可以访问协调器UI 215来为预发布构建之一创建测试会话,从应用程序托管平台102的用户中选择用户(例如,测试者)来测试选择的预发布构建,并选择观察者来监测测试软件应用程序130的用户。在至少一个实施例中,协调器可以选择测试会话的时间。在这样的示例中,选定的用户可以在测试会话的选定时间内访问应用程序130的实例——例如,可以安全地测试软件应用程序130,因为它在测试会话期间对用户可用,并且在其他情况下不可用。在一些实施例中,测试微服务230(例如,微服务架构)可以通过访问测试数据库235并使内容显示在协调器UI 215、观察者UI 220处或在客户端设备108用户GUI处来促进由协调器、观察者或用户选择的请求,如参考图3所描述的。在一些实施例中,一旦协调器创建并启动了测试会话,用户就可以访问软件应用程序130的实例并且观察者可以监测测试。在至少一个实施例中,测试服务135与指定的测试软件开发工具包(SDK)225(例如,应用程序托管平台(AHP)应用程序编程接口(API)插件)集成,该工具包可以被配置为通过预定义的API命令集与客户端设备108的用户、协调器或观察者客户端255的观察者进行通信以启动测试会话。在一些实施例中,应用程序托管平台102(例如,测试服务135)可以针对其托管的每个软件应用程序130具有唯一的测试SDK 225。或者,通用测试SDK 225可以与应用程序托管平台102托管/注册的所有软件应用程序一起操作。
在一些实施例中,虚拟化计算环境160可以被配置为运行应用程序130的实例。例如,虚拟化计算环境160可以被配置为运行由协调器为测试会话选择的软件应用程序130的预发布构建的实例。在至少一个实施例中,应用程序130的实例的内容可以流式传输到客户端设备108的用户。在一些实施例中,虚拟化计算环境130可以从访问软件应用程序130实例的客户端设备108的用户那里接收用户输入。例如,虚拟化计算环境160的捕获控制组件205可以接收诸如用户在进展通过应用程序130的实例时在控制器或键盘上按下的哪些按钮的信息——例如,用户如何与软件应用程序130交互。在至少一个实施例中,虚拟化计算环境160可以与捕获软件应用程序130的命令和事件的事件API和捕获API(例如,SDK)集成。例如,开发者可以指示观察者应该针对测试会话关注的软件应用程序130的时刻。事件API和捕获API可以通过指示软件应用程序130中的事件的预定义的API命令集将软件应用程序130的命令与捕获控制组件205通信以密切监测。例如,软件应用程序130可以指示表示软件应用程序内(例如,游戏应用程序内)正在发生的事情的日志的事件流。因此,观察者GUI可以在测试会话发生时将事件通知观察者,并使观察者能够在测试会话终止后搜索事件——例如,搜索用户利用软件应用程序中的项目的频率。在一些实施例中,事件API还可以包括调试信息。在一些实施例中,捕获控制组件205可以在测试会话期间与测试微服务130传达捕获指令(例如,从软件应用程序130的实例的内容中捕获什么)和权限(例如,从软件应用程序130的实例的内容中记录和存储什么)。例如,测试微服务130可以指示客户端设备108的哪些方面将被记录/存储——例如,游戏、相机、麦克风、击键权限。在一些实施例中,虚拟化计算环境160可以将应用程序捕获(例如,软件应用程序130的实例的捕获内容)和会话信息发送到分配器245。在至少一个实施例中,会话信息可以包括用户输入、捕获过滤器和关于软件应用程序130的信息(例如,在测试会话中使用的软件应用程序130的预发布构建)。
在一些实施例中,客户端设备108可以包括网络摄像头源240——例如,由客户端设备108的用户使用的内置网络摄像头或外部网络摄像头。在一些实施例中,网络摄像头源240可以在测试会话期间记录用户——例如,在用户正在播放软件应用程序130时记录用户。例如,网络摄像头源240可以在测试会话期间用户与软件应用程序130交互时记录用户的反应。在至少一个实施例中,网络摄像头源240的音频/视频馈送(例如,网络摄像头A/V)可以被发送到分配器245。
在一些实施例中,分配器245可以被配置为接收应用程序捕获、会话信息和网络摄像头A/V。在至少一个实施例中,分配器245可以包括接收应用程序捕获、网络摄像头A/V和会话信息的媒体服务器265(例如,媒体流服务器)。例如,媒体服务器265可以是一个计算机系统,其包括一个或更多个物理设备(例如,处理设备(例如,GPU)、存储器、一个或更多个I/O设备等)和管理程序和/或管理应用程序捕获、网络摄像头A/V和会话信息的主机操作系统。在一些实施例中,媒体服务器265可以将信息存储在云计算环境中。在这样的实施例中,媒体服务器265可以与云存储API插件集成。在至少一个实施例中,媒体服务器265可以将测试会话的实况流传输给利用观察者客户端255的观察者——例如,在测试会话期间测试软件应用程序130的每个用户的实况流可以被传输到观察者客户端255。在一些实施例中,分配器245可以包括数字录像机(DVR),它可以时移实况流——例如,可以使用观察者客户端255将时移流传输给观察者。在至少一个在实施例中,DVR可以使观察者在测试会话期间能够暂停、倒带、快进或以其他方式操纵实况流。在至少一个实施例中,分配器245可以将媒体(例如,应用程序捕获、网络摄像头A/V和会话信息)传输到数据存储112。
在一些实施例中,数据存储112可以被配置为存储用于相应测试会话的媒体(例如,应用程序捕获、网络摄像头A/V和会话信息)。在一些实施例中,数据存储112可以存储与软件应用程序130相关联的每个测试会话——例如,与软件应用程序130的每个预发布构建相关联的所有测试会话。在一些实施例中,数据存储112可以被配置为将测试会话的流的重放发送到观察者客户端255。
在一些实施例中,观察者客户端255可以被配置为向观察者显示测试会话的实况流、时移流或重放流。在至少一个实施例中,观察者客户端255可以包括使观察者能够观看测试会话的流并与之交互的观察者客户端UI(例如,GUI)260。图6示出了在测试会话期间流式传输到观察者客户端255的内容的示例。在一些实施例中,观察者客户端255可以与测试SDK225集成,该测试SDK 225可以被配置为将实况流传送给观察者。在至少一个实施例中,测试SDK 225可以使观察者能够在测试会话期间操纵流——例如,暂停流、重放流、倒回流、快进流、注释流、在流中搜索、过滤流等等。在一些实施例中,观察者可以在测试会话结束之后访问测试会话的流的重放。通过利用云环境200,开发者可以安全地测试软件应用程序130的预发布构建。
图3示出了根据至少一个实施例的测试服务135的示例框图。例如,测试服务135可以包括测试微服务230和测试数据库235。在至少一个实施例中,用户可以通过如参考图2描述的用户GUI访问测试微服务230。在一些实施例中,协调器和观察者可以分别通过协调器UI和观察者UI访问测试微服务230,如参考图2所描述的。
在至少一个实施例中,测试微服务230可以允许开发者创建和启动用于软件应用程序130的预发布构建的测试会话,如参考图2所描述的。在这样的示例中,测试微服务230可以允许协调器、观察者或用户(例如,测试者)提出信息请求305。在一些实施例中,测试微服务230(或应用程序托管平台102的不同组件)可以认证(例如,验证)访问以确保存储在测试数据库235处的信息被安全地分配给协调器、观察者或用户。即,测试数据库235可以存储只能由协调器、或仅由观察者、或仅由用户访问的信息。在这样的示例中,每个人在登录到应用程序托管平台102时都可以拥有一个令牌,并且微服务230可以验证该令牌以确保该人有权访问存储在测试数据库235中的信息。
例如,协调器可以提出请求305“获取应用程序构建池”以访问在应用程序托管平台处可用(例如,加载或注册)的软件应用程序130的预发布构建的列表。例如,开发者可以为相应的应用程序130上传或注册五(5)个预发布构建。在这样的示例中,协调器可以提出请求305“获取应用程序构建池”以访问五(5)个预发布构建的列表并选择一个用于测试会话。在一些实施例中,协调器可以提出请求305“获取玩家池”以获得测试会话的可能用户(例如,测试者)的列表。在一些实施例中,可能用户的列表可以是与应用程序托管平台102相关联的所有用户。在一些实施例中,可能用户的列表可以基于协调器的偏好被过滤——例如,可能用户的列表可以是过滤到玩第一人称射击游戏或角色扮演游戏(RPG)的用户。协调器可以根据请求“玩家池”从可能的用户列表中为测试会话选择一组用户。在一些实施例中,协调器可以提出请求305“获取观察者池”以获得所有可能的观察者的列表。因此,协调器可以从所有可能观察者的列表中为测试会话选择一组观察者。在一些实施例中,协调器可以提出请求305以“创建会话”、“改变会话”、“删除会话”、“开始会话”和“结束会话”以创建、改变、删除、开始或结束针对应用程序130的测试会话。例如,协调器可以选择测试会话的日期和时间。在一些实施例中,协调器可以保存未来测试会话的草稿或查看待定测试会话的草稿。在一些实施例中,协调器可以提出请求305以获得构建信息。例如,协调器可以访问与应用程序130的构建类型或构建编号(以及与构建相关联的附加信息)相关的信息。在一些实施例中,协调器可以提出请求305“获取观察者信息”或“获取用户信息”以分别访问有关一个或更多个观察者和一个或更多个用户的信息。例如,在选择了一组用户和一组观察者之后,协调器可以提出“获取观察者信息”或“获取用户信息”请求,以查看有关为测试会话选择的观察者或用户的信息——例如,访问他们的联系信息。在一些实施例中,用户信息可以包括用户玩过的游戏和类型、用户的游戏频率和用户的熟练程度——例如,用户排名。因此,微服务230使协调器能够创建测试会话、邀请参与者、管理即将进行的测试会话以及在其活动时运行测试会话。
在一些实施例中,观察者还可以提出请求305“获得构建信息”、“获得观察者信息”和“获得用户信息”。也就是说,存储在测试数据库235中的一些信息可以被协调器和观察者或者观察者和用户两者访问。在一些实施例中,观察者可以提出请求305“获取观察者会话信息”,以访问与测试会话的观察者相关联的信息——例如,测试会话的日期和时间、测试会话的长度等。在一些实施例中,观察者可以提出请求305“获取我的会话列表”以访问相应观察者可能正在观察的所有测试会话的列表。也就是说,可以安排观察者观察多个测试会话,并且可以提出请求305“获取我的会话列表”以访问先前和即将进行的测试会话的列表。在至少一个实施例中,观察者可以提出请求305“RSVP到会话”以接受从协调器发送的观察测试会话的邀请。因此,微服务230使观察者能够查看先前的和即将进行的测试会话,接受或拒绝测试会话邀请,观察者测试会话是实时的还是在结束后通过回放。
在一些实施例中,用户还可以提出请求305“获取我的会话列表”和“RSVP到会话”以分别获取对用户的所有先前和即将进行的测试会话的列表的访问权并接受测试会话的邀请。在至少一个实施例中,用户可以提出请求305“获取用户会话信息”以访问与测试会话的用户相关联的信息——例如,测试会话的日期和时间、测试会话的长度、软件应用程序的名称等。在一些实施例中,用户可以访问关于访问测试会话的要求的信息(例如,系统要求或与云环境相关联的任何设置)。在一些实施例中,用户可以请求在测试会话日期之前运行其系统(例如,其客户端设备108)的测试。在至少一个实施例中,在请求305“获取我的会话列表”之后,用户GUI可以显示时间、应用程序名称、测试会话名称、协调器联系信息、邀请状态(例如,邀请是否被接受、拒绝、待定)等。因此,测试微服务230可以使用户能够看到即将进行的测试会话、进入测试会话以及参与活动的测试会话。在一些实施例中,微服务230可以允许在云环境中测试软件应用程序,因为它允许协调器创建和发起会话并且允许观察者和用户接受测试会话的邀请,同时获得关于测试会话的信息。
图4示出了根据至少一个实施例的将现场测试会话流式传输到观察者的示例的图。例如,示图400示出了观察者的客户端设备,其观察用户测试软件应用程序130的现场测试会话。示图400描绘了可以由包括硬件、软件、固件或其任何组合的处理逻辑执行的操作。在至少一个实施例中,示图400描绘了由客户端108、服务器机器106、分配器245、观察者客户端255和档案405在云环境200中执行的操作,如参考图2所描述的。
在一些实施例中,在协调器创建了测试会话之后(例如,选择了软件应用程序130的构建,选择了一组任务、场景或条件来测试,选择了一组用户,并选择了测试会话的一组观察者),协调器可以启动测试会话。在这样的实施例中,客户端设备108的用户可以在测试会话活动期间——例如,在协调器允许用户访问软件应用程序130的时间期间内——访问要测试的软件应用程序130的构建的实例。在至少一个实施例中,客户端设备108可以访问虚拟化计算环境160以向客户端设备108的相应用户显示软件应用程序130的实例的流。在图4所示出的示例中,测试会话可以包括三(3)个用户。在其他实施例中,可以选择多于或少于三(3)个用户。在一些实施例中,当用户与软件应用程序130的实例交互时,网络摄像头源240可以记录用户的反应,如参考图2所描述的。因此,分配器245可以从虚拟化计算环境160接收应用程序的内容(例如,应用程序音频和视频)并且从客户端设备108的网络摄像头源240接收视频和音频。
在一些实施例中,分配器245可以将应用程序音频/视频和网络摄像头音频/视频发送到档案405。在一些实施例中,档案405可以是参考图2所描述的数据存储112的一部分。在一些实施例中,存储在档案405中的流可以由观察者在随后的时间访问,如参考图5所描述的。在至少一个实施例中,分配器245还可以将流(例如,应用程序音频/视频和网络摄像头音频/视频)发送到观察者客户端255。尽管示出了三个观察者客户端255,但在一些示例中可以有多于或少于三(3)个观察者客户端255——例如,协调器可以选择多于或少于三(3)个观察者来观看测试会话。
在一些实施例中,观察者可以在活动测试会话期间观看测试软件应用程序130的用户的流——例如,通过分配器245的媒体服务器265。在一些实施例中,观察者可以通过观察者GUI选择要观看的流。例如,客户端设备255的观察者可以选择观看第一客户端设备108的第一用户的流,观看第二设备108的第二用户的流,观看第三客户端设备108的第三用户,或其任何组合。在一些实施例中,虚拟化计算环境160还可以向分配器245发送通知——例如,观察者客户端255处的观察者可以接收除了流之外的通知。在一些实施例中,通知可以由参考图2所描述的事件API或捕获API来传达——例如,由软件应用程序130的开发者指示或标记的事件的通知。在至少一个实施例中,通知可以向观察者指示事件(例如,软件应用程序130中的boss战)。在这样的示例中,观察者可以基于通知选择不同的视图(例如,不同的流)。例如,观察者可以在接收到第二用户遇到事件的通知后,从观察第一用户切换到第二用户。在至少一个实施例中,观察者可以在测试会话期间注释流——例如,分配器还可以在观察者们注释流时收集观察者的输入。例如,观察者可以标记要返回的时间戳、注释他们想要讨论的事件、注释他们想要重新观看的特定用户的流、创建他们将返回的片段等。有关观察者GUI的其他详细信息将参考图6进行描述。
图5示出了根据至少一个实施例的将测试会话的重放流式传输到观察者的示例的图。例如,示图400示出了观察者观察用户测试软件应用程序130的测试会话的重放。示图400描绘了可以由包括硬件、软件、固件或其任何组合的处理逻辑执行的操作。在至少一个实施例中,示图400描绘了由分配器245、观察者客户端255和档案405在云环境200中执行的操作,如参考图2所描述的。
在一些实施例中,在测试会话完成之后,观察者可以通过观察者GUI和微服务230请求观看相应测试会话的重放。在这样的示例中,在观察者选择要重放的测试会话之后,分配器245可以访问测试会话视频的档案405。在一些实施例中,分配器245然后可以将测试会话的重放流式传输到观察者客户端255——例如,观察者可以通过观察者GUI在观察者客户端255处观看重放。在一些实施例中,流的重放可以包括参考图4描述的注释和事件通知。在至少一个实施例中,重放流可以包括注释或事件的时间线,使得观察者可以直接跳到观看注释或事件。在至少一个实施例中,观察者可以在观看重放流的同时做出进一步的注释。在一些实施例中,观察者可以与其他符合条件的观察者共享注释——例如,由协调器选择的一组观察者内的其他观察者。在一些实施例中,观察者可以在观看回放流的同时选择不同的视角和用户来查看。
在一些实施例中,观察者可以执行对先前测试会话或记录的测试会话视频的搜索。例如,观察者可以访问或搜索来自多个测试会话的分析,以比较和了解多个测试会话的玩法——例如,查看测试会话期间帧速率或用户的表现。在一些实施例中,观察者可以设置某些标准来搜索——例如,搜索某些片段、事件和注释。在一些实施例中,观察者还可以搜索时间戳、特定软件应用程序、软件应用程序的特定构建、特定用户等。在这样的示例中,分配器245可以从档案405中检索请求片段并将它们流式传输到观察者客户端255。因此,观察者可以更高效地审查测试会话。
在一些实施例中,协调器可以选择审查者来测试软件应用程序。在这样的示例中,审查者可以在测试会话期间像用户那样访问软件应用程序。在一些实施例中,不同的权限可以用于审查者测试会话。例如,协调器可以安排测试会话,以便记录游戏玩法,但审查者的网络摄像头源不记录视频或声音。在一些实施例中,审查者的流(例如,游戏玩法)可以存储在档案405中。在这样的实施例中,开发者或协调器可以访问测试会话视频并将其及时发布给审查者以进行审查。
在一些实施例中,协调器可以创建作为封闭式beta记录的测试会话。在这样的示例中,beta测试人员同意在beta测试过程中——例如,在一段时间内(例如,24小时、几天、几周或几个月)——被监测。在这样的实施例中,虚拟化计算环境160可以指示存储应用程序游戏玩法、游戏玩法中的事件片段(由协调器选择)和发生测试会话流的事件日志。在至少一个实施例中,观察者可以访问beta测试会话的回放并且通过流搜索以找到相关片段和事件。在beta测试持续数周或数月的实施例中,虚拟化计算环境160可以基于来自观察者或开发者的输入指示保存匹配特定标准的内容或注释,或在特定持续时间之后使内容到期(例如,删除)。
图6A和图6B示出了根据至少一些实施例的示例观察者图形用户界面(GUI)的框图。在一些实施例中,观察者GUI可以显示在观察者客户端255处,如参考图2所描述的。在一些实施例中,观察者GUI可以使观察者能够在活动测试会话或测试会话的重放期间观看来自各个用户的流,如分别参照图4和图5所描述的。在至少一个实施例中,观察者GUI可以使观察者能够搜索如参考图5所描述的片段、事件和注释。虽然显示了观察者GUI的两个示例,但其他示例也是可能的。也就是说,观察者GUI可以是可定制的,并且可以基于观察者的输入显示不同的内容。
在一个实施例中,观察者GUI 260可以在活动测试会话期间或在测试会话的重放期间显示用户测试会话605、应用程序信息610、协调器信息615和用户测试会话选择器620。在一些实施例中,应用程序信息610可以显示应用程序130的名称以及应用程序130的构建信息。在一些实施例中,协调器信息615可以显示协调器的联系信息(例如,姓名和电子邮件)。在至少一个实施例中,用户测试会话选择器620显示为观察者改变视图的选项。例如,图6A示出了同时观看九(9)个用户流的观察者。观察者可以与用户测试会话选择器620交互以增加所显示的用户流的数量、减少所显示的用户流的数量或选择特定的用户来关注。例如,观察者可以通过用户测试选择器605选择查看六(6)个用户测试会话605或十二(12)个用户测试会话605。在一些实施例中,观察者可以选择用户测试会话605-a来关注——例如,用户测试会话605-a可以全屏显示给观察者,而剩余的用户测试会话605被隐藏而无法看到。在一些实施例中,用户测试会话选择器620还可以显示关于用户的信息。例如,如果观察者选择了第一用户,则用户测试会话选择器可以显示与第一用户相关的信息——例如,游戏玩法体验、竞争力等。因此,观察者可以自定义他们的流(例如,他们正在观看的内容)以观察他们在测试会话期间想要的方面。在一个实施例中,观察者可以隐藏或禁用用户测试会话605、应用程序信息610、协调器信息615和用户测试选择器620中的任何一个。例如,观察者可以最小化应用程序信息610、协调器信息615、用户测试会话选择器620以更多地关注用户测试会话605。在至少一个实施例中,观察者可以重新安排用户测试会话605——例如,切换用户测试会话605-i和605-a。
图6B示出了在观察者GUI 260上显示的用户测试会话605的示例。例如,用户测试会话605可以显示应用程序流625。在一些实施例中,应用程序流625可以是在测试会话期间与相应用程序户相关联的游戏玩法——例如在测试会话期间与第一客户端设备处的第一用户相关联的游戏玩法。在一些实施例中,应用程序流625可以是在软件应用程序130中利用的游戏玩法事件(例如,地图)的空间表示。在一些实施例中,应用程序流625可以显示相应用户的分析。在至少一个实施例中,用户测试会话605可以包括用户网络摄像头流630——例如来自网络摄像头源240的流。因此,观察者可以在测试会话进行时观察用户的反应。在至少一个实施例中,用户测试会话605可以包括用户输入显示器635。在一些实施例中,用户输入显示器635可以在用户在测试会话期间与游戏玩法互动时显示用户输入。例如,用户输入显示器635可以显示虚拟控制器,当用户在与软件应用程序130交互时按下按钮时突出显示按钮。在一些实施例中,用户输入显示器635可以显示用户正在利用的与软件应用程序130交互的组件类型——例如控制器、鼠标、键盘等。因此,观察者可以在测试会话期间查看游戏玩法、用户的反应和用户的输入。在一些实施例中,观察者可以定制用户测试会话605显示。例如,观察者可以决定将用户网络摄像头流630作为主窗口来查看并且使应用程序流625最小化——例如,切换图6B中所示的用户网络摄像头流630和应用程序流625的位置。在至少一个实施例中,观察者可以将用户输入显示器635视为主显示器。在一些实施例中,观察者可以禁用或隐藏应用程序流625、用户网络摄像头流630和用户输入显示器635中的任何一个。
在一个实施例中,用户测试会话605显示可以包括流控件640。在至少一个实施例中,流控件640可以为每个用户测试会话605显示音量控制按钮——例如,观察者可以静音或增加各个用户测试会话605的音量。例如,观察者可以静音或增加用户的游戏设置或麦克风的音量。在一些实施例中,流控件640可以显示隐藏或查看流的选项以及附加选项。在一些实施例中,当观察者关注一个测试会话605时,显示的流控件640可以改变。例如,流控件640可以显示用于暂停、倒带、快进(对于重放的流)用户的流的控件。在至少一个实施例中,流控件640可以通过时间条在相应时间显示游戏玩法的预览——例如,在分钟标记5:34处的流的预览。在一些实施例中,流控件640可以使观察者能够注释或标记流。例如,观察者可以在相应的时间对流进行注释,并在稍后返回并观看重放。在至少一个实施例中,流控件640可以使观察者能够从流中创建片段。在一些实施例中,流控件640可以使观察者能够与其他观察者共享注释或片段。
观察者GUI 260的其他可能表示是可能的。也就是说,观察者GUI 260可以显示与测试会话相关联的其他信息。例如,观察者GUI 260可以显示参考图2所描述的事件通知——例如,指示第一用户正在通过开发者标记的事件进行游戏。在一个实施例中,观察者GUI 260可以显示正在积极观察测试会话的其他观察者——例如,显示哪些观察者是活跃的以及哪些观察者是不活跃的。在一个实施例中,观察者GUI 260可以显示重放流的事件或注释的时间线。在一个实施例中,观察者GUI 260可以使观察者能够从测试会话下载片段。在一些实施例中,观察者GUI 260可以使观察者能够为来自测试会话的片段设置权限——例如,设置权限级别以指示谁可以稍后访问该片段。在一个实施例中,观察者GUI 260可以使观察者能够查看游戏玩法事件的时间顺序表示或过滤游戏玩法事件的时间顺序表示。在一些实施例中,观察者GUI 260可以使观察者能够定制视图以查看所有用户、一个用户、用户子集等。因此,观察者GUI 260可以使观察者在软件应用程序130的测试会话期间能够定制他们的显示并且专注于他们所关注的内容。
图7示出了根据一些实施方式的用于在云计算环境中测试软件应用程序的方法700的流程图。方法700可以由包括硬件、软件、固件或其任何组合的处理逻辑来执行。在至少一个实施例中,方法700由参考图2所描述的计算环境200执行——例如,由参考图2所描述的应用程序托管平台102执行。在一些实施例中,处理逻辑可以与应用程序托管平台相关联或以其他方式位于应用程序托管平台内。尽管以特定的顺序或次序显示,除非另有说明,否则可以修改处理的顺序。因此,所示出的实施例应仅被理解为示例,并且所示出过程可以以不同的顺序执行,并且一些过程可以并行执行。此外,在各种实施例中可以省略一个或更多个过程。因此,并非在每个实施例中都需要所有过程。其他图示说明在云环境中测试软件应用程序的方法的是可能的。
在操作705处,处理逻辑可以经由应用程序托管平台选择应用程序以进行测试会话,其中使用使用用于测试会话的应用程序托管平台实例化的虚拟化计算环境来托管应用程序。例如,协调器可以利用处理设备来选择在应用程序托管平台注册(或上传到应用程序托管平台)的软件应用程序,以在发布软件应用程序之前进行测试。在一个实施例中,选择应用程序可以包括选择在应用程序托管平台注册的应用程序的预发布构建。在一些实施例中,处理逻辑(例如,通过应用程序托管平台)可以从与托管在应用程序托管平台上的应用程序相关联的构建池中为应用程序选择构建。在一个实施例中,处理逻辑可以选择不在虚拟化计算环境中托管的应用程序。在这样的实施例中,处理逻辑可以指示应用程序没有被托管在应用程序托管平台上,并且发送关于向应用程序托管平台注册应用程序的指令。在至少一个实施例中,可以允许协调器通过应用程序托管平台在选择应用程序时选择测试会话的持续时间——例如,协调器可以在选择用于测试会话的应用程序时设置时间和测试会话长度。在至少一个实施例中,可以允许协调器通过应用程序托管平台修改测试会话。例如,修改包括修改一组用户、修改一组观察者、修改测试会话的持续时间、修改应用程序的构建、删除会话等中的至少一个。在至少一个实施例中,关于测试会话的信息(例如,长度、时间、日期、所选择的软件应用程序等)可以存储在与处理设备耦合的服务器上。在一些实施例中,服务器还可以存储要执行的测试会话的数量——例如,存储所有先前和即将进行的测试会话的列表,如参考图2所描述的。例如,应用程序托管平台或处理逻辑可以使用与处理设备耦合的服务器来实现要执行的测试会话的数量。在至少一个实施例中,处理逻辑通过使用一个或更多个处理设备执行的应用程序托管平台,可以为使用使用应用程序托管平台实例化的虚拟化计算环境托管的应用程序创建测试会话,其中创建测试会话包括操作710和操作715——例如,创建测试会话包括选择与应用程序托管平台相关联的一组用户和一组观察者。
在操作710处,处理逻辑可以通过应用程序托管平台选择与应用程序托管平台的应用程序相关联的一组用户,以在测试会话期间执行应用程序。也就是说,协调器可以在测试会话期间利用应用程序托管平台来选择一组用户来测试游戏。在一些实施例中,该组用户可以是在应用程序托管平台注册的所有用户。在至少一个实施例中,协调器可以利用应用程序托管平台来选择与应用程序托管平台无关的用户。在这样的实施例中,处理逻辑可以向用户发送指令以向应用程序托管平台注册。也就是说,可以邀请未在应用程序托管平台注册的用户参加测试会话,但用户必须先在应用程序托管平台注册才能加入测试会话。在至少一个实施例中,协调器可以通过应用程序托管平台,基于用户的特征——例如,游戏玩法体验、竞争力/排名、所玩游戏的类型等来选择一组用户。在至少一个实施例中,处理逻辑可以导致在玩家图形用户界面(GUI)中为对应于该组用户的每个用户设备呈现通知,以响应选择该组用户而执行测试会话的应用程序。也就是说,可以通知用户他们已被邀请参加测试会话。在至少一个实施例中,播放器GUI还可以使用户能够接受或拒绝邀请,例如RSVP。
在操作715,处理逻辑可以经由应用程序托管平台选择与应用程序托管平台相关联的一组观察者,以在测试会话期间监测应用程序与该组用户中的一个或更多个用户之间的交互。也就是说,协调器可以利用应用程序托管平台来选择一组观察者来在测试会话期间测试软件应用程序。在一些实施例中,该组观察者可以是在应用程序托管平台注册的所有用户。在至少一个实施例中,协调器可以利用应用程序托管平台来选择与应用程序托管平台无关的观察者。在这样的实施例中,处理逻辑可以向观察者发送指令使其向应用程序托管平台注册。也就是说,可以邀请未在应用程序托管平台注册的观察者参加测试会话,但是观察者必须在监测测试会话之前向应用托管平台注册。
在操作720,处理逻辑可以通过应用程序托管平台在选择应用程序、一组用户和一组观察者时启动测试会话。在至少一个实施例中,处理逻辑可以在协调器设置的时间启动测试会话。
在操作725,处理逻辑可以通过应用程序托管平台认证在测试会话期间与应用程序交互的一组用户。在至少一个实施例中,该组用户可以登录到与应用程序托管平台相关联的账户。在这样的实施例中,应用程序托管平台可以认证(例如,验证)用户以访问应用程序的预发布构建。在至少一个实施例中,应用程序托管平台可以认证监测测试会话的一组观察者。在至少一个实施例中,应用程序托管平台可以验证或认证与该组用户或该组观察者相关联的令牌。因此,应用程序托管平台可以防止对软件应用程序的未经授权的访问并防止软件应用程序的预发布构建的泄漏。
在操作730,处理逻辑可以使对应于应用程序的内容数据被流式传输到对应于该组用户中的每个用户的用户设备,以在播放器图形用户界面(GUI)中呈现。在至少一个实施例中,处理逻辑可以使应用程序的游戏玩法被流式传输到与该组用户中的每个用户对应的每个用户设备。在至少一个实施例中,播放器GUI使用户能够与应用程序交互——例如,通过应用程序的故事情节进行。
在操作735处,处理逻辑可以使与来自一组用户的每个用户相关联的测试会话的视频流被传输到来自一组观察者的对应观察者的用户设备,用于在观察者GUI中呈现。在至少一个实施例中,视频流反映用户(例如,至少一个用户)与应用程序内容的交互。在一个实施例中,处理逻辑可以使与一组用户中的两个或更多用户(例如,所有用户)相关联的测试会话的视频流被流式传输到来自该组观察者的对应观察者的用户设备,用于在观察者GUI中呈现。即,观察者可以定制他们的显示并且从监测该组用户中的一个用户切换到该组用户中的所有用户,如参考图6所描述的。在至少一个实施例中,处理逻辑可以接收针对与应用程序的内容交互的一组用户中的每个用户捕获的用户输入——例如,接收指定用户在播放应用程序时正在按下控制器上的哪些按钮的信息。在至少一个实施例中,处理逻辑可以使用户输入流式传输到一组观察者中的相应观察者的用户设备,以在观察者GUI中呈现——例如,用户输入可以在观察者GUI上显示,如参考图6所描述的。在至少一个实施例中,用户设备可以包括网络摄像头(例如,网络摄像头源240)。在这样的示例中,处理逻辑可以接收来自一组用户的每个用户的记录(例如,使用来自一组用户的每个用户的每个用户设备的网络摄像头创建的记录),并使来自一组用户的每个用户的记录流式传输到该组观察者中的相应观察者的用户设备,以在观察者GUI中呈现——例如,如参考图6所描述的那样显示网络摄像头馈送。在一些实施例中,可以将记录通知用户——例如,可以要求用户同意记录、监测或其他权限。在至少一个实施例中,观察者可以请求测试会话信息,如参考图3所描述的。在这样的实施例中,处理逻辑通过应用程序托管平台可以使得与测试会话相关联的信息被提供给一组观察者中的至少一个观察者,其中该信息包括一组用户(例如,联系信息、关于用户的经验的信息等)或将在观察者GUI中呈现给一组观察者中的观察者的应用程序的构建中的至少一个。在至少一个实施例中,观察者可以注释测试会话的流,如参考图4所描述的。例如,观察者可以对流进行注释以标记某些事件,或者在重放测试会话时在他们希望返回的流中的时间戳上放置一个书签。在这样的示例中,处理逻辑可以在测试会话的视频流的时段期间经由观察者GUI在来自一组观察者的对应观察者的使用设备处检测观察者输入,并且响应于检测到观察者输入而在数据库中存储检测到观察者输入的时段的指示——例如,数据库可以存储注释并在观察者观看视频流的重放时将它们呈现给观察者。在至少一个实施例中,处理逻辑可以在持续时间之后终止测试会话——例如,在协调器指示的时间到期之后。
在至少一个实施例中,处理逻辑可以在数据库中存储在测试会话终止之后与一组用户中的至少一个用户相关联的测试会话的视频流的记录,其中一组观察者中的相应观察者可以访问数据库。也就是说,处理逻辑可以将测试会话视频流的镜头存储在可以在测试会话完成之后访问的数据库中。在至少一个实施例中,处理逻辑可以存储与该组用户中的所有用户相关联的测试会话的视频流的记录。在至少一个实施例中,处理逻辑可以允许相应的观察者通过观察者GUI访问在测试会话终止之后对测试会话的视频流的记录。在至少一个实施例中,处理逻辑可以使观察者搜索测试会话的视频流——例如,搜索片段、注释、事件等。
图8是示出根据至少一个实施例示例性计算机系统的框图,该示例性计算机系统可以是具有互连的设备和组件的系统,片上系统(SOC)或它们的某种形成有处理器的组合800,该处理器可以包括执行单元以执行指令。在至少一个实施例中,根据本公开,例如本文所述的实施例,计算机系统800可以包括但不限于组件,例如处理器802,其执行单元包括逻辑以执行用于过程数据的算法。在至少一个实施例中,计算机系统800可以包括处理器,例如可从加利福尼亚圣塔克拉拉的英特尔公司(Intel Corporation of Santa Clara,California)获得的处理器家族、XeonTM、/>XScaleTM和/或StrongARMTM,/>CoreTM或/> NervanaTM微处理器,尽管也可以使用其他系统(包括具有其他微处理器的PC、工程工作站、机顶盒等)。在至少一个实施例中,计算机系统800可以执行可从华盛顿州雷蒙德市的微软公司(Microsoft Corporation of Redmond,Wash.)获得的WINDOWS操作系统版本,尽管其他操作系统(例如UNIX和Linux)、嵌入式软件和/或图形用户界面也可以使用。
实施例可以用在其他设备中,例如手持设备和嵌入式应用程序。手持设备的一些示例包括蜂窝电话、互联网协议(Internet Protocol)设备、数码相机、个人数字助理(“PDA”)和手持PC。在至少一个实施例中,嵌入式应用程序可以包括微控制器、数字信号处理器(“DSP”)、片上系统、网络计算机(“NetPC”)、机顶盒、网络集线器、广域网(“WAN”)交换机、边缘设备、物联网(“IoT”)设备或根据至少一个实施例可以执行一个或更多个指令的任何其他系统。
在至少一个实施例中,计算机系统800可包括但不限于处理器802,该处理器802可包括但不限于一个或更多个执行单元808,以根据本文描述的技术执行机器学习模型训练和/或推理。在至少一个实施例中,计算机系统800是单处理器台式机或服务器系统,但是在另一实施例中,计算机系统800可以是多处理器系统。在至少一个实施例中,处理器802可以包括但不限于复杂指令集计算机(“CISC”)微处理器、精简指令集计算(“RISC”)微处理器、超长指令字(“VLIW”)微处理器、实现指令集组合的处理器,或任何其他处理器设备,例如数字信号处理器。在至少一个实施例中,处理器802可以耦合到处理器总线810,该处理器总线810可以在处理器802与计算机系统800中的其他组件之间传输数据信号。
在至少一个实施例中,处理器802可以包括但不限于1级(“L1”)内部高速缓存存储器(“cache”)804。在至少一个实施例中,处理器802可以具有单个内部高速缓存或多级内部缓存。在至少一个实施例中,高速缓存存储器可以驻留在处理器802的外部。根据特定的实现和需求,其他实施例也可以包括内部和外部高速缓存的组合。在至少一个实施例中,寄存器文件806可以在各种寄存器中存储不同类型的数据,包括但不限于整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器。
在至少一个实施例中,包括但不限于执行整数和浮点运算的逻辑的执行单元808,其也位于处理器802中。在至少一个实施例中,处理器802还可以包括微码(“ucode”)只读存储器(“ROM”),用于存储某些宏指令的微代码。在至少一个实施例中,执行单元808可以包括用于处理封装指令集809的逻辑。在至少一个实施例中,通过将封装指令集809包括在通用处理器的指令集中,以及要执行指令的相关电路,可以使用通用处理器802中的封装数据来执行许多多媒体应用程序使用的操作。在一个或更多个实施例中,可以通过使用处理器的数据总线的全宽度来在封装的数据上执行操作来加速和更有效地执行许多多媒体应用程序,这可能不需要在该处理器的数据总线上传输较小的数据单元来一次执行一个数据元素的一个或更多个操作。
在至少一个实施例中,执行单元808也可以用在微控制器、嵌入式处理器、图形设备、DSP和其他类型的逻辑电路中。在至少一个实施例中,计算机系统800可以包括但不限于存储器820。在至少一个实施例中,存储器820可以被实现为动态随机存取存储器(“DRAM”)设备、静态随机存取存储器(“SRAM”)设备、闪存设备或其他存储设备。在至少一个实施例中,存储器820可以存储由处理器802可以执行的由数据信号表示的指令819和/或数据821。
在至少一个实施例中,系统逻辑芯片可以耦合到处理器总线810和存储器820。在至少一个实施例中,系统逻辑芯片可以包括但不限于存储器控制器集线器(“MCH”)816,并且处理器802可以经由处理器总线810与MCH 816通信。在至少一个实施例中,MCH 816可以提供到存储器820的高带宽存储器路径818以用于指令和数据存储以及用于图形命令、数据和纹理的存储。在至少一个实施例中,MCH 816可以在处理器802、存储器820和计算机系统800中的其他组件之间启动数据信号,并且在处理器总线810、存储器820和系统I/O接口822之间桥接数据信号。在至少一个实施例中,系统逻辑芯片可以提供用于耦合到图形控制器的图形端口。在至少一个实施例中,MCH 816可以通过高带宽存储器路径818耦合到存储器820,并且图形/视频卡812可以通过加速图形端口(Accelerated Graphics Port)(“AGP”)互连814耦合到MCH 816。
在至少一个实施例中,计算机系统800可以使用系统I/O 822,其是专有集线器接口总线,用于将MCH 816耦合到I/O控制器集线器(“ICH”)830。在至少一个实施例中,ICH830可以通过本地I/O总线提供与某些I/O设备的直接连接。在至少一个实施例中,本地I/O总线可以包括但不限于用于将外围设备连接到存储器820、芯片组和处理器802的高速I/O总线。示例可以包括但不限于音频控制器829、固件集线器(“Flash BIOS”)828、无线收发器826、数据存储824、包含用户输入和键盘接口825的传统I/O控制器823、串行扩展端口827(例如通用串行总线(USB))和网络控制器834,其在一些实施例中可以包括数据处理单元。数据存储824可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其他大容量存储设备。
在至少一个实施例中,图8示出了包括互连的硬件设备或“芯片”的系统,而在其他实施例中,图8可以示出片上系统(“SoC”)。在至少一个实施例中,设备可以与专有互连、标准化互连(例如,PCIe)或其某种组合互连。在至少一个实施例中,计算机系统800的一个或更多个组件使用计算快速链路(CXL)互连来互连。
这样的组件可用于在网络训练过程中生成模拟的故障情况的合成数据,这可有助于提高网络的性能,同时限制合成数据的数量以避免过度拟合。
图9是示出根据至少一个实施例的用于利用处理器910的电子设备900的框图。在至少一个实施例中,电子设备900可以是,例如但不限于,笔记本电脑、塔式服务器、机架服务器、刀片服务器、膝上型计算机、台式机、平板电脑、移动设备、电话、嵌入式计算机、边缘设备、IoT设备或任何其他合适的电子设备。
在至少一个实施例中,系统900可以包括但不限于通信地耦合到任何合适数量或种类的组件、外围设备、模块或设备的处理器910。在至少一个实施例中,处理器910使用总线或接口耦合,诸如1℃总线、系统管理总线(“SMBus”)、低引脚数(LPC)总线、串行外围接口(“SPI”)、高清音频(“HDA”)总线、串行高级技术附件(“SATA”)总线、通用串行总线(“USB”)(1、2、3版)或通用异步接收器/发送器(“UART”)总线。在至少一个实施例中,图9示出了系统,该系统包括互连的硬件设备或“芯片”,而在其他实施例中,图9可以示出示例性片上系统(“SoC”)。在至少一个实施例中,图9中所示的设备可以与专有互连线、标准化互连(例如,PCIe)或其某种组合互连。在至少一个实施例中,图9的一个或更多个组件使用计算快速链路(CXL)互连线来互连。
在至少一个实施例中,图9可以包括显示器924、触摸屏925、触摸板930、近场通信单元(“NFC”)945、传感器集线器940、热传感器946、快速芯片组(“EC”)935、可信平台模块(“TPM”)938、BIOS/固件/闪存(“BIOS,FW Flash”)922、DSP 960、驱动器920(例如固态磁盘(“SSD”)或硬盘驱动器(“HDD”))、无线局域网单元(“WLAN”)950、蓝牙单元952、无线广域网单元(“WWAN”)956、全球定位系统(GPS)955、相机(“USB 3.0相机”)954(例如USB 3.0相机)和/或以例如LPDDR3标准实现的低功耗双倍数据速率(“LPDDR”)存储器单元(“LPDDR3”)915。这些组件可以各自以任何合适的方式实现。
在至少一个实施例中,其他组件可以通过本文所讨论的组件通信地耦合到处理器910。在至少一个实施例中,加速度计941、环境光传感器(“ALS”)942、罗盘943和陀螺仪944可以可通信地耦合到传感器集线器940。在至少一个实施例中,热传感器939、风扇937、键盘936和触摸板930可以通信地耦合到EC 935。在至少一个实施例中,扬声器963、耳机964和麦克风(“mic”)965可以通信地耦合到音频单元(“音频编解码器和D类放大器”)962,其又可以通信地耦合到DSP 960。在至少一个实施例中,音频单元962可以包括例如但不限于音频编码器/解码器(“编解码器”)和D类放大器。在至少一个实施例中,SIM卡(“SIM”)957可以通信地耦合到WWAN单元956。在至少一个实施例中,组件(诸如WLAN单元950和蓝牙单元952以及WWAN单元956)可以被实现为下一代形式因素(NGFF)。
此类组件可用于在网络训练过程中生成模拟故障情况的合成数据,这可有助于提高网络的性能,同时限制合成数据的数量以避免过度拟合。
其他变型在本公开的精神内。因此,尽管公开的技术易于进行各种修改和替代构造,但是某些示出的其实施例在附图中示出并且已经在上面进行了详细描述。然而,应理解,无意将公开内容限制为所公开的一种或更多种特定形式,而是相反,其意图是涵盖落入如所附权利要求书所定义的本公开内容的精神和范围内的所有修改、替代构造和等同物。
除非另有说明或显然与上下文矛盾,否则在描述所公开的实施例的上下文中(特别是在所附权利要求的上下文中),术语“一”和“一个”和“该”以及类似指代的使用应被解释为涵盖单数和复数,而不是作为术语的定义。除非另有说明,否则术语“包括”、“具有”、“包含”和“含有”应被解释为开放式术语(意味着“包括但不限于”)。术语“连接”(在未经修改时指的是物理连接)应解释为部分或全部包含在内、附接到或连接在一起,即使有某些介入。除非本文另外指出,否则本文中对数值范围的引用仅旨在用作分别指代落入该范围内的每个单独值的简写方法,并且每个单独值都被并入说明书中,就如同其在本文中被单独叙述一样。在至少一个实施例中,除非另外指出或与上下文矛盾,否则术语“集”(例如“项目集”)或“子集”的使用应解释为包括一个或更多个成员的非空集合。此外,除非另外指出或与上下文矛盾,否则术语相应集的“子集”不一定表示对应集的适当子集,而是子集和对应集可以相等。
除非以其他方式明确指出或与上下文明显矛盾,否则诸如“A,B和C中的至少一个”或“A,B与C中的至少一个”形式的短语之类的连接语在上下文中理解为通常用来表示项目、条款等,其可以是A或B或C,也可以是A和B和C集的任何非空子集。例如,在具有三个成员的集的说明性示例中,连接短语“A,B和C中的至少一个”和“A,B与C中的至少一个”是指以下任意集:{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C}。因此,这种连接语言通常不旨在暗示某些实施例要求存在A中的至少一个,B中的至少一个和C中的至少一个。另外,除非另有说明或与上下文矛盾,否则术语“多个”表示复数的状态(例如,“多个项目”表示多个项目)。在至少一个实施例中,多个项目中项目的数量至少为两个,但如果明确指示或通过上下文指示,则可以更多。此外,除非另有说明或从上下文中可以清楚得知,否则短语“基于”是指“至少部分基于”而不是“仅基于”。
除非本文另外指出或与上下文明显矛盾,否则本文描述的过程的操作可以任何合适的顺序执行。在至少一个实施例中,诸如本文所述的那些过程(或其变形和/或其组合)之类的过程在配置有可执行指令的一个或更多个计算机系统的控制下执行,并且被实现为代码(例如,可执行指令,一个或更多个计算机程序或一个或更多个应用程序),该代码通过硬件或其组合在一个或更多个处理器上共同执行。在至少一个实施例中,代码以例如计算机程序的形式存储在计算机可读存储介质上,该计算机程序包括可由一个或更多个处理器执行的多个指令。在至少一个实施例中,计算机可读存储介质是非暂时性计算机可读存储介质,其排除了暂时性信号(例如,传播的瞬态电或电磁传输),但包括非暂时性数据存储电路(例如,缓冲区、高速缓存和队列)。在至少一个实施例中,代码(例如,可执行代码或源代码)被存储在其上存储有可执行指令的一组一个或更多个非暂时性计算机可读存储介质(或用于存储可执行指令的其他存储器)上,该可执行指令在由计算机系统的一个或更多个处理器执行时(即,作为被执行的结果),使得计算机系统执行本文所述的操作。在至少一个实施例中,一组非暂时性计算机可读存储介质包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的个体非暂时性存储介质中的一个或更多个缺少全部代码,而是多个非暂时性计算机可读存储介质共同存储全部代码。在至少一个实施例中,可执行指令被执行,以使得不同的指令由不同的处理器执行。
因此,在至少一个实施例中,计算机系统被配置为实现单独地或共同地执行本文所述的过程的操作的一个或更多个服务,并且这样的计算机系统被配置有使能实施操作的适用的硬件和/或软件。此外,实现本公开的至少一个实施例的计算机系统是单个设备,并且在另一实施例中是分布式计算机系统,其包括以不同方式操作的多个设备,使得分布式计算机系统执行本文所述的操作,并且使得单个设备不执行所有操作。
本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例,并且不对公开的范围构成限制,除非另有要求。说明书中的任何语言都不应被解释为表示任何未要求保护的要素对于实践公开内容是必不可少的。
本文引用的所有参考文献,包括出版物、专利申请和专利,均通过引用并入本文,其程度就如同每个参考文献被单独且具体地指示为以引用的方式并入本文并且其全部内容在本文中阐述一样。
在说明书和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解,这些术语可能不旨在作为彼此的同义词。相反,在特定示例中,“连接”或“耦合”可用于指示两个或更多个元件彼此直接或间接物理或电接触。“耦合”也可能意味着两个或更多个元素彼此不直接接触,但仍彼此协作或交互。
除非另有明确说明,否则可以理解,在整个说明书中,诸如“处理”、“计算”、“计算”、“确定”等之类的术语,是指计算机或计算系统或类似的电子计算设备的动作和/或过程,其将计算系统的寄存器和/或存储器中表示为物理量(例如电子)的数据处理和/或转换为类似表示为计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据。
以类似的方式,术语“处理器”可以指处理来自寄存器和/或存储器的电子数据并将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据的任何设备或存储器的一部分。“计算平台”可以包括一个或更多个处理器。如本文所使用的,“软件”进程可以包括例如随时间执行工作的软件和/或硬件实体,诸如任务、线程和智能代理。同样,每个过程可以指代多个过程,以连续地或间歇地顺序地或并行地执行指令。在至少一个实施例中,术语“系统”和“方法”在本文中可以互换使用,只要系统可以体现一种或更多种方法,并且方法可以被认为是系统。
在本文件中,可以参考获得、获取、接收或将模拟或数字数据输入子系统、计算机系统或计算机实现的机器中。在至少一个实施例中,可以通过多种方式来完成获得、获取、接收或输入模拟和数字数据的过程,例如通过接收作为函数调用或对应用程序编程接口的调用的参数的数据。在至少一个实施例中,可以通过经由串行或并行接口传输数据来完成获得、获取、接收或输入模拟或数字数据的过程。在至少一个实施例中,可以通过经由计算机网络将数据从提供实体传输到获取实体来完成获得、获取、接收或输入模拟或数字数据的过程。在至少一个实施例中,也可以参考提供、输出、传送、发送或呈现模拟或数字数据。在各种示例中,提供、输出、传送、发送或呈现模拟或数字数据的过程可以通过将数据作为函数调用的输入或输出参数、应用程序编程接口或进程间通信机制的参数进行传输来实现。
尽管上面的描述阐述了所描述的技术的示例实施例,但是其他架构可以用于实现所描述的功能,并且旨在落入本公开的范围内。此外,尽管出于描述的目的可以在上面定义具体的职责分配,但是根据情况,可以以不同的方式分配和划分各种功能和职责。
此外,尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求书所要求保护的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现权利要求的示例性形式。
Claims (20)
1.一种方法,包括:
通过使用处理设备执行的应用程序托管平台选择应用程序以进行测试会话,其中使用虚拟化计算环境来托管所述应用程序,其中使用所述应用程序托管平台实例化所述虚拟化计算环境;
通过所述应用程序托管平台选择与所述应用程序托管平台相关联的一组用户来在所述测试会话期间与所述应用程序交互;
通过所述应用程序托管平台选择与所述应用程序托管平台相关联的一组观察者来在所述测试会话期间监测所述应用程序与所述一组用户中的一个或更多个用户之间的交互;
在选择所述应用程序、所述一组用户和所述一组观察者后,通过所述应用程序托管平台启动所述测试会话;
通过所述应用程序托管平台,对在所述测试会话期间与所述应用程序交互的所述一组用户进行认证;
使对应于所述应用程序的内容数据被流式传输到对应于所述一组用户中的每个用户的用户设备,以在播放器图形用户界面GUI中呈现;以及
使与所述一组用户中的每个用户相关联的所述测试会话的视频流被传输到所述一组观察者中的相应观察者的用户设备以在观察者GUI中呈现,所述视频流反映了所述用户与所述应用程序的内容的交互。
2.如权利要求1所述的方法,其中使所述测试会话的所述视频流被传输进一步包括:
接收针对与所述应用程序的所述内容交互的所述一组用户中的每个用户捕获的用户输入;以及
使所述用户输入被传输到所述一组观察者中的所述相应观察者的所述用户设备,以在所述观察者GUI中呈现。
3.如权利要求1所述的方法,其中使所述测试会话的所述视频流被传输进一步包括:
接收所述一组用户中的每个用户的记录,其中所述记录是使用所述一组用户中的每个用户的每个用户设备的网络摄像头创建的;以及
使所述一组用户中的每个用户的记录被传输到所述一组观察者中的所述相应观察者的所述用户设备,以在所述观察者GUI中呈现。
4.如权利要求1所述的方法,还包括:
使与所述一组用户中的两个或更多个用户相关联的所述测试会话的视频流被传输到所述一组观察者中的所述相应观察者的所述用户设备,以在所述观察者GUI中呈现。
5.如权利要求1所述的方法,还包括:
在所述测试会话终止之后,在数据存储库处存储与所述一组用户中的所述用户相关联的所述测试会话的所述视频流的记录。
6.如权利要求5所述的方法,还包括:
允许所述相应观察者通过所述观察者GUI在所述测试会话终止后访问所述测试会话的所述视频流的所述记录。
7.如权利要求1所述的方法,还包括:
在所述测试会话的所述视频流的时段期间,通过在所述一组观察者中的所述相应观察者的所述用户设备处的所述观察者GUI检测观察者输入;以及
响应于检测到所述观察者输入,在数据存储库处存储检测到所述观察者输入的所述时段的指示。
8.如权利要求1所述的方法,还包括:
在选择所述应用程序后,通过所述应用程序托管平台选择所述测试会话的持续时间;以及
在所述持续时间到期后通过所述应用程序托管平台终止所述测试会话。
9.如权利要求1所述的方法,还包括:
通过所述应用程序托管平台修改所述测试会话,其中所述修改包括修改所述一组用户、修改所述一组观察者、修改所述测试会话的持续时间或修改所述应用程序的构建中的至少一个。
10.如权利要求1所述的方法,还包括:
使用与所述处理设备耦合的服务器来实现要执行的多个测试会话。
11.如权利要求1所述的方法,还包括:
通过所述应用程序托管平台使与所述测试会话相关联的信息被提供给所述一组观察者中的至少一个观察者,其中所述信息包括所述一组用户或将在所述观察者GUI中为所述一组观察者中的所述观察者呈现的所述应用程序的构建中的至少一个。
12.如权利要求1所述的方法,还包括:
响应于选择所述一组用户,使通知在所述播放器GUI中呈现给与所述一组用户中的每个用户相对应的每个用户设备以执行用于所述测试会话的所述应用程序。
13.一种系统,包括:
一个或更多个处理单元,其中所述一个或更多个处理单元用于执行包括以下的操作:
选择托管在使用应用程序托管平台实现的虚拟化计算环境中的应用程序以进行测试会话;
选择与所述应用程序托管平台相关联的一组用户,以在所述测试会话期间执行所述应用程序;
选择与所述应用程序托管平台相关联的一组观察者,以在所述测试会话期间监测所述一组用户中的一个或更多个用户;
在选择所述应用程序、所述一组用户和所述一组观察者后启动所述测试会话;
在所述测试会话期间对与所述应用程序交互的所述一组用户进行认证;
使与所述应用程序相对应的内容数据被流式传输到所述一组用户中的每个用户的用户设备,以在播放器图形用户界面GUI中呈现;以及
使与所述一组用户中的至少一个用户相关联的所述测试会话的视频流被传输到所述一组观察者中的相应观察者的用户设备,以在观察者GUI中呈现,所述视频流反映了所述至少一个用户与所述应用程序的所述内容的交互。
14.如权利要求13所述的系统,其中为了使所述测试会话的所述视频流被传输,所述一个或更多个处理单元进一步用于:
接收针对与所述应用程序的所述内容交互的所述一组用户中的至少一个用户捕获的用户输入;以及
使所述用户输入被传输到所述一组观察者中的所述相应观察者的所述用户设备,以在所述观察者GUI中呈现。
15.如权利要求13所述的系统,其中为了使所述测试会话的所述视频流被传输,所述一个或更多个处理单元进一步用于:
接收所述一组用户中的至少一个用户的记录,其中所述记录是使用所述至少一个用户的至少一个用户设备的网络摄像头创建的;以及
使所述一组用户中的所述至少一个用户的所述记录被传输到所述一组观察者中的所述相应观察者的所述用户设备,以在所述观察者GUI中呈现。
16.如权利要求13所述的系统,其中所述一个或更多个处理单元进一步用于:
使与所述一组用户中的两个或更多个用户相关联的所述测试会话的所述视频流被传输到所述一组观察者中的所述相应观察者的所述用户设备,以在所述观察者GUI中呈现。
17.如权利要求13所述的系统,其中所述一个或更多个处理单元进一步用于:
在所述测试会话终止之后,在数据存储库处存储与所述一组用户中的所述至少一个用户相关联的所述测试会话的所述视频流的记录。
18.如权利要求17所述的系统,其中所述一个或更多个处理单元进一步用于:
允许所述相应观察者在所述测试会话终止后通过所述观察者GUI访问所述测试会话的所述视频流的所述记录。
19.如权利要求13所述的系统,其中所述一个或更多个处理单元进一步用于:
在选择所述应用程序后,通过所述应用程序托管平台选择所述测试会话的持续时间;以及
在所述持续时间之后通过所述应用程序托管平台终止所述测试会话。
20.一种非暂时性计算机可读介质,在其上存储有指令,其中所述指令在由处理设备执行时使所述处理设备:
通过使用一个或更多个处理设备执行的应用程序托管平台,为使用用所述应用程序托管平台实例化的虚拟化计算环境托管的应用程序创建测试会话,其中创建所述测试会话包括选择与所述应用程序托管平台相关联的一组用户和一组观察者;
使与所述一组用户中的至少一个用户相关联的所述测试会话的视频流被流式传输到所述一组观察者中的相应观察者的用户设备以在观察者GUI中呈现,所述视频流反映所述至少一个用户与所述应用程序的所述内容的交互;以及
在数据存储库处存储与所述一组用户中的所述至少一个用户相关联的所述测试会话的所述视频流的记录,其中所述测试会话的所述视频流的所述记录能在所述测试会话终止后被所述一组观察者中的相应观察者访问。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/680,221 | 2022-02-24 | ||
US17/680,221 US20230266989A1 (en) | 2022-02-24 | 2022-02-24 | Distributed application testing in cloud computing environments |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116701163A true CN116701163A (zh) | 2023-09-05 |
Family
ID=87518882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211079160.0A Pending CN116701163A (zh) | 2022-02-24 | 2022-09-05 | 云计算环境中的分布式应用程序测试 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230266989A1 (zh) |
JP (1) | JP2023123324A (zh) |
CN (1) | CN116701163A (zh) |
DE (1) | DE102023103381A1 (zh) |
-
2022
- 2022-02-24 US US17/680,221 patent/US20230266989A1/en active Pending
- 2022-05-13 JP JP2022079556A patent/JP2023123324A/ja active Pending
- 2022-09-05 CN CN202211079160.0A patent/CN116701163A/zh active Pending
-
2023
- 2023-02-13 DE DE102023103381.6A patent/DE102023103381A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230266989A1 (en) | 2023-08-24 |
JP2023123324A (ja) | 2023-09-05 |
DE102023103381A1 (de) | 2023-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10926184B2 (en) | Synchronized video with in game telemetry | |
US10039988B2 (en) | Persistent customized social media environment | |
WO2021244205A1 (zh) | 一种交互场景启动方法、装置、存储介质、客户端及服务器 | |
CN113710337B (zh) | 媒体-活动绑定和内容阻止 | |
CN108965956B (zh) | 提供视频呈现评论的方法、介质、服务器和系统 | |
US9233305B2 (en) | System and method for managing game-playing experiences | |
US20170180498A1 (en) | Intelligent Delivery of Actionable Content | |
US20120311032A1 (en) | Emotion-based user identification for online experiences | |
US20110092279A1 (en) | Single to multi-user synchronous application conversion | |
US20100251386A1 (en) | Method for creating audio-based annotations for audiobooks | |
US9205335B2 (en) | Achievement replay and fraud detection | |
WO2019127114A1 (zh) | 一种虚拟机的音频播放方法及其装置、移动终端 | |
US20180104587A1 (en) | Video game platform based on state data | |
US20180262803A1 (en) | Identification and instantiation of community driven content | |
US20100100820A1 (en) | User specific music in virtual worlds | |
WO2023088006A1 (zh) | 云游戏交互方法、装置、可读介质和电子设备 | |
CN110603753B (zh) | 互动后元数据生成 | |
US9756141B2 (en) | Media content consumption analytics | |
CN115604543A (zh) | 为游戏会话自动生成增强的活动和事件摘要 | |
CN108847948B (zh) | 活动群的创建方法及装置、介质和计算设备 | |
KR102299789B1 (ko) | 소셜 서비스와 결합된 동영상 서비스를 제공하는 방법과 시스템, 그리고 컴퓨터 판독가능 기록 매체 | |
JP2021072965A (ja) | ゲームリプレイ方法およびシステム | |
US20230266989A1 (en) | Distributed application testing in cloud computing environments | |
US11386152B1 (en) | Automatic generation of highlight clips for events | |
CN111868820A (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 |