Project-Aware Fault Localization Using Historical Fault Patterns
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional fault localization methods fail to consider project-specific characteristics and past fault histories, making it difficult to effectively identify recurring errors in software projects.
Innovation Solution
A project-aware fault localization method (PAFL) that trains fault patterns based on past versions of a project, using a crossword as a domain-specific language to update suspicion values of statements, considering both version and code contexts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a universal fault localization method is applied to all projects, then the method can be broadly applicable, but it fails to consider project-specific characteristics and past fault histories
Solution Approach 1:
The patent applies local quality by training fault patterns specifically for each project based on its unique characteristics and past fault data, rather than using a single universal model. Each project receives customized fault pattern training that adapts to its specific codebase and error history, thereby improving localization accuracy while maintaining broad applicability through the general framework.
Solution Approach 2:
The patent implements preliminary action by collecting and training fault patterns from past versions of a project before attempting to localize faults in the current version. This preliminary training process uses historical fault data to build project-specific fault patterns, which are then applied to improve the accuracy of fault localization in the latest version.
2Device complexity
If conventional fault localization methods are used without considering past fault data, then the analysis process remains simple, but recurring errors in specific projects cannot be effectively identified
Solution Approach 1:
The system performs preliminary action by collecting and training fault patterns from past versions before analyzing current faults. This preliminary training on historical data enables the system to identify recurring errors more effectively, improving reliability without making the analysis process excessively complex.
Solution Approach 2:
The patent implements feedback by using past fault data to train fault patterns that inform the analysis of current faults. The system leverages historical fault information to improve the identification of recurring errors, creating a feedback loop where past performance informs future fault localization effectiveness.
3Measurement precision
If project-specific fault patterns are trained using past versions, then fault localization accuracy improves, but the process requires collecting and processing historical fault data
Solution Approach 1:
The system performs preliminary action by collecting and training fault patterns from past versions before analyzing current faults. This preliminary training process uses historical fault data to build project-specific fault patterns, which are then applied to improve the accuracy of fault localization in the latest version.
Solution Approach 2:
The patent applies copying by using fault patterns trained from past versions as a foundation for analyzing current faults. The system copies and adapts historical fault patterns to the current codebase, leveraging previously learned patterns to reduce the time required for new fault analysis while maintaining high accuracy.
Data Source
AI summary
A fault localization method is disclosed. The method includes collecting fault data from past versions of a project, training a fault pattern based on the collected fault data, in response to a fault occurring in a latest version of the project, extracting a first suspicion value for each of statements included in the latest version of the project, based on a baseline fault localization method, obtaining a latest crossword corresponding to the latest version of the project, based on the trained fault pattern and a fault type of the latest version of the project, and updating the first suspicion value to a second suspicion value based on the latest crossword and the first suspicion value.


