Automated Software Test Failure Isolation Method

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software development, identifying the cause of a test failure in the latest software code revision is challenging due to the large number of revisions and the need for manual debugging, which is time-consuming and resource-intensive, especially when tests are performed infrequently.

Innovation Solution

A method that automatically identifies the cause of a test failure by analyzing changes between revisions, generating modified versions of the software code, and determining whether the test passes or fails on these modified versions, thereby isolating the revision that introduced the fault and reducing the need for manual intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If tests are performed frequently on each revision, then software quality and reliability are improved, but the time and resources required for debugging increase significantly

Engineering Contradiction:
Improvesoftware qualityVSAvoiddebugging time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the debugging process by automatically identifying and isolating the specific revision that introduced the fault. Instead of manually examining all revisions, the system divides the search space by comparing test results across revisions and pinpointing the exact change that caused the failure, thereby reducing debugging time while maintaining frequent testing

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary analysis by automatically comparing test results across multiple revisions and identifying the faulty revision before manual debugging begins. This preliminary automated investigation prepares the debugging process by narrowing down the search space, allowing developers to focus only on the identified problematic revision rather than examining all revisions manually

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If manual debugging is performed to identify the cause of test failure, then accurate fault identification is achieved, but the process becomes time-consuming and resource-intensive

Engineering Contradiction:
Improvefault identification accuracyVSAvoiddebugging efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent implements self-service debugging by enabling the system to automatically identify the faulty revision and generate debugged versions without human intervention. The system serves itself by comparing test results, analyzing revision differences, and pinpointing the cause of failure autonomously, thereby maintaining high accuracy while dramatically improving debugging efficiency

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical manual debugging process with an automated computational system. Instead of developers manually examining code changes and test failures, the system uses automated comparison algorithms and data analysis to identify the faulty revision, substituting human manual labor with machine-based automation while preserving diagnostic accuracy

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If tests are performed at regular intervals rather than on each revision, then resource consumption is reduced, but the ability to identify the specific change causing test failure is lost

Engineering Contradiction:
Improvetesting efficiencyVSAvoidchange causality information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent uses feedback by systematically comparing test results across different revisions to identify patterns and determine which specific change caused the failure. The system collects test outcome data from multiple revisions and uses this feedback loop to pinpoint the exact revision that introduced the fault, thereby recovering causality information even when testing is performed at intervals rather than on every revision

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10509693B2Method for identifying a cause for a failure of a test
Publication Date: 2019.12.17 VERIFYTER
  • US10509693B2 patent drawing
  • US10509693B2 patent drawing
  • US10509693B2 patent drawing

AI summary

According to an aspect of the present inventive concept there is provided a method for identifying a cause for a failure of a computer-implemented test performed on a latest software code revision in a sequence of a plurality of software code revisions, the method comprising:identifying a first revision of said sequence of revisions for which said test passes and a second revision of said sequence of revisions which is subsequent to the first revision and for which said test fails,determining a first change between the software code of the first revision and the software code of the second revision,generating a first modified version of the software code of the latest revision using the determined first change,determining whether said test passes or fails when performed on the first modified version,in response to determining that said test fails when performed on the first modified version:identifying a third revision and a fourth revision of said sequence which are intermediate the latest revision and the second revision, wherein the third revision is a revision for which said test passes when said revision is modified using the determined first change, and wherein the fourth revision is subsequent to the third revision and is a revision for which said test fails when said revision is modified using the determined first change,determining a second change between the software code of the third revision and the fourth revision,generating a second modified version of the software code of the latest revision using the first change and the second change,determining whether said test passes or fails when performed on the second modified version,in response to determining that said test passes when performed on the second modified version, providing a message indicating at least the fourth revision as including a cause for said test failing when performed on said latest software code revision.