10733075

Data-Driven Synthesis of Fix Patterns

PublishedAugust 4, 2020
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
17 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A method comprising: identifying a first edit operation with respect to a first fault of a defective software program based on one or more differences between the defective software program and an improved software program that includes the first edit operation as a repair of the first fault; identifying a second edit operation with respect to a second fault of the defective software program based on the one or more differences between the defective software program and the improved software program, which includes the second edit operation as a repair of the second fault; obtaining a defect abstract syntax tree (AST) that represents the defective software program, the defect AST including a plurality of defect nodes that correspond to one or more fault locations of the defective software program, the plurality of defect nodes including a first edit node that is changed by the first edit operation and including a second edit node that is changed by the second edit operation; classifying a first particular node of the plurality of defect nodes as a first primary node that operates as a first starting point in implementing the first edit operation; classifying a second particular node of the plurality of defect nodes as a second primary node that operates as a second starting point in implementing the second edit operation; obtaining a visitor AST, wherein the visitor AST includes: each node in the defect AST; one or more first visitor edges that indicate a first programmatic relationship between the first edit node and the first primary node; and one or more second visitor edges that indicate a second programmatic relationship between the second edit node and the second primary node; identifying a first visitor path from the first primary node to the first edit node in the visitor AST that includes a first sequence of the one or more first visitor edges; identifying a second visitor path from the second primary node to the second edit node in the visitor AST that includes a second sequence of the one or more second visitor edges; generating one or more fix patterns based on the first visitor path, the second visitor path, the first edit operation, and the second edit operation, one or more fix patterns are generated in a format compatible with a source code of the defective software program; and performing repair operations with respect to an identified fault of code under test of an analyzed software program using the one or more fix patterns.

Plain English Translation

This invention describes a method for automatically generating and applying software repair patterns. It begins by analyzing a defective software program and its improved version to identify specific edit operations that fix faults (e.g., a first edit for a first fault, a second edit for a second fault). An Abstract Syntax Tree (AST) of the defective program is then created, containing defect nodes that mark fault locations and edit nodes where changes were made. Within this AST, primary nodes are identified as starting points for each edit operation. A specialized visitor AST is constructed, incorporating the defect AST nodes and adding visitor edges that show the programmatic relationships between each primary node and its corresponding edit node. Visitor paths (sequences of these edges) are traced from each primary node to its respective edit node. Finally, one or more fix patterns are generated based on these identified paths and edit operations, formatted for compatibility with source code. These generated fix patterns are then used to perform automatic repair operations on new, analyzed software code with similar identified faults.

Claim 2

Original Legal Text

2. The method of claim 1 , wherein the plurality of defect nodes includes a third edit node that is changed by the first edit operation, and the method further comprises, identifying a third visitor path from the first primary node to the third edit node, wherein the one or more fix patterns are further based on the third visitor path.

Plain English Translation

This invention describes a method for automatically generating and applying software repair patterns. It begins by analyzing a defective software program and its improved version to identify specific edit operations that fix faults (e.g., a first edit for a first fault, a second edit for a second fault). An Abstract Syntax Tree (AST) of the defective program is then created, containing defect nodes that mark fault locations and including a first edit node, a second edit node, and notably, a third edit node that is also changed by the first edit operation. Within this AST, primary nodes are identified as starting points for each edit operation, such as a first primary node for the first edit. A specialized visitor AST is constructed, incorporating the defect AST nodes and adding visitor edges that show programmatic relationships between primary nodes and their corresponding edit nodes. Visitor paths are traced: a first visitor path from the first primary node to the first edit node, a second visitor path from the second primary node to the second edit node, and a third visitor path from the first primary node to the third edit node. Finally, fix patterns are generated based on these three identified paths and the edit operations, formatted for compatibility with source code. These generated fix patterns are then used to perform automatic repair operations on new software code with similar identified faults.

Claim 3

Original Legal Text

3. The method of claim 2 , further comprising identifying the first visitor path and the third visitor path as being common visitor paths with respect to each other based on the first visitor path and the third visitor path having a same sequence of visitor edges that are of the same type, and the generating of the one or more fix patterns is based on the first visitor path and the third visitor path being identified as being common visitor paths.

Plain English Translation

