Integration Build Prediction System Using Developer Metrics
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software development teams face challenges in predicting integration build failures between source components due to concurrent modifications in other components, making it difficult to determine when to test and whether integration builds will be successful.
Innovation Solution
A method that monitors integration builds, compares them with prior builds, and predicts the probability of a successful integration using integration and developer metrics, including data on check-ins, build times, and test success rates, to notify developers of necessary actions for debugging and testing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If development teams test their components against other components before integration, then integration build failures are reduced, but the complexity of coordinating tests across multiple teams increases
Solution Approach 1:
The system continuously monitors integration builds and compares them with prior builds to detect changes. When changes are detected, the system provides feedback to development teams about which components have been modified and which tests should be performed, enabling targeted testing rather than comprehensive coordination across all teams.
Solution Approach 2:
The system performs preliminary analysis of integration builds by comparing current builds with prior builds before actual integration occurs. This preliminary action identifies potential failure points and notifies teams in advance, allowing them to prepare appropriate tests before the integration build is executed.
2Reliability
If development teams continuously monitor and test all components, then integration failures are detected early, but the time and resources required for testing increase
Solution Approach 1:
Instead of requiring all development teams to continuously test all components, the system applies partial action by identifying only the specific components that have changed and notifying only the relevant teams to perform tests on affected integration points. This reduces the overall testing burden while maintaining detection effectiveness.
Solution Approach 2:
The system dynamically adjusts testing requirements based on actual changes detected in integration builds. When no changes are detected, no testing is required. When changes are detected, testing is triggered only for affected components. This dynamic approach optimizes the balance between early failure detection and time/resource consumption.
3Ease of manufacture
If development teams assume other components do not change, then the harness testing approach is simple to implement, but integration failures occur when other teams modify their components
Solution Approach 1:
The system maintains the simplicity of harness creation while adding a feedback mechanism that monitors integration builds for changes. When changes are detected in components that interact with the harness, the system notifies the development team to update their harness or perform additional tests, ensuring reliability without complicating the initial harness creation process.
Data Source
AI summary
Techniques are disclosed for predicting the probability of successfully building the software application whether an integration build between source components of a software application will be successful. An integration service executing on a server computer determines whether to test an integration build of source components of a software application. The integration service obtains metrics related to the developer of each component as well as any previous integration builds of the components. Based on the metrics, the integration service predicts a probability of a successful integration build of the source components. Based on the probability of a successful integration build, the integration service may notify a developer to perform an action to increase the likelihood of the integration build being successful.


