IP Library › Granted Patent US 10,303,464
Granted Patent B1
US 10,303,464 · App. 15/393,636 · Granted May 28, 2019

Automated code testing with traversal of code version and data version repositories

Inventors: Kfir Wolfson (Beer Sheva, IL); Amit Lieberman (Kfar Saba, IL); Jehuda Shemer (Kfar Saba, IL); Assaf Natanzon (Tel Aviv, IL)
Assignee: EMC IP Holding Company LLC
G06F8/71G06F11/3664G06F11/3688
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,303,464
App. No.
15/393,636
Filed
Dec 29, 2016
Granted
May 28, 2019
Kind
B1
Art Unit
2192
USPC
717/122
Abstract

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.

Claims (45)

1. An apparatus comprising:

at least one processing platform comprising a plurality of processing devices and implementing compute services for users;

at least one of the processing devices comprising a physical processor coupled to a memory;

said at least one processing platform further comprising:

a copy data manager configured to maintain a data version repository;

wherein the data version repository is configured to store under the control of the copy data manager a plurality of data versions for each of one or more of the compute services implemented by the processing platform;

wherein a code version repository is configured to store a plurality of code versions for each of one or more of the compute services implemented by the processing platform;

the data versions for a given one of the compute services being separate from the code versions for that compute service and comprising respective instances of application data utilized by that compute service;

at least a subset of the data versions for the given compute service being stored in association with respective sets of recorded incoming traffic of the given compute service;

wherein automated testing of multiple ones of the code versions for the given compute service and multiple ones 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 multiple code versions and the multiple data versions; and

wherein the search algorithm is configured to permit specification of a start code version and a stop code version for an application of the given compute service and a start data version and a stop data version for the application of the given compute service.

2. The apparatus of claim 1 wherein said at least one processing platform comprises at least a first processing platform implementing the compute services and the copy data manager and at least a second processing platform separate from the first processing platform and implementing the automated code testing system.

3. The apparatus of claim 1 wherein the copy data manager is configured to control storage of at least a subset of the data versions for the given one of the compute services in the data version repository as respective point-in-time backup or replication copies of application data utilized by that compute service.

4. The apparatus of claim 1 wherein the copy data manager is configured to control storage of at least a subset of the data versions for the given one of the compute services in the data version repository as respective instances of live application data utilized by that compute service.

5. The apparatus of claim 1 wherein the search algorithm comprises a binary search algorithm comprising at least one of a code version bisection algorithm and a data version bisection algorithm.

6. The apparatus of claim 1 wherein the automated code testing system is configured to automatically determine one or more Boolean result criteria for the search algorithm.

7. The apparatus of claim 1 wherein the automated testing comprises utilizing a plurality of one-dimensional test planes which vary as a function of production time wherein each of the one-dimensional test planes comprises for a corresponding production time at least one point corresponding to a particular one of the code versions and at least one point corresponding to a particular one of the data versions.

8. The apparatus of claim 1 wherein the code versions stored in the code version repository and the data versions stored in the data version repository collectively provide a two-dimensional test plane and further wherein the automated testing comprises testing at least one of the code versions using multiple distinct ones of the data versions selected from the two-dimensional test plane.

9. The apparatus of claim 8 wherein the automated testing comprises traversing a path through at least a portion of the two-dimensional test plane and for each of a plurality of points in the path testing a corresponding one of the code versions utilizing a corresponding one of the data versions.

10. The apparatus of claim 1 wherein the set of recorded incoming traffic stored in association with one of the data versions characterizes a traffic workload processed by an application of the given compute service.

11. The apparatus of claim 1 wherein in conjunction with an upgrade of at least a portion of the application from a first code version to a second code version, automated testing of the upgraded application is carried out by the automated code testing system using a given data version and its associated set of recorded incoming traffic.

12. The apparatus of claim 1 wherein the copy data manager is configured to transfer the data versions utilized in the automated testing from the data version repository to the automated testing system.

13. The apparatus of claim 1 wherein the code version repository comprises a code version control repository associated with a code development system and wherein the automated testing system is configured to retrieve the code versions from the code version repository.

14. The apparatus of claim 1 wherein the search algorithm is selected from a plurality of available search algorithms based at least in part on a progression type of the code versions and the data versions.

15. A method comprising:

implementing compute services for users;

storing a plurality of data versions for each of one or more of the compute services;

storing a plurality of code versions for each of one or more of the compute services;

the data versions for a given one of the compute services being separate from the code versions for that compute service and comprising respective instances of application data utilized by that compute service;

at least a subset of the data versions for the given compute service being stored in association with respective sets of recorded incoming traffic of the given compute service; and

automatically testing multiple ones of the code versions for the given the compute service and multiple ones of the data versions for the given compute service by applying a search algorithm to traverse both the multiple code versions and the multiple data versions;

wherein the search algorithm is configured to permit specification of a start code version and a stop code version for an application of the given compute service and a start data version and a stop data version for the application of the given compute service; and

wherein the method is performed by at least one processing platform comprising a plurality of processing devices.

16. The method of claim 15 wherein the search algorithm comprises a binary search algorithm comprising at least one of a code version bisection algorithm and a data version bisection algorithm.

17. The method of claim 15 wherein the search algorithm is selected from a plurality of available search algorithms based at least in part on a progression type of the code versions and the data versions.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing platform causes said at least one processing platform:

to implement compute services for users;

to store a plurality of data versions for each of one or more of the compute services;

to store a plurality of code versions for each of one or more of the compute services;

the data versions for a given one of the compute services being separate from the code versions for that compute service and comprising respective instances of application data utilized by that compute service;

at least a subset of the data versions for the given compute service being stored in association with respective sets of recorded incoming traffic of the given compute service; and

to automatically test multiple ones of the code versions for the given compute service and multiple ones of the data versions for the given compute service by applying a search algorithm to traverse both the multiple code versions and the multiple data versions;

wherein the search algorithm is configured to permit specification of a start code version and a stop code version for an application of the given compute service and a start data version and a stop data version for the application of the given compute service.

19. The computer program product of claim 18 wherein the search algorithm comprises a binary search algorithm comprising at least one of a code version bisection algorithm and a data version bisection algorithm.

20. The computer program product of claim 18 wherein the search algorithm is selected from a plurality of available search algorithms based at least in part on a progression type of the code versions and the data versions.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2017
From: WOLFSON, KFIR; LIEBERMAN, AMIT; SHEMER, JEHUDA; NATANZON, ASSAF
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041065/0350 →
Cited By (1)
US 12,259,809