IP Library Granted Patent US 8,689,052
Granted Patent B2
US 8,689,052 · App. 13/566,026 · Granted Apr 1, 2014

Performing asynchronous testing of an application occasionally connected to an online services system

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 8,689,052
App. No.
13/566,026
Granted
Apr 1, 2014
Kind
B2
Abstract

In a method, system, and computer-readable medium having instructions for performing asynchronous testing of an application that is occasionally connected to an online services system, metadata describing at least a portion of an online services database is retrieved and the at least a portion of the online services database is authorized for replication at a software application, information is determined for an entity for an application database from the metadata, a request is sent for a database using the software application interface and the request has an asynchronous operation call to the database for the entity, an execution of the asynchronous operation call is recorded within a callback function, a response is received for the asynchronous operation call, and a result is determined for the software application performance.

Claims (123)

1. A method for performing asynchronous operations, the method comprising:

retrieving metadata describing at least a portion of an online services database, wherein the at least a portion of the online services database is authorized for replication at a software application;

determining information for an entity for an application database from the metadata;

sending a request for a database using the software application interface, wherein the request comprises an asynchronous operation call to the database for the entity;

recording an execution of the asynchronous operation call within a callback function;

receiving a response for the asynchronous operation call; and

determining a result for the software application performance,

introducing a delay with at least one of a use of responder chaining to synchronously order operations and a continuation of execution after receiving an event by an event listener, wherein the delay is an amount of time to wait for execution of the asynchronous operation call that may be experienced when a user is interacting with a user interface of the software application.

2. The method of claim 1 , further comprising:

performing the responder chaining with a wrapped callback function;

recording an execution latency experienced with the asynchronous operation call using the wrapped callback function, wherein recording the execution latency comprises recording a time that the asynchronous operation call is sent and a time for receipt of the response to the asynchronous operation call; and

determining whether an error with the software application occurred before the time for receipt of the response to the asynchronous operation call.

3. The method of claim 1 , further comprising:

detecting a connection to an online services system; and

retrieving metadata from the online services database, wherein the request for the database comprises a request for the online services database.

4. The method of claim 1 , wherein the result for the software application comprises performance of the software application in handling conflict resolution.

5. The method of claim 1 , wherein the result for the software application comprises performance of the software application in at least one of replication of the entity from the online services database and synchronization of data for the entity between the application database and the online services database.

6. A method for performing asynchronous operations, the method comprising:

retrieving metadata describing at least a portion of an online services database, wherein the at least a portion of the online services database is authorized for replication at a software application;

determining information for an entity for an application database from the metadata;

sending a request for a database using the software application interface, wherein the request comprises an asynchronous operation call to the database for the entity;

recording an execution of the asynchronous operation call within a callback function;

receiving a response for the asynchronous operation call; and

determining a result for the software application performance,

further comprising:

performing responder chaining with a wrapped callback function;

tracking a number references for objects created during a test with the wrapped callback function; and

checking garbage collection of the software application with the number of references.

7. The method of claim 6 , further comprising:

detecting no connection to an online services system;

determining a delay that is an estimated amount of time to wait for execution of the asynchronous operation call that may be experienced by the software application during normal execution of the software application; introducing the delay with a timed wait; and

sending the request for the application database after the timed wait.

8. A computer-readable storage medium having one or more instructions thereon for performing asynchronous operations on an application that is occasionally connected to an online services system, the instructions when executed by one or more processors causing the one or more processors to carry out:

retrieving metadata describing at least a portion of an online services database, wherein the at least a portion of the online services database is authorized for replication at a software application;

determining information for an entity for an application database from the metadata;

sending a request for a database using the software application interface, wherein the request comprises an asynchronous operation call to the database for the entity;

recording an execution of the asynchronous operation call within a callback function;

receiving a response for the asynchronous operation call; and

determining a result for the software application performance,

the instructions further comprising:

introducing a delay with at least one of a use of responder chaining to synchronously order operations and a continuation of execution after receiving an event by an event listener, wherein the delay is an amount of time to wait for execution of the asynchronous operation call that may be experienced when a user is interacting with a user interface of the software application.

9. A computer-readable storage medium having one or more instructions thereon for performing asynchronous operations on an application that is occasionally connected to an online services system, the instructions when executed by one or more processors causing the one or more processors to carry out:

retrieving metadata describing at least a portion of an online services database, wherein the at least a portion of the online services database is authorized for replication at a software application;

determining information for an entity for an application database from the metadata;

sending a request for a database using the software application interface, wherein the request comprises an asynchronous operation call to the database for the entity;

recording an execution of the asynchronous operation call within a callback function;

receiving a response for the asynchronous operation call; and

determining a result for the software application performance,

the instructions further comprising:

performing responder chaining with a wrapped callback function;

tracking a number references for objects created during a test with the wrapped callback function; and

checking garbage collection of the software application with the number of references.

10. A computer-readable storage medium having one or more instructions thereon for performing asynchronous operations on an application that is occasionally connected to an online services system, the instructions when executed by one or more processors causing the one or more processors to carry out:

retrieving metadata describing at least a portion of an online services database, wherein the at least a portion of the online services database is authorized for replication at a software application;

