Automated Fix Pattern Generation for Software Fault Repair
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current static analysis tools face challenges in efficiently addressing the large number of non-critical software quality issues, as manually generating fix patterns is time-consuming and often ignored due to the high volume of reported violations, leading to delayed software development and potential performance issues.
Innovation Solution
An automated system for generating fix patterns using a program synthesis algorithm that identifies edit operations and represents them as repairs, learning from defective software programs to create a database of generalized executable patterns applicable to new violations, and performing repair operations based on these patterns.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual generation of fix patterns is used, then software quality can be improved, but time consumption increases significantly
Solution Approach 1:
The system performs self-service by automatically generating fix patterns through program synthesis algorithms. The automated system analyzes defective software programs, identifies faults, and generates executable fix patterns without requiring extensive manual intervention, thereby resolving the contradiction between improving software quality and reducing time consumption
Solution Approach 2:
The manual mechanical process of fix pattern generation is replaced with an automated computational system. The program synthesis algorithm substitutes the manual mechanical effort with automated computational analysis, transforming the defect abstract syntax tree and generating fix patterns algorithmically, which significantly reduces time consumption while maintaining software quality improvement
2Reliability
If static analysis tools are used to identify faults, then software quality issues can be detected, but the large volume of violations delays software development
Solution Approach 1:
The system extracts only the essential fix patterns from the large volume of violations identified by static analysis tools. Instead of processing every violation manually, the program synthesis algorithm extracts representative fix patterns that can be generalized and applied to multiple similar violations, thereby maintaining fault detection capability while accelerating software development
Solution Approach 2:
The generated fix patterns possess universality, enabling a single fix pattern to address multiple different but related violations. The program synthesis algorithm creates generalized executable patterns that can be applied across different software contexts, making the system multi-functional in addressing various fault types with a unified approach, thus improving productivity without sacrificing detection capability
Data Source
AI summary
Operations may include identifying an edit that corresponds to a fault of a program. The edit may be identified based on a difference between the program and an improved program. The operations may include obtaining an AST that represents the program and includes defect nodes that correspond to a fault location and include an edit node. The operations may include classifying a particular node as a primary node that operates as a starting point for the edit. The operations may include identifying a path from the primary node to the edit node. The operations may include generating a fix pattern based on the path and the edit. The operations may include performing repairs with respect to an identified fault of code. The repairs may be performed using the fix pattern and based on the identified fault of the code being the same type as the fault of the program.