This invention describes a method for automatically generating and applying software repair patterns. It begins by analyzing a defective software program and its improved version to identify specific edit operations that fix faults. An Abstract Syntax Tree (AST) of the defective program is created, containing defect nodes that mark fault locations and including a first edit node, a second edit node, and a third edit node. The first and third edit nodes are both changed by a first edit operation, while the second edit node is changed by a second edit operation. Primary nodes are identified, such as a first primary node for the first edit. A specialized visitor AST is constructed with visitor edges showing programmatic relationships between primary nodes and edit nodes. Visitor paths are traced: a first visitor path from the first primary node to the first edit node, a second visitor path from the second primary node to the second edit node, and a third visitor path from the first primary node to the third edit node. A key step involves identifying the first and third visitor paths as common visitor paths if they share the exact same sequence of visitor edges of the same type. The fix patterns are then generated based on these paths (including the second visitor path and edit operations), with the generation specifically leveraging the fact that the first and third visitor paths have been identified as common, enabling more generalized repair solutions. These patterns are used for automatic repair.

Claim 4

Original Legal Text

4. The method of claim 1 , further comprising selecting the first visitor path for use in generating the one or more fix patterns on the first visitor path having a fewest number of visitor edges as compared to other visitor paths associated with the first fault or other faults of the defective software program.

Plain English Translation

This invention describes a method for automatically generating and applying software repair patterns. It begins by analyzing a defective software program and its improved version to identify specific edit operations that fix faults (e.g., a first edit for a first fault, a second edit for a second fault). An Abstract Syntax Tree (AST) of the defective program is then created, containing defect nodes that mark fault locations and edit nodes where changes were made. Within this AST, primary nodes are identified as starting points for each edit operation. A specialized visitor AST is constructed, incorporating the defect AST nodes and adding visitor edges that show programmatic relationships between each primary node and its corresponding edit node. Visitor paths are traced: a first visitor path from a first primary node to a first edit node, and a second visitor path from a second primary node to a second edit node. A crucial step involves selecting the first visitor path for use in generating fix patterns specifically because it possesses the fewest number of visitor edges compared to other potential visitor paths associated with the first fault or other faults in the defective software program. Finally, fix patterns are generated based on the selected first visitor path, the second visitor path, and the identified edit operations, formatted for compatibility with source code, and then used to perform automatic repair operations on new software code.

Claim 5

Original Legal Text

5. The method of claim 1 , wherein the defective software program includes a plurality of faults and the classifying the first particular node of the plurality of defect nodes as the first primary node comprises: identifying a plurality of common fault attributes of at least a portion of the plurality of faults in the defective software program, wherein the first particular node of the plurality of defect nodes is classified as the first primary node based on the first particular node including one or more of the plurality of common fault attributes of the portion of the plurality of faults in the defective software program.

Plain English Translation

This invention describes a method for automatically generating and applying software repair patterns. It begins by analyzing a defective software program (which contains a plurality of faults) and its improved version to identify specific edit operations that fix faults. An Abstract Syntax Tree (AST) of the defective program is then created, containing defect nodes that mark fault locations and edit nodes where changes were made. Within this AST, a first particular node is classified as a first primary node (a starting point for a first edit operation). This classification is performed by first identifying common fault attributes across at least some of the many faults present in the defective software program. The first particular node is then designated as the first primary node specifically because it possesses one or more of these identified common fault attributes. Similarly, a second primary node is classified for a second edit operation. A specialized visitor AST is constructed with visitor edges showing programmatic relationships between primary and edit nodes. Visitor paths (e.g., a first visitor path from the first primary node to a first edit node) are traced. Finally, fix patterns are generated based on these paths and edit operations, formatted for compatibility with source code, and then used to perform automatic repair operations on new software code with similar identified faults.

Claim 6

Original Legal Text

6. The method of claim 1 , further comprising identifying the first visitor path and the second visitor path as being common visitor paths with respect to each other based on the first visitor path and the second visitor path including similar visitor path descriptions, wherein the generating the one or more fix patterns is based on the first visitor path and the second visitor path being identified as being common visitor paths.

Plain English Translation

