Machine Learning Software Repair Prioritization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Automated repair systems for software programs often make ineffective modifications at fault locations, failing to appropriately repair faults and wasting resources on inefficient repair operations.
Innovation Solution
A method using machine learning to identify fault locations, determine repair effectiveness, prioritize repairs, and generate repair oracles to predict successful program states, thereby improving the efficiency of software program repair by focusing on effective modifications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If automated repair systems make modifications at fault locations, then repair operations are performed, but the repairs are ineffective and resources are wasted
Solution Approach 1:
The system performs preliminary analysis before executing repairs by using machine learning to predict repair effectiveness and generate repair oracles that anticipate whether a repair will succeed, allowing the system to avoid ineffective repairs before consuming resources
Solution Approach 2:
The system implements feedback mechanisms by using test suite results to update the machine learning model's understanding of repair effectiveness, continuously improving its ability to predict which repairs will work and reducing wasted resources on ineffective modifications
2Measurement precision
If machine learning is used to determine repair effectiveness, then repair accuracy is improved, but computational complexity increases
Solution Approach 1:
The system introduces repair oracles as intermediary components that bridge the machine learning model and the actual repair operations, allowing the complex ML predictions to be translated into actionable repair decisions without requiring the entire system to handle full computational complexity
Solution Approach 2:
The repair system is segmented into distinct components: fault detection, machine learning prediction, oracle generation, and repair execution. This segmentation allows the computational complexity to be distributed and managed in modular fashion, with each component handling a specific aspect of the repair process
3Productivity
If repair operations are prioritized based on effectiveness indication, then repair efficiency is improved, but additional analysis time is required
Solution Approach 1:
The system performs effectiveness analysis in advance by generating repair oracles and prioritizing fault locations before actual repair operations begin, so that when repairs are executed, they can be applied immediately in the correct priority order without delays
Data Source
AI summary
According to an aspect of an embodiment, a method may include identifying a fault location in a software program using a test suite. The method may further include determining, using machine learning, a repair effectiveness indication that indicates a potential effectiveness of performing a potential repair operation at the fault location. In addition, the method may include prioritizing implementing a repair at the fault location based on the repair effectiveness indication. The method may further include performing repair operations with respect to the software program based on the prioritization of the fault location.


