Binary Code Test Impact Analysis for Regression Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software development, large regression test suites for web UI and REST API applications take a long time to execute, making it difficult for QA or IT integrators to obtain quick feedback on changes, especially when they lack access to the source code and can only work with binary files.

Innovation Solution

A method and system that collect test coverage data from executed tests, calculate a baseline report correlating tests with binary code blocks, determine binary code changes, and identify a subset of tests to execute for verifying changes, using a coverage collector and test impact analysis engine to analyze binary code changes without access to source code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire test suite is executed to verify changes, then reliability of verification is improved, but time consumption increases

Engineering Contradiction:
Improveverification reliabilityVSAvoidtest execution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the entire test suite into smaller subsets based on binary code change analysis. By dividing tests into groups associated with specific binary code blocks, only the relevant subsets needing verification are executed, rather than running the complete test suite. This segmentation maintains verification reliability for changed areas while reducing overall execution time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by executing only the necessary portion of the test suite rather than the entire suite. By identifying and running only those tests associated with modified binary code blocks, the system performs sufficient verification for the changed areas without the excessive time cost of executing all tests, achieving optimal balance between reliability and efficiency.

Inventive Principle:
Principle #16Partial or excessive action

2Measurement precision

If source code access is required for impact analysis, then test selection accuracy is improved, but ease of operation deteriorates

Engineering Contradiction:
Improvetest selection accuracyVSAvoidaccess requirement
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent creates a copy or representation of source code information in the form of binary code blocks that can be analyzed without accessing the actual source code. By working with binary representations and metadata that capture the essential structure and change information, the system achieves test selection accuracy comparable to source code analysis while eliminating the need for source code access, thus improving ease of operation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11507495B2System and method for test impact analysis of computer programs
Publication Date: 2022.11.22 PARASOFT CORP
  • US11507495B2 patent drawing
  • US11507495B2 patent drawing
  • US11507495B2 patent drawing

AI summary

System and method for testing changes to binary code of a computer program include: collecting test coverage data from an executed set of tests of an original computer program; calculating a baseline report containing correlations between the executed set of tests and blocks of binary code of the original computer program; determining binary code changes between the original computer program and a modified version of the computer program; identifying one or more tests to be executed for verifying the binary code changes.