Automated Software Regression Source Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software regression identification in complex software systems is time-consuming and cumbersome due to the manual search of log files and the difficulty in predicting second and higher-order effects of multiple code changes, especially across various platforms.

Innovation Solution

A method using QTrace and DTrace tools to analyze code coverage and versioning information to quickly identify potential sources of software regressions by comparing test results across different versions of the code, isolating the specific portion of source code changed in intermediate versions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual search of log files is used to identify software regressions, then debugging can be performed, but the process becomes time-consuming and cumbersome

Engineering Contradiction:
Improveregression identification accuracyVSAvoiddebugging time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent replaces manual mechanical searching of log files with automated computer-based analysis systems. The system automatically compares test results across multiple builds, identifies regressions, and locates affected source code portions, substituting human effort with computational automation to reduce time while maintaining accuracy

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

Solution Approach 2:

The patent introduces an intermediary regression analysis system that acts as a mediator between test execution and debugging processes. This system processes test results, compares them across builds, and provides structured regression information, serving as an intermediate layer that automates the analysis workflow and eliminates manual log file searching

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If brute force methods like binary search are used to identify regression sources, then the cause can be located, but the process requires numerous man-hours and is extremely costly

Engineering Contradiction:
Improveregression source identification accuracyVSAvoiddebugging efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent performs preliminary actions by automatically comparing test results across multiple builds before debugging begins. The system pre-identifies regressions and pre-locates the portions of source code that differ between builds, preparing structured information in advance that guides the debugging process and eliminates the need for time-consuming binary search methods

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts only the relevant information needed for regression identification by automatically comparing test results and isolating the specific portions of source code that differ between builds. This extraction process filters out unnecessary data and focuses directly on the regression-causing changes, eliminating the need for exhaustive brute force searching through all code

Inventive Principle:
Principle #2Taking out (Extraction)

3Ease of manufacture

If software is tested after a threshold of change is reached, then testing can be performed, but it is difficult to predict second and higher order effects of multiple code changes

Engineering Contradiction:
Improvetesting feasibilityVSAvoidregression effect information
Core Design Contradiction:
Ease of manufactureVSLoss of information

Solution Approach 1:

The patent segments the analysis by comparing each build against a baseline build and identifying specific portions of source code that differ. This segmentation allows the system to track changes individually and collectively, capturing both direct and indirect effects of multiple code changes while maintaining the ability to test after threshold changes are reached

Inventive Principle:
Principle #1Segmentation

4Measurement precision

If software is run on multiple platforms to identify hardware or software problems, then platform-specific issues can be detected, but engineers are overwhelmed by the numerous factors that must be considered

Engineering Contradiction:
Improveplatform-specific problem detection accuracyVSAvoidtesting system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent creates a universal regression analysis system that functions across multiple platforms. The system automatically adapts to different platforms by comparing test results and identifying regressions regardless of the underlying hardware or software environment, providing a single multi-functional solution that eliminates the need for engineers to manually manage platform-specific testing complexities

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8276126B2Determining causes of software regressions based on regression and delta information
Publication Date: 2012.09.25 ORACLE AMERICAN INC
  • US8276126B2 patent drawing
  • US8276126B2 patent drawing
  • US8276126B2 patent drawing

AI summary

Techniques for isolating software regressions are provided. In one approach, QTrace is used to generate DTrace scripts to gather timing information of one or more portions of source code during a test of particular version of a program. Based on results of one or more tests of multiple versions of a program, a regression is identified with respect to a particular portion of source code. It is determined that the particular portion of source code was changed during an intermediate version of the program (i.e., between two tests). The intermediate version and/or the particular portion of source code are identified as being a potential source of the regression.