Software Fault Localization via Semantic and Test Aggregation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software fault localization techniques are inadequate in accurately identifying fault locations in software programs, often leading to inefficient repair processes.
Innovation Solution
A method that executes multiple tests on the software program, calculates suspicion scores based on the use of statements in passing and failing tests, semantic similarity with error report tokens, and change scores over time, to prioritize and identify potential fault locations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional fault localization techniques are used, then the process is simple, but the accuracy of identifying fault locations is insufficient
Solution Approach 1:
The patent segments the codebase into atomic statements and executes tests selectively based on statement coverage. By dividing the code into testable units and using test execution results to score individual statements, the system achieves precise fault localization without analyzing the entire codebase at once, thus improving accuracy while managing complexity.
Solution Approach 2:
The patent introduces an intermediary scoring mechanism that aggregates multiple signals (test execution results, statement coverage, semantic similarity) into a unified fault likelihood score. This intermediary layer synthesizes complex information from multiple sources into a single measurable metric, enabling accurate fault identification without directly managing the complexity of all input signals.
2Measurement precision
If multiple tests are executed to improve fault localization accuracy, then the precision of fault identification increases, but the time required for testing increases
Solution Approach 1:
The patent applies partial action by executing only the subset of tests that are relevant to the current fault localization task, rather than running the complete test suite. By selecting tests based on statement coverage and fault likelihood, the system achieves sufficient precision without the time cost of executing all possible tests.
Solution Approach 2:
The patent performs preliminary analysis of test results and statement coverage before final fault identification. By pre-computing scores based on test execution patterns and statement usage, the system prepares ranking information in advance, enabling faster fault localization without requiring re-execution of all tests during the actual identification process.
3Extent of automation
If automated repair systems are used to identify and correct faults, then the repair process is automated, but the effectiveness of fault correction is insufficient
Solution Approach 1:
The patent implements feedback by using actual test execution results to validate and refine fault localization. Test outcomes feed back into the scoring mechanism, allowing the system to adjust fault likelihood assessments based on real behavior data. This feedback loop enhances the reliability of automated repair by ensuring faults are identified with confidence before correction attempts.
Data Source
AI summary
According to an aspect of an embodiment, a method may include executing multiple tests with respect to code under test of a software program to perform multiple test executions. The method may further include identifying one or more passing tests and one or more failing tests of the test executions. In addition, the method may include determining an aggregated score for each statement based on two or more of: the passing tests and the failing tests; a semantic similarity between one or more statement tokens included in the respective statement and one or more report tokens included in an error report; and an amount of time that has passed from when the respective statement received a change. Moreover, the method may include identifying a particular statement of the plurality of statements as a fault location in the code under test based on the aggregated scores of the plurality of statements.


