IP Library Granted Patent US 10,055,336
Granted Patent B1
US 10,055,336 · App. 15/191,080 · Granted Aug 21, 2018

Computer implemented system and method and computer program product for testing a software component by simulating an interface to a computing component using randomized network packet information

Inventors: Steven R Hart (Garner, NC); Nicholas A Hansen (Willow Spring, NC); Joshua L Bonczkowski (Apex, NC); Pierre Ancelot (Ballincollig, IE)
Assignee: VCE IP Holding Company LLC
G06F11/3668G06F7/58G06F2207/58
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,055,336
App. No.
15/191,080
Granted
Aug 21, 2018
Kind
B1
Abstract

A system, method, and computer program product for testing a software component by simulating an interface to a computing component using pseudo-randomized responses to service requests. For example, the method may include receiving a service request from a software component to be tested. Responsive to receiving the service request from the software component, the method accesses a data store of service requests and responses thereto. The method determines that a matching service request is stored in the accessed data, a matching service request being a service request that matches the service request received from the software component. The method identifies a plurality of associated responses that are stored in the accessed data store, each which is stored in association with the matching service request. The method pseudo-randomly selects one of the plurality of associated responses, and sends the pseudo-randomly selected associated response to the software component for processing.

Claims (97)

1. A computer-implemented method for testing a software component by a simulated computing component interface using pseudo-randomized responses to service requests, the method comprising at the simulated computing component interface:

receiving a service request from a first software component;

responsive to receiving the service request from the first software component, accessing a data store of service requests and responses thereto, wherein the service requests and responses in the data store includes network packet information;

determining that a matching service request is stored in the accessed data store of service requests and responses thereto, wherein the matching service request is comprised of a service request that matches the service request received from the first software component;

identifying a plurality of associated responses that are stored in the accessed data store of service requests and responses thereto, each of the plurality of associated responses being stored in association with, the matching service request;

pseudo-randomly selecting one of the plurality of associated responses; and

sending the pseudo-randomly selected associated response to the first software component, and

wherein the method further comprises testing the first software component using the pseudo-randomly selected associated response.

2. The method of claim 1 , wherein the step of pseudo-randomly selecting one of the plurality of associated responses is further comprised of:

generating a hash value for each of the plurality of associated responses stored in association with the matching service request;

storing the each of the generated hash values in association with each of the plurality of associated responses;

generating a first value;

generating a first random number using the first value as a first seed value;

comparing the first random number with each of the stored hash values;

selecting a first one of the plurality of hash values that is closest to the first random number;

selecting a first one of the plurality of associated responses that is stored in association with the first selected hash value; and

sending the first one of the plurality of associated responses to the first software component.

3. The method of claim 2 , further comprising:

generating a second value;

selecting a second seed value, wherein the second seed value is one of the first selected hash value and the second value;

generating a second random number using the second selected seed value;

comparing the second random number with each of the stored hash values;

selecting a second one of the plurality of hash values that is closest to the second random number;

selecting a second one of the plurality of associated responses that is stored in association with the second selected hash value; and

sending the second one of the plurality of associated responses to the first software component.

4. The method of claim 3 , wherein the second one of the plurality of hash values is different from the first one of the plurality of hash values.

5. The method of claim 3 , wherein the step of selecting the second seed value is comprised of applying an exclusive OR operation to the first selected hash value and the second value.

6. The method of claim 3 , wherein the first value and the second value are time stamp values, further comprising:

generating the first random number using a first time stamp value as the first seed value; and

wherein the step of selecting the second seed value is comprised of applying an exclusive OR operation to the first selected hash value and the second time stamp value.

7. The method of claim 1 , wherein the service request is comprised of one or more network packets, each of the service requests and responses thereto stored in the data store are comprised of one or more network packets, the matching service request is comprised of one or more network packets, each of the plurality of associated responses is comprised of one or more network packets, further comprising generating the data store, wherein the step of generating the data store is comprised of:

capturing the network packet information, wherein the captured network packet information is comprised of a plurality of service requests, wherein each of the plurality of service requests is comprised of one or more network packets sent by a second software component to an interface of a computing component to be simulated, and a plurality of associated responses, wherein each of the plurality of associated responses is comprised of one or more network packets sent by the interface of the computing component to be simulated to the second software component in response to receiving each of the plurality of service requests from the second software component; and

storing the plurality of service requests and the plurality of associated responses in the data store of captured network packet information.

8. A computer implemented system for testing a software component by a simulated computing component interface using pseudo-randomized responses to service requests, the system comprising:

at least one processor; and

at least one memory storing computer program code, wherein the at least one memory and stored computer program code are configured, with the at least one processor, to cause the system to implement the simulated computing component interface to at least:

receive a service request from a first software component;

responsive to receiving the service request from the first software component, access a data store of service requests and responses thereto, wherein the service requests and responses in the data store includes network packet information;

determine that a matching service request is stored in the accessed data store of service requests and responses thereto, wherein the matching service request is comprised of a service request that matches the service request received from the first software component:

identify a plurality of associated responses that are stored in the accessed data store of service requests and responses thereto, each of the plurality of associated responses being stored in association with the matching service request; pseudo-randomly select one of the plurality of associated responses; and send the pseudo-randomly selected associated response to the first software component, and

wherein the at least one memory and stored computer program code are configured, with the at least one processor, to cause the system to farther test the first software.

9. The system of claim 8 , wherein the at least one memory and stored computer program code are configured, with the at least one processor, to pseudo-randomly select one of the plurality of associated responses by further causing the system to at least:

generate a hash value for each of the plurality of associated responses stored in association with the matching service request;

