Code Change Analysis Optimizing Software Test Suites
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software development cycles with short release cycles pose challenges in releasing high-quality software builds on time due to inefficient manual and automated testing processes, particularly in identifying and optimizing test suites through source code change analysis, which often results in inaccurate reporting and excessive storage needs.
Innovation Solution
A method and system that compare a current software version to a reference version to identify modified elements, analyze code coverage reports to distinguish functional from non-functional changes, and generate an optimized test suite comprising relevant test cases for the current version, thereby reducing testing efforts and storage requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If source code change analysis is performed to identify impacted test cases, then testing time is reduced, but measurement precision deteriorates due to inaccurate reporting of impacted and un-impacted test cases
Solution Approach 1:
The patent segments the test case impact analysis into distinct categories: definitely impacted, possibly impacted, and un-impacted test cases. This segmentation allows the system to provide differentiated levels of analysis depth for different test case types, improving both speed and accuracy by focusing detailed analysis only where necessary.
Solution Approach 2:
The patent applies local quality by providing different analysis depths for different test cases based on their impact level. Definitely impacted test cases receive comprehensive analysis with high precision, while un-impacted test cases are quickly identified with minimal analysis, optimizing the balance between speed and accuracy across the entire test suite.
2Measurement precision
If complete test suite optimization is performed, then testing accuracy is improved, but loss of time increases due to very longer wait time for reports
Solution Approach 1:
The patent implements partial action by performing complete analysis only on test cases that are definitely or possibly impacted by code changes, while using faster heuristic methods for un-impacted test cases. This selective approach maintains high accuracy for relevant test cases while significantly reducing overall report generation time.
Solution Approach 2:
The patent uses periodic action by implementing a two-phase analysis process: first a quick initial analysis to identify definitely impacted test cases, then a more detailed periodic analysis for possibly impacted cases. This staged approach balances speed and comprehensiveness.
3Reliability
If build and test case traceability information is stored for analysis, then test suite optimization quality is improved, but storage requirements increase due to redundant information
Solution Approach 1:
The patent extracts only the essential traceability information needed for impact analysis, such as dependencies between code elements and test cases, rather than storing complete build and test case metadata. This extraction approach maintains analysis quality while significantly reducing storage requirements by eliminating redundant information.
Solution Approach 2:
Instead of storing complete traceability information and filtering what's needed, the patent inverts the approach by storing only the essential dependency relationships and deriving additional information as needed during analysis. This reduces storage burden while maintaining optimization quality.
Data Source
AI summary
The present disclosure relates to system(s) and method(s) for detecting change in software code of elements in a current version associated with a software application as compared to a reference version of the software application. The system and method further determines whether the change in the software code of the elements is a functional change or a non-functional change. The system and method also provides an optimized test suite for testing the current version of the software application, in order to test the elements with functional change, in the current version.


