Deviation Finder for Software Regression Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software program updates often lead to program regressions, causing aberrant behaviors and user frustration, as developers face challenges in identifying which program to revert or upgrade due to lack of access to affected source code and hardware components.

Innovation Solution

A deviation finder system that logs and analyzes execution traces to identify regression points without requiring access to source code, grouping instructions into blocks for comparison, and transmitting regression points to developers or users to facilitate patching or behavior avoidance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers manually identify and debug program regressions, then they can fix the issues, but the process becomes laborious and time-consuming

Engineering Contradiction:
Improveregression identification speedVSAvoiddebugging time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system automatically performs regression detection and identification without requiring manual developer intervention. The deviation finder autonomously compares execution traces, identifies regression points, and provides diagnostic information, allowing the system to serve itself in detecting and locating bugs.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical debugging processes with an automated computational system. Instead of developers manually stepping through code and comparing versions, a computer-implemented deviation finder automatically analyzes execution traces and identifies regressions using algorithmic trace comparison.

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

2Ease of operation

If developers have access to source code and debugging tools, then they can identify regressions more effectively, but they often lack access to affected source code and hardware components

Engineering Contradiction:
Improveregression detection accessibilityVSAvoidaccess requirements
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system creates execution traces as copies of program behavior that can be analyzed without needing access to the original source code or hardware. These traces capture the essential information needed for regression detection, allowing analysis to be performed on replicated data rather than requiring access to proprietary or inaccessible components.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The deviation finder acts as an intermediary system that bridges the gap between programs from different developers. It provides a standardized interface for regression detection that works across multiple programs without requiring direct access to their internal source code, facilitating collaboration between independent developers.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If the entire execution trace is analyzed to identify regression points, then accurate detection is achieved, but the analysis becomes computationally intensive

Engineering Contradiction:
Improveregression detection accuracyVSAvoidcomputational resources
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The execution trace analysis is segmented into manageable comparison units. The system divides the trace into segments and compares corresponding segments between the first and second executions, allowing accurate regression detection while reducing the computational burden of analyzing the entire trace as a single unit.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system extracts only the relevant portions of the execution trace that contain regression information. By identifying and focusing on the specific instruction blocks where deviations occur, rather than processing the entire trace uniformly, the system achieves accurate detection with reduced computational effort.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10761828B2Deviation finder
Publication Date: 2020.09.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10761828B2 patent drawing
  • US10761828B2 patent drawing
  • US10761828B2 patent drawing

AI summary

Automatic detection of software program regression points enables developers to more quickly and accurately diagnose and solve issues in changes to software. Traces of instructions are collected from before and after a change to a program or settings thereto on a computing device and are compared to identify differences between the two traces. Areas of differences are ranked and returned to identify the point(s) of regression in the traces to alert a user of programs of behaviors to avoid and/or a developer a point to focus efforts on to patch the responsible program or update other programs around the responsible application.