store the each of the generated hash values in association with each of the plurality of associated responses;

generate a first value;

generate a first random number using the first value as a first seed value;

comparing the first random number with each of the stored hash values;

select a first one of the plurality of hash values that is closest to the first random number;

select a first one of the plurality of associated responses that is stored in association with the first selected hash value; and

send the first one of the plurality of associated responses to the first software component.

10. The system of claim 9 , wherein the at least one memory and stored computer program code are configured, with the at least one processor, to further cause the system to at least:

generate a second value;

select a second seed value, wherein the second seed value is one of the first selected hash value and the second value;

generate a second random number using the second selected seed value;

compare the second random number with each of the stored hash values;

select a second one of the plurality of hash values that is closest to the second random number;

select a second one of the plurality of associated responses that is stored in association with the second selected hash value; and

send the second one of the plurality of associated responses to the first software component.

11. The system of claim 10 , wherein the second one of the plurality of hash values is different from the first one of the plurality of hash values.

12. The system of claim 10 , wherein the at least one memory and stored computer program code are configured, with the at least one processor, to select the second seed value by further causing the system to at least:

apply an exclusive OR operation to the first selected hash value and the second value.

13. The system of claim 10 , wherein the first value and the second value are time stamp values, wherein the at least one memory and stored computer program code are configured, with the at least one processor, to further cause the system to at least:

generate the first random number using a first time stamp value as the first seed value; and

selecting the second seed value by applying an exclusive OR operation to the first selected hash value and the second time stamp value.

14. The system of claim 8 , wherein the service request is comprised of one or more network packets, each of the service requests and responses thereto stored in the data store are comprised of one or more network packets, the matching service request is comprised of one or more network packets, each of the plurality of associated responses is comprised of one or more network packets, further comprising generating the data store, wherein the at least one memory and stored computer program code are configured, with the at least one processor, to further cause the system to at least:

capture the network packet information, wherein the captured network packet information is comprised of a plurality of service requests, wherein each of the plurality of service requests is comprised of one or more network packets sent by a second software component to an interface of a computing component to be simulated, and a plurality of associated responses, wherein each of the plurality of associated responses is comprised of one or more network packets sent by the inter face of the computing component to be simulated to the second software component in response to receiving each of the plurality of service requests from the second software component; and store the plurality of service requests and die plurality of associated responses in the data store of captured network packet information.

15. A computer program product for testing a software component by a simulated computing component interface using pseudo-randomized responses to service requests, the computer program product comprising at least one non-transitory computer-readable storage medium having program instructions stored thereon, which when executed by at least one processor, cause the at least one processor to perform a method comprising at the simulated computing component interface:

receiving a service request from a first software component;

responsive to receiving the service request from the first software component, accessing a data store of service requests and responses thereto, wherein the service requests and responses in the data store includes network packet information;

determining that a matching service request is stored in the accessed data store of service requests and responses thereto, wherein the matching service request is comprised of a service request that matches the service request received from the first software component;

identifying a plurality of associated responses that are stored in the accessed data store of service requests and responses thereto, each of the plurality of associated responses being stored in association with the matching service request;

pseudo-randomly selecting one of the plurality of associated responses; and

sending the pseudo-randomly selected associated response to the first software component, and

wherein the at least one non-transitory computer-readable storage medium has program instructions stored thereon, which when executed by the at least one processor, cause the at least one processor to perform the method further comprising testing the first software component using the pseudo-randomly selected associated response.

16. The computer program product of claim 15 , wherein the computer program product pseudo-randomly selects one of the plurality of associated responses by causing the at least one processor to perform a method further comprising:

generating a hash value for each of the plurality of associated responses stored in association with the matching service request;

storing the each of the generated hash values in association with each of the plurality of associated responses;

generating a first value;

generating a first random number using the first value as a first seed value;

comparing the first random number with each of the stored hash values;

selecting a first one of the plurality of hash values that is closest to the first random number;

selecting a first one of the plurality of associated responses that is stored in association with the first selected hash value; and

sending the first one of the plurality of associated responses to the first software component.

17. The computer program product of claim 16 , wherein the computer program product further causes the at least one processor to perform a method comprising:

generating a second value;

selecting a second seed value, wherein the second seed value is one of the first selected hash value and the second value;

generating a second random number using the second selected seed value;

comparing the second random number with each of the stored hash values;

selecting a second one of the plurality of hash values that is closest to the second random number;

selecting a second one of the plurality of associated responses that is stored in association with the second selected hash value; and

sending the second one of the plurality of associated responses to the first software component.

18. The computer program product of claim 17 , wherein the second one of the plurality of hash values is different from the first one of the plurality of hash values.

19. The computer program product of claim 17 , wherein the computer program product selects the second seed value by causing the at least one processor to perform a method further comprising:

applying an exclusive OR operation to the first selected hash value and the second value.

20. The computer program product of claim 17 , wherein the first value and the second value are time stamp values, wherein the computer program product further causes the at least one processor to perform a method comprising:

generating the first random number using a first time stamp value as the first seed value; and

wherein the step of selecting the second seed value is comprised of applying an exclusive OR operation to the first selected hash value and the second time stamp value.

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 →
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 →
MERGER Recorded Mar 25, 2020
From: VCE IP HOLDING COMPANY LLC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052224/0314 →
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 Nov 8, 2016
From: VCE COMPANY, LLC
To: VCE IP HOLDING COMPANY LLC
Reel/Frame 040576/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2016
From: HART, STEVEN R; HANSEN, NICHOLAS; BONCZKOWSKI, JOSHUA; ANCELOT, PIERRE
To: VCE COMPANY, LLC
Reel/Frame 039026/0867 →