Automated Code Testing Traversing Version Repositories

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional code testing techniques for applications in cloud infrastructure often fail to expose bugs and weaknesses until after deployment, using static test data that does not reflect dynamic variations in cloud data, leading to potential failures.

Innovation Solution

An information processing system with a copy data manager and code version repository that stores multiple data and code versions, utilizing an automated testing system with a search algorithm to traverse and test these versions, enabling continuous data refresh and non-disruptive live upgrade testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If static test data is used for code testing, then testing simplicity is maintained, but bug detection capability deteriorates

Engineering Contradiction:
Improvetesting simplicityVSAvoidbug detection capability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent implements dynamic test data generation that automatically adapts to the code being tested. The system creates test data on-demand based on code structure analysis, data type identification, and execution context, replacing static pre-fabricated test data with dynamically generated data that reflects actual runtime conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The testing system generates its own test data automatically without external intervention. The code analysis engine examines the target code, identifies required data types and structures, and autonomously generates appropriate test data, eliminating the need for manual test data preparation while improving bug detection effectiveness.

Inventive Principle:
Principle #25Self-service

2Reliability

If multiple code versions and data versions are traversed using a search algorithm, then bug detection capability is improved, but testing time increases

Engineering Contradiction:
Improvebug detection capabilityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary code analysis before executing tests, generating a structured representation of the code and identifying key test paths. This preliminary structuring allows the search algorithm to navigate version spaces more efficiently by focusing on critical code regions and data flows, reducing the overall testing time while maintaining comprehensive bug detection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent dynamically adjusts testing parameters such as search depth, data generation complexity, and version traversal scope based on code characteristics and testing progress. The system monitors execution feedback and adapts parameters in real-time to optimize the balance between thoroughness and speed, preventing unnecessary exploration of low-risk code paths.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If dynamic data versions are used for testing, then application code robustness is improved, but testing complexity increases

Engineering Contradiction:
Improveapplication code robustnessVSAvoidtesting complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent replaces manual test data creation and management processes with an automated code analysis engine. This engine programmatically generates test data based on code structure, automatically manages multiple data versions, and coordinates testing across different code and data version combinations, reducing human effort and complexity while improving code robustness verification.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10303464B1Automated code testing with traversal of code version and data version repositories
Publication Date: 2019.05.28 EMC IP HLDG CO LLC
  • US10303464B1 patent drawing
  • US10303464B1 patent drawing
  • US10303464B1 patent drawing

AI summary

An apparatus in one embodiment comprises at least one processing platform including a plurality of processing devices. The processing platform implements compute services for users and further comprises a copy data manager configured to maintain a data version repository. The data version repository stores under the control of the copy data manager multiple data versions for each of one or more of the compute services implemented by the processing platform. A code version repository stores multiple code versions for each of one or more of the compute services. Automated testing of one or more of the code versions for a given one of the compute services and one or more of the data versions for the given compute service is carried out by an automated code testing system applying a search algorithm to traverse both the one or more code versions and the one or more data versions.