Fault Localization in Spectrum Ambiguity Groups

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Spectrum-based fault localization tools struggle to accurately identify the faulty component within ambiguity groups, where multiple components are equally likely to cause test failures due to similar activation and inactivation patterns during testing.

Innovation Solution

The system instruments components within ambiguity groups to collect runtime variable values, re-executes tests, and generates an augmented spectrum that distinguishes components based on their states, using techniques like landmark-based, cluster-based, or label-based partitioning to break ambiguity groups and pinpoint the faulty component.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If traditional spectrum-based fault localization is used, then the debugging process can be automated, but it cannot accurately identify the faulty component within ambiguity groups

Engineering Contradiction:
Improveautomated debuggingVSAvoidfault localization accuracy
Core Design Contradiction:
Extent of automationVSMeasurement precision

Solution Approach 1:

The patent segments the monolithic spectrum data into fine-grained execution traces at the statement level. By breaking down the code coverage information into individual statement execution records, the system can distinguish between components that appear identical at the component level but differ at the statement level, thereby resolving ambiguity groups while maintaining automated debugging.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a new dimension of analysis by introducing execution trace data that captures the actual runtime behavior of components. This additional dimension of fine-grained execution information allows the system to differentiate between components in ambiguity groups, improving fault localization accuracy without sacrificing automation.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If components are instrumented to collect runtime variable values, then diagnostic accuracy is enhanced, but system complexity increases

Engineering Contradiction:
Improvediagnostic accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies partial instrumentation by selecting only specific components and variables that are most relevant to the fault localization task. Rather than instrumenting the entire system, the approach focuses computational resources on ambiguous components and their critical variables, thereby achieving high diagnostic accuracy while limiting the increase in system complexity.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent segments the instrumentation effort into manageable units by focusing on individual ambiguous components and their specific variables. This segmented approach to instrumentation reduces the overall system complexity compared to full-system instrumentation, while still providing sufficient data to break ambiguity groups and achieve accurate fault localization.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11163674B1System and method for identifying a faulty component in a spectrum ambiguity group
Publication Date: 2021.11.02 GENESEE VALLEY INNOVATIONS LLC
  • US11163674B1 patent drawing
  • US11163674B1 patent drawing
  • US11163674B1 patent drawing

AI summary

One embodiment provides a system and method for automatically localizing faults in a software system. During operation, the system executes a number of tests associated with the software system to output a spectrum indicating test-coverage patterns of components within the software system; and identifies, based on the spectrum, an ambiguity group associated with at least one failed test. The ambiguity group includes multiple components having a same coverage pattern. The system instruments the multiple components. Instrumenting a respective component includes inserting instructions for monitoring runtime values of at least one variable. The system identifies a subset of tests within which the instrumented multiple components are active, re-executes the identified subset of tests with the multiple components being instrumented, and identifies one component from the multiple components as being likely to cause the at least one failed test based on results of the re-executed subset of tests.