IP Library Granted Patent US 11,586,527
Granted Patent B2
US 11,586,527 · App. 17/246,600 · Granted Feb 21, 2023

Automated algorithmic verification in an embedded complex distributed storage environment

Inventors: Jeffrey Wilson (Franklin, MA); Mordechai Grutman (Newton, MA)
Assignee: Dell Products, L.P.
G06F11/3612
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 11,586,527
App. No.
17/246,600
Granted
Feb 21, 2023
Kind
B2
Abstract

A model of an algorithm to be tested is created based on the steps that the algorithm uses to implement a particular function. The model is used by an algorithm verification process to control execution of the application under test. Stubs (small pieces of code) are inserted into the application under test which are used to control execution of the algorithm to determine the result of execution of the algorithm at various locations. The remote stubs enable the testing framework to control execution of the application, stop execution of the application, view data structures associated with the application, freeze system behavior, induce multi-layered dependent sequences, analyze logs, change system flow based on test requests, examine internal data structures as part of the tests, and verify that each method and the combined results of the methods are as expected, based on the original definition of the application algorithm.

Claims (44)

1. A non-transitory tangible computer readable storage medium having stored thereon a computer program for automated algorithmic verification in an embedded complex distributed storage environment, the computer program including a set of instructions which, when executed by a computer, cause the computer to perform a method comprising the steps of:

creating a model of an algorithm to be tested, the model defining expected execution steps of the algorithm, and expected data structures and process states of the algorithm at the expected execution steps, the model being implemented as script configured to be used by an embedded subsystem automation test system to control execution of the algorithm during testing of the algorithm;

inserting stubs into the algorithm to enable execution of the algorithm to be controlled at the expected execution steps defined in the model, the stubs being small pieces of code that are able to be called by the script, but otherwise do not execute in connection with execution of the algorithm;

beginning execution of the algorithm;

using the stubs, by the embedded subsystem automation test system, to pause execution of the algorithm at one of the execution steps defined in the model and determine data structures and process states of the executing algorithm at the paused execution step; and

comparing the data structures and process states of the executing algorithm at the paused execution step with expected data structures and process states of the algorithm at the paused execution step specified by the model to determine if the algorithm has generated expected data structures and process states at the paused execution step.

2. The non-transitory tangible computer readable storage medium of claim 1 , wherein the model of the algorithm to be tested is based on steps that the algorithm uses to implement particular functions.

3. The non-transitory tangible computer readable storage medium of claim 1 , wherein communication between the embedded subsystem automation test system and stubs is implemented using system calls.

4. The non-transitory tangible computer readable storage medium of claim 1 , further comprising manipulating the data structures of the algorithm by the embedded subsystem automation test system.

5. The non-transitory tangible computer readable storage medium of claim 4 , wherein manipulating data structures comprises:

determining a condition of a first of the data structures to change;

setting a trigger condition for changing the determined condition;

allowing the algorithm to execute;

detecting compliance with the trigger condition; and

modifying the first data structure upon detecting compliance with the trigger condition.

6. The non-transitory tangible computer readable storage medium of claim 1 , wherein the step of comparing the data structures and process states of the executing algorithm at the paused execution step with expected data structures and process states of the algorithm at the paused execution step specified by the model, comprises:

identifying data structure and process states to be verified;

collecting data associated with execution of the algorithm;

preparing the collected data to be consumable by the embedded subsystem automation test system; and

notifying the embedded subsystem automation test system that the collected data is available.

7. The non-transitory tangible computer readable storage medium of claim 1 , further comprising determining, from the step of comparing the data structures and process states, that there is an error in the model of the algorithm.

8. The non-transitory tangible computer readable storage medium of claim 1 , further comprising determining, from the step of comparing the data structures and process states, that there is an error in the algorithm.

9. A method of automated algorithmic verification in an embedded complex distributed storage environment, comprising the steps of:

creating a model of an algorithm to be tested, the model defining expected execution steps of the algorithm, and expected data structures and process states of the algorithm at the expected execution steps, the model being implemented as script configured to be used by an embedded subsystem automation test system to control execution of the algorithm during testing of the algorithm;

inserting stubs into the algorithm to enable execution of the algorithm to be controlled at the expected execution steps defined in the model, the stubs being small pieces of code that are able to be called by the script, but otherwise do not execute in connection with execution of the algorithm;

beginning execution of the algorithm;

using the stubs, by the embedded subsystem automation test system, to pause execution of the algorithm at one of the execution steps defined in the model and determine data structures and process states of the executing algorithm at the paused execution step; and

comparing the data structures and process states of the executing algorithm at the paused execution step with expected data structures and process states of the algorithm at the paused execution step specified by the model to determine if the algorithm has generated expected data structures and process states at the paused execution step.

10. The method of claim 9 , wherein the model of the algorithm to be tested is based on steps that the algorithm uses to implement particular functions.

11. The method of claim 9 , wherein communication between the embedded subsystem automation test system and stubs is implemented using system calls.

12. The method of claim 9 , further comprising manipulating the data structures of the algorithm by the embedded subsystem automation test system.

13. The method of claim 12 , wherein manipulating data structures comprises:

determining a condition of a first of the data structures to change;

setting a trigger condition for changing the determined condition;

allowing the algorithm to execute;

detecting compliance with the trigger condition; and

modifying the first data structure upon detecting compliance with the trigger condition.

14. The method of claim 9 , wherein the step of comparing the data structures and process states of the executing algorithm at the paused execution step with expected data structures and process states of the algorithm at the paused execution step specified by the model, comprises:

identifying data structure and process states to be verified;

collecting data associated with execution of the algorithm;

preparing the collected data to be consumable by the embedded subsystem automation test system; and

notifying the embedded subsystem automation test system that the collected data is available.

15. The method of claim 9 , further comprising determining, from the step of comparing the data structures and process states, that there is an error in the model of the algorithm.

16. The method of claim 9 , further comprising determining, from the step of comparing the data structures and process states, that there is an error in the algorithm.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2021
From: WILSON, JEFFREY; GRUTMAN, MORDECHAI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056108/0012 →
Continuity (1)
Related Publication 20220350727A1 · Nov 3, 2022