IP Library Granted Patent US 10,545,857
Granted Patent B2
US 10,545,857 · App. 15/686,005 · Granted Jan 28, 2020

Controlling executions of synchronous and/or non-synchronous operations with asynchronous messages

Inventors: Christopher Tammariello (San Mateo, CA); Ashish Patel (Fremont, CA); Tuhin Kanti Sharma (San Mateo, CA); Michael Bartoli (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F11/3688G06F11/3684
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 10,545,857
App. No.
15/686,005
Granted
Jan 28, 2020
Kind
B2
Abstract

Based on a test step execution order for a test case such as one against a database system, a specific test step to be executed next is identified. In response to identifying the specific test step, a test step message is published to indicate that the specific test step is to be executed next, which causes a subscriber of the test step message to execute the specific test step. In response to determining that the specific test step has ended, a dependent test step message is published accordingly to cause a subscriber of the dependent test step message to perform: determining whether a next test step should be executed following the specific test step in the test step execution order; in response to determining that a next test step should be executed, the foregoing may be repeated by using the next test step in place of the specific test step.

Claims (53)

1. A method, comprising:

based at least in part on a test step execution order in a set of test steps for a test case, identifying a specific test step to be executed next;

in response to identifying the specific test step to be executed next, performing:

(a) publishing a test step message to indicate that the specific test step is to be executed next, the test step message as published causing a subscriber of the test step message to receive the test step message and execute the specific test step in response to receiving the test step message; and

(b) in response to determining, by the subscriber of the test step message, that the specific test step has ended, publishing, by the subscriber of the test step message, a dependent test step message to indicate that the specific test step has ended, the dependent test step message as published causing a second different subscriber of the dependent test step message to receive the dependent test step message and perform in response to receiving the dependent test step message:

determining whether a next test step should be executed following the specific test step in the test step execution order; and

in response to determining that a next test step should be executed following the specific test step in the test step execution order, causing repeating steps (a) and (b) by using the next test step in place of the specific test step.

2. The method as recited in claim 1 , further comprising: in response to determining that a next test step should not be executed following the specific test step in the test step execution order, publishing a test case completion message for the test case, wherein the test case completion message causes a subscriber of the test case completion message to determine a final test execution status for the test case.

3. The method as recited in claim 1 , wherein determining whether a next test step is to be executed following the specific test step in the test step execution order comprises:

determining whether the specific test step has completed successfully;

in response to determining that the specific test step has completed successfully, determining whether the specific test step is the last test step in the test step execution order;

in response to determining that the specific test step is not the last test step in the test step execution order, identifying the next test step in the test step execution order.

4. The method as recited in claim 3 , further comprising: in response to determining that the specific test step has not completed successfully, publishing a test case completion message for the test case, wherein the test case completion message causes a subscriber of the test case completion message to determine a final test execution status for the test case.

5. The method as recited in claim 3 , further comprising: in response to determining that the specific test step is the last test step in the test step execution order, publishing a test case completion message for the test case, wherein the test case completion message causes a subscriber of the test case completion message to determine a final test execution status for the test case.

6. The method as recited in claim 1 , wherein the test step message is published and subscribed as a message of a test step topic on a messaging bus; wherein the dependent test step message is published and subscribed as a message of a dependent test step topic on the messaging bus; and wherein the messaging bus further comprises a test case message published and subscribed as a message of a test case topic and a test case completion message published and subscribed as a message of a test case completion topic.

7. The method as recited in claim 1 , wherein the test step message is published by one of a test case subscriber or a subscriber of the dependent test step subscriber, and wherein the dependent test step message is published by the subscriber of the dependent test step subscriber.

8. The method as recited in claim 1 , wherein the specific test step represents an initial test step in the test step execution order, wherein the test step message is published by a test case subscriber in response to receiving a test case message published by a test case scheduler, and wherein the test step execution order represents one of: a sequential test step execution, a parallel test step execution, or a combination of the sequential test step execution and the parallel test step execution.

9. One or more non-transitory computer readable media storing a program of instructions that is executable by a device to perform:

based at least in part on a test step execution order in a set of test steps for a test case, identifying a specific test step to be executed next;

in response to identifying the specific test step to be executed next, performing:

(a) publishing a test step message to indicate that the specific test step is to be executed next, the test step message as published causing a subscriber of the test step message to receive the test step message and execute the specific test step in response to receiving the test step message; and

(b) in response to determining, by the subscriber of the test step message, that the specific test step has ended, publishing, by the subscriber of the test step message, a dependent test step message to indicate that the specific test step has ended, the dependent test step message as published causing a second different subscriber of the dependent test step message to receive the dependent test step message and perform in response to receiving the dependent test step message:

determining whether a next test step should be executed following the specific test step in the test step execution order; and

in response to determining that a next test step should be executed following the specific test step in the test step execution order, causing repeating steps (a) and (b) by using the next test step in place of the specific test step.

10. The media as recited in claim 9 , wherein the program of instructions is executable by the device to further perform: in response to determining that a next test step should not be executed following the specific test step in the test step execution order, publishing a test case completion message for the test case, wherein the test case completion message causes a subscriber of the test case completion message to determine a final test execution status for the test case.

11. The media as recited in claim 9 , wherein the program of instructions is executable by the device to further perform:

determining whether the specific test step has completed successfully;

in response to determining that the specific test step has completed successfully, determining whether the specific test step is the last test step in the test step execution order;

in response to determining that the specific test step is not the last test step in the test step execution order, identifying the next test step in the test step execution order.

12. The media as recited in claim 11 , wherein the program of instructions is executable by the device to further perform: in response to determining that the specific test step has not completed successfully, publishing a test case completion message for the test case, wherein the test case completion message causes a subscriber of the test case completion message to determine a final test execution status for the test case.

13. The media as recited in claim 11 , wherein the program of instructions is executable by the device to further perform: in response to determining that the specific test step is the last test step in the test step execution order, publishing a test case completion message for the test case, wherein the test case completion message causes a subscriber of the test case completion message to determine a final test execution status for the test case.

14. The media as recited in claim 9 , wherein the test step message is published and subscribed as a message of a test step topic on a messaging bus, wherein the dependent test step message is published and subscribed as a message of a dependent test step topic on the messaging bus and wherein the messaging bus further comprises a test case message published and subscribed as a message of a test case topic and a test case completion message published and subscribed as a message of a test case completion topic.

15. The media as recited in claim 9 , wherein the test step message is published by one of a test case subscriber or a subscriber of the dependent test step subscriber, and wherein the dependent test step message is published by the subscriber of the dependent test step subscriber.

16. The media as recited in claim 9 , wherein the specific test step represents an initial test step in the test step execution order, wherein the test step message is published by a test case subscriber in response to receiving a test case message published by a test case scheduler, wherein the test step execution order represents one of: a sequential test step execution, a parallel test step execution, or a combination of the sequential test step execution and the parallel test step execution.

17. A system, comprising:

one or more computing processors;

one or more non-transitory computer readable media storing a program of instructions that is executable by the one or more computing processors to perform:

based at least in part on a test step execution order in a set of test steps for a test case, identifying a specific test step to be executed next;

in response to identifying the specific test step to be executed next, performing:

(a) publishing a test step message to indicate that the specific test step is to be executed next, the test step message as published causing a subscriber of the test step message to receive the test step message and execute the specific test step in response to receiving the test step message; and

(b) in response to determining, by the subscriber of the test step message, that the specific test step has ended, publishing, by the subscriber of the test step message, a dependent test step message to indicate that the specific test step has ended, the dependent test step message as published causing a second different subscriber of the dependent test step message to receive the dependent test step message and perform in response to receiving the dependent test step message:

determining whether a next test step should be executed following the specific test step in the test step execution order; and

in response to determining that a next test step should be executed following the specific test step in the test step execution order, causing repeating steps (a) and (b) by using the next test step in place of the specific test step.

18. The system as recited in claim 17 , wherein the program of instructions is executable by the device to further perform: in response to determining that a next test step should not be executed following the specific test step in the test step execution order, publishing a test case completion message for the test case, wherein the test case completion message causes a subscriber of the test case completion message to determine a final test execution status for the test case.

19. The system as recited in claim 17 , wherein the program of instructions is executable by the device to further perform:

determining whether the specific test step has completed successfully;

in response to determining that the specific test step has completed successfully, determining whether the specific test step is the last test step in the test step execution order;

in response to determining that the specific test step is not the last test step in the test step execution order, identifying the next test step in the test step execution order.

20. The system as recited in claim 19 , wherein the program of instructions is executable by the device to further perform: in response to determining that the specific test step has not completed successfully, publishing a test case completion message for the test case, wherein the test case completion message causes a subscriber of the test case completion message to determine a final test execution status for the test case.

21. The system as recited in claim 19 , wherein the program of instructions is executable by the device to further perform: in response to determining that the specific test step is the last test step in the test step execution order, publishing a test case completion message for the test case, wherein the test case completion message causes a subscriber of the test case completion message to determine a final test execution status for the test case.

22. The system as recited in claim 17 , wherein the test step message is published and subscribed as a message of a test step topic on a messaging bus, wherein the dependent test step message is published and subscribed as a message of a dependent test step topic on the messaging bus and wherein the messaging bus further comprises a test case message published and subscribed as a message of a test case topic and a test case completion message published and subscribed as a message of a test case completion topic.

23. The system as recited in claim 17 , wherein the test step message is published by one of a test case subscriber or a subscriber of the dependent test step subscriber, and wherein the dependent test step message is published by the subscriber of the dependent test step subscriber.

24. The system as recited in claim 17 , wherein the specific test step represents an initial test step in the test step execution order, wherein the test step message is published by a test case subscriber in response to receiving a test case message published by a test case scheduler, and wherein the test step execution order represents one of: a sequential test step execution, a parallel test step execution, or a combination of the sequential test step execution and the parallel test step execution.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0203 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2017
From: TAMMARIELLO, CHRISTOPHER; PATEL, ASHISH; SHARMA, TUHIN KANTI; BARTOLI, MICHAEL
To: SALESFORCE.COM, INC.
Reel/Frame 043404/0410 →
Continuity (1)
Related Publication 20190065353A1 · Feb 28, 2019
Cited By (1)
US 12,436,874