This invention describes a method for automatically generating and applying software repair patterns. It begins by analyzing a defective software program and its improved version to identify specific edit operations that fix faults (e.g., a first edit for a first fault, a second edit for a second fault). An Abstract Syntax Tree (AST) of the defective program is then created, containing defect nodes that mark fault locations and edit nodes where changes were made. Within this AST, primary nodes are identified as starting points for each edit operation. A specialized visitor AST is constructed, incorporating the defect AST nodes and adding visitor edges that show programmatic relationships between each primary node and its corresponding edit node. Visitor paths are traced: a first visitor path from a first primary node to a first edit node, and a second visitor path from a second primary node to a second edit node. A key step involves identifying the first visitor path and the second visitor path as being common visitor paths if they possess similar visitor path descriptions. The generation of fix patterns is then specifically based on this identification of common visitor paths, along with the first visitor path, the second visitor path, and the first and second edit operations. These generated patterns, compatible with source code, are finally used to perform automatic repair operations on new software code with similar identified faults.

Claim 7

Original Legal Text

7. One or more non-transitory computer-readable storage media configured to store instructions that, in response to being executed, cause a system to perform operations, the operations comprising: identifying a first edit operation with respect to a first fault of a defective software program based on one or more differences between the defective software program and an improved software program that includes the first edit operation as a repair of the first fault; identifying a second edit operation with respect to a second fault of the defective software program based on the one or more differences between the defective software program and the improved software program, which includes the second edit operation as a repair of the second fault; obtaining a defect abstract syntax tree (AST) that represents the defective software program, the defect AST including a plurality of defect nodes that correspond to one or more fault locations of the defective software program, the plurality of defect nodes including a first edit node that is changed by the first edit operation and including a second edit node that is changed by the second edit operation; classifying a first particular node of the plurality of defect nodes as a first primary node that operates as a first starting point in implementing the first edit operation; classifying a second particular node of the plurality of defect nodes as a second primary node that operates as a second starting point in implementing the second edit operation; obtaining a visitor AST, wherein the visitor AST includes: each node in the defect AST; one or more first visitor edges that indicate a first programmatic relationship between the first edit node and the first primary node; and one or more second visitor edges that indicate a second programmatic relationship between the second edit node and the second primary node; identifying a first visitor path from the first primary node to the first edit node in the visitor AST that includes a first sequence of the one or more first visitor edges; identifying a second visitor path from the second primary node to the second edit node in the visitor AST that includes a second sequence of the one or more second visitor edges; generating one or more fix patterns based on the first visitor path, the second visitor path, the first edit operation, and the second edit operation, one or more fix patterns are generated in a format compatible with a source code of the defective software program; and performing repair operations with respect to an identified fault of code under test of an analyzed software program using the one or more fix patterns.

Plain English Translation

This invention describes one or more non-transitory computer-readable storage media storing instructions that, when executed by a system, enable it to perform operations for automatically generating and applying software repair patterns. These operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. An Abstract Syntax Tree (AST) of the defective program is obtained, with defect nodes indicating fault locations and edit nodes changed by the edits. Primary nodes (starting points for edits) are classified within the AST. A visitor AST is constructed, containing AST nodes and visitor edges that show programmatic relationships between primary and edit nodes. Visitor paths (sequences of edges) are identified from each primary node to its corresponding edit node (e.g., a first visitor path for a first edit). Based on these identified paths and edit operations, one or more fix patterns are generated in a source code compatible format. Finally, these fix patterns are used to perform automatic repair operations on identified faults in new software code under test.

Claim 8

Original Legal Text

8. The one or more non-transitory computer-readable storage media of claim 7 , wherein the plurality of defect nodes includes a third edit node that is changed by the first edit operation, and the operations further comprise, identifying a third visitor path from the first primary node to the third edit node, wherein the one or more fix patterns are further based on the third visitor path.

Plain English Translation

This invention describes one or more non-transitory computer-readable storage media storing instructions that, when executed, enable a system to perform operations for automatically generating and applying software repair patterns. These operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. An Abstract Syntax Tree (AST) of the defective program is obtained, with defect nodes indicating fault locations and including first, second, and third edit nodes. Both first and third edit nodes are changed by the first edit operation. Primary nodes are classified (e.g., a first primary node for the first edit). A visitor AST is constructed with visitor edges showing programmatic relationships. Visitor paths are identified: a first visitor path from the first primary node to the first edit node, a second visitor path from the second primary node to the second edit node, and a third visitor path from the first primary node to the third edit node. Based on these three identified paths and edit operations, fix patterns are generated in a source code compatible format. Finally, these fix patterns are used to perform automatic repair operations on identified faults in new software code under test.

Claim 9

Original Legal Text

