Regression Testing via Call Path Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software update regression testing methods often focus excessively on changed functions, neglecting collateral functions and may be inefficient due to redundancies and long execution times.

Innovation Solution

A method that identifies changed and collateral software functions, maps them to test scripts, and executes a common test script to verify functionality, optimizing regression testing by reducing redundancy and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the algorithm selects scripts based on maximum line coverage of changed software functions, then the focus on changed functions is improved, but collateral functions are neglected and test coverage is incomplete

Engineering Contradiction:
Improvetest coverage accuracyVSAvoidcollateral function verification
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent segments the test script selection process into two distinct phases: first identifying scripts for changed functions using line coverage, then separately identifying scripts for collateral functions through call path analysis. This segmentation ensures both changed and collateral functions receive appropriate test coverage without one dominating the other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces call path analysis as an intermediary mechanism that bridges the gap between changed functions and collateral functions. By analyzing the call paths originating from changed functions, the system automatically identifies collateral functions that may be affected, ensuring comprehensive test coverage without manual intervention.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the algorithm executes a comprehensive set of test scripts to ensure full coverage, then test completeness is improved, but execution time increases and redundancies are introduced

Engineering Contradiction:
Improvetest completenessVSAvoidtest execution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges the test script sets for changed functions and collateral functions into a single unified test execution plan. By combining these sets and identifying common scripts, the system eliminates redundant executions while maintaining comprehensive coverage of both changed and collateral functions, thereby reducing overall execution time.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent changes the selection parameters from purely line-based coverage metrics to a hybrid approach that incorporates call path analysis results. This parameter change enables the system to prioritize scripts that cover both changed and collateral functions, optimizing the balance between test completeness and execution efficiency.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the algorithm includes all potential test scripts to ensure no function is missed, then test thoroughness is improved, but script redundancies increase and efficiency decreases

Engineering Contradiction:
Improvefunction verification thoroughnessVSAvoidtesting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and removes redundant test scripts from the combined test set by identifying scripts that are common to both changed and collateral function coverage. This extraction process eliminates unnecessary duplications while preserving the thoroughness of function verification, thereby improving testing efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

4Ease of operation

If the algorithm focuses exclusively on changed software functions, then the specificity of testing is improved, but collateral functions affected by changes are neglected

Engineering Contradiction:
Improvetest selection simplicityVSAvoidcollateral function coverage
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent performs preliminary call path analysis before finalizing the test script selection. By proactively identifying collateral functions through call path tracing and incorporating their associated scripts into the test set, the system ensures comprehensive coverage without complicating the overall test selection process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10430318B1Systems and methods for efficiently performing regression testing on software updates
Publication Date: 2019.10.01 JUNIPER NETWORKS INC
  • US10430318B1 patent drawing
  • US10430318B1 patent drawing
  • US10430318B1 patent drawing

AI summary

The disclosed method may include (1) identifying a software update that includes at least one software function that has changed since a previous software update, (2) determining, based at least in part on the software update, one or more call paths that include (A) the software function that has changed since the previous software update and (B) at least one additional software function, (3) mapping the changed software function to one or more test scripts, (4) mapping the additional software function to one or more additional test scripts, (5) identifying at least one test script that is commonly mapped to both the changed software function and the additional software function, and then (6) performing a regression test by executing the test script that is mapped to both the changed software function and the additional software function. Various other systems, methods, and computer-readable media are also disclosed.