determining information for an entity for an application database from the metadata;

sending a request for a database using the software application interface, wherein the request comprises an asynchronous operation call to the database for the entity;

recording an execution of the asynchronous operation call within a callback function;

receiving a response for the asynchronous operation call; and

determining a result for the software application performance,

wherein the result for the software application comprises performance of the software application in handling conflict resolution.

11. The computer-readable storage medium of claim 10 , the instructions further comprising:

performing responder chaining with a wrapped callback function;

recording an execution latency experienced with the asynchronous operation call using the wrapped callback function, wherein recording the execution latency comprises recording a time that the asynchronous operation call is sent and a time for receipt of the response to the asynchronous operation call; and

determining whether an error with the software application occurred before the time for receipt of the response to the asynchronous operation call.

12. The computer-readable storage medium of claim 10 , the instructions further comprising:

detecting no connection to an online services system;

determining a delay that is an estimated amount of time to wait for execution of the asynchronous operation call that may be experienced by the software application during normal execution of the software application;

introducing the delay with a timed wait; and

sending the request for the application database after the timed wait.

13. The computer-readable storage medium of claim 10 , the instructions further comprising:

detecting a connection to an online services system; and

retrieving metadata from the online services database, wherein the request for the database comprises a request for the online services database.

14. A system for performing asynchronous operations associated with an application that is occasionally connected to an online services system, the system comprising:

a processor; and

one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out:

retrieving metadata describing at least a portion of an online services database, wherein the at least a portion of the online services database is authorized for replication at a software application;

determining information for an entity for an application database from the metadata;

sending a request for a database using the software application interface, wherein the request comprises an asynchronous operation call to the database for the entity;

recording an execution of the asynchronous operation call within a callback function;

receiving a response for the asynchronous operation call; and

determining a result for the software application performance,

wherein the one or more stored sequences of instructions which, when executed by the processor, cause the processor to further carry out:

performing responder chaining with a wrapped callback function;

recording an execution latency experienced with the asynchronous operation call using the wrapped callback function, wherein recording the execution latency comprises recording a time that the asynchronous operation call is sent and a time for receipt of the response to the asynchronous operation call; and

determining whether an error with the software application occurred before the time for receipt of the response to the asynchronous operation call.

15. A system for performing asynchronous operations associated with an application that is occasionally connected to an online services system, the system comprising:

a processor; and

one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out:

retrieving metadata describing at least a portion of an online services database, wherein the at least a portion of the online services database is authorized for replication at a software application;

determining information for an entity for an application database from the metadata;

sending a request for a database using the software application interface, wherein the request comprises an asynchronous operation call to the database for the entity;

recording an execution of the asynchronous operation call within a callback function;

receiving a response for the asynchronous operation call; and

determining a result for the software application performance,

wherein the one or more stored sequences of instructions which, when executed by the processor, cause the processor to further carry out:

detecting no connection to an online services system;

determining a delay that is an estimated amount of time to wait for execution of the asynchronous operation call that may be experienced by the software application during normal execution of the software application;

introducing the delay with a timed wait; and

sending the request for the application database after the timed wait.

16. A system for performing asynchronous operations associated with an application that is occasionally connected to an online services system, the system comprising:

a processor; and

one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out:

retrieving metadata describing at least a portion of an online services database, wherein the at least a portion of the online services database is authorized for replication at a software application;

determining information for an entity for an application database from the metadata;

sending a request for a database using the software application interface, wherein the request comprises an asynchronous operation call to the database for the entity;

recording an execution of the asynchronous operation call within a callback function;

receiving a response for the asynchronous operation call; and

determining a result for the software application performance,

wherein the one or more stored sequences of instructions which, when executed by the processor, cause the processor to further carry out:

introducing a delay with at least one of a use of responder chaining to synchronously order operations and a continuation of execution after receiving an event by an event listener, wherein the delay is an amount of time to wait for execution of the asynchronous operation call that may be experienced when a user is interacting with a user interface of the software application.

17. A system for performing asynchronous operations associated with an application that is occasionally connected to an online services system, the system comprising:

a processor; and

one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out:

retrieving metadata describing at least a portion of an online services database, wherein the at least a portion of the online services database is authorized for replication at a software application;

determining information for an entity for an application database from the metadata;

sending a request for a database using the software application interface, wherein the request comprises an asynchronous operation call to the database for the entity;

recording an execution of the asynchronous operation call within a callback function;

receiving a response for the asynchronous operation call; and

determining a result for the software application performance,

wherein the one or more stored sequences of instructions which, when executed by the processor, cause the processor to further carry out:

performing responder chaining with a wrapped callback function;

tracking a number references for objects created during a test with the wrapped callback function; and

checking garbage collection of the software application with the number of references.

Assignments (2)
CHANGE OF NAME Recorded Oct 25, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069268/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2012
From: PROPHETE, DIDIER; FISCHER, RONALD; MOVIDA, MARK; KESEL, ARTUR; HARDIKAR, AMOL; PATHAK, MADHAV; ROHDE, SONKE
To: SALESFORCE.COM, INC.
Reel/Frame 028722/0285 →