Testing multi-threaded applications
First Claim
Patent Images
1. A method for testing a multi-threaded application comprising:
- running, with a computational processor, an initial test of the multi-threaded application and collecting thread generation data comprising identification of a parent thread for each of a plurality of child threads of the multi-threaded application;
generating, by the computational processor, a hierarchal tree comprising parent-child relationships determined from the identification of the parent thread for each child thread;
collecting thread information relating to each thread in the multi-threaded application, including a number of threads created in the multi-threaded application and function call information relating to each thread;
determining, with the computational processor, a thread hierarchy based on the hierarchal tree, wherein determining the thread hierarchy includes associating each thread with a unique identifier comprising an identifier of a parent thread and an identifier of a child thread'"'"'s order of creation by its parent thread for a child thread of the parent thread;
utilizing the thread information relating to each thread and the thread hierarchy to determine an error in execution of the multi-threaded application;
modifying, using the determined error and a predefined thread profile, a thread execution priority of at least one thread of the multi-threaded application to produce a modified configuration of the multi-threaded application based on the thread hierarchy; and
running, with the computational processor, a second test with the modified configuration of the multi-threaded application.
8 Assignments
0 Petitions
Accused Products
Abstract
In one example, a method for testing a multi-threaded application includes running an initial test of the multi-threaded application and collecting thread generation data and determining the thread hierarchy. The thread execution is then modified to produce a modified configuration and a second test is run with the modified configuration. A device for testing of multi-threaded applications is also provided.
-
Citations
18 Claims
-
1. A method for testing a multi-threaded application comprising:
-
running, with a computational processor, an initial test of the multi-threaded application and collecting thread generation data comprising identification of a parent thread for each of a plurality of child threads of the multi-threaded application; generating, by the computational processor, a hierarchal tree comprising parent-child relationships determined from the identification of the parent thread for each child thread; collecting thread information relating to each thread in the multi-threaded application, including a number of threads created in the multi-threaded application and function call information relating to each thread; determining, with the computational processor, a thread hierarchy based on the hierarchal tree, wherein determining the thread hierarchy includes associating each thread with a unique identifier comprising an identifier of a parent thread and an identifier of a child thread'"'"'s order of creation by its parent thread for a child thread of the parent thread; utilizing the thread information relating to each thread and the thread hierarchy to determine an error in execution of the multi-threaded application; modifying, using the determined error and a predefined thread profile, a thread execution priority of at least one thread of the multi-threaded application to produce a modified configuration of the multi-threaded application based on the thread hierarchy; and running, with the computational processor, a second test with the modified configuration of the multi-threaded application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computing device comprising:
-
a memory storing module instructions and a multi-threaded application; and a processor to execute the module instructions to form modules, wherein the modules comprise; a thread detecting module to run an initial test comprising running the multi-threaded application and collecting thread generation data comprising identification of a parent thread for each of a plurality of child threads of the multithreaded application and thread information relating to each thread in the multi-threaded application, including a number of threads created in the multi-threaded application and function call information relating to each thread; a thread hierarchy module to create a thread hierarchal tree comprising parent child relationships determined from the identification of the parent thread for each child thread, wherein to create the thread hierarchal tree, the thread hierarchy module associates each thread with a unique identifier comprising an identifier of a parent thread and an identifier of a child thread'"'"'s order of creation by its parent thread for a child thread of the parent thread; a thread execution modify module to determine, utilizing the thread information relating to each thread and a thread hierarchy based on the thread hierarchal tree, an error in execution of the multi-threaded application and to modify, using the determined error and a predefined thread profile, priority of at least one thread of the multi-threaded application to produce a modified configuration of the multi-threaded application based on the thread hierarchal tree; and a test application module to run a second test with the modified configuration. - View Dependent Claims (15, 16, 17)
-
-
18. A computer program product for testing multi-threaded applications the computer program product comprising:
-
a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising; computer readable program code to run an initial test of a multi-threaded application and collect thread generation data including identification of a parent thread for each child thread; computer readable program code to determine a thread hierarchy by creating a hierarchal tree showing parent-child relationships between threads and associating each thread with a unique identifier comprising an identifier of a parent thread and an identifier of a child thread'"'"'s order of creation by its parent thread for a child thread of the parent thread; computer readable program code to collect thread information relating to each thread in the multi-threaded application, including a number of threads created in the multi-threaded application and function call information relating to each thread; computer readable code to utilize the thread information relating to each thread and the thread hierarchy to determine an error in execution of the multi-threaded application; computer readable program code to modify, using the determined error and a predefined thread profile, a thread execution priority of at least one thread with a variable execution time to produce a modified configuration of the multi-threaded application; and computer readable program code to run a second test with the modified configuration of the multi-threaded application and monitor the second test for errors.
-
Specification