Commit Clustering for Faster Build and Integration Testing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If the number of commits between builds is increased, then the productivity is improved, but the reliability of integration decreases
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.
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.
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
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.
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.
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
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.
Data Source
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.


