System and method for performing batch synchronization for a test sequence
First Claim
1. A method for executing multiple instances of a test sequence, the method comprising:
- creating a test sequence in response to user input, wherein the test sequence includes a batch synchronization section;
simultaneously executing a plurality of threads, wherein each thread executes an instance of the test sequence;
the batch synchronization section synchronizing the execution of the plurality of threads.
5 Assignments
0 Petitions
Accused Products
Abstract
A method for creating a computer program to be executed by a plurality of threads, in which the method utilizes a technique for execution synchronization referred to herein as a batch synchronization section. According to this technique, a plurality of threads may be associated with one another as a “batch” of threads. Each thread in the plurality (batch) of threads may execute the computer program simultaneously. The batch synchronization section may specify a portion of the computer program for which the execution of the portion by the plurality of threads is to be synchronized. In one embodiment different types of batch synchronization sections may be specified, wherein each type of batch synchronization section performs a different type of execution synchronization. In one embodiment the method may enable execution synchronization behavior for multiple concurrent executions of a test executive test sequence to be specified. The test sequence may include one or more batch synchronization sections. Multiple threads may each execute an instance of the test sequence to concurrently to test a group of units under test, and the batch synchronization sections may coordinate the execution of the multiple threads where necessary.
-
Citations
35 Claims
-
1. A method for executing multiple instances of a test sequence, the method comprising:
-
creating a test sequence in response to user input, wherein the test sequence includes a batch synchronization section;
simultaneously executing a plurality of threads, wherein each thread executes an instance of the test sequence;
the batch synchronization section synchronizing the execution of the plurality of threads. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
wherein the test sequence comprises a plurality of steps; wherein a subset of the steps are included in the batch synchronization section;
wherein said batch synchronization section synchronizing the execution of the plurality of threads comprises synchronizing the execution of the subset of steps by the plurality of threads.
-
-
3. The method of claim 1,
wherein each thread executes an instance of the test sequence to test a unit; wherein said simultaneously executing the plurality of threads comprises simultaneously testing a group of units.
-
4. The method of claim 3,
wherein said simultaneously executing the plurality of threads comprises beginning testing of the units together and ending testing of the units together. -
5. The method of claim 1, further comprising:
-
receiving user input indicating a desire to execute the test sequence to test a group of units;
wherein said simultaneously executing the plurality of threads is performed in response to the user input.
-
-
6. The method of claim 1,
wherein the batch synchronization section includes an enter step; -
wherein said simultaneously executing the plurality of threads comprises each thread executing its respective instance of the test sequence until arriving at the enter step;
wherein the batch synchronization section comprises functionality causing each thread to block at the enter step until all other threads in the plurality of threads arrive at the enter step.
-
-
7. The method of claim 6,
wherein the batch synchronization section includes an exit step and one or more additional steps; -
wherein the batch synchronization section comprises functionality for;
causing each thread to execute the one or more additional steps;
causing each thread to block at the exit step until all other threads in the plurality of threads arrive at the exit step.
-
-
8. The method of claim 7,
wherein said causing each thread to execute the one or more additional steps comprises causing each thread to execute the one or more additional steps in parallel. -
9. The method of claim 7,
wherein said causing each thread to execute the one or more additional steps comprises causing one thread at a time to execute the one or more additional steps. -
10. The method of claim 9,
wherein a priority order is assigned to each thread; wherein said causing one thread at a time to execute the one or more additional steps comprises causing the threads to execute the one or more additional steps in priority order.
-
11. The method of claim 6,
wherein the batch synchronization section includes one or more additional steps; -
wherein the batch synchronization section comprises functionality for;
causing exactly one thread to execute the one or more additional steps;
causing each of the other threads to skip the one or more additional steps.
-
-
12. The method of claim 1, further comprising:
-
receiving user input specifying a desired number of instances of the test sequence to be simultaneously executed;
wherein said simultaneously executing a plurality of threads comprises simultaneously executing the specified number of threads.
-
-
13. The method of claim 1, further comprising:
-
displaying a graphical user interface useable for specifying a batch synchronization section;
receiving user input specifying the batch synchronization section via the graphical user interface;
wherein said creating the test sequence comprises including the specified batch synchronization section in the test sequence.
-
-
14. The method of claim 1, wherein the batch synchronization section includes an enter step and an exit step, the method further comprising:
-
receiving user input specifying the enter step and the exit step via a graphical user interface;
wherein said creating the test sequence comprises including the enter step and the exit step in the test sequence.
-
-
15. A computer-implemented method for simultaneously testing a group of two or more units, the method comprising:
-
receiving user input indicating a desire to test the group of units;
simultaneously executing a plurality of threads to test the group of units in response to the user input;
wherein each thread executes an instance of a test sequence to test a corresponding unit from the group. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
wherein the threads execute such that each instance of the test sequence begins execution at the same time. -
17. The method of claim 16,
wherein the threads execute such that each instance of the test sequence ends execution at the same time. -
18. The method of claim 15,
wherein the test sequence includes a synchronized section for synchronizing execution of the plurality of threads. -
19. The method of claim 18,
wherein the synchronized section includes an enter step and an exit step; wherein said each thread executing an instance of the test sequence comprises each thread that arrives at the enter step blocking at the enter step until all other threads arrive at the enter step.
-
20. The method of claim 19,
wherein said each thread executing an instance of the test sequence further comprises each thread that arrives at the exit step blocking at the exit step until all other threads arrive at the exit step. -
21. The method of claim 15,
wherein the test sequence includes a one-thread-only synchronized section comprising one or more steps, wherein the one-thread-only synchronized section specifies that the one or more steps are to be executed by only a single thread; wherein said each thread executing an instance of the test sequence comprises only one thread executing the one or more steps of the one-thread-only synchronized section.
-
22. The method of claim 15,
wherein the test sequence includes a one-thread-only synchronized section; -
wherein the one-thread-only synchronized section includes;
an enter step;
an exit step;
one or more additional steps;
wherein said each thread executing an instance of the test sequence comprises;
each thread executing steps of the test sequence until the thread reaches the enter step;
a single thread executing the one or more additional steps;
threads other than the single thread skipping from the enter step to the exit step.
-
-
23. The method of claim 15,
wherein the test sequence includes a serial synchronized section comprising one or more steps, wherein the serial synchronized section specifies that the one or more steps are to be executed by each thread sequentially; wherein said each thread executing an instance of the test sequence comprises each thread executing the one or more steps of the serial synchronized section sequentially.
-
24. The method of claim 15,
wherein the test sequence includes a serial synchronized section; -
wherein the serial synchronized section includes;
an enter step;
an exit step;
one or more additional steps;
wherein said each thread executing an instance of the test sequence comprises;
each thread executing steps of the test sequence until the thread reaches the enter step;
each thread executing the one or more additional steps until the thread reaches the exit step, wherein only one thread at a time executes the one or more additional steps.
-
-
25. The method of claim 15,
wherein the test sequence includes a parallel synchronized section comprising one or more steps, wherein the parallel synchronized section specifies that the one or more steps are to be executed by each thread in parallel; wherein said each thread executing an instance of the test sequence comprises each thread executing the one or more steps of the parallel synchronized section in parallel.
-
26. The method of claim 15,
wherein the test sequence includes a parallel synchronized section; -
wherein the parallel synchronized section includes;
an enter step;
an exit step;
one or more additional steps;
wherein said each thread executing an instance of the test sequence comprises;
each thread executing steps of the test sequence until the thread reaches the enter step;
each thread executing the one or more additional steps in parallel;
each thread that reaches the exit step blocking until all other threads reach the exit step.
-
-
27. The method of claim 15, further comprising:
-
receiving user input indicating a number of units in the group;
wherein the number of threads in the plurality of threads is equal to the number of units in the group.
-
-
28. The method of claim 15, further comprising:
associating a priority order with each thread in the plurality of threads.
-
-
29. A method for executing multiple instances of a test sequence, the method comprising:
-
including a plurality of steps in a test sequence;
defining an enter point and an exit point in the test sequence, wherein the enter point and the exit point surround a subset of the plurality of steps;
simultaneously executing a plurality of threads, wherein each thread executes an instance of the test sequence;
wherein said executing the plurality of threads comprises;
each thread blocking at the enter point until all other threads have arrived at the enter point;
one or more threads executing the subset of the plurality of steps;
each thread blocking at the exit point until all other threads have arrived at the exit point. - View Dependent Claims (30)
wherein said defining the enter point and the exit point in the test sequence comprises including an enter step and an exit step in the test sequence, wherein the enter step and the exit step surround the subset of the plurality of steps.
-
-
31. A memory medium for executing multiple instances of a test sequence, the memory medium comprising program instructions executable to:
-
include a plurality of steps in a test sequence;
define an enter point and an exit point in the test sequence, wherein the enter point and the exit point surround a subset of the plurality of steps;
simultaneously execute a plurality of threads, wherein each thread executes an instance of the test sequence;
wherein said executing the plurality of threads comprises;
each thread executing steps of the test sequence until arriving at the enter point and then blocking at the enter point until all other threads have arrived at the enter point;
one or more threads executing the subset of the plurality of steps;
each thread that arrives at the exit point blocking at the exit point until all other threads have arrived at the exit point.
-
-
32. A system for testing multiple units, the system comprising:
-
a computer system including;
a processor;
a memory storing program instructions;
a plurality of units under test coupled to the computer system;
wherein the processor is operable to execute the program instructions to;
receive user input indicating a desire to test the group of units;
simultaneously execute a plurality of threads to test the plurality of units in response to the user input;
wherein each thread executes an instance of a test sequence to test a corresponding unit from the plurality of units.
-
-
33. A method for executing multiple instances of a test sequence, the method comprising:
-
creating a test sequence in response to user input, wherein a portion of the test sequence is specified for synchronous execution;
simultaneously executing a plurality of threads, wherein each thread executes an instance of the test sequence;
wherein said executing the plurality of threads comprises;
synchronizing execution of respective instances of the portion of the test sequence specified for synchronous execution. - View Dependent Claims (34, 35)
-
Specification