| CPC G06F 11/3688 (2013.01) [G06F 8/71 (2013.01); G06F 11/3684 (2013.01)] | 27 Claims |

|
1. A system for interacting within an application, the system comprising a processor and a memory storing:
a datastore module, operating on a server, wherein the datastore module is configured to:
store one or more applications, wherein each of the one or more applications comprises one or more application versions, and wherein each of the one or more application versions comprises one or more test sessions, wherein each of the one or more test sessions comprise a list of one or more user actions and wherein each of the one or more user actions is paired with an offset timestamp;
a queue module, wherein the queue module is configured to:
retrieve, from the datastore module, a first test session;
generate an event queue based on the first test session, wherein the event queue comprises a chronologically ordered list of replay events, wherein the event queue further comprises a head event corresponding to the replay event that is next in line to be replayed; and
associate each replay event with a replay timestamp, wherein the replay timestamp is based on the offset timestamp of the corresponding user action, and wherein the head event is initialized to 0 milliseconds (ms);
a replay module configured to interact with the application through executing, by the application, the event queue corresponding to the first test session and wherein the replay module is further configured to:
initialize a simulated timestamp to 0 ms, wherein the simulated timestamp replaces a real-world timestamp associated with execution of replay events and wherein execution of replay events that execute date or time functions result in the simulated timestamp being returned;
identify a next replay event to execute based on the simulated timestamp and the replay timestamps associated with the replay events in the event queue, wherein the replay event associated with the replay timestamp nearest the simulated timestamp is the next replay event;
update the simulated timestamp to the replay timestamp associated with the next replay event in the queue;
pop the next replay event off the event queue;
execute the popped replay event, wherein if the executing spawns one or more new replay events, the new replay events are inserted into the event queue at positions corresponding to replay timestamps of the new replay events; and
repeat the popping of the next replay event off of the event queue and executing of the popped next replay event until the event queue is empty.
|