9. The one or more non-transitory computer-readable storage media of claim 8 , wherein the operations further comprise identifying the first visitor path and the third visitor path as being common visitor paths with respect to each other based on the first visitor path and the third visitor path having a same sequence of visitor edges that are of the same type, and the generating of the one or more fix patterns is based on the first visitor path and the third visitor path being identified as being common visitor paths.

Plain English Translation

This invention describes one or more non-transitory computer-readable storage media storing instructions that, when executed, enable a system to perform operations for automatically generating and applying software repair patterns. These operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. An Abstract Syntax Tree (AST) of the defective program is obtained, with defect nodes indicating fault locations and including first, second, and third edit nodes. Both first and third edit nodes are changed by the first edit operation. Primary nodes are classified (e.g., a first primary node for the first edit). A visitor AST is constructed with visitor edges showing programmatic relationships. Visitor paths are identified: a first visitor path from the first primary node to the first edit node, a second visitor path from the second primary node to the second edit node, and a third visitor path from the first primary node to the third edit node. The operations further comprise identifying the first visitor path and the third visitor path as common visitor paths if they have the same sequence of visitor edges of the same type. The fix patterns are then generated based on these paths (including the second visitor path and edit operations), with the generation explicitly leveraging the fact that the first and third visitor paths have been identified as common. These patterns are used for automatic repair.

Claim 10

Original Legal Text

10. The one or more non-transitory computer-readable storage media of claim 7 , wherein classifying the first particular node of the plurality of defect nodes as the first primary node comprises: obtaining a plurality of test defective software programs that includes a plurality of faults that are similar to the first fault of the defective software program; and identifying a plurality of common fault attributes of at least a portion of the plurality of faults in the plurality of test defective software programs, wherein the first particular node of the plurality of defect nodes is classified as the first primary node based on the first particular node including one or more of the plurality of common fault attributes of the portion of the plurality of faults in the plurality of test defective software programs.

Plain English Translation

This invention describes one or more non-transitory computer-readable storage media storing instructions that, when executed, enable a system to perform operations for automatically generating and applying software repair patterns. These operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. An Abstract Syntax Tree (AST) of the defective program is obtained, with defect nodes indicating fault locations and edit nodes changed by the edits. For classifying a first particular node as a first primary node (a starting point for the first edit operation), the operations involve: obtaining multiple test defective software programs containing faults similar to the first fault; and identifying common fault attributes within these test programs' faults. The first particular node is then classified as the first primary node based on it possessing one or more of these common fault attributes. Similarly, a second primary node is classified for the second edit operation. A visitor AST is constructed with visitor edges showing programmatic relationships between primary and edit nodes. Visitor paths are identified (e.g., a first visitor path for a first edit). Based on these paths and edit operations, fix patterns are generated in a source code compatible format. Finally, these fix patterns are used to perform automatic repair operations on new software code.

Claim 11

Original Legal Text

11. The one or more non-transitory computer-readable storage media of claim 7 , wherein the operations further comprise identifying the first visitor path and the second visitor path as being common visitor paths with respect to each other based on the first visitor path and the second visitor path including similar visitor path descriptions, wherein the generating the one or more fix patterns is based on the first visitor path and the second visitor path being identified as being common visitor paths.

Plain English Translation

This invention describes one or more non-transitory computer-readable storage media storing instructions that, when executed, enable a system to perform operations for automatically generating and applying software repair patterns. These operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. An Abstract Syntax Tree (AST) of the defective program is obtained, with defect nodes indicating fault locations and edit nodes where changes were made. Primary nodes are classified (e.g., a first primary node for the first edit). A visitor AST is constructed, containing AST nodes and visitor edges that show programmatic relationships between primary and edit nodes. Visitor paths are identified: a first visitor path from the first primary node to the first edit node, and a second visitor path from the second primary node to the second edit node. The operations further comprise identifying the first visitor path and the second visitor path as common visitor paths if they include similar visitor path descriptions. The generation of fix patterns is then specifically based on this identification of common visitor paths, along with the first visitor path, the second visitor path, and the first and second edit operations. These generated patterns, compatible with source code, are finally used to perform automatic repair operations on new software code.

Claim 12

Original Legal Text

