このアプリケーションの一部のコンテンツは現時点では利用できません。
このような状況が続く場合は、にお問い合わせくださいフィードバック & お問い合わせ
1. (WO2017035812) REPLICATING CHAIN OF AGENTS
Document

Description

Title of Invention 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039  

Claims

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15  

Drawings

0001   0002   0003   0004   0005  

Description

Title of Invention : REPLICATING CHAIN OF AGENTS

BACKGROUND

[0001]
Legacy software testing systems and automated test frameworks are often built with the assumption of ″local access″ or the ability to work directly with the system under test (SUT) . Even for newer testing systems, local access models are preferred because systems and frameworks can become overly complex when they have to deal with features that are not part of the test matter (e.g., network security) . Accordingly, such tests are run either directly on the SUT, on the same subnet as the SUT, and in some case the same physical switch as the SUT in order to have local access.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002]
The following detailed description references the drawings, wherein:
[0003]
FIG. 1 is a block diagram of an example computing device for replicating a chain of agents;
[0004]
FIG. 2 is a block diagram of an example system computing device including a computing device for replicating a chain of agents;
[0005]
FIG. 3 is a flowchart of an example method for execution by a computing device for replicating a chain of agents;
[0006]
FIG. 4 is a flowchart of an example method for execution by a computing device for executing a test plan in a hierarchy of agents; and
[0007]
FIG. 5 is an example hierarchy of agents for executing a test plan.

DETAILED DESCRIPTION

