AUTOMATED PARALLEL SOFTWARE CODE IMPACT ANALYSIS
First Claim
1. A method comprising:
- receiving, by a server device, a request to perform a parallel impact analysis on a changed line of code, of a plurality of lines of code, associated with a software application;
generating, by the server device and in response to the request, a control flow graph that corresponds to a function associated with one or more of the plurality of lines of code, the one or more of the plurality of lines of code including the changed line of code,where the control flow graph includes one or more blocks that correspond to the one or more of the plurality of lines of code, the one or more blocks including an epicenter block associated with the changed line of code;
traversing, by the server device, the one or more blocks to determine whether any of the one or more blocks are affected by a set of variables within the epicenter block;
identifying, by the server device and based on the traversing, at least one impacted block, of the one or more blocks, that is affected by the set of variables and one or more statements, associated with the at least one impacted block, that call one or more other functions;
generating, by the server device, other control flow graphs for the one or more functions, where each of the other control flow graphs include a different one or more blocks that correspond to a respective, different one or more of the plurality of lines of code;
traversing, by the server device, the different one or more blocks associated with each of the other control flow graphs to identify at least one other impacted block that is affected by the set of variables; and
presenting, by the server device and to a display device, identifiers associated with the at least one impacted block and the at least one other impacted block for display, where the identifiers permit the software application to be tested based on the at least one impacted block and the at least one other impacted block.
1 Assignment
0 Petitions
Accused Products
Abstract
A server device is configured to receive a request to identify a manner in which changed code propagates within an application; generate a group of blocks that correspond to code associated with a parent function corresponding to the application and which includes the changed code; perform an intra-procedural analysis on the group of blocks to identify a block that is affected by the changed code included within an epicenter block; perform an inter-procedural analysis on functions associated with the block, where, when performing the inter-procedural analysis, the server device is to generate another group of blocks associated with the functions, and identify another block that is affected by the changed code included within the epicenter block; and present, for display, information associated with the block or the other block that enables the application to be tested based on the block or the other block.
-
Citations
23 Claims
-
1. A method comprising:
-
receiving, by a server device, a request to perform a parallel impact analysis on a changed line of code, of a plurality of lines of code, associated with a software application; generating, by the server device and in response to the request, a control flow graph that corresponds to a function associated with one or more of the plurality of lines of code, the one or more of the plurality of lines of code including the changed line of code, where the control flow graph includes one or more blocks that correspond to the one or more of the plurality of lines of code, the one or more blocks including an epicenter block associated with the changed line of code; traversing, by the server device, the one or more blocks to determine whether any of the one or more blocks are affected by a set of variables within the epicenter block; identifying, by the server device and based on the traversing, at least one impacted block, of the one or more blocks, that is affected by the set of variables and one or more statements, associated with the at least one impacted block, that call one or more other functions; generating, by the server device, other control flow graphs for the one or more functions, where each of the other control flow graphs include a different one or more blocks that correspond to a respective, different one or more of the plurality of lines of code; traversing, by the server device, the different one or more blocks associated with each of the other control flow graphs to identify at least one other impacted block that is affected by the set of variables; and presenting, by the server device and to a display device, identifiers associated with the at least one impacted block and the at least one other impacted block for display, where the identifiers permit the software application to be tested based on the at least one impacted block and the at least one other impacted block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A server device comprising:
a processor to; receive a request to identify a manner in which a changed line of code affects a plurality of lines of code associated with a software application, generate one or more blocks that correspond to one or more of the plurality of lines of code associated with a parent function, where the parent function is associated with an act or operation performed by the software application and which includes the changed line of code, perform, in response to the request, an intra-procedural analysis on the one or more blocks to identify at least one block, of the one or more blocks, that is affected by the changed line of code included within an epicenter block, of the one or more blocks, perform an inter-procedural analysis on one or more functions associated with the at least one block, where, when performing the inter-procedural analysis the processor is to; generate another one or more blocks associated with each of the one or more functions, and identify at least one other block, of the other one or more blocks, that is affected by the changed line of code included within the epicenter block, and present, for display on a display device, information associated with the at least one block or the at least one other block that enables the software application to be tested based on the at least one block or the at least one other block. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
19. A non-transitory computer-readable medium comprising:
-
receiving a request to perform an impact analysis on a changed line of code, of a plurality of lines of code, associated with a software application; associating, in response to the request, a parent function with one or more lines of code, of the plurality of lines of code, that include the changed line of code; generating a control flow graph associated with the parent function, where the control flow graph includes one or more blocks that correspond to the one or more lines of code and an epicenter block that corresponds to the changed line of code, where the epicenter block includes one or more variables that are defined within the epicenter block; identifying one of the one or more blocks, as an impacted block, when the one of the one or more block uses any of the one or more variables; generating a call graph that identifies one or more child functions associated with the impacted block based on statements, within the impacted block, that logically interconnect the one or more child functions with the impacted block; identifying at least one other impacted block, of the blocks associated with the one or more child functions, based on a determination that the at least one other impacted block uses any of the one or more variables; and presenting, for display, a notification that software testing is to be conducted on lines of code associated with the impacted block and the at least one other impacted block. - View Dependent Claims (20, 21, 22, 23)
-
Specification