12. A system comprising: one or more computer-readable storage media configured to store instructions; and one or more processors communicatively coupled to the one or more computer-readable storage media and configured to, in response to execution of the instructions, cause the system to perform operations, the operations comprising: identifying a first edit operation with respect to a first fault of a defective software program based on one or more differences between the defective software program and an improved software program that includes the first edit operation as a repair of the first fault; identifying a second edit operation with respect to a second fault of the defective software program based on the one or more differences between the defective software program and the improved software program, which includes the second edit operation as a repair of the second fault; obtaining a defect abstract syntax tree (AST) that represents the defective software program, the defect AST including a plurality of defect nodes that correspond to one or more fault locations of the defective software program, the plurality of defect nodes including a first edit node that is changed by the first edit operation and including a second edit node that is changed by the second edit operation; classifying a first particular node of the plurality of defect nodes as a first primary node that operates as a first starting point in implementing the first edit operation; classifying a second particular node of the plurality of defect nodes as a second primary node that operates as a second starting point in implementing the second edit operation obtaining a visitor AST, wherein the visitor AST includes: each node in the defect AST; one or more first visitor edges that indicate a first programmatic relationship between the first edit node and the first primary node; and one or more second visitor edges that indicate a second programmatic relationship between the second edit node and the second primary node; identifying a first visitor path from the first primary node to the first edit node in the visitor AST that includes a first sequence of the one or more first visitor edges; identifying a second visitor path from the second primary node to the second edit node in the visitor AST that includes a second sequence of the one or more second visitor edges; generating one or more fix patterns based on the first visitor path, the second visitor path, the first edit operation, and the second edit operation; and performing repair operations with respect to an identified fault of code under test of an analyzed software program using the one or more fix patterns.

Plain English Translation

This invention describes a system designed for automatically generating and applying software repair patterns, comprising computer-readable storage media and one or more processors configured to execute instructions. The system's operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. It obtains an Abstract Syntax Tree (AST) of the defective program, including defect nodes marking fault locations and edit nodes changed by the edits. Primary nodes (starting points for edits) are classified within the AST. A visitor AST is constructed, incorporating AST nodes and visitor edges that show programmatic relationships between primary and edit nodes. Visitor paths (sequences of edges) are identified from each primary node to its corresponding edit node (e.g., a first visitor path for a first edit). Based on these identified paths and edit operations, one or more fix patterns are generated. Finally, these fix patterns are used to perform automatic repair operations on identified faults in new software code under test.

Claim 13

Original Legal Text

13. The system of claim 12 , wherein the plurality of defect nodes includes a third edit node that is changed by the first edit operation, and the operations further comprise, identifying a third visitor path from the first primary node to the third edit node, wherein the one or more fix patterns are is further based on the third visitor path.

Plain English Translation

This invention describes a system for automatically generating and applying software repair patterns, comprising computer-readable storage media and one or more processors. The system's operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. It obtains an Abstract Syntax Tree (AST) of the defective program, with defect nodes indicating fault locations and including first, second, and third edit nodes. Both first and third edit nodes are changed by the first edit operation. Primary nodes are classified (e.g., a first primary node for the first edit). A visitor AST is constructed with visitor edges showing programmatic relationships. Visitor paths are identified: a first visitor path from the first primary node to the first edit node, a second visitor path from the second primary node to the second edit node, and a third visitor path from the first primary node to the third edit node. Based on these three identified paths and edit operations, fix patterns are generated. Finally, these fix patterns are used to perform automatic repair operations on identified faults in new software code under test.

Claim 14

Original Legal Text

14. The system of claim 13 , wherein the operations further comprise identifying the first visitor path and the third visitor path as being common visitor paths with respect to each other based on the first visitor path and the third visitor path having a same sequence of visitor edges that are of the same type, and the generating of the one or more fix patterns is based on the first visitor path and the third visitor path being identified as being common visitor paths.

Plain English Translation

This invention describes a system for automatically generating and applying software repair patterns, comprising computer-readable storage media and one or more processors. The system's operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. It obtains an Abstract Syntax Tree (AST) of the defective program, with defect nodes indicating fault locations and including first, second, and third edit nodes. Both first and third edit nodes are changed by the first edit operation. Primary nodes are classified (e.g., a first primary node for the first edit). A visitor AST is constructed with visitor edges showing programmatic relationships. Visitor paths are identified: a first visitor path from the first primary node to the first edit node, a second visitor path from the second primary node to the second edit node, and a third visitor path from the first primary node to the third edit node. The system's operations further comprise identifying the first visitor path and the third visitor path as common visitor paths if they have the same sequence of visitor edges of the same type. The fix patterns are then generated based on these paths (including the second visitor path and edit operations), with the generation explicitly leveraging the fact that the first and third visitor paths have been identified as common. These patterns are used for automatic repair.