[0008]
As described above, software testing systems often use local access to work with SUTs. For example, testing infrastructure can be locally configured at each testing location, where tests are performed with local access and then consolidated manually. In another example, network tunnels can be used to provide access to SUTs. In this example, the tunnels provide access to a specific set of SUTs and would be updated to test a different set of SUTs. In yet another example, virtual local area networks (VLANs) can be used to circumvent physical and geographical limitations; however, there may still be multiple, isolated networks in this scenario that are protected by firewalls.
[0009]
As described herein, a testing agent with the ability to self-replicate to form chains of control is able to execute a test plan without local access by mimicking human access patterns. A test plan may be a sequence of activities (e.g., configuration hardware, installing an operating system or software, automated tests, analyzing results, generating reports, etc. ) that carries out a test or a series of tests. In some cases, test plans include nested test plans. A SUT is the entity being tested by the test plan and is not necessarily a ″system″ in all cases but this term is still widely used. A job control file (JCF) is a file representing a test plan, which the agents consume.
[0010]
Each agent acts as a node in a test hierarchy with an ″origination node″ and one or more ″target nodes, ″ which specifies where the node was replicated from and where the node will replicate to, respectively. The ability to self-replicate and the test hierarchy are used to establish a test plan that allows for a chain of agents to form and execute test activities on SUTs outside of the original network where the testing infrastructure resides.
[0011]
In some examples, an agent is initiated on a computing device, where the agent is a self-replicating process to process a test plan. Then, the agent replicates on a target device of a number of server devices to generate a first replicated agent, where the target device further replicates the first replicated agent on a grandchild device to generate a second replicated agent. Test results of the test plan are collected from the server devices, where the test plan is executed on the server devices according to a test hierarchy.
[0012]
Referring now to the drawings, FIG. 1 is a block diagram of an example computing device 100 for replicating a chain of agents. The example computing device 100 may be a server, desktop computer, notebook computer, tablet, or other device suitable for replicating a chain of agents as described below. In the example of FIG. 1, networking device 100 includes processor 110, interfaces 115, and machine-readable storage medium 120.
[0013]
Processor 110 may be one or more central processing units (CPUs) , microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120. Processor 110 may fetch, decode, and execute instructions 122, 124, 126 to enable replicating a chain of agents, as described below. As an alternative or in addition to retrieving and executing instructions, processor 110 may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of instructions 122, 124, 126.
[0014]
Interfaces 115 may include a number of electronic components for communicating with server devices. For example, interfaces 115 may be wireless interfaces such as wireless local area network (WLAN) interfaces, Bluetooth, or other suitable wireless interfaces and/or physical interfaces such as Ethernet interfaces, Universal Serial Bus (USB) interfaces, external Serial Advanced Technology Attachment (eSATA) interfaces, or any other physical connection interface suitable for communication with end devices. In operation, as detailed below, interfaces 115 may be used to send and receive data to and from other server devices.
[0015]
Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, machine-readable storage medium 120 may be, for example, Random Access Memory (RAM) , Content Addressable Memory (CAM) , Ternary Content Addressable Memory (TCAM) , an Electrically-Erasable Programmable Read-Only Memory (EEPROM) , flash memory, a storage drive, an optical disc, and the like. As described in detail below, machine-readable storage medium 120 may be encoded with executable instructions for enabling replicating a chain of agents.
[0016]
Agent initiating instructions 122 initiates a root agent for a test plan. The root agent may be initiated on computing device 100 to manage the execution of the test plan on a number of server devices. Specifically, the root agent is the root node of a test hierarchy of agents that are to be replicated on the server devices. The root agent may be configured with the JCF that is to be distributed to agents in the tree hierarchy.
[0017]
Agent replication instructions 124 replicates the root agent as child agents on server devices. Initially, the root agent may determine that activities in the test plan should be performed by its child agents. If the root agent determines that the child agents do not exist, the root agent self-replicates on target server devices and then passes control to the target server devices to perform the activities of the test plan. In some cases, the root agent is only able to directly contact its child agents in the tree hierarchy. Each of the child agents may similarly self-replicate and create grand-child agents that the root agent can access via the child agents.
[0018]
Test result collecting instructions 126 collects test results from the server devices in the test hierarchy. As the activities of the test plan are completed, the agents pass control back up the test hierarchy toward the root agent. Accordingly, the root agent regains control after the activities in the test plan have been completed and can then provide the test results of the activities to an administrator for review.
[0019]
FIG. 2 is a black diagram of an example system 200 including a computing device 202 in communication with server devices 270A, 270N over a network 245 for replicating a chain of agents. Similar to computing device 100 of FIG. 1, computing device 202 may be a server, distributed node, desktop computer, or any other device suitable for executing the functionality described below. As detailed below, computing device 202 may include a series of modules 204-212 for providing functionality for system 200. As shown, computing device 202 includes interface module 204, test plan module 206, agent module 208, toolset 210, and root agent 212.
[0020]
Interface module 204 may manage communications with server devices (e.g., server device A 270A, server device N 270N, etc. ) . Specifically, interface module 204 may initiate connections over network 245 with the server devices 270A, 270N and then transmit data to and from the server devices 270A, 270N.
[0021]
Test plan module 206 manages test plans on computing device 202. For example, test plan module 206 can provide a user interface and/or advanced programming interface (APl) to administrators for creating and modifying test plans. In this example, the user interface of test plan module 206 can be used to assign activities of the test plan to agents in a test hierarchy. Test plan module can also be used to create a JCF based on a test plan. Test plan module 208 can also be used to create test hierarchies. Specifically, test plan module 208 can provide functionality for creating a test hierarchy by, for example, allowing an administrator to specify relationships between agents for executing activities in a test plan.
[0022]
Agent module 208 manages root agents of computing device 202. Specifically, agent module 208 can initiate root agent 212 and load it with the appropriate JCF of a test plan 212. Agent module 208 may provide a user interface that can be used to initiate or schedule a root agent 212 for executing the test plan 212.
[0023]
Toolset 210 includes tools that can be used by agents to perform test plan activities. Examples of tools include, but are not limited to, operating system images, hardware drivers, reporting modules, automated testing scripts, etc. Each agent in a test hierarchy may be loaded with a subset of the toolset according to the test plan. For example, if a particular agent is configured to perform an operating system installation activity, the agent can be loaded with an operating system image.
[0024]
Root agent 212 is the root node of a test hierarchy for executing a test plan 214. Root agent 212 initiates the test plan by self-replicating to server devices 270A, 270N and then passing control to the replicated agents 274A. Control travels down and up the tree hierarchy as the test plan 214 is executed, where control ultimately ends with the root agent 212 after the test plan 214 is completed. When root agent 212 self-replicates, root agent 212 provides the test plan 276A, which is a copy of test plan 214, and appropriate tools 278A from the toolset 210 to the replicated agent 274A. In some cases, root agent 212 can transmit modifications to the test plan 214 to other agents (e.g., replicated agent 274A) in the test hierarchy.
[0025]
Server devices 270A, 270N may be any server device (e.g., servers, HBA’s , storage arrays, networking devices, etc. ) accessible to computing device 202 over a network 245 (e.g., local area network (LAN) , wide area network (WAN) , Internet, etc. ) that is suitable for executing the functionality described below. As detailed below, each server device 270A, 270N may include a series of modules 272A-278A for providing computing services. Server devices 270A, 270N can be any number of servers at various physical locations.
[0026]
Similar to root agent 212, replicated agent 274 can self-replicate according to the test hierarchy. Replicated agent 274 can also propagate modifications to the test plan 214 down towards its children or up towards the root agent 212.
[0027]
FIG. 3 is a flowchart of an example method 300 for execution by a computing device 100 for replicating a chain of agents. Although execution of method 300 is described below with reference to computing device 100 of FIG. 1, other suitable devices for execution of method 300 may be used such as computing device 202 of FIG. 2. Method 300 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as computer readable medium 120 of FIG. 1, and/or in the form of electronic circuitry.
[0028]
Method 300 may start in block 305 and continue to block 310, where computing device 100 initiates a root agent for a test plan. Computing device 100 can manage the execution of the test plan on a number of server devices. In block 315, computing device 100 replicates the root agent as child agents on target server devices. The replication can occur according to a test hierarchy, where the root agent is the root node of the test hierarchy. The server devices with the child agents may also replicate to further server devices and so on according to the test hierarchy.
[0029]
In some cases, an agent that is self-replicating may need to discover the Iogin mechanism of the target device to which the agent is replicating. For example, the agent may initially discover the type of device (e.g., router, server, etc. ) and then use the appropriate Iogin mechanism for that type of device. In this example if the target device is a server, the agent may also discover the operating system of the server device so that the appropriate protocol can be used by the agent to log into the server device. In this manner, the agent acts replicates human access patterns when logging into the target device.
[0030]
In block 320, computing device 100 collects test results from the server devices in the test hierarchy. As agents are created on server devices, control is passed down the test hierarchy so that the agents can perform activities in the test plan. As the activities of the test plan are completed, the agents pass control back up the test hierarchy toward the root agent. Once the root agent regains control after the activities have been completed, computing device 100 can then process the test results of the activities for review by an administrator. Method 300 may then continue block 325, where method 300 may stop.
[0031]
FIG. 4 is a flowchart of an example method 400 for execution by a server device 270A for executing a test plan in a hierarchy of agents. Although execution of method 400 is described below with reference to server device 270A of FIG. 2, other suitable devices for execution of method 400 may be used. Method 400 may be implemented in the form of executable instructions stored on a machine-readable storage medium and/or in the form of electronic circuitry.
[0032]
FIG. 4 shows the decision tree for any non-root agents in a test hierarchy. In other words, method 400 could be executed on any of a number of server devices 270A, 270N of FIG. 2. Accordingly, the steps of method 400 are performed below by the “current agent, ” which is the agent in the test hierarchy that currently controls the execution of the test plan.
[0033]
Method 400 may start in block 405 and continue to block 410, where the current agent determines if there are more activities in the test plan to perform. If there are more activities to perform, the current agent determines if the next activity is a local activity in block 415. A local activity is an activity that should be performed by the current agent on its corresponding device. If the next activity is a local activity, the current agent performs the test activity in block 420 and then method 400 returns to block 410 to process any further activities.
[0034]
If the next activity is not a local activity, the current agent determines if there is a child agent available to perform the next activity in block 425. If a child agent is available, control is passed to the target server device to perform the next activity in block 435, which can then perform method 400 to further process the test plan. If a child agent isn’ t available, the current agent self-replicates onto a target server device to create the child agent in block 430 before passing control to the target server device in block 435.
[0035]
If it is determined that there are no more activities to perform in block 410, method proceeds to block 440, where the current agent passes control back up the chain to its parent agent. As each server device completes activities, control is passed up the chain until control reaches the root agent, which may then collect the results of the activities for processing. Method 400 may then continue block 445, where method 400 may stop.
[0036]
FIG. 5 is an example hierarchy of agents 500 for executing a test plan. The hierarchy of agents 500 shows a root agent with child agents 504A, 504B, 504C, where child agent A 504A has grand-child agents 506A, 506B. Control can be passed up and down the hierarchy of agents to execute a test plan on a number of server devices, which may be on different networks 510A, 510B.
[0037]
In this example, the test plan wants to utilize a locally accessible database server in the network A 510A as the test server of the root agent 502 and a SUT behind a firewall/gateway in network B 510B. To access the database server in network A 510, the test plan could establish a chain of command between root agent 502 on the test server and a replicated child agent B 504B on the database server. To access the SUT in network B 510B, the test plan could establish a chain of command between root agent 502 on the test server, a replicated child agent A 504A on the gateway to network B 510B, and a replicated grand-child agent A 506A on the SUT.
[0038]
Each stage of the test plan instructs the current agent to replicate itself to a new target device and to remain in contact with the prior agent. The current agent creates a chain of control through which other agents can be made aware of the activities of every other agent as well as modifications to the test plan.
[0039]
The foregoing disclosure describes a number of examples for replicating a chain of agents. The examples disclosed herein facilitate execution of a test plan by using self-replicating agents that are arranged in a test hierarchy to access a number of server devices without local access.

