IP Library Granted Patent US 7,730,452
Granted Patent B1
US 7,730,452 · App. 11/264,799 · Granted Jun 1, 2010

Testing a component of a distributed system

Assignee: Hewlett-Packard Development Company, L.P.
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 7,730,452
App. No.
11/264,799
Filed
Nov 1, 2005
Granted
Jun 1, 2010
Kind
B1
Art Unit
2191
USPC
717/124
Abstract

In a method for testing a component of a distributed system, a first invocation request is sent to the component, where the first invocation request includes an identifier. A second invocation request is sent to a second component, where the second invocation request carries the identifier from the first invocation request. In addition, the second component switches behavior based upon the identifier, where the switching of behavior of the second component is employed to test the component.

Claims (64)

1. A method for testing a component of a distributed system, the method comprising steps performed by a processor of:

sending a first invocation request to the component, wherein the first invocation request includes an identifier;

sending a second invocation request to a second component, wherein the second invocation request carries the identifier from the first invocation request and wherein the second component is configured to interact with the component by emulating one or more behaviors predicted to occur during implementation of the component;

switching a behavior of the second component based upon the identifier; and

testing the component based upon an interaction between the component and the second component in response to the switch in behavior of the second component.

2. The method of claim 1 , further comprising:

appending the identifier to the first invocation request sent to the component; and

appending the identifier to the second invocation request sent to the second component.

3. The method of claim 1 , further comprising:

returning a response to the component in accordance with the switch in behavior of the second component; and

evaluating a response from the component to thereby test the component based upon the switch in behavior of the second component.

4. The method of claim 1 , further comprising:

initiating a test on the component with a test suite configured to test interactions between the component and the second component, wherein the second component comprises a stub component.

5. The method of claim 4 , further comprising:

providing a test suite identifier and a test case identifier in the test suite, wherein the identifier comprises the test suite identifier and the test case identifier; and

sending the identifier to a run-time infrastructure during execution of a test case.

6. The method of claim 5 , further comprising:

in the run-time infrastructure, tracking calls made between the component and the stub component.

7. The method of claim 5 , further comprising:

receiving a third call from the component to a third component, wherein the third call is sent from the component in response to a switch in behavior of the stub component;

appending the identifier to the third call;

switching a behavior of the third component based upon the identifier.

8. The method of claim 7 , further comprising:

returning a response to the component in accordance with the switch in behavior of the third component; and

evaluating a response from the component to thereby test the component based upon the switch in behavior of the second component and the third component.

9. A method for switching behavior of a stub component in a distributed system, the method comprising steps performed by a processor of:

maintaining a relationship between a component under test and an identifier, wherein the identifier is configured to provide instructions to the stub component;

tracking communications between the component under test and the stub component using the identifier, wherein the stub component is configured to interact with the component under test by emulating one or more behaviors predicted to occur during implementation of the component under test; and

using the identifier to evaluate conditions in the stub component such that a behavior of the stub component switches depending on the identifier to vary an interaction between the stub component and the component under test.

10. The method of claim 9 , wherein the identifier comprises a test suite identifier and a test case identifier, the method further comprising:

sending the identifier to a run-time infrastructure during execution of a test case, and wherein the step of tracking communications further comprises employing the run-time infrastructure to track communications between the component under test and the stub component.

11. A method for building a testing system for testing a component in a distributed system containing stub components, said method comprising steps performed by a processor of:

specifying the component and associated stub components, wherein the component is configured to be tested based upon an interaction of the component and the associated stub components based upon a switch in behavior of the associated stub components, and wherein the associated stub components are configured to interact with the component by emulating one or more behaviors predicted to occur during implementation of the component;

producing helper classes, proxies and stubs configured to enable remote accessibility between the component and the associated stub components;

providing a test suite having identifiers;

providing implementations for the stub components for the test suite; and

building the testing system in the form of at least one executable code, wherein the executable code is based upon the component, the associated stub components, the helper classes, proxies and stubs, the test suite, and the implementations for the stub components.

12. The method of claim 11 , further comprising:

running the testing system such that the identifier is propagated through a run-time infrastructure configured to track propagation of calls made in the testing system.

13. A computer readable medium on which is embedded one or more computer programs, said one or more computer programs implementing a method for testing a component of a distributed system, said one or more computer programs comprising a set of instructions for:

appending an identifier to a first call sent to the component;

receiving a second call sent from the component to a second component, wherein the second component is configured to interact with the component during a test of the component by emulating one or more behaviors predicted to occur during implementation of the component;

appending the identifier to the second call, wherein the identifier is configured to provide instructions to the second component;

in the second component, responding to the second call in a manner dependent upon the identifier; and

testing the component based upon an interaction between the component and the second component in response to the response of the second component to the identifier.

14. The computer readable medium according to claim 13 , the one or more computer programs further comprising a set of instructions for:

initiating a test on the component with a test suite configured to test interactions between the component and the another component;

providing a test suite identifier and a test case identifier in the test suite, wherein the identifier comprises the test suite identifier and the test case identifier; and

sending the identifier to a run-time infrastructure during execution of a test case.

15. The computer readable medium according to claim 14 , the one or more computer programs further comprising a set of instructions for:

returning the response from the second component to the component; and

evaluating a response from the component to thereby test the component.

16. A computer readable medium storing code for a testing system, said code for the testing system comprising:

code identifying a component under test;

code identifying a test suite having an identifier;

code identifying a stub component configured to interact with the component under test by emulating one or more behaviors predicted to occur during implementation of the component under test; and

code identifying a run-time infrastructure configured to append the identifier to calls sent from the component under test to the stub component, wherein the stub component switches behavior based on the identifier received from the component under test, and wherein the component under test is configured to be tested based upon an interaction between the component under test and the stub component in response to the switch in behavior of the stub component.

17. The computer readable medium of 16 , wherein the identifier further comprises a test suite identifier and a test case identifier and wherein the stub component is configured to evaluate the test case identifier to switch behavior.

18. The computer readable medium of 17 , wherein the code identifying the stub component is configured to return a response to the component in accordance with the switch in behavior of the stub component, and wherein the code identifying the component responds based upon the switch in behavior of the stub component.

19. The computer readable medium of 16 , wherein the code identifying the run-time infrastructure is further configured to maintain a sequence of calls from the component under test and responses to the component under test.

20. A testing system comprising:

means for maintaining a relationship between a component under test and an identifier of a test suite, wherein the identifier is configured to provide instructions to the component;

means for tracking communications between the component under test and a stub component using the identifier, wherein the stub component is configured to interact with the component under test by emulating one or more behaviors predicted to occur during implementation of the component under test; and

means for evaluating a condition in the stub component such that a behavior of the stub component varies depending on the identifier to vary an interaction between the stub component and the component under test.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2005
From: LI, JUN; MOORE, KEITH E.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 017188/0435 →