Data-Augmented Software Fault Diagnosis Using Machine Learning Priors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software fault diagnosis methods, such as BARINEL, face challenges in providing accurate guidance due to their reliance on uniform prior probabilities for software components, which do not consider observed system behavior, leading to large sets of diagnoses and weak guidance for programmers.
Innovation Solution
A method that utilizes machine learning algorithms to predict the probability of software components being faulty by leveraging data from version control and issue tracking systems, generating a prediction model that assigns confidence scores to classify components as faulty or healthy, and inputs these scores into the BARINEL algorithm to improve diagnosis accuracy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If uniform prior probabilities are used for software components in BARINEL, then the diagnosis process is simple, but the precision and recall of fault diagnosis deteriorate
Solution Approach 1:
The patent changes the parameter of prior probabilities from uniform distribution to data-augmented distribution based on historical fault data, version control information, and issue tracking data. This transforms the probability values assigned to different software components, allowing the diagnosis algorithm to focus on components with higher empirical fault likelihood, thereby improving precision without significantly increasing process complexity
Solution Approach 2:
The patent performs preliminary data collection and analysis before the actual diagnosis process by gathering historical fault data, version control records, and issue tracking information to compute informed prior probabilities. This preliminary action prepares the system with pre-computed probability distributions that guide the subsequent diagnosis process, improving accuracy while maintaining efficiency
2Ease of manufacture
If uniform prior probabilities are used for software components in BARINEL, then the method is easy to implement, but the guidance strength for programmers deteriorates
Solution Approach 1:
The patent introduces an intermediary data processing layer that collects and analyzes multiple data sources (historical fault data, version control information, issue tracking data) to generate informed prior probabilities. This intermediary layer acts as a mediator between raw data and the diagnosis algorithm, transforming diverse information into meaningful probability distributions that provide stronger guidance to programmers while keeping the overall system architecture manageable
3Measurement precision
If data-augmented prior probabilities are used, then the precision and recall of fault diagnosis improve, but the complexity of the diagnosis system increases
Solution Approach 1:
The patent segments the data-augmentation process into distinct modular components: historical fault data collection, version control data extraction, issue tracking data gathering, and probability computation. Each segment handles a specific aspect of data processing independently, allowing the system to achieve high diagnostic precision through multiple specialized modules rather than a single complex monolithic system
4Measurement precision
If more tests are run to achieve accurate diagnosis with uniform priors, then the diagnosis accuracy may improve, but the time and resources required increase
Solution Approach 1:
The patent performs preliminary computation of data-augmented prior probabilities using historical data before the actual diagnosis execution. This pre-computed information guides the test selection and execution process, allowing the system to achieve accurate diagnoses with fewer tests by focusing computational resources on the most likely faulty components identified through historical patterns
Data Source
AI summary
The present invention is directed to a method for diagnosing faults in a software system, according to which, predictions of the probability of each software component of the software system to be faulty are obtained from a diagnoser, and the probability predictions are input to a fault diagnosis software module, executed by the diagnoser.