Claims

[Claim 1]
A computing device for replicating a chain of agents, comprising: an interface to connect to a plurality of server devices; a processor to: initiate an agent on the computing device, wherein the agent is a self-replicating process to process a test plan; replicate the agent on a target device of the plurality of server devices to generate a first replicated agent, wherein the target device further replicates the first replicated agent on a grandchild device of the plurality of server devices to generate a second replicated agent; and collect test results of the test plan from the plurality of server devices, wherein the test plan is executed on the plurality of server devices according to a test hierarchy.
[Claim 2]
The computing device of claim 1, wherein the agent maintains a chain of control with the first replicated agent and the second replicated agent such that the agent cannot directly communicate with the second replicated agent.
[Claim 3]
The computing device of claim 2, wherein the processor is further to: use the chain of control to send a modification of the test plan to the grandchild device via the target device.
[Claim 4]
The computing device of claim 1, wherein the processor is further to: prior to replicating the agent, determine that the first replicated agent is not available in the test hierarchy.
[Claim 5]
The computing device of claim 1, wherein the target device is a gateway device, and wherein the computing device is on a first network and the grandchild device is on a second network.
[Claim 6]
The computing device of claim 1, further comprising a testing toolset, wherein a subset of the testing toolset is provided to the first replicated agent when the agent is replicated, wherein the subset of the testing toolset is used by the target device to perform an activity of the test plan.
[Claim 7]
A method for replicating a chain of agents, the method comprising: receiving control of a test plan from a parent agent on a parent device; performing a first activity of the test plan by a local agent on a local device; in response to determining that a target agent is not available, replicating the local agent on a target device of a plurality of server devices to generate a replicated agent; and passing control of the test plan to the replicated agent, wherein the replicated agent performs a second activity of the test plan on the target device.
[Claim 8]
The method of claim 7, wherein the parent agent maintains a chain of control with the local agent and the replicated agent such that the parent agent cannot directly communicate with the replicated agent.
[Claim 9]
The method of claim 8, further comprising: using the chain of control to relay a modification of the test plan from the parent agent to the replicated agent.
[Claim 10]
The method of claim 7, wherein the local device is a gateway device, and wherein the parent device is on a first network and the target device is on a second network.
[Claim 11]
The method of claim 7, further comprising: selecting a subset of a testing toolset based on the test plan; and providing the subset to the replicated agent when the local agent is replicated, wherein the subset of the testing toolset is used by the replicated agent to perform the second activity of the test plan.
[Claim 12]
A non-transitory machine-readable storage medium encoded with instructions executable by a processor, the machine-readable storage medium comprising instructions to: receive control of a test plan from a parent agent on a parent device; perform a first activity of the test plan by a local agent on a local device; in response to determining that a target agent is not available, select a subset of a testing toolset based on the test plan; replicate the local agent on a target device of a plurality of server devices to generate a replicated agent with the subset of the testing toolset; and pass control of the test plan to the replicated agent, wherein the replicated agent uses the subset of the testing toolset to perform a second activity of the test plan on the target device.
[Claim 13]
The non-transitory machine-readable storage medium of claim 12, wherein the parent agent maintains a chain of control with the local agent and the replicated agent such that the parent agent cannot directly communicate with the replicated agent.
[Claim 14]
The non-transitory machine-readable storage medium of claim 13, wherein the instructions are further to: receive a modification of the test plan from the replicated agent.
[Claim 15]
The non-transitory machine-readable storage medium of claim 12, wherein the local device is a gateway device, and wherein the parent device is on a first network and the target device is on a second network.

Drawings

[ Fig. 0001]  
[ Fig. 0002]  
[ Fig. 0003]  
[ Fig. 0004]  
[ Fig. 0005]