Screenshot Analysis for Software Regression Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software regression testing often fails to detect bugs in successive software versions, making it difficult to determine when a regression was introduced and reproduce the defect in a controlled environment.

Innovation Solution

A system that analyzes screenshots captured during automated regression testing to detect the introduction point of regressions by scanning images for specific conditions and using bisection algorithms to narrow down the date of introduction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If automated regression testing is performed to detect bugs in successive software versions, then software quality is improved, but the ability to determine when a regression was introduced deteriorates

Engineering Contradiction:
Improvesoftware qualityVSAvoidintroduction point information
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

Screenshots are captured and stored during each automated regression test execution before the regression is detected. This preliminary capture of visual state information allows later analysis to determine when a regression was introduced, resolving the information loss problem while maintaining automated testing benefits

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If previous versions of software are loaded and tested to determine regression introduction point, then the introduction point can be identified, but time consumption increases

Engineering Contradiction:
Improveintroduction point identificationVSAvoidtime consumption
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

Instead of loading and testing previous software versions, the system analyzes stored screenshot images that capture the visual state of each version. This copying approach preserves the diagnostic capability while eliminating the time-consuming process of reconstructing and testing older versions

Inventive Principle:
Principle #26Copying

3Measurement precision

If the exact user environment is reproduced to reproduce defects, then defect reproduction accuracy is improved, but device complexity increases

Engineering Contradiction:
Improvedefect reproduction accuracyVSAvoidenvironment reproduction complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system captures screenshots that document the visual state and environment conditions under which the software operated. These image copies preserve defect reproduction accuracy by providing visual evidence of the original environment without requiring actual reproduction of the complex user setup

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system extracts the essential diagnostic information from the complex user environment by capturing it in screenshot form. This extraction separates the critical visual state data from the surrounding environmental complexity, enabling analysis without full environment reproduction

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20250053417A1Determining introduction point of application regressions through screenshot analysis
Publication Date: 2025.02.13 LENOVO (SINGAPORE) PTE LTD
  • US20250053417A1 patent drawing
  • US20250053417A1 patent drawing
  • US20250053417A1 patent drawing

AI summary

A system for software testing includes a storage device to store screenshots of a user application captured during execution of the user application. The system includes a computer vision device coupled to the storage device. The computer vision device can receive a description of an assertion to be detected within the screenshots. The computer vision device can scan the screenshots to detect presence of the assertion and provide an output indicating presence of the assertion. The screenshot can be stored in a way to associate the screenshot with a software build version or date to indicate a point at which the assertion was introduced into relevant software source code.