Commit Clustering for Faster Build and Integration Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The accumulation of numerous commits in software development leads to prolonged build and test run times, increased risk of integration errors, and reduced software quality due to untested interactions, particularly in projects with short release cycles.

Innovation Solution

A method that clusters and ranks commits based on specific criteria, performs integration tests on each cluster, and releases only those that pass all tests, while re-clustering and re-testing rejected commits, ensuring a reliable and efficient verification process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of commits between builds is increased, then the productivity and innovation power are improved, but the build and test run times are prolonged and integration errors increase

Engineering Contradiction:
Improveinnovation powerVSAvoidbuild and test run times
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the large set of commits into multiple smaller batches, processing them in parallel or sequential stages. This allows the build and test system to handle manageable portions of commits simultaneously, reducing the time each batch spends in verification while maintaining overall throughput and innovation pace.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary filtering and prioritization of commits before full integration testing. By pre-processing commits to identify high-risk or high-priority changes, the system can apply more rigorous testing only where necessary, reducing overall test run time while maintaining quality assurance for critical innovations.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the number of commits between builds is increased, then the productivity is improved, but the reliability of integration decreases

Engineering Contradiction:
Improvecommit frequencyVSAvoidintegration reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements continuous feedback mechanisms where test results from each commit batch immediately inform subsequent processing decisions. Failed tests trigger automatic feedback loops that identify problematic commits, allowing the system to maintain high commit frequency while ensuring integration reliability through real-time quality verification and corrective actions.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

By dividing commits into smaller, manageable batches with intermediate verification points, the patent enables granular tracking of integration reliability. Each segment can be independently verified and rolled back if necessary, maintaining overall system reliability even with high overall commit throughput.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If the number of tests is reduced, then the build and test run times are decreased, but the quality of software decreases

Engineering Contradiction:
Improvetest run timesVSAvoidsoftware quality
Core Design Contradiction:
Loss of timeVSManufacturing precision

Solution Approach 1:

The patent applies different testing strategies to different commits based on their characteristics, risk profiles, and priority levels. High-risk or critical commits receive comprehensive testing, while lower-risk changes undergo streamlined verification. This local differentiation maintains software quality for important changes while reducing overall test time through selective optimization.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements a tiered testing approach where not all commits receive the full suite of tests. Critical paths and high-priority commits receive exhaustive testing, while non-critical changes receive partial testing sufficient to catch obvious defects. This selective application of testing resources maintains quality where it matters most while reducing unnecessary test overhead.

Inventive Principle:
Principle #16Partial or excessive action

4Loss of time

If commits are clustered and processed in batches, then the build and test run times are reduced, but the device complexity increases

Engineering Contradiction:
Improveverification timeVSAvoidclustering and sorting complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent uses parameter-based clustering where commits are grouped according to measurable attributes such as file types, change magnitude, author, or risk classification. By changing the grouping parameters dynamically based on commit characteristics, the system achieves efficient batching without requiring complex manual intervention, balancing verification speed with manageable processing complexity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12411685B2Computer-implemented method for verifying a plurality of commits
Publication Date: 2025.09.09 SIEMENS AG
  • US12411685B2 patent drawing
  • US12411685B2 patent drawing
  • US12411685B2 patent drawing

AI summary

A computer-implemented method, system and computer program product for verifying a plurality of commits includes the steps: providing the plurality of commits and the master codebase as input data set; combining the plurality of commits and the master codebase into a temporary codebase; performing a plurality of integration tests on the basis of the temporary codebase; releasing and providing the temporary codebase as an adapted master codebase if successful; if at least one integration test fails: generating a plurality of clusters and continuing with method steps; sorting the plurality of clusters on the basis of a ranking criterion; for each cluster of the sorted plurality of clusters: combining the plurality of commits; performing the plurality of integration tests; releasing and providing the temporary codebase; rejecting the selected cluster and repeating; and. repeating using a different clustering criterion.