IP Library Granted Patent US 11,409,644
Granted Patent B2
US 11,409,644 · App. 16/815,788 · Granted Aug 9, 2022

Validation of mobile device workflows

Inventors: Herminio Carames (Lansdowne, VA); Andrew Smith (Oakton, VA); Binbin Wu (Broadlands, VA); Ying Ma (Falls Church, VA); Jun Peng (Great Falls, VA); David Hagen (Herndon, VA)
Assignee: MicroStrategy Incorporated
G06F11/3688G06F8/61G06F11/3692
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,409,644
App. No.
16/815,788
Granted
Aug 9, 2022
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer-readable storage media, for validation of mobile device workflows. In some implementations, a mobile device application to be tested is identified. An installation of the application on each of a plurality of remote mobile devices, including mobile devices having different hardware configurations and different operating system configurations, is initiated. Usage of the application by instructing the remote mobile devices to perform a series of operations using the application is simulated. Performance of the respective mobile devices during the simulated usage is measured. A document indicating performance of the application across the different mobile device configurations is generated.

Claims (58)

1. A method comprising:

identifying a mobile device application to be tested;

accessing usage data indicating previous usage of the mobile device application by multiple users;

defining a workflow that includes a sequence of operations of the mobile device application, the sequence of operations being determined based on sequences of user inputs indicated by the usage data;

initiating installation of the application on each of a plurality of remote mobile devices, including mobile devices having different configurations;

for each of the remote mobile devices, testing performance of the application using different settings for the application, comprising:

simulating usage of the application with a first combination of application settings by providing input to the application running on the remote mobile devices that simulates user input causing the application to perform the sequence of operations for the workflow;

measuring performance of the remote mobile device while the first combination of application settings is used by the application;

changing one or more settings of the application on the remote mobile device such that a second combination of application settings is applied for the application; and

after changing the one or more settings of the application, simulating usage of the application with the second combination of application settings by instructing the remote mobile device to perform a series of operations using the application and measuring performance of the remote mobile device while the second combination of application settings is used by the application;

based on the performance measurements for the remote mobile devices, determining a combination of settings or range of settings for the application for each of the different configurations of mobile devices; and

generating a document that indicates the measured performance of the application across the different mobile device configurations and the determined combination of settings or range of settings for the application for the different configurations of mobile devices.

2. The method of claim 1 , further comprising testing installation of the application on each of the plurality of remote mobile devices by logging errors that occur in installation processes executing on each of the remote mobile devices and measuring an amount of time that the respective installation processes require for each of the remote mobile devices.

3. The method of claim 1 , wherein the plurality of remote mobile devices comprises mobile phones from different manufacturers and running different operating system versions.

4. The method of claim 1 , wherein initiating installation comprises remotely initiating installation of the mobile device application on each of a plurality of remote mobile devices of different configurations that are operated by and made accessible by a third-party provider over a communication network.

5. The method of claim 1 , wherein simulating usage of the application comprises causing the application to perform operations using documents and data sets served by a server system over a network;

wherein the method comprises:

configuring a particular cloud-based virtual server environment to serve the documents and data sets used in the simulated usage of the application; and

configuring the application installations on the remote mobile devices to communicate with the particular cloud-based virtual server environment.

6. The method of claim 1 , wherein measuring performance of the respective mobile devices during the simulated usage comprises validating results generated by the respective mobile devices with respect to a set of reference results.

7. The method of claim 1 , wherein measuring performance of the respective mobile devices during the simulated usage comprises measuring at east one of response time, error occurrence, task completion time, accuracy of results, or system stability.

8. The method of claim 1 , further comprising:

changing server settings of a server environment in communication with the remote mobile devices to operate the server environment with different combinations of server settings during different periods of simulated usage of the application on the remote mobile devices; and

measuring performance of the application on the remote mobile devices for each of the different combinations of server settings used during the simulated usage of the application on the remote mobile devices.

9. The method of claim 1 , wherein changing the one or more settings comprises changing at least one of a size of a data cache the mobile device, a working data amount for tasks of the application on the mobile device, an amount of memory allocated to the application or to a portion of the application on the mobile device, or a level of concurrency of tasks performed on the mobile device.

10. The method of claim 8 , wherein changing the server settings comprises changing at least one of a size of a cache for the server environment, a working data amount for tasks performed in the server environment, an amount of memory allocated for the server environment, an amount of processors allocated for the server environment, or a software version of software used in the server environment.

11. The method of claim 1 , further comprising determining, based on the performance measures for the different configurations, different limits on settings of the application that are needed for different configurations to achieve one or more performance criteria;