Claim 15

Original Legal Text

15. The system of claim 12 , wherein the operations further comprise selecting the first visitor path for use in generating the one or more fix patterns based on the first visitor path having a fewest number of visitor edges as compared to other visitor paths associated with the first fault or other faults of the defective software program.

Plain English Translation

This invention describes a system for automatically generating and applying software repair patterns, comprising computer-readable storage media and one or more processors. The system's operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. It obtains an Abstract Syntax Tree (AST) of the defective program, containing defect nodes that mark fault locations and edit nodes where changes were made. Primary nodes are classified as starting points for each edit operation. A visitor AST is constructed, incorporating the AST nodes and visitor edges that show programmatic relationships between primary and edit nodes. Visitor paths are traced: a first visitor path from a first primary node to a first edit node, and a second visitor path from a second primary node to a second edit node. A crucial step in the system's operations involves selecting the first visitor path for use in generating fix patterns specifically because it possesses the fewest number of visitor edges compared to other potential visitor paths associated with the first fault or other faults in the defective software program. Finally, fix patterns are generated based on the selected first visitor path, the second visitor path, and the identified edit operations, and then used to perform automatic repair operations on new software code.

Claim 16

Original Legal Text

16. The system of claim 12 , wherein classifying the first particular node of the plurality of defect nodes as the first primary node comprises: obtaining a plurality of test defective software programs that includes a plurality of faults that are similar to the first fault of the defective software program; and identifying a plurality of common fault attributes of at least a portion of the plurality of faults in the plurality of test defective software programs, wherein the first particular node of the plurality of defect nodes is classified as the first primary node based on the first particular node including one or more of the plurality of common fault attributes of the portion of the plurality of faults in the plurality of test defective software programs.

Plain English Translation

This invention describes a system for automatically generating and applying software repair patterns, comprising computer-readable storage media and one or more processors. The system's operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. It obtains an Abstract Syntax Tree (AST) of the defective program, with defect nodes indicating fault locations and edit nodes changed by the edits. For classifying a first particular node as a first primary node (a starting point for the first edit operation), the system's operations involve: obtaining multiple test defective software programs containing faults similar to the first fault; and identifying common fault attributes within these test programs' faults. The first particular node is then classified as the first primary node based on it possessing one or more of these common fault attributes. Similarly, a second primary node is classified for the second edit operation. A visitor AST is constructed with visitor edges showing programmatic relationships between primary and edit nodes. Visitor paths are identified (e.g., a first visitor path for a first edit). Based on these paths and edit operations, fix patterns are generated. Finally, these fix patterns are used to perform automatic repair operations on new software code.

Claim 17

Original Legal Text

17. The system of claim 12 , wherein the one or more fix patterns are generated in a format compatible with a source code of the defective software program.

Plain English Translation

This invention describes a system designed for automatically generating and applying software repair patterns, comprising computer-readable storage media and one or more processors configured to execute instructions. The system's operations include: identifying first and second edit operations for first and second faults in a defective software program by comparing it to an improved version. It obtains an Abstract Syntax Tree (AST) of the defective program, including defect nodes marking fault locations and edit nodes changed by the edits. Primary nodes (starting points for edits) are classified within the AST. A visitor AST is constructed, incorporating AST nodes and visitor edges that show programmatic relationships between primary and edit nodes. Visitor paths are identified from each primary node to its corresponding edit node. One or more fix patterns are then generated based on these identified paths and edit operations. A distinguishing feature of this system is that these fix patterns are specifically generated in a format compatible with the source code of the defective software program. Finally, these fix patterns are used to perform automatic repair operations on identified faults in new software code under test.

Patent Metadata

Filing Date

Unknown

Publication Date

August 4, 2020

Inventors

Rohan BAVISHI
Hiroaki YOSHIDA
Mukul R. PRASAD

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “DATA-DRIVEN SYNTHESIS OF FIX PATTERNS” (10733075). https://patentable.app/patents/10733075

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/10733075. See llms.txt for full attribution policy.

DATA-DRIVEN SYNTHESIS OF FIX PATTERNS