Software Fault Localization via Semantic and Test Aggregation

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

VSEngineering 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

Engineering Contradiction:
Improvefault location identification accuracyVSAvoidfault localization process complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvefault location identification accuracyVSAvoidtesting time
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #16Partial or excessive action

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improverepair process automationVSAvoidfault correction effectiveness
Core Design Contradiction:
Extent of automationVSReliability

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10678673B2Software program fault localization
Publication Date: 2020.06.09 FUJITSU LTD
  • US10678673B2 patent drawing
  • US10678673B2 patent drawing
  • US10678673B2 patent drawing

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.