wherein determining the combination of settings or range of settings for the application for each of the different configurations of mobile devices comprises determining, for each particular mobile device configuration of multiple mobile device configurations, a device profile that specifies one or more limits for settings of the application when used on mobile devices having the particular mobile device configuration.

12. The method of claim 1 , further comprising determining, based on the measured performance, relative performance measures indicating relationships between performance characteristics of devices of different configurations; and determining performance estimates for devices of configurations that are not tested based on the relative performance measures.

13. The method of claim 1 , wherein the different configurations of the remote mobile devices comprise different hardware configurations; and wherein determining the combination of settings or range of settings for the application for each of the different configurations of mobile devices comprises determining a different profile for each of the different hardware configurations; the profiles indicating different sets of settings to be used for the different hardware configurations.

14. The method of cairn 1 , wherein the different configurations of the remote mobile devices comprise different operating systems or different operating system versions; and wherein determining the combination of settings or range of settings for the application for each of the different configurations of mobile devices comprises determining a different profile for each of the different operating systems or operating system versions, the profiles indicating different sets of settings to be used for the different operating systems or operating system versions.

15. The method of claim 1 , wherein changing the one or more settings comprises repeatedly changing a setting of the remote mobile devices and simulating usage of the application with the changed setting until reaching a value of the setting that results in an error, a failure; or a predetermined performance limit during simulated usage of the application.

16. A system comprising:

one or more computers; and

one or more computer-readable media storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

identifying a mobile device application to be tested;

accessing usage data indicating previous usage of the mobile device application by multiple users;

defining a workflow that includes a sequence of operations of the mobile device application, the sequence of operations being determined based on sequences of user inputs indicated by the usage data;

initiating installation of the application on each of a plurality of remote mobile devices, including mobile devices having different configurations;

for each of the remote mobile devices, testing performance of the application using different settings for the application, comprising:

simulating usage of the application with a first combination of application settings by providing input to the application running on the remote mobile devices that simulates user input causing the application to perform the sequence of operations for the workflow;

measuring performance of the remote mobile device while the first combination of application settings is used by the application;

changing one or more settings of the application on the remote mobile device such that a second combination of application settings is applied for the application; and

after changing the one or more settings of the application, simulating usage of the application with the second combination of application settings by instructing the remote mobile device to perform a series of operations using the application and measuring performance of the remote mobile device while the second combination of application settings is used by the application;

based on the performance measurements for the remote mobile devices, determining a combination of settings or range of settings for the application for each of the different configurations of mobile devices; and

generating a document that indicates the measured performance of the application across the different mobile device configurations and the determined combination of settings or range of settings for the application for the different configurations of mobile devices.

17. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processing devices, cause the one or more processing devices to perform operations comprising:

identifying a mobile device application to be tested;

accessing usage data indicating previous usage of the mobile device application by multiple users;

defining a workflow that includes a sequence of operations of the mobile device application, the sequence of operations being determined based on sequences of user inputs indicated by the usage data;

initiating installation of the application on each of a plurality of remote mobile devices, including mobile devices having different configurations;

for each of the remote mobile devices, testing performance of the application using different settings for the application, comprising:

simulating usage of the application with a first combination of application settings by providing input to the application running on the remote mobile devices that simulates user input causing the application to perform the sequence of operations for the workflow;

measuring performance of the remote mobile device while the first combination of application settings is used by the application;

changing one or more settings of the application on the remote mobile device such that a second combination of application settings is applied for the application; and

after changing the one or more settings of the application, simulating usage of the application with the second combination of application settings by instructing the remote mobile device to perform a series of operations using the application and measuring performance of the remote mobile device while the second combination of application settings is used by the application; and

based on the performance measurements for the remote mobile devices, determining a combination of settings or range of settings for the application for each of the different configurations of mobile devices; and

generating a document that indicates the measured performance of the application across the different mobile device configurations and the determined combination of settings or range of settings for the application for the different configurations of mobile devices.

Assignments (5)
CHANGE OF NAME Recorded Sep 19, 2025
From: MICROSTRATEGY INCORPORATED
To: STRATEGY INC
Reel/Frame 072974/0529 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SUPPLEMENTARY PATENT SECURITY AGREEMENT Recorded Feb 17, 2023
From: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
Reel/Frame 062794/0255 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2020
From: CARAMES, HERMINIO; SMITH, ANDREW; WU, BINBIN; MA, YING; PENG, JUN; HAGEN, DAVID
To: MICROSTRATEGY INCORPORATED
Reel/Frame 052237/0197 →
Continuity (2)
Provisional Application 62816301 · Mar 11, 2019
Related Publication 20200293436A1 · Sep 17, 2020