Code Change Analysis Optimizing Software Test Suites

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvetesting timeVSAvoidaccuracy of test case impact reporting
Core Design Contradiction:
Loss of timeVSMeasurement precision

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

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

Engineering Contradiction:
Improvetest case impact analysis accuracyVSAvoidreport generation time
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #16Partial or excessive action

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.

Inventive Principle:
Principle #19Periodic action

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

Engineering Contradiction:
Improvetest suite optimization qualityVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS9652366B2Code change analysis to optimize testing lifecycle
Publication Date: 2017.05.16 HCL TECH LTD
  • US9652366B2 patent drawing
  • US9652366B2 patent drawing
  • US9652366B2 patent drawing

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.