Automated Code Upgrade Testing Using Recorded Traffic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional code testing techniques are inadequate for identifying bugs in application code executed in cloud infrastructure, especially when using static test data, and can be disruptive during live upgrades, failing to expose issues until deployment.

Innovation Solution

An information processing system with a copy data manager that maintains data versions and recorded incoming traffic, allowing for automated testing of upgraded applications using point-in-time copies of application data and corresponding traffic workloads, enabling non-disruptive live upgrades.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional code testing techniques using static test data are used, then the testing process is simple, but bugs and weaknesses in the application code are not exposed until after deployment

Engineering Contradiction:
Improvecode reliabilityVSAvoidtime to detect bugs
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by capturing and storing incoming traffic data before code upgrades are deployed. This recorded traffic is then used for automated testing of upgraded code, allowing bugs to be detected before they affect production systems, thus resolving the contradiction between code reliability and time to detect bugs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of incoming traffic data and stores them for later use in automated testing. These traffic copies serve as realistic test inputs that expose bugs in upgraded code without requiring live production traffic, enabling early detection of issues while maintaining simple testing procedures.

Inventive Principle:
Principle #26Copying

2Ease of operation

If conventional techniques are used for testing upgraded application code in live upgrades, then the process is straightforward, but the upgrades are unduly disruptive

Engineering Contradiction:
Improveease of code upgradeVSAvoiddisruption during upgrade
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The system captures incoming traffic data before code upgrades are applied and stores it for automated testing. This preliminary capture allows the upgraded code to be tested with realistic traffic patterns in advance, identifying potential issues before they cause disruption during live upgrades, thus maintaining ease of operation while reducing harmful disruptions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system introduces an intermediary automated testing process that uses recorded traffic data to evaluate upgraded code before deployment. This intermediary testing layer identifies potential problems without requiring disruptive manual testing or system interruptions, preserving ease of operation while minimizing upgrade disruptions.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If static test data is used for code testing, then the testing setup is simple, but various bugs and weaknesses may not be exposed until after deployment

Engineering Contradiction:
Improvetesting system complexityVSAvoidcode reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system copies actual incoming traffic data and stores it for use in automated testing of upgraded code. This approach maintains relatively simple testing setup procedures while significantly improving code reliability by using realistic traffic patterns that expose bugs and weaknesses that static test data would miss.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system changes the test data parameter from static predefined data to dynamic recorded traffic data. This parameter change maintains manageable system complexity while dramatically improving code reliability by using authentic traffic patterns that reveal real-world bugs and weaknesses in the application code.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10146675B1Automated code upgrade testing utilizing a copy data manager
Publication Date: 2018.12.04 EMC IP HLDG CO LLC
  • US10146675B1 patent drawing
  • US10146675B1 patent drawing
  • US10146675B1 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 and an upgrade controller. A data version repository stores data versions for each of one or more of the compute services implemented by the processing platform. One or more of the data versions are stored in association with respective sets of recorded incoming traffic of the corresponding compute service. The upgrade controller is configured to upgrade at least a portion of an application from a first code version to a second code version. In conjunction with the upgrade of the application, automated testing of the upgraded application is carried out by an automated code testing system using the given data version and its associated set of recorded incoming traffic.