ML Feature Tags for Selective Code Testing in Version Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In version control systems, especially those with large and complex software architectures, updating and testing individual components can be time-consuming and inefficient, as existing methods require separate testing of all components, even if only a few are affected by the updates, leading to wasteful resource usage.
Innovation Solution
A method using machine learning to identify and automatically test only the subset of codes in a version control system that are functionally affected by updates, by mapping updates with trained feature labels and performing verification jobs on those specific codes, thus reducing unnecessary testing across the entire system.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate test jobs are performed for each component update, then comprehensive testing coverage is achieved, but time consumption increases significantly
Solution Approach 1:
The patent segments the testing process by dividing the code repository into multiple components and associating each component with specific feature labels. When an update occurs, only the affected components and their related test jobs are identified and executed, rather than running all test jobs for all components. This segmentation enables selective testing that maintains comprehensive coverage of affected areas while reducing overall time consumption.
2Reliability
If entire suite testing is performed for all components, then complete system verification is ensured, but resource wastage occurs on unaffected components
Solution Approach 1:
The patent applies local quality by making different parts of the testing system operate with different intensities based on their relevance to the update. Feature labels enable the system to identify which components have been locally affected by an update, and consequently, only those specific components undergo verification. This localized approach ensures that system verification is complete for affected areas while avoiding resource wastage on unaffected components.
3Measurement precision
If feature labels are manually assigned to code components, then accurate functional mapping is achieved, but operation complexity increases
Solution Approach 1:
The patent implements self-service by enabling the system to automatically generate and assign feature labels to code components without requiring manual intervention. The machine learning model analyzes code changes and automatically determines which feature labels apply to which components, thereby achieving accurate functional mapping while eliminating the operational complexity of manual label assignment.
4Measurement precision
If individual test jobs are executed separately for each update, then precise defect localization is achieved, but productivity decreases
Solution Approach 1:
The patent merges multiple individual test jobs into a coordinated testing workflow based on feature label associations. When an update affects multiple components, the system identifies all related test jobs through feature labels and executes them in an integrated manner. This merging maintains precise defect localization capability while improving productivity by reducing the overhead of separate job execution and enabling parallel processing of related tests.
Data Source
AI summary
Devices, systems, methods, and techniques are disclosed herein for automatic testing with feature tags trained by machine learning for updates in version control systems. An example method includes deploying multiple updates in a code repository of a version control system and mapping the multiple updates using multiple feature labels. The multiple feature labels have been trained in a machine learning model to represent corresponding functional features. A processing device then identifies a subset of codes in the code repository. The subset of codes in the code repository is functionally affected by the multiple updates and is identified based on the multiple feature labels. The processing device performs a verification job on each of the subset of codes in the code repository in preparation for committing the multiple updates in the code repository.


