Machine Learning Software Repair Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improverepair effectivenessVSAvoidwasted resources on inefficient repair operations
Core Design Contradiction:
ReliabilityVSLoss of energy

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #23Feedback

2Measurement precision

If machine learning is used to determine repair effectiveness, then repair accuracy is improved, but computational complexity increases

Engineering Contradiction:
Improverepair effectiveness prediction accuracyVSAvoidcomputational complexity of repair system
Core Design Contradiction:
Measurement precisionVSDevice complexity

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

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Inventive Principle:
Principle #1Segmentation

3Productivity

If repair operations are prioritized based on effectiveness indication, then repair efficiency is improved, but additional analysis time is required

Engineering Contradiction:
Improverepair operation efficiencyVSAvoidtime for effectiveness analysis
Core Design Contradiction:
ProductivityVSLoss of time

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

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9846637B2Machine learning based software program repair
Publication Date: 2017.12.19 FUJITSU LTD
  • US9846637B2 patent drawing
  • US9846637B2 patent drawing
  • US9846637B2 patent drawing

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.