Software Fault Location Identification via Assertion Risk Scoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software fault detection methods are limited in precision, often resulting in false positives and inefficient use of computing resources, as they primarily focus on whether a test case passes or fails without considering the granular factors affecting assertions.

Innovation Solution

A method that calculates a risk score for lines of code based on their influence on test case assertions, considering both passing and failing test cases, to identify likely fault locations with increased granularity and precision.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional test case pass/fail analysis is used to identify faults, then the detection process is simple and fast, but the precision is low resulting in false positives

Engineering Contradiction:
Improvefault detection precisionVSAvoiddetection method complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the test case execution analysis into multiple dimensions: (1) identifying affected lines of code that influence assertions, (2) categorizing test cases as passing or failing, (3) calculating risk scores based on multiple factors including assertion influence and test case outcomes. This segmentation transforms a simple pass/fail check into a multi-factor analysis system that improves precision without requiring a single complex method.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds new dimensions to traditional fault detection by introducing risk score calculation that considers multiple factors beyond simple pass/fail status. The risk score incorporates: (1) the number of assertions affected by each line of code, (2) whether test cases passing or failing are affected by the line, (3) the proportion of affected assertions. This dimensional expansion transforms 1D pass/fail analysis into multi-dimensional risk assessment, improving detection precision.

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

2Measurement precision

If comprehensive analysis of all lines of code is performed, then fault detection precision improves, but computing resource consumption increases

Engineering Contradiction:
Improvefault location precisionVSAvoidcomputing resource usage
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent segments the code base by identifying only the affected lines of code that influence test case assertions. Instead of analyzing all lines of code uniformly, the system: (1) traces which lines affect which assertions, (2) focuses risk score calculation only on affected lines, (3) excludes unaffected lines from detailed analysis. This segmentation reduces the analysis scope to only relevant code portions, improving precision while conserving computing resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by differentiating the analysis depth applied to different lines of code. Affected lines receive comprehensive risk score calculation considering multiple factors, while unaffected lines are excluded from detailed analysis. The risk score itself provides a quality metric that prioritizes lines most likely to contain faults, allowing resources to be focused on high-priority areas rather than uniformly analyzing all code.

Inventive Principle:
Principle #3Local quality

3Reliability

If risk score calculation considers multiple factors including assertion influence, then false positives are reduced, but the calculation complexity increases

Engineering Contradiction:
Improvefault identification reliabilityVSAvoidrisk score calculation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the risk score calculation into distinct computational steps: (1) identifying affected lines of code, (2) determining which test cases are affected, (3) categorizing test cases as passing or failing, (4) calculating the risk score based on the proportion of affected assertions. This segmentation of the calculation process makes the complex multi-factor analysis more manageable and implementable, reducing the perceived complexity while maintaining high reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The risk score calculation incorporates feedback from multiple sources: test case outcomes (pass/fail), assertion results, and the relationship between code lines and assertions. The system uses this feedback to dynamically adjust risk scores, where lines affecting failing assertions receive higher risk scores. This feedback mechanism improves reliability by continuously refining fault probability estimates based on actual test execution results.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10761961B2Identification of software program fault locations
Publication Date: 2020.09.01 FUJITSU LTD
  • US10761961B2 patent drawing
  • US10761961B2 patent drawing
  • US10761961B2 patent drawing

AI summary

A method may include obtaining multiple lines of programming code of a program, and obtaining multiple test cases for testing the program, where each of the test cases includes an assertion upon which a result of a respective test case is based. The method may also include executing the program for each of the test cases, and identifying affected lines of programming code that influence the assertions. The method may additionally include calculating a risk score for at least one of the lines of programming code based on the affected lines of programming code and the assertion, the risk score indicative of a likelihood that the at least one of the lines of programming code includes a fault.