Test Cycle Reduction with Call-Graph-Based Test Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Continuous integration of software involves lengthy and resource-intensive test cycles due to the execution of entire test plans, which waste computing resources and developer time.
Innovation Solution
A system that intelligently selects a subset of tests from a full test plan based on changed or modified code, using a call graph to determine which tests to execute, reducing the number of tests required.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire test plan is executed for each test cycle, then test coverage and reliability are ensured, but test cycle time and computing resource consumption increase significantly
Solution Approach 1:
The test plan is segmented into individual test cases, and only the relevant subset of tests is executed based on code changes. The system divides the full test plan into selectable units and intelligently chooses which units to run, rather than executing the entire plan every time.
Solution Approach 2:
Instead of executing the complete test plan (excessive action), the system performs partial testing by selecting only the necessary tests based on code change analysis. This reduces testing effort to the minimum required while maintaining adequate coverage.
2Reliability
If the entire test plan is executed for each test cycle, then all potential defects are detected, but computing resource consumption increases
Solution Approach 1:
The test plan is divided into discrete test cases that can be individually selected for execution. Based on code change analysis, only the segmented tests relevant to changed code are executed, reducing overall computing resource consumption while maintaining effective defect detection.
Solution Approach 2:
The system changes the execution parameter from 'all tests' to 'selected tests' based on code change detection. By analyzing which code modules were modified, the system dynamically adjusts the test execution scope to match the actual changes, optimizing resource usage.
3Reliability
If the entire test plan is executed, then complete testing is performed, but developer time and productivity are reduced
Solution Approach 1:
The system performs partial testing rather than complete testing by executing only the subset of tests relevant to code changes. This reduces the time developers wait for test results and improves productivity while maintaining sufficient testing completeness for the changed code.
Solution Approach 2:
The system performs preliminary analysis of code changes to determine which tests need to be executed before actually running the tests. This preliminary action filters out unnecessary tests and allows developers to understand the testing scope in advance, reducing overall time consumption.
Data Source
AI summary
A system that automatically reduces test cycle time to save resources and developer time. The present system selects a subset of tests from a full test plan that should be selected for a particular test cycle, rather than running the entire test plan. The subset of tests is intelligently selected using metrics such as tests associated with changed code and new and